way too many changes to list, oops. big rewrite.

This commit is contained in:
2025-05-27 03:38:03 +10:00
parent 16951a9beb
commit 4a21701a35
663 changed files with 7389 additions and 3283 deletions

View File

@ -0,0 +1,86 @@
[gd_scene load_steps=10 format=3 uid="uid://dk1pt2f1qya1m"]
[ext_resource type="PackedScene" uid="uid://bvqu1heobgboe" path="res://Scenes/Towers/tower.tscn" id="1_stebd"]
[ext_resource type="Script" uid="uid://djp7tepdsda8w" path="res://Scripts/effect.gd" id="2_jbe1c"]
[ext_resource type="Script" uid="uid://chy7bx8dlwgs0" path="res://Scripts/StatusEffects/status_effect.gd" id="3_vxmma"]
[ext_resource type="PackedScene" uid="uid://cx8f6tsipvmls" path="res://ladder.tscn" id="4_eys8f"]
[ext_resource type="Material" uid="uid://chxjofsr2lq1r" path="res://new_standard_material_3d.tres" id="5_lny5m"]
[sub_resource type="Resource" id="Resource_lny5m"]
script = ExtResource("2_jbe1c")
damage = 0
status_effects = Array[ExtResource("3_vxmma")]([])
metadata/_custom_type_script = "uid://djp7tepdsda8w"
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_4ibu2"]
height = 10.0
[sub_resource type="BoxShape3D" id="BoxShape3D_tdbe0"]
size = Vector3(3, 1, 3)
[sub_resource type="BoxShape3D" id="BoxShape3D_iwla6"]
size = Vector3(7, 1, 3)
[node name="Tower" instance=ExtResource("1_stebd")]
effect = SubResource("Resource_lny5m")
[node name="Pitch" parent="." index="1"]
visible = false
[node name="Yaw" parent="." index="2"]
visible = false
[node name="Ladder2" parent="." index="6" instance=ExtResource("4_eys8f")]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Ladder2" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.72894, 0)
shape = SubResource("CapsuleShape3D_4ibu2")
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Ladder2" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.58316, 0)
material_override = ExtResource("5_lny5m")
height = 9.12903
[node name="StaticBody3D" type="StaticBody3D" parent="." index="7"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 8.5, 0)
collision_layer = 32
[node name="CSGBox3D" type="CSGBox3D" parent="StaticBody3D" index="0"]
material_override = ExtResource("5_lny5m")
size = Vector3(3, 1, 1)
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D" index="1"]
shape = SubResource("BoxShape3D_tdbe0")
[node name="StaticBody3D2" type="StaticBody3D" parent="." index="8"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 8.5, 0)
collision_layer = 32
[node name="CSGBox3D" type="CSGBox3D" parent="StaticBody3D2" index="0"]
material_override = ExtResource("5_lny5m")
size = Vector3(3, 1, 1)
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D2" index="1"]
shape = SubResource("BoxShape3D_tdbe0")
[node name="StaticBody3D3" type="StaticBody3D" parent="." index="9"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8.5, 2)
collision_layer = 32
[node name="CSGBox3D" type="CSGBox3D" parent="StaticBody3D3" index="0"]
material_override = ExtResource("5_lny5m")
size = Vector3(7, 1, 3)
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D3" index="1"]
shape = SubResource("BoxShape3D_iwla6")
[node name="StaticBody3D4" type="StaticBody3D" parent="." index="10"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8.5, -2)
collision_layer = 32
[node name="CSGBox3D" type="CSGBox3D" parent="StaticBody3D4" index="0"]
material_override = ExtResource("5_lny5m")
size = Vector3(7, 1, 3)
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D4" index="1"]
shape = SubResource("BoxShape3D_iwla6")

View File

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://c756rtt7ujowk"]
[ext_resource type="Script" uid="uid://yjb0uv6og430" path="res://Scripts/Resources/stat_attribute.gd" id="1_tiqmf"]
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://Scripts/Resources/card_text.gd" id="2_bpl71"]
[sub_resource type="Resource" id="Resource_tiqmf"]
script = ExtResource("1_tiqmf")
key = "Fire Delay"
value = 9999.0
metadata/_custom_type_script = "uid://yjb0uv6og430"
[sub_resource type="Resource" id="Resource_bpl71"]
script = ExtResource("1_tiqmf")
key = "Damage"
value = 0.0
metadata/_custom_type_script = "uid://yjb0uv6og430"
[sub_resource type="Resource" id="Resource_imnjp"]
script = ExtResource("1_tiqmf")
key = "Range "
value = 1.0
metadata/_custom_type_script = "uid://yjb0uv6og430"
[resource]
script = ExtResource("2_bpl71")
target_type = 2
attributes = Array[ExtResource("1_tiqmf")]([SubResource("Resource_tiqmf"), SubResource("Resource_bpl71"), SubResource("Resource_imnjp")])
text = "Grants access to a stable high canopy"
metadata/_custom_type_script = "uid://dg7gxxqfqxcmc"

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,50 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://ciu2crn0o7htc"
path="res://.godot/imported/assaultmodel.glb-c10acce7564bc135e02030461d695929.scn"
[deps]
source_file="res://Towers/Assault/assaultmodel.glb"
dest_files=["res://.godot/imported/assaultmodel.glb-c10acce7564bc135e02030461d695929.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"meshes": {
"assaultmodel_Cube": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": false,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://assaultmod.res"
}
}
}
gltf/naming_version=0
gltf/embedded_image_handling=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ndhxw3xc8gxq"
path="res://.godot/imported/assaulttex.png-64041db54a52629948ed53cec383b97f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Towers/Assault/assaulttex.png"
dest_files=["res://.godot/imported/assaulttex.png-64041db54a52629948ed53cec383b97f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View File

@ -0,0 +1,23 @@
[gd_scene load_steps=7 format=3 uid="uid://chbmp1ap8jc7"]
[ext_resource type="PackedScene" uid="uid://43vmeyuurqfs" path="res://Scenes/Towers/direct_affect_tower.tscn" id="1_cn3qe"]
[ext_resource type="Resource" uid="uid://bdmsiw45xxhiv" path="res://Towers/Assault/tower_stats.tres" id="2_gg1gn"]
[ext_resource type="Script" uid="uid://djp7tepdsda8w" path="res://Scripts/effect.gd" id="3_75shm"]
[ext_resource type="ArrayMesh" uid="uid://oxjhqfwlcx5l" path="res://Towers/Assault/assaultmod.res" id="4_1d5pl"]
[ext_resource type="Script" uid="uid://chy7bx8dlwgs0" path="res://Scripts/StatusEffects/status_effect.gd" id="4_lkplr"]
[sub_resource type="Resource" id="Resource_c6gqc"]
script = ExtResource("3_75shm")
damage = 0
status_effects = Array[ExtResource("4_lkplr")]([])
[node name="DirectAffectTower" instance=ExtResource("1_cn3qe")]
stats = ExtResource("2_gg1gn")
effect = SubResource("Resource_c6gqc")
[node name="Pitch" parent="." index="1"]
visible = false
[node name="Yaw" parent="." index="2"]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 1.2058, 0)
mesh = ExtResource("4_1d5pl")

View File

@ -0,0 +1,26 @@
[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://bdmsiw45xxhiv"]
[ext_resource type="Script" uid="uid://yjb0uv6og430" path="res://Scripts/Resources/stat_attribute.gd" id="1_qgv2j"]
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://Scripts/Resources/card_text.gd" id="2_7wr4x"]
[sub_resource type="Resource" id="Resource_bukji"]
script = ExtResource("1_qgv2j")
key = "Fire Delay"
value = 0.5
[sub_resource type="Resource" id="Resource_2e75s"]
script = ExtResource("1_qgv2j")
key = "Damage"
value = 1.0
[sub_resource type="Resource" id="Resource_1vpnf"]
script = ExtResource("1_qgv2j")
key = "Range"
value = 10.0
[resource]
script = ExtResource("2_7wr4x")
target_type = 1
energy_type = 0
attributes = Array[ExtResource("1_qgv2j")]([SubResource("Resource_bukji"), SubResource("Resource_2e75s"), SubResource("Resource_1vpnf")])
text = "Fires a shot every /Fire Delay\\ seconds dealing /Damage\\ damage at a range of /Range\\m"

Binary file not shown.

View File

@ -0,0 +1,50 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://nhkh1qnqtll6"
path="res://.godot/imported/blowdart.glb-b661790394110324296923c044d93a7b.scn"
[deps]
source_file="res://Towers/Blowdart/blowdart.glb"
dest_files=["res://.godot/imported/blowdart.glb-b661790394110324296923c044d93a7b.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"meshes": {
"blowdart_Cube": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": false,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://blowdart.res"
}
}
}
gltf/naming_version=0
gltf/embedded_image_handling=1

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cmgtiw6p50bbi"
path="res://.godot/imported/blowdarttex.png-217bba6cc5b0ebe0adf1bfc9f0677e91.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Towers/Blowdart/blowdarttex.png"
dest_files=["res://.godot/imported/blowdarttex.png-217bba6cc5b0ebe0adf1bfc9f0677e91.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View File

@ -0,0 +1,29 @@
[gd_scene load_steps=10 format=3 uid="uid://byyndhj0xoouf"]
[ext_resource type="PackedScene" uid="uid://43vmeyuurqfs" path="res://Scenes/Towers/direct_affect_tower.tscn" id="1_u1o4e"]
[ext_resource type="Script" uid="uid://djp7tepdsda8w" path="res://Scripts/effect.gd" id="2_go6cw"]
[ext_resource type="Resource" uid="uid://cbskijhnnj3kw" path="res://Resources/StatusEffects/poisoned.tres" id="3_ix50y"]
[ext_resource type="Script" uid="uid://c6eghujlaqhwi" path="res://Scripts/StatusEffects/status_dot.gd" id="3_thmml"]
[ext_resource type="Resource" uid="uid://cfbap4o68urti" path="res://Towers/Blowdart/tower_stats.tres" id="4_1w7pa"]
[ext_resource type="Script" uid="uid://chy7bx8dlwgs0" path="res://Scripts/StatusEffects/status_effect.gd" id="4_3yh87"]
[ext_resource type="ArrayMesh" uid="uid://yxho5jipkwi2" path="res://Towers/Blowdart/blowdart.res" id="5_2kqqw"]
[sub_resource type="Resource" id="Resource_075vp"]
script = ExtResource("3_thmml")
stats = ExtResource("3_ix50y")
[sub_resource type="Resource" id="Resource_bwxwl"]
script = ExtResource("2_go6cw")
damage = 0
status_effects = Array[ExtResource("4_3yh87")]([SubResource("Resource_075vp")])
[node name="DirectAffectTower" instance=ExtResource("1_u1o4e")]
stats = ExtResource("4_1w7pa")
effect = SubResource("Resource_bwxwl")
[node name="Pitch" parent="." index="1"]
visible = false
[node name="Yaw" parent="." index="2"]
transform = Transform3D(0.19, 0, 0, 0, 0.19, 0, 0, 0, 0.19, 0, 0.842628, 0)
mesh = ExtResource("5_2kqqw")

View File

@ -0,0 +1,25 @@
[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://cfbap4o68urti"]
[ext_resource type="Script" uid="uid://yjb0uv6og430" path="res://Scripts/Resources/stat_attribute.gd" id="1_otqsh"]
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://Scripts/Resources/card_text.gd" id="2_2k5i0"]
[sub_resource type="Resource" id="Resource_1txa7"]
script = ExtResource("1_otqsh")
key = "Damage"
value = 0.0
[sub_resource type="Resource" id="Resource_46kv2"]
script = ExtResource("1_otqsh")
key = "Range"
value = 20.0
[sub_resource type="Resource" id="Resource_gb76x"]
script = ExtResource("1_otqsh")
key = "Fire Delay"
value = 2.0
[resource]
script = ExtResource("2_2k5i0")
target_type = 3
attributes = Array[ExtResource("1_otqsh")]([SubResource("Resource_1txa7"), SubResource("Resource_46kv2"), SubResource("Resource_gb76x")])
text = "Fires every /Fire Delay\\s, applying one stack of Poison at a range of /Range\\m"

Binary file not shown.

View File

@ -0,0 +1,50 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://c7oec0i1k76et"
path="res://.godot/imported/bombamod.glb-117802fd80272dd9feeffac01483d192.scn"
[deps]
source_file="res://Towers/BombLauncher/bombamod.glb"
dest_files=["res://.godot/imported/bombamod.glb-117802fd80272dd9feeffac01483d192.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"meshes": {
"bombamod_Cube": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": false,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://bombamodel.res"
}
}
}
gltf/naming_version=0
gltf/embedded_image_handling=0

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cxwtwh2al18cb"
path="res://.godot/imported/bombatex.png-df385163499382b24d471f4ddfe7bd23.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Towers/BombLauncher/bombatex.png"
dest_files=["res://.godot/imported/bombatex.png-df385163499382b24d471f4ddfe7bd23.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View File

@ -0,0 +1,28 @@
[gd_scene load_steps=8 format=3 uid="uid://bod84abxnnmdo"]
[ext_resource type="PackedScene" uid="uid://bidr1m71pajma" path="res://Scenes/Towers/projectile_tower.tscn" id="1_b7osn"]
[ext_resource type="ArrayMesh" uid="uid://cbuu5w43qins8" path="res://Towers/BombLauncher/bombamodel.res" id="2_8yc3r"]
[ext_resource type="Script" uid="uid://djp7tepdsda8w" path="res://Scripts/effect.gd" id="2_kdbmn"]
[ext_resource type="Script" uid="uid://bs020rluyw3hs" path="res://Towers/BombLauncher/tower_bomb_launcher.gd" id="2_qwant"]
[ext_resource type="PackedScene" uid="uid://c8oq5unisjqne" path="res://Projectiles/Bomb/bomb_projectile.tscn" id="3_kdbmn"]
[ext_resource type="Script" uid="uid://chy7bx8dlwgs0" path="res://Scripts/StatusEffects/status_effect.gd" id="3_qwant"]
[sub_resource type="Resource" id="Resource_twicp"]
script = ExtResource("2_kdbmn")
damage = 0
status_effects = Array[ExtResource("3_qwant")]([])
metadata/_custom_type_script = "uid://djp7tepdsda8w"
[node name="ProjectileTower" instance=ExtResource("1_b7osn")]
script = ExtResource("2_qwant")
effect = SubResource("Resource_twicp")
[node name="Pitch" parent="." index="1"]
visible = false
[node name="Yaw" parent="." index="2"]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0.386736, 0)
mesh = ExtResource("2_8yc3r")
[node name="SpawnAffect" parent="." index="6"]
spawn_scene = ExtResource("3_kdbmn")

View File

@ -0,0 +1,22 @@
class_name BombLauncherTower extends Tower
func _ready() -> void:
super._ready()
#TODO: this needs a getter/setter on target_range to make sure force is
#recalculated if target_range changes
affector.force = sqrt((target_range * ProjectSettings.get_setting("physics/3d/default_gravity")) / sin(2 * 45))
func aim() -> void:
super.aim()
var pos: Vector2 = Vector2(global_position.x, global_position.z)
var t_pos: Vector2 = Vector2(target_finder.targets[0].global_position.x, target_finder.targets[0].global_position.z)
var x: float = pos.distance_to(t_pos)
var y: float = target_finder.targets[0].global_position.y - yaw_model.global_position.y
var v: float = affector.force
var g: float = ProjectSettings.get_setting("physics/3d/default_gravity")
var v2: float = pow(v, 2)
var angle: float = atan((v2 + sqrt(pow(v, 4) - g * ((g * pow(x, 2)) + (2 * y * v2)))) / (g * x))
yaw_model.look_at(Vector3(t_pos.x, yaw_model.global_position.y, t_pos.y))
yaw_model.rotate(yaw_model.global_transform.basis.x.normalized(), angle)

View File

@ -0,0 +1 @@
uid://bs020rluyw3hs

View File

@ -0,0 +1,25 @@
[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://8eaecilvan23"]
[ext_resource type="Script" uid="uid://yjb0uv6og430" path="res://Scripts/Resources/stat_attribute.gd" id="1_eglp5"]
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://Scripts/Resources/card_text.gd" id="2_1vuma"]
[sub_resource type="Resource" id="Resource_yb48y"]
script = ExtResource("1_eglp5")
key = "Fire Delay"
value = 4.0
[sub_resource type="Resource" id="Resource_ewwvw"]
script = ExtResource("1_eglp5")
key = "Damage"
value = 10.0
[sub_resource type="Resource" id="Resource_qu5dv"]
script = ExtResource("1_eglp5")
key = "Range"
value = 8.0
[resource]
script = ExtResource("2_1vuma")
target_type = 1
attributes = Array[ExtResource("1_eglp5")]([SubResource("Resource_yb48y"), SubResource("Resource_ewwvw"), SubResource("Resource_qu5dv")])
text = "Launch a bomb that deals /Damage\\ damage every /Fire Delay\\ seconds"

View File

@ -0,0 +1,32 @@
[gd_scene load_steps=10 format=3 uid="uid://bhbfd3prwqmyx"]
[ext_resource type="PackedScene" uid="uid://bidr1m71pajma" path="res://Scenes/Towers/projectile_tower.tscn" id="1_hqry2"]
[ext_resource type="Script" uid="uid://djp7tepdsda8w" path="res://Scripts/effect.gd" id="2_rtffu"]
[ext_resource type="Script" uid="uid://chy7bx8dlwgs0" path="res://Scripts/StatusEffects/status_effect.gd" id="3_nwd61"]
[ext_resource type="Script" uid="uid://c6eghujlaqhwi" path="res://Scripts/StatusEffects/status_dot.gd" id="4_8dphr"]
[ext_resource type="Resource" uid="uid://dbanx8taicddm" path="res://Resources/StatusEffects/on_fire.tres" id="5_hih6e"]
[ext_resource type="ArrayMesh" uid="uid://d34yiqnnaie8r" path="res://Towers/Fireball/magetowermesh.res" id="6_yphct"]
[ext_resource type="PackedScene" uid="uid://ddpixntjsbpqp" path="res://Projectiles/Fireball/fireball_projectile.tscn" id="7_i3p2x"]
[sub_resource type="Resource" id="Resource_sr3we"]
script = ExtResource("4_8dphr")
stats = ExtResource("5_hih6e")
metadata/_custom_type_script = "uid://c6eghujlaqhwi"
[sub_resource type="Resource" id="Resource_bxn1b"]
script = ExtResource("2_rtffu")
damage = 0
status_effects = Array[ExtResource("3_nwd61")]([SubResource("Resource_sr3we")])
metadata/_custom_type_script = "uid://djp7tepdsda8w"
[node name="ProjectileTower" instance=ExtResource("1_hqry2")]
effect = SubResource("Resource_bxn1b")
[node name="Pitch" parent="." index="1"]
mesh = ExtResource("6_yphct")
[node name="Yaw" parent="." index="2"]
transform = Transform3D(0.165, 0, 0, 0, 0.165, 0, 0, 0, 0.165, 0, 1.76777, 0)
[node name="SpawnAffect" parent="." index="6"]
spawn_scene = ExtResource("7_i3p2x")

Binary file not shown.

View File

@ -0,0 +1,50 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://c4uxuc6cld2nq"
path="res://.godot/imported/magetower.glb-a9140869908a4a11a308886b478c3424.scn"
[deps]
source_file="res://Towers/Fireball/magetower.glb"
dest_files=["res://.godot/imported/magetower.glb-a9140869908a4a11a308886b478c3424.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"meshes": {
"magetower_Cube": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": false,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://magetowermesh.res"
}
}
}
gltf/naming_version=0
gltf/embedded_image_handling=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ckqne5s30ifgb"
path="res://.godot/imported/magetower.png-41b8ad4b23ed898a3be91cee65c3f2a6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Towers/Fireball/magetower.png"
dest_files=["res://.godot/imported/magetower.png-41b8ad4b23ed898a3be91cee65c3f2a6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,25 @@
[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://dnvqghpwyuw84"]
[ext_resource type="Script" uid="uid://yjb0uv6og430" path="res://Scripts/Resources/stat_attribute.gd" id="1_wvk31"]
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://Scripts/Resources/card_text.gd" id="2_nconk"]
[sub_resource type="Resource" id="Resource_68ba3"]
script = ExtResource("1_wvk31")
key = "Fire Delay"
value = 3.0
[sub_resource type="Resource" id="Resource_gogvm"]
script = ExtResource("1_wvk31")
key = "Damage"
value = 5.0
[sub_resource type="Resource" id="Resource_pswb4"]
script = ExtResource("1_wvk31")
key = "Range"
value = 15.0
[resource]
script = ExtResource("2_nconk")
target_type = 3
attributes = Array[ExtResource("1_wvk31")]([SubResource("Resource_68ba3"), SubResource("Resource_gogvm"), SubResource("Resource_pswb4")])
text = "Conjures a fireball every /Fire Delay\\s that deals /Damage\\ and apply Burning to enemies caught in its blast"

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://33ebstkmuw2s"
path="res://.godot/imported/flamethrower.png-7a7db84bd3ba1dec3f2a68a5e37bb99c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Towers/Flamethrower/flamethrower.png"
dest_files=["res://.godot/imported/flamethrower.png-7a7db84bd3ba1dec3f2a68a5e37bb99c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,38 @@
[gd_scene load_steps=11 format=3 uid="uid://h34khfekaemi"]
[ext_resource type="PackedScene" uid="uid://kioik38usbqj" path="res://Scenes/Towers/area_tower.tscn" id="1_m6l05"]
[ext_resource type="Script" uid="uid://djp7tepdsda8w" path="res://Scripts/effect.gd" id="2_gkn1q"]
[ext_resource type="Script" uid="uid://chy7bx8dlwgs0" path="res://Scripts/StatusEffects/status_effect.gd" id="3_4h7vt"]
[ext_resource type="Resource" uid="uid://dbanx8taicddm" path="res://Resources/StatusEffects/on_fire.tres" id="3_aop2h"]
[ext_resource type="Resource" uid="uid://cdtjbxs21peqg" path="res://Towers/Flamethrower/tower_stats.tres" id="4_by7c8"]
[ext_resource type="Script" uid="uid://c6eghujlaqhwi" path="res://Scripts/StatusEffects/status_dot.gd" id="4_p8owx"]
[ext_resource type="ArrayMesh" uid="uid://b4p0d4y8fdeox" path="res://Towers/Flamethrower/flamethrower_mesh.res" id="5_tc7nr"]
[sub_resource type="Resource" id="Resource_f5usv"]
script = ExtResource("4_p8owx")
stats = ExtResource("3_aop2h")
[sub_resource type="Resource" id="Resource_wvbdd"]
script = ExtResource("2_gkn1q")
damage = 0
status_effects = Array[ExtResource("3_4h7vt")]([SubResource("Resource_f5usv")])
[sub_resource type="SphereShape3D" id="SphereShape3D_tyf6m"]
radius = 3.0
[node name="FlamethrowerTower" instance=ExtResource("1_m6l05")]
stats = ExtResource("4_by7c8")
effect = SubResource("Resource_wvbdd")
[node name="Pitch" parent="." index="1"]
transform = Transform3D(0.42, 0, 0, 0, 0.42, 0, 0, 0, 0.42, 0, 0.389397, 0)
mesh = ExtResource("5_tc7nr")
[node name="ShapeCast3D" type="ShapeCast3D" parent="Pitch" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.896251, 0)
shape = SubResource("SphereShape3D_tyf6m")
target_position = Vector3(0, 0, -3)
collision_mask = 4
[node name="AreaAffector" parent="." index="6" node_paths=PackedStringArray("shapecast")]
shapecast = NodePath("../Pitch/ShapeCast3D")

View File

@ -0,0 +1,25 @@
[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://cdtjbxs21peqg"]
[ext_resource type="Script" uid="uid://yjb0uv6og430" path="res://Scripts/Resources/stat_attribute.gd" id="1_ikp33"]
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://Scripts/Resources/card_text.gd" id="2_wptab"]
[sub_resource type="Resource" id="Resource_j28f4"]
script = ExtResource("1_ikp33")
key = "Fire Delay"
value = 0.5
[sub_resource type="Resource" id="Resource_likes"]
script = ExtResource("1_ikp33")
key = "Damage"
value = 0.0
[sub_resource type="Resource" id="Resource_b65mk"]
script = ExtResource("1_ikp33")
key = "Range"
value = 3.0
[resource]
script = ExtResource("2_wptab")
target_type = 1
attributes = Array[ExtResource("1_ikp33")]([SubResource("Resource_j28f4"), SubResource("Resource_likes"), SubResource("Resource_b65mk")])
text = "Applies burning to enemies in front of it"

Binary file not shown.

View File

@ -0,0 +1,50 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dw1inygy0r6l6"
path="res://.godot/imported/untirastflametled.glb-3e525e34dfafc785ba26734cf1c5ce7f.scn"
[deps]
source_file="res://Towers/Flamethrower/untirastflametled.glb"
dest_files=["res://.godot/imported/untirastflametled.glb-3e525e34dfafc785ba26734cf1c5ce7f.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"meshes": {
"untirastflametled_Cube": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": false,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://flamethrower_mesh.res"
}
}
}
gltf/naming_version=0
gltf/embedded_image_handling=1

BIN
Towers/Gatling/gatling.glb Normal file

Binary file not shown.

View File

@ -0,0 +1,50 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://c8l43de2o07kb"
path="res://.godot/imported/gatling.glb-9b04db40ae4eb581b3e55543c00cd70d.scn"
[deps]
source_file="res://Towers/Gatling/gatling.glb"
dest_files=["res://.godot/imported/gatling.glb-9b04db40ae4eb581b3e55543c00cd70d.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"meshes": {
"gatling_Cube": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": false,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://gattlemesh.res"
}
}
}
gltf/naming_version=0
gltf/embedded_image_handling=1

BIN
Towers/Gatling/gatling.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bjh6e8t8br6rq"
path="res://.godot/imported/gatling.png-3c782a94494355068a82b7d51ccf2fce.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Towers/Gatling/gatling.png"
dest_files=["res://.godot/imported/gatling.png-3c782a94494355068a82b7d51ccf2fce.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,33 @@
class_name GatlingTower extends Tower
var time_since_firing_started: float = 0.0
var time_to_reach_max_speed: float = 0.0
var max_speed_multiplier: float = 0.0
var current_time_between_shots: float = 0.0
var final_time_between_shots: float = 0.0
func _ready() -> void:
super._ready()
time_to_reach_max_speed = stats.get_attribute("Speed Time")
max_speed_multiplier = stats.get_attribute("Speed Multiplier")
final_time_between_shots = time_between_shots / max_speed_multiplier
func _process(delta: float) -> void:
if time_since_firing < current_time_between_shots:
time_since_firing += delta
func _physics_process(delta: float) -> void:
if !target_finder.targets.size() > 0:
time_since_firing_started = 0.0
current_time_between_shots = time_between_shots
else:
aim()
time_since_firing_started += delta
var progress: float = clamp(time_since_firing_started / time_to_reach_max_speed, 0, 1.0)
current_time_between_shots = lerpf(time_between_shots, final_time_between_shots, progress)
if time_since_firing >= current_time_between_shots:
time_since_firing -= current_time_between_shots
shoot()

View File

@ -0,0 +1 @@
uid://b43lbaanefmj3

View File

@ -0,0 +1,77 @@
[gd_scene load_steps=13 format=3 uid="uid://ci822ash3mbhi"]
[ext_resource type="Script" uid="uid://b43lbaanefmj3" path="res://Towers/Gatling/tower_gatling.gd" id="2_ipjp1"]
[ext_resource type="Script" uid="uid://rvnacmxsrh4w" path="res://Scripts/target_finder.gd" id="3_co24a"]
[ext_resource type="Resource" uid="uid://nxl5wabgl36t" path="res://Towers/Gatling/tower_stats.tres" id="3_oicqw"]
[ext_resource type="Script" uid="uid://djp7tepdsda8w" path="res://Scripts/effect.gd" id="3_tykap"]
[ext_resource type="Script" uid="uid://chy7bx8dlwgs0" path="res://Scripts/StatusEffects/status_effect.gd" id="4_sc4bm"]
[ext_resource type="Script" uid="uid://8d0a4uc2i0ti" path="res://Scripts/Affectors/direct_affect.gd" id="4_v2roj"]
[ext_resource type="ArrayMesh" uid="uid://dler7wcqj0bm6" path="res://Towers/Gatling/gattlemesh.res" id="4_wihc0"]
[sub_resource type="Resource" id="Resource_7ovr8"]
script = ExtResource("3_tykap")
damage = 0
status_effects = Array[ExtResource("4_sc4bm")]([])
[sub_resource type="Animation" id="Animation_vk4a8"]
resource_name = "shoot"
[sub_resource type="AnimationLibrary" id="AnimationLibrary_cebsq"]
_data = {
&"shoot": SubResource("Animation_vk4a8")
}
[sub_resource type="BoxMesh" id="BoxMesh_42byu"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1ucq4"]
transparency = 1
cull_mode = 1
shading_mode = 0
albedo_color = Color(1, 0, 0.415686, 0.223529)
[node name="DirectAffectTower" type="Node3D" node_paths=PackedStringArray("target_finder", "affector", "animator", "pitch_model", "yaw_model", "range_indicator", "audio_player")]
script = ExtResource("2_ipjp1")
stats = ExtResource("3_oicqw")
target_finder = NodePath("TargetFinder")
affector = NodePath("DirectAffect")
animator = NodePath("AnimationPlayer")
pitch_model = NodePath("Pitch")
yaw_model = NodePath("Yaw")
range_indicator = NodePath("CSGSphere3D")
audio_player = NodePath("Yaw/AudioStreamPlayer3D")
effect = SubResource("Resource_7ovr8")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_cebsq")
}
[node name="Pitch" type="MeshInstance3D" parent="."]
visible = false
mesh = SubResource("BoxMesh_42byu")
[node name="Yaw" type="MeshInstance3D" parent="."]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0.515143, 0)
mesh = ExtResource("4_wihc0")
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="Yaw"]
bus = &"SFX"
[node name="MinimapIcon" type="Sprite3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
layers = 4
[node name="CSGSphere3D" type="CSGSphere3D" parent="."]
visible = false
layers = 5
radius = 10.0
radial_segments = 16
rings = 16
material = SubResource("StandardMaterial3D_1ucq4")
[node name="TargetFinder" type="Node" parent="." node_paths=PackedStringArray("tower")]
script = ExtResource("3_co24a")
tower = NodePath("..")
[node name="DirectAffect" type="Node" parent="."]
script = ExtResource("4_v2roj")

View File

@ -0,0 +1,38 @@
[gd_resource type="Resource" script_class="CardText" load_steps=8 format=3 uid="uid://nxl5wabgl36t"]
[ext_resource type="Script" uid="uid://yjb0uv6og430" path="res://Scripts/Resources/stat_attribute.gd" id="1_w20qq"]
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://Scripts/Resources/card_text.gd" id="2_ky46y"]
[sub_resource type="Resource" id="Resource_oayfg"]
script = ExtResource("1_w20qq")
key = "Fire Delay"
value = 0.6
[sub_resource type="Resource" id="Resource_fekle"]
script = ExtResource("1_w20qq")
key = "Damage"
value = 1.0
[sub_resource type="Resource" id="Resource_ud8xi"]
script = ExtResource("1_w20qq")
key = "Range"
value = 10.0
[sub_resource type="Resource" id="Resource_cvkxf"]
script = ExtResource("1_w20qq")
key = "Speed Multiplier"
value = 2.0
[sub_resource type="Resource" id="Resource_pivwn"]
script = ExtResource("1_w20qq")
key = "Speed Time"
value = 3.0
[resource]
script = ExtResource("2_ky46y")
target_type = 1
energy_type = 0
attributes = Array[ExtResource("1_w20qq")]([SubResource("Resource_oayfg"), SubResource("Resource_fekle"), SubResource("Resource_ud8xi"), SubResource("Resource_cvkxf"), SubResource("Resource_pivwn")])
text = "Fires a shot every /Fire Delay\\ seconds dealing /Damage\\ damage at a range of /Range\\m
While attacking the same target, gradually accelerates to /Speed Multiplier\\x the fire rate over /Speed Time\\s"

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,50 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dd2lht485rtdu"
path="res://.godot/imported/gluegun.glb-09984f582a191dc2416989c9e2ab39bd.scn"
[deps]
source_file="res://Towers/GlueLauncher/gluegun.glb"
dest_files=["res://.godot/imported/gluegun.glb-09984f582a191dc2416989c9e2ab39bd.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"meshes": {
"gluegun_Cube": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": false,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://glue_launcher_model.res"
}
}
}
gltf/naming_version=0
gltf/embedded_image_handling=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ukdbh416xfrl"
path="res://.godot/imported/glueguntex.png-5bf9987ae8ced3d972e0169f67854db8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Towers/GlueLauncher/glueguntex.png"
dest_files=["res://.godot/imported/glueguntex.png-5bf9987ae8ced3d972e0169f67854db8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View File

@ -0,0 +1,29 @@
[gd_scene load_steps=10 format=3 uid="uid://bfdg32wymhoj1"]
[ext_resource type="PackedScene" uid="uid://43vmeyuurqfs" path="res://Scenes/Towers/direct_affect_tower.tscn" id="1_v06tq"]
[ext_resource type="Resource" uid="uid://d0643gfp52x3s" path="res://Resources/StatusEffects/sticky.tres" id="3_ibb53"]
[ext_resource type="Script" uid="uid://djp7tepdsda8w" path="res://Scripts/effect.gd" id="3_v7ope"]
[ext_resource type="Resource" uid="uid://bvkwgmbxje0dp" path="res://Towers/GlueLauncher/tower_stats.tres" id="4_etcd4"]
[ext_resource type="Script" uid="uid://bh74uangqekuk" path="res://Scripts/StatusEffects/status_slow.gd" id="4_gk1x5"]
[ext_resource type="Script" uid="uid://chy7bx8dlwgs0" path="res://Scripts/StatusEffects/status_effect.gd" id="4_ubc07"]
[ext_resource type="ArrayMesh" uid="uid://cehyrhbd7pu83" path="res://Towers/GlueLauncher/glue_launcher_model.res" id="5_dsftx"]
[sub_resource type="Resource" id="Resource_4e51e"]
script = ExtResource("4_gk1x5")
stats = ExtResource("3_ibb53")
[sub_resource type="Resource" id="Resource_mgak2"]
script = ExtResource("3_v7ope")
damage = 0
status_effects = Array[ExtResource("4_ubc07")]([SubResource("Resource_4e51e")])
[node name="DirectAffectTower" instance=ExtResource("1_v06tq")]
stats = ExtResource("4_etcd4")
effect = SubResource("Resource_mgak2")
[node name="Pitch" parent="." index="1"]
visible = false
[node name="Yaw" parent="." index="2"]
transform = Transform3D(0.22, 0, 0, 0, 0.22, 0, 0, 0, 0.22, 0, 0.461018, 0)
mesh = ExtResource("5_dsftx")

View File

@ -0,0 +1,25 @@
[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://bvkwgmbxje0dp"]
[ext_resource type="Script" uid="uid://yjb0uv6og430" path="res://Scripts/Resources/stat_attribute.gd" id="1_ytycf"]
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://Scripts/Resources/card_text.gd" id="2_226sm"]
[sub_resource type="Resource" id="Resource_gbocu"]
script = ExtResource("1_ytycf")
key = "Damage"
value = 0.0
[sub_resource type="Resource" id="Resource_6a2im"]
script = ExtResource("1_ytycf")
key = "Range"
value = 10.0
[sub_resource type="Resource" id="Resource_7npe0"]
script = ExtResource("1_ytycf")
key = "Fire Delay"
value = 2.0
[resource]
script = ExtResource("2_226sm")
target_type = 1
attributes = Array[ExtResource("1_ytycf")]([SubResource("Resource_gbocu"), SubResource("Resource_6a2im"), SubResource("Resource_7npe0")])
text = "Fires every /Fire Delay\\s, making the target Sticky at a range of /Range\\m"

View File

@ -0,0 +1,32 @@
[gd_scene load_steps=10 format=3 uid="uid://bk73g30y8kri4"]
[ext_resource type="PackedScene" uid="uid://bidr1m71pajma" path="res://Scenes/Towers/projectile_tower.tscn" id="1_2424i"]
[ext_resource type="Script" uid="uid://djp7tepdsda8w" path="res://Scripts/effect.gd" id="2_5bkvv"]
[ext_resource type="Script" uid="uid://chy7bx8dlwgs0" path="res://Scripts/StatusEffects/status_effect.gd" id="3_e2nh7"]
[ext_resource type="Script" uid="uid://bh74uangqekuk" path="res://Scripts/StatusEffects/status_slow.gd" id="4_pgkre"]
[ext_resource type="Resource" uid="uid://fed6kimfbcwv" path="res://Resources/StatusEffects/cold.tres" id="5_5fymo"]
[ext_resource type="ArrayMesh" uid="uid://d34yiqnnaie8r" path="res://Towers/Fireball/magetowermesh.res" id="6_tyyed"]
[ext_resource type="PackedScene" uid="uid://dyurjxotdkf1u" path="res://Projectiles/Icicle/icicle_projectile.tscn" id="7_goltw"]
[sub_resource type="Resource" id="Resource_t3ens"]
script = ExtResource("4_pgkre")
stats = ExtResource("5_5fymo")
metadata/_custom_type_script = "uid://bh74uangqekuk"
[sub_resource type="Resource" id="Resource_woy0n"]
script = ExtResource("2_5bkvv")
damage = 0
status_effects = Array[ExtResource("3_e2nh7")]([SubResource("Resource_t3ens")])
metadata/_custom_type_script = "uid://djp7tepdsda8w"
[node name="ProjectileTower" instance=ExtResource("1_2424i")]
effect = SubResource("Resource_woy0n")
[node name="Pitch" parent="." index="1"]
mesh = ExtResource("6_tyyed")
[node name="Yaw" parent="." index="2"]
transform = Transform3D(0.195, 0, 0, 0, 0.195, 0, 0, 0, 0.195, 0, 1.72661, 0)
[node name="SpawnAffect" parent="." index="6"]
spawn_scene = ExtResource("7_goltw")

View File

@ -0,0 +1,25 @@
[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://d34bfj5togyyt"]
[ext_resource type="Script" uid="uid://yjb0uv6og430" path="res://Scripts/Resources/stat_attribute.gd" id="1_wgjcy"]
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://Scripts/Resources/card_text.gd" id="2_dorn5"]
[sub_resource type="Resource" id="Resource_68ba3"]
script = ExtResource("1_wgjcy")
key = "Fire Delay"
value = 3.0
[sub_resource type="Resource" id="Resource_gogvm"]
script = ExtResource("1_wgjcy")
key = "Damage"
value = 4.0
[sub_resource type="Resource" id="Resource_pswb4"]
script = ExtResource("1_wgjcy")
key = "Range"
value = 15.0
[resource]
script = ExtResource("2_dorn5")
target_type = 3
attributes = Array[ExtResource("1_wgjcy")]([SubResource("Resource_68ba3"), SubResource("Resource_gogvm"), SubResource("Resource_pswb4")])
text = "Conjures an icicle every /Fire Delay\\s that deals /Damage\\ and applies Cold to enemies caught in its blast"

View File

@ -0,0 +1,12 @@
class_name OverclockTower extends Tower
func shoot() -> void:
#affector.apply_effect(effect, target_finder.targets)
for tower: TowerBase in get_tree().get_nodes_in_group("TowerBases"):
if tower.tower and tower.tower.stats != stats:
if tower.global_position.distance_to(global_position) <= target_range:
tower.tower.small_speed_buff_timer += time_between_shots
animator.play("shoot")
audio_player.play()
if is_multiplayer_authority():
networked_shoot.rpc()

View File

@ -0,0 +1 @@
uid://c4bu4hlgifqom

View File

@ -0,0 +1,27 @@
[gd_scene load_steps=6 format=3 uid="uid://d3qabcosmk2q5"]
[ext_resource type="PackedScene" uid="uid://kioik38usbqj" path="res://Scenes/Towers/area_tower.tscn" id="1_85dnw"]
[ext_resource type="Script" uid="uid://c4bu4hlgifqom" path="res://Towers/Overclock/overclock_tower.gd" id="2_uhx1y"]
[ext_resource type="Script" uid="uid://djp7tepdsda8w" path="res://Scripts/effect.gd" id="3_gt5qf"]
[ext_resource type="Script" uid="uid://chy7bx8dlwgs0" path="res://Scripts/StatusEffects/status_effect.gd" id="4_d15h4"]
[sub_resource type="Resource" id="Resource_50mhx"]
script = ExtResource("3_gt5qf")
damage = 0
status_effects = Array[ExtResource("4_d15h4")]([])
metadata/_custom_type_script = "uid://djp7tepdsda8w"
[node name="Tower" instance=ExtResource("1_85dnw")]
script = ExtResource("2_uhx1y")
turns_to_aim = false
effect = SubResource("Resource_50mhx")
[node name="Pitch" parent="." index="1"]
visible = false
[node name="Yaw" parent="." index="2"]
visible = false
[node name="CSGBox3D" type="CSGBox3D" parent="." index="7"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.51387, 0)
size = Vector3(1, 2.02774, 1)

View File

@ -0,0 +1,30 @@
[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://v13yoous66bc"]
[ext_resource type="Script" uid="uid://yjb0uv6og430" path="res://Scripts/Resources/stat_attribute.gd" id="1_0swcp"]
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://Scripts/Resources/card_text.gd" id="2_fax6y"]
[sub_resource type="Resource" id="Resource_0swcp"]
script = ExtResource("1_0swcp")
key = "Fire Delay"
value = 0.0
metadata/_custom_type_script = "uid://yjb0uv6og430"
[sub_resource type="Resource" id="Resource_fax6y"]
script = ExtResource("1_0swcp")
key = "Damage"
value = 0.0
metadata/_custom_type_script = "uid://yjb0uv6og430"
[sub_resource type="Resource" id="Resource_v0e26"]
script = ExtResource("1_0swcp")
key = "Range"
value = 4.0
metadata/_custom_type_script = "uid://yjb0uv6og430"
[resource]
script = ExtResource("2_fax6y")
target_type = 1
energy_type = 0
attributes = Array[ExtResource("1_0swcp")]([SubResource("Resource_0swcp"), SubResource("Resource_fax6y"), SubResource("Resource_v0e26")])
text = "Speeds up the fire rate of towers within /Range\\m by 10%"
metadata/_custom_type_script = "uid://dg7gxxqfqxcmc"

BIN
Towers/Reactor/reactor.glb Normal file

Binary file not shown.

View File

@ -0,0 +1,50 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://ck330svnmd13b"
path="res://.godot/imported/reactor.glb-d5832fa37bbb50b548020c0cdea63120.scn"
[deps]
source_file="res://Towers/Reactor/reactor.glb"
dest_files=["res://.godot/imported/reactor.glb-d5832fa37bbb50b548020c0cdea63120.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"meshes": {
"reactor_Cube": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": false,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://reactor_mesh.res"
}
}
}
gltf/naming_version=0
gltf/embedded_image_handling=1

BIN
Towers/Reactor/reactor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b87fn56wyiqmj"
path.s3tc="res://.godot/imported/reactor.png-6cccb27d4ef196e98f39928aa1a0cc59.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Towers/Reactor/reactor.png"
dest_files=["res://.godot/imported/reactor.png-6cccb27d4ef196e98f39928aa1a0cc59.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,37 @@
[gd_scene load_steps=10 format=3 uid="uid://b7idyi1c67ou4"]
[ext_resource type="PackedScene" uid="uid://kioik38usbqj" path="res://Scenes/Towers/area_tower.tscn" id="1_0qp3f"]
[ext_resource type="Script" uid="uid://djp7tepdsda8w" path="res://Scripts/effect.gd" id="2_v1m7x"]
[ext_resource type="Script" uid="uid://chy7bx8dlwgs0" path="res://Scripts/StatusEffects/status_effect.gd" id="3_amg2o"]
[ext_resource type="Script" uid="uid://c6eghujlaqhwi" path="res://Scripts/StatusEffects/status_dot.gd" id="4_dcmuu"]
[ext_resource type="Resource" uid="uid://dxlisoas4xlmo" path="res://Resources/StatusEffects/radioactive.tres" id="5_0b26j"]
[ext_resource type="ArrayMesh" uid="uid://d280k3kx6hh7h" path="res://Towers/Reactor/reactor_mesh.res" id="6_7kedu"]
[sub_resource type="Resource" id="Resource_ltmnh"]
script = ExtResource("4_dcmuu")
stats = ExtResource("5_0b26j")
metadata/_custom_type_script = "uid://c6eghujlaqhwi"
[sub_resource type="Resource" id="Resource_joohe"]
script = ExtResource("2_v1m7x")
damage = 0
status_effects = Array[ExtResource("3_amg2o")]([SubResource("Resource_ltmnh")])
metadata/_custom_type_script = "uid://djp7tepdsda8w"
[sub_resource type="SphereShape3D" id="SphereShape3D_v6dih"]
radius = 30.0
[node name="Tower" instance=ExtResource("1_0qp3f")]
turns_to_aim = false
effect = SubResource("Resource_joohe")
[node name="ShapeCast3D" type="ShapeCast3D" parent="Pitch" index="0"]
shape = SubResource("SphereShape3D_v6dih")
target_position = Vector3(0, 0, 0)
collision_mask = 4
[node name="Yaw" parent="." index="2"]
mesh = ExtResource("6_7kedu")
[node name="AreaAffector" parent="." index="6" node_paths=PackedStringArray("shapecast")]
shapecast = NodePath("../Pitch/ShapeCast3D")

View File

@ -0,0 +1,8 @@
class_name ReactorTower extends Tower
@export var particles: GPUParticles3D
func _ready() -> void:
super._ready()
particles.process_material.emission_ring_radius = target_range

View File

@ -0,0 +1 @@
uid://dja4lljntha8r

View File

@ -0,0 +1,25 @@
[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://cssdyxk8oefsd"]
[ext_resource type="Script" uid="uid://yjb0uv6og430" path="res://Scripts/Resources/stat_attribute.gd" id="1_peekg"]
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://Scripts/Resources/card_text.gd" id="2_8w61k"]
[sub_resource type="Resource" id="Resource_j28f4"]
script = ExtResource("1_peekg")
key = "Fire Delay"
value = 4.0
[sub_resource type="Resource" id="Resource_likes"]
script = ExtResource("1_peekg")
key = "Damage"
value = 0.0
[sub_resource type="Resource" id="Resource_b65mk"]
script = ExtResource("1_peekg")
key = "Range"
value = 30.0
[resource]
script = ExtResource("2_8w61k")
target_type = 3
attributes = Array[ExtResource("1_peekg")]([SubResource("Resource_j28f4"), SubResource("Resource_likes"), SubResource("Resource_b65mk")])
text = "Slowly applies Radioactive to enemies around itself at a range of /Range\\m"

Binary file not shown.

View File

@ -0,0 +1,50 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://c6bawh1fc8dpm"
path="res://.godot/imported/fridge.glb-69dc9fb49196363329aba6b841ca5b42.scn"
[deps]
source_file="res://Towers/Refrigerator/fridge.glb"
dest_files=["res://.godot/imported/fridge.glb-69dc9fb49196363329aba6b841ca5b42.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"meshes": {
"fridge_Cube": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": false,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://fridge_mesh.res"
}
}
}
gltf/naming_version=0
gltf/embedded_image_handling=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cs77k4nnd1tql"
path="res://.godot/imported/fridge.png-dd549cd990b2de8211961cfb961cde6e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Towers/Refrigerator/fridge.png"
dest_files=["res://.godot/imported/fridge.png-dd549cd990b2de8211961cfb961cde6e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,36 @@
[gd_scene load_steps=10 format=3 uid="uid://dfgxf88kk2nhn"]
[ext_resource type="PackedScene" uid="uid://kioik38usbqj" path="res://Scenes/Towers/area_tower.tscn" id="1_3igso"]
[ext_resource type="Script" uid="uid://djp7tepdsda8w" path="res://Scripts/effect.gd" id="2_npue5"]
[ext_resource type="Script" uid="uid://chy7bx8dlwgs0" path="res://Scripts/StatusEffects/status_effect.gd" id="3_frvi8"]
[ext_resource type="Script" uid="uid://bh74uangqekuk" path="res://Scripts/StatusEffects/status_slow.gd" id="4_cirat"]
[ext_resource type="Resource" uid="uid://fed6kimfbcwv" path="res://Resources/StatusEffects/cold.tres" id="5_qnnuv"]
[ext_resource type="ArrayMesh" uid="uid://bwvls7rj0oqyv" path="res://Towers/Refrigerator/fridge_mesh.res" id="6_bb4hb"]
[sub_resource type="Resource" id="Resource_d3abg"]
script = ExtResource("4_cirat")
stats = ExtResource("5_qnnuv")
metadata/_custom_type_script = "uid://bh74uangqekuk"
[sub_resource type="Resource" id="Resource_yoqmb"]
script = ExtResource("2_npue5")
damage = 0
status_effects = Array[ExtResource("3_frvi8")]([SubResource("Resource_d3abg")])
metadata/_custom_type_script = "uid://djp7tepdsda8w"
[sub_resource type="SphereShape3D" id="SphereShape3D_jc2g4"]
radius = 3.0
[node name="Tower" instance=ExtResource("1_3igso")]
turns_to_aim = false
effect = SubResource("Resource_yoqmb")
[node name="ShapeCast3D" type="ShapeCast3D" parent="Pitch" index="0"]
shape = SubResource("SphereShape3D_jc2g4")
collision_mask = 4
[node name="Yaw" parent="." index="2"]
mesh = ExtResource("6_bb4hb")
[node name="AreaAffector" parent="." index="6" node_paths=PackedStringArray("shapecast")]
shapecast = NodePath("../Pitch/ShapeCast3D")

View File

@ -0,0 +1,25 @@
[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://st0qrut5nxrm"]
[ext_resource type="Script" uid="uid://yjb0uv6og430" path="res://Scripts/Resources/stat_attribute.gd" id="1_wa26m"]
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://Scripts/Resources/card_text.gd" id="2_w4q6a"]
[sub_resource type="Resource" id="Resource_j28f4"]
script = ExtResource("1_wa26m")
key = "Fire Delay"
value = 1.0
[sub_resource type="Resource" id="Resource_likes"]
script = ExtResource("1_wa26m")
key = "Damage"
value = 0.0
[sub_resource type="Resource" id="Resource_b65mk"]
script = ExtResource("1_wa26m")
key = "Range"
value = 3.0
[resource]
script = ExtResource("2_w4q6a")
target_type = 1
attributes = Array[ExtResource("1_wa26m")]([SubResource("Resource_j28f4"), SubResource("Resource_likes"), SubResource("Resource_b65mk")])
text = "Applies Cold to enemies around itself"

Binary file not shown.

View File

@ -0,0 +1,50 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://buyx8g4vlh7g7"
path="res://.godot/imported/rocket_launcher.glb-577955e11dbf20a1138873ba22eb3ebc.scn"
[deps]
source_file="res://Towers/RocketLauncher/rocket_launcher.glb"
dest_files=["res://.godot/imported/rocket_launcher.glb-577955e11dbf20a1138873ba22eb3ebc.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"meshes": {
"rocket_launcher_Cube": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": false,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://rocket_launcher_model.res"
}
}
}
gltf/naming_version=0
gltf/embedded_image_handling=1

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cwou52extvihw"
path="res://.godot/imported/rocket_launcher_tex.png-3dbab084120db37e20b56f7c6411d76b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Towers/RocketLauncher/rocket_launcher_tex.png"
dest_files=["res://.godot/imported/rocket_launcher_tex.png-3dbab084120db37e20b56f7c6411d76b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View File

@ -0,0 +1,29 @@
[gd_scene load_steps=7 format=3 uid="uid://clunpgm4plkar"]
[ext_resource type="PackedScene" uid="uid://bidr1m71pajma" path="res://Scenes/Towers/projectile_tower.tscn" id="1_743vv"]
[ext_resource type="Script" uid="uid://djp7tepdsda8w" path="res://Scripts/effect.gd" id="2_exq6d"]
[ext_resource type="Script" uid="uid://chy7bx8dlwgs0" path="res://Scripts/StatusEffects/status_effect.gd" id="3_11qtm"]
[ext_resource type="ArrayMesh" uid="uid://dltxsh8ppubj3" path="res://Towers/RocketLauncher/rocket_launcher_model.res" id="4_exq6d"]
[ext_resource type="PackedScene" uid="uid://p2vwo8ivben6" path="res://Projectiles/Rocket/rocket_projectile.tscn" id="4_vxjrf"]
[sub_resource type="Resource" id="Resource_idxp2"]
script = ExtResource("2_exq6d")
damage = 0
status_effects = Array[ExtResource("3_11qtm")]([])
metadata/_custom_type_script = "uid://djp7tepdsda8w"
[node name="ProjectileTower" instance=ExtResource("1_743vv")]
effect = SubResource("Resource_idxp2")
[node name="Pitch" parent="." index="1"]
visible = false
[node name="Yaw" parent="." index="2"]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0.55964, 0)
mesh = ExtResource("4_exq6d")
[node name="TargetFinder" parent="." index="5"]
max_targets = 3
[node name="SpawnAffect" parent="." index="6"]
spawn_scene = ExtResource("4_vxjrf")

View File

@ -0,0 +1,30 @@
[gd_resource type="Resource" script_class="CardText" load_steps=7 format=3 uid="uid://c65rq455ma8f6"]
[ext_resource type="Script" uid="uid://yjb0uv6og430" path="res://Scripts/Resources/stat_attribute.gd" id="1_jajj0"]
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://Scripts/Resources/card_text.gd" id="2_lag26"]
[sub_resource type="Resource" id="Resource_4fjm2"]
script = ExtResource("1_jajj0")
key = "Fire Delay"
value = 5.0
[sub_resource type="Resource" id="Resource_uwj4j"]
script = ExtResource("1_jajj0")
key = "Target Limit"
value = 3.0
[sub_resource type="Resource" id="Resource_6qv5v"]
script = ExtResource("1_jajj0")
key = "Damage"
value = 8.0
[sub_resource type="Resource" id="Resource_y1rtq"]
script = ExtResource("1_jajj0")
key = "Range"
value = 20.0
[resource]
script = ExtResource("2_lag26")
target_type = 2
attributes = Array[ExtResource("1_jajj0")]([SubResource("Resource_4fjm2"), SubResource("Resource_uwj4j"), SubResource("Resource_6qv5v"), SubResource("Resource_y1rtq")])
text = "Every /Fire Delay\\s, fires a homing rocket at up to /Target Limit\\ flying enemies up to /Range\\m away that deal /Damage\\ damage"

BIN
Towers/Sniper/sniper.glb Normal file

Binary file not shown.

View File

@ -0,0 +1,50 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://b4vwe267lt1ua"
path="res://.godot/imported/sniper.glb-b7ef8a65504da7ca64186fee199a9b79.scn"
[deps]
source_file="res://Towers/Sniper/sniper.glb"
dest_files=["res://.godot/imported/sniper.glb-b7ef8a65504da7ca64186fee199a9b79.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"meshes": {
"sniper_Cube_001": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": false,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://snipermodel.res"
}
}
}
gltf/naming_version=0
gltf/embedded_image_handling=1

Binary file not shown.

Binary file not shown.

BIN
Towers/Sniper/snipertex.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dltijooiriwyj"
path.s3tc="res://.godot/imported/snipertex.png-63879b30e7c396a57a3b1dc994dfea11.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Towers/Sniper/snipertex.png"
dest_files=["res://.godot/imported/snipertex.png-63879b30e7c396a57a3b1dc994dfea11.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Some files were not shown because too many files have changed in this diff Show More