way too many changes to list, oops. big rewrite.
86
Towers/Ascension/tower.tscn
Normal 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")
|
29
Towers/Ascension/tower_stats.tres
Normal 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"
|
BIN
Towers/Assault/assaultmod.res
Normal file
BIN
Towers/Assault/assaultmod.res.depren
Normal file
BIN
Towers/Assault/assaultmodel.glb
Normal file
50
Towers/Assault/assaultmodel.glb.import
Normal 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
|
BIN
Towers/Assault/assaulttex.png
Normal file
After Width: | Height: | Size: 25 KiB |
34
Towers/Assault/assaulttex.png.import
Normal 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
|
23
Towers/Assault/tower_assault.tscn
Normal 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")
|
26
Towers/Assault/tower_stats.tres
Normal 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"
|
BIN
Towers/Blowdart/blowdart.glb
Normal file
50
Towers/Blowdart/blowdart.glb.import
Normal 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
|
BIN
Towers/Blowdart/blowdart.res
Normal file
BIN
Towers/Blowdart/blowdart.res.depren
Normal file
BIN
Towers/Blowdart/blowdarttex.png
Normal file
After Width: | Height: | Size: 13 KiB |
34
Towers/Blowdart/blowdarttex.png.import
Normal 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
|
29
Towers/Blowdart/tower_blowdart.tscn
Normal 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")
|
25
Towers/Blowdart/tower_stats.tres
Normal 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"
|
BIN
Towers/BombLauncher/bombamod.glb
Normal file
50
Towers/BombLauncher/bombamod.glb.import
Normal 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
|
BIN
Towers/BombLauncher/bombamodel.res
Normal file
BIN
Towers/BombLauncher/bombamodel.res.depren
Normal file
BIN
Towers/BombLauncher/bombatex.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
34
Towers/BombLauncher/bombatex.png.import
Normal 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
|
28
Towers/BombLauncher/bombtower.tscn
Normal 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")
|
22
Towers/BombLauncher/tower_bomb_launcher.gd
Normal 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)
|
1
Towers/BombLauncher/tower_bomb_launcher.gd.uid
Normal file
@ -0,0 +1 @@
|
||||
uid://bs020rluyw3hs
|
25
Towers/BombLauncher/tower_stats.tres
Normal 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"
|
32
Towers/Fireball/fireballtower.tscn
Normal 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")
|
BIN
Towers/Fireball/magetower.glb
Normal file
50
Towers/Fireball/magetower.glb.import
Normal 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
|
BIN
Towers/Fireball/magetower.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
34
Towers/Fireball/magetower.png.import
Normal 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
|
BIN
Towers/Fireball/magetowermesh.res
Normal file
BIN
Towers/Fireball/magetowermesh.res.depren
Normal file
25
Towers/Fireball/tower_stats.tres
Normal 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"
|
BIN
Towers/Flamethrower/flamethrower.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
34
Towers/Flamethrower/flamethrower.png.import
Normal 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
|
BIN
Towers/Flamethrower/flamethrower_mesh.res
Normal file
BIN
Towers/Flamethrower/flamethrower_mesh.res.depren
Normal file
38
Towers/Flamethrower/tower_flamethrower.tscn
Normal 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")
|
25
Towers/Flamethrower/tower_stats.tres
Normal 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"
|
BIN
Towers/Flamethrower/untirastflametled.glb
Normal file
50
Towers/Flamethrower/untirastflametled.glb.import
Normal 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
50
Towers/Gatling/gatling.glb.import
Normal 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
After Width: | Height: | Size: 13 KiB |
34
Towers/Gatling/gatling.png.import
Normal 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
|
BIN
Towers/Gatling/gattlemesh.res
Normal file
BIN
Towers/Gatling/gattlemesh.res.depren
Normal file
33
Towers/Gatling/tower_gatling.gd
Normal 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()
|
1
Towers/Gatling/tower_gatling.gd.uid
Normal file
@ -0,0 +1 @@
|
||||
uid://b43lbaanefmj3
|
77
Towers/Gatling/tower_gatling.tscn
Normal 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")
|
38
Towers/Gatling/tower_stats.tres
Normal 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"
|
BIN
Towers/GlueLauncher/glue_launcher_model.res
Normal file
BIN
Towers/GlueLauncher/glue_launcher_model.res.depren
Normal file
BIN
Towers/GlueLauncher/gluegun.glb
Normal file
50
Towers/GlueLauncher/gluegun.glb.import
Normal 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
|
BIN
Towers/GlueLauncher/glueguntex.png
Normal file
After Width: | Height: | Size: 11 KiB |
34
Towers/GlueLauncher/glueguntex.png.import
Normal 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
|
29
Towers/GlueLauncher/tower_glue_launcher.tscn
Normal 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")
|
25
Towers/GlueLauncher/tower_stats.tres
Normal 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"
|
32
Towers/Icicle/icicletower.tscn
Normal 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")
|
25
Towers/Icicle/tower_stats.tres
Normal 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"
|
12
Towers/Overclock/overclock_tower.gd
Normal 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()
|
1
Towers/Overclock/overclock_tower.gd.uid
Normal file
@ -0,0 +1 @@
|
||||
uid://c4bu4hlgifqom
|
27
Towers/Overclock/tower.tscn
Normal 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)
|
30
Towers/Overclock/tower_stats.tres
Normal 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
50
Towers/Reactor/reactor.glb.import
Normal 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
After Width: | Height: | Size: 24 KiB |
35
Towers/Reactor/reactor.png.import
Normal 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
|
BIN
Towers/Reactor/reactor_mesh.res
Normal file
BIN
Towers/Reactor/reactor_mesh.res.depren
Normal file
37
Towers/Reactor/reactortower.tscn
Normal 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")
|
8
Towers/Reactor/tower_reactor.gd
Normal 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
|
1
Towers/Reactor/tower_reactor.gd.uid
Normal file
@ -0,0 +1 @@
|
||||
uid://dja4lljntha8r
|
25
Towers/Reactor/tower_stats.tres
Normal 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"
|
BIN
Towers/Refrigerator/fridge.glb
Normal file
50
Towers/Refrigerator/fridge.glb.import
Normal 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
|
BIN
Towers/Refrigerator/fridge.png
Normal file
After Width: | Height: | Size: 8.8 KiB |
34
Towers/Refrigerator/fridge.png.import
Normal 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
|
BIN
Towers/Refrigerator/fridge_mesh.res
Normal file
BIN
Towers/Refrigerator/fridge_mesh.res.depren
Normal file
36
Towers/Refrigerator/fridgetower.tscn
Normal 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")
|
25
Towers/Refrigerator/tower_stats.tres
Normal 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"
|
BIN
Towers/RocketLauncher/rocket_launcher.glb
Normal file
50
Towers/RocketLauncher/rocket_launcher.glb.import
Normal 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
|
BIN
Towers/RocketLauncher/rocket_launcher_model.res
Normal file
BIN
Towers/RocketLauncher/rocket_launcher_model.res.depren
Normal file
BIN
Towers/RocketLauncher/rocket_launcher_tex.png
Normal file
After Width: | Height: | Size: 5.4 KiB |
34
Towers/RocketLauncher/rocket_launcher_tex.png.import
Normal 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
|
29
Towers/RocketLauncher/rocket_tower.tscn
Normal 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")
|
30
Towers/RocketLauncher/tower_stats.tres
Normal 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
50
Towers/Sniper/sniper.glb.import
Normal 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
|
BIN
Towers/Sniper/snipermodel.res
Normal file
BIN
Towers/Sniper/snipermodel.res.depren
Normal file
BIN
Towers/Sniper/snipertex.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
35
Towers/Sniper/snipertex.png.import
Normal 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
|