fixed up some damage number bugs

This commit is contained in:
2025-06-25 22:07:48 +10:00
parent 2bfea6471c
commit 0cd8715468
47 changed files with 6017 additions and 161 deletions

View File

@@ -4,13 +4,13 @@
[ext_resource type="Texture2D" uid="uid://cv5p03aw78vwd" path="res://Assets/Textures/icon_eye_dog_fast.png" id="1_xgen5"] [ext_resource type="Texture2D" uid="uid://cv5p03aw78vwd" path="res://Assets/Textures/icon_eye_dog_fast.png" id="1_xgen5"]
[ext_resource type="Texture2D" uid="uid://dgdofekr7ow73" path="res://Assets/Textures/dead_eye_dog_fast.png" id="1_yj87d"] [ext_resource type="Texture2D" uid="uid://dgdofekr7ow73" path="res://Assets/Textures/dead_eye_dog_fast.png" id="1_yj87d"]
[ext_resource type="Texture2D" uid="uid://dd212gh03wloa" path="res://Assets/TextureAtlases/dog_fast.tres" id="2_mkbm6"] [ext_resource type="Texture2D" uid="uid://dd212gh03wloa" path="res://Assets/TextureAtlases/dog_fast.tres" id="2_mkbm6"]
[ext_resource type="PackedScene" uid="uid://b0nady5xm88bo" path="res://Worlds/GreenPlanet/Enemies/land_enemy.tscn" id="3_e3fq0"] [ext_resource type="PackedScene" uid="uid://dtahuv0kpxx03" path="res://Enemies/BabyEyeDog/baby_eye_dog.tscn" id="3_otbdk"]
[resource] [resource]
script = ExtResource("1_k5sd1") script = ExtResource("1_k5sd1")
title = "fast dog" title = "Baby Eye Dog"
target_type = 1 target_type = 1
scene = ExtResource("3_e3fq0") scene = ExtResource("3_otbdk")
icon = ExtResource("1_xgen5") icon = ExtResource("1_xgen5")
death_sprite = ExtResource("1_yj87d") death_sprite = ExtResource("1_yj87d")
sprite = ExtResource("2_mkbm6") sprite = ExtResource("2_mkbm6")
@@ -18,7 +18,7 @@ spawn_power = 16
health = 70 health = 70
penalty = 4 penalty = 4
movement_speed = 3.5 movement_speed = 3.5
spawn_cooldown = 0.7 spawn_cooldown = 0.6
common_group = 4 common_group = 4
common_cost = 2 common_cost = 2
uncommon_group = 8 uncommon_group = 8

View File

@@ -0,0 +1,124 @@
[gd_scene load_steps=12 format=3 uid="uid://dtahuv0kpxx03"]
[ext_resource type="Script" uid="uid://ejqql2660u6h" path="res://Worlds/GreenPlanet/Enemies/enemy_controller.gd" id="1_8k5ts"]
[ext_resource type="PackedScene" uid="uid://canrxnpxcugc2" path="res://Scenes/corpse.tscn" id="2_vl30x"]
[ext_resource type="Script" uid="uid://cummt2be3r1gq" path="res://Scripts/hitbox.gd" id="5_f7xim"]
[ext_resource type="Texture2D" uid="uid://b1fn60m6xfcsq" path="res://Assets/Textures/minimap_enemy.png" id="6_lbm5h"]
[ext_resource type="PackedScene" uid="uid://hjq3nrnumklp" path="res://Scenes/health_bar.tscn" id="7_o1784"]
[ext_resource type="Script" uid="uid://b62xnsbki8axa" path="res://Scripts/EnemyAI/pathing_controller.gd" id="8_1fak8"]
[ext_resource type="Script" uid="uid://cojjgevmbhwal" path="res://Scripts/status_effector.gd" id="9_yrbee"]
[ext_resource type="PackedScene" uid="uid://bgxr27by7jruo" path="res://Enemies/BabyEyeDog/baby_eyedog.glb" id="10_8k5ts"]
[sub_resource type="SphereShape3D" id="SphereShape3D_cavbv"]
radius = 0.269119
[sub_resource type="SphereShape3D" id="SphereShape3D_h25mw"]
radius = 0.150315
[sub_resource type="ViewportTexture" id="ViewportTexture_1kwxq"]
viewport_path = NodePath("SubViewport")
[node name="BabyEyeDog" type="CharacterBody3D" node_paths=PackedStringArray("status_manager", "movement_controller", "d_n") groups=["Enemies"]]
collision_layer = 4
collision_mask = 0
script = ExtResource("1_8k5ts")
status_manager = NodePath("StatusEffector")
movement_controller = NodePath("PathingController")
d_n = NodePath("Node3D")
corpse_scene = ExtResource("2_vl30x")
metadata/_custom_type_script = "uid://ejqql2660u6h"
[node name="Hitbox" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.195078, -0.0104714)
shape = SubResource("SphereShape3D_cavbv")
script = ExtResource("5_f7xim")
metadata/_custom_type_script = "uid://cummt2be3r1gq"
[node name="Hitbox2" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.368244, -0.278334)
shape = SubResource("SphereShape3D_h25mw")
script = ExtResource("5_f7xim")
critical_zone = true
metadata/_custom_type_script = "uid://cummt2be3r1gq"
[node name="HealthBar" type="Sprite3D" parent="."]
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 1.20821, 0)
sorting_offset = 1.0
pixel_size = 0.02
billboard = 1
texture_filter = 0
texture = SubResource("ViewportTexture_1kwxq")
[node name="MinimapIcon" type="Sprite3D" parent="."]
transform = Transform3D(2, 0, 0, 0, -8.74228e-08, 2, 0, -2, -8.74228e-08, 0, 1.40824, 0)
layers = 4
texture_filter = 0
texture = ExtResource("6_lbm5h")
[node name="SubViewport" type="SubViewport" parent="."]
transparent_bg = true
size = Vector2i(200, 55)
render_target_update_mode = 4
[node name="HBoxContainer" type="HBoxContainer" parent="SubViewport"]
anchors_preset = 10
anchor_right = 1.0
offset_bottom = 32.0
grow_horizontal = 2
alignment = 1
[node name="HealthBar" parent="SubViewport" instance=ExtResource("7_o1784")]
visible = false
offset_top = 36.0
offset_bottom = 236.0
[node name="PathingController" type="Node" parent="." node_paths=PackedStringArray("character")]
script = ExtResource("8_1fak8")
character = NodePath("..")
[node name="StatusEffector" type="Node" parent="." node_paths=PackedStringArray("sprite_container")]
script = ExtResource("9_yrbee")
sprite_container = NodePath("../SubViewport/HBoxContainer")
metadata/_custom_type_script = "uid://cojjgevmbhwal"
[node name="Node3D" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.39813, 0)
[node name="baby_eyedog" parent="." instance=ExtResource("10_8k5ts")]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
[node name="Skeleton3D" parent="baby_eyedog/Armature" index="0"]
bones/1/rotation = Quaternion(-0.511974, 0.0877357, 0.0585473, 0.852501)
bones/3/rotation = Quaternion(0.205478, 0.0638658, 0.760554, 0.612583)
bones/4/rotation = Quaternion(0.180197, 0.674315, 0.227389, 0.67906)
bones/5/rotation = Quaternion(0.219411, 0.0676687, 0.265248, 0.936442)
bones/6/rotation = Quaternion(0.357553, 0.0231832, 0.0724564, 0.930789)
bones/7/rotation = Quaternion(0.181041, -0.117802, -0.730943, 0.647355)
bones/8/rotation = Quaternion(0.233133, -0.689549, -0.187324, 0.659607)
bones/9/rotation = Quaternion(0.274914, -0.0648911, -0.304984, 0.909503)
bones/10/rotation = Quaternion(0.381465, -0.0179444, -0.0905277, 0.919765)
bones/11/position = Vector3(-0.125201, 0.0850381, 0.00341609)
bones/13/rotation = Quaternion(-0.287812, -0.240553, 0.773797, 0.510428)
bones/14/rotation = Quaternion(-0.235014, -0.561232, -0.113218, 0.785474)
bones/15/rotation = Quaternion(0.443157, -0.0165556, 0.3712, 0.815811)
bones/16/rotation = Quaternion(0.407896, 0.0131239, 0.109742, 0.906314)
bones/17/rotation = Quaternion(-0.208372, 0.320971, -0.692574, 0.611474)
bones/18/rotation = Quaternion(-0.295573, 0.573472, 0.215253, 0.733098)
bones/19/rotation = Quaternion(0.3789, 0.0293754, -0.343993, 0.858627)
bones/20/rotation = Quaternion(0.392383, -0.0149631, -0.101692, 0.914041)
bones/21/rotation = Quaternion(0.397177, -1.084e-07, -4.91965e-08, 0.917742)
bones/22/position = Vector3(-0.234358, 0.0193642, 0.253277)
bones/22/scale = Vector3(0.893472, 1, 1)
bones/23/position = Vector3(0.175382, 0.0791651, 0.387213)
bones/23/scale = Vector3(0.893472, 1, 1)
bones/24/position = Vector3(0.189246, 0.0193879, -0.23164)
[node name="AnimationPlayer" parent="baby_eyedog" index="1"]
autoplay = "Walk"
[connection signal="recieved_effect" from="Hitbox" to="StatusEffector" method="add_effect"]
[connection signal="took_damage" from="Hitbox" to="." method="take_damage"]
[connection signal="recieved_effect" from="Hitbox2" to="StatusEffector" method="add_effect"]
[connection signal="took_damage" from="Hitbox2" to="." method="take_damage"]
[editable path="baby_eyedog"]

View File

@@ -0,0 +1,13 @@
[gd_resource type="ShaderMaterial" load_steps=3 format=3 uid="uid://bm7wkdbbvgscq"]
[ext_resource type="Shader" uid="uid://c5bffujq0l70k" path="res://Shaders/jitter.gdshader" id="1_0addr"]
[ext_resource type="Texture2D" uid="uid://rjijctm2a70f" path="res://Enemies/BabyEyeDog/baby_eyedog_tex.png" id="2_4kam3"]
[resource]
render_priority = 0
shader = ExtResource("1_0addr")
shader_parameter/affine_mapping = true
shader_parameter/albedo = ExtResource("2_4kam3")
shader_parameter/alpha_scissor = 0.5
shader_parameter/jitter = 0.25
shader_parameter/resolution = Vector2i(320, 240)

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -2,24 +2,20 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://wx4d2upch81n" uid="uid://rjijctm2a70f"
path.s3tc="res://.godot/imported/eyedog_eyedog_tex.png-1f14344e8bf95fbf8ece2e5fc948c9ad.s3tc.ctex" path="res://.godot/imported/baby_eyedog_tex.png-25aa8a1ed412d7c34d0e08868517ff47.ctex"
metadata={ metadata={
"imported_formats": ["s3tc_bptc"], "vram_texture": false
"vram_texture": true
}
generator_parameters={
"md5": "27dfa54e4c46b8fd6e6f12450e4ca070"
} }
[deps] [deps]
source_file="res://Enemies/EyeDog/eyedog_eyedog_tex.png" source_file="res://Enemies/BabyEyeDog/baby_eyedog_tex.png"
dest_files=["res://.godot/imported/eyedog_eyedog_tex.png-1f14344e8bf95fbf8ece2e5fc948c9ad.s3tc.ctex"] dest_files=["res://.godot/imported/baby_eyedog_tex.png-25aa8a1ed412d7c34d0e08868517ff47.ctex"]
[params] [params]
compress/mode=2 compress/mode=0
compress/high_quality=false compress/high_quality=false
compress/lossy_quality=0.7 compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1

View File

@@ -17,10 +17,10 @@ height = 0.56
[node name="Dog" instance=ExtResource("1_aormu")] [node name="Dog" instance=ExtResource("1_aormu")]
[node name="Sprite3D" parent="." index="1"] [node name="Sprite3D" parent="." index="0"]
texture = SubResource("ViewportTexture_c5uwa") texture = SubResource("ViewportTexture_c5uwa")
[node name="crystal_enemy" parent="." index="7" instance=ExtResource("2_myjng")] [node name="crystal_enemy" parent="." index="6" instance=ExtResource("2_myjng")]
[node name="RemoteTransform3D" type="RemoteTransform3D" parent="crystal_enemy/Cube_001" index="0"] [node name="RemoteTransform3D" type="RemoteTransform3D" parent="crystal_enemy/Cube_001" index="0"]
remote_path = NodePath("../../../MiniHitbox2") remote_path = NodePath("../../../MiniHitbox2")
@@ -32,27 +32,30 @@ remote_path = NodePath("../../../MiniHitbox")
autoplay = "Spin" autoplay = "Spin"
speed_scale = 2.0 speed_scale = 2.0
[node name="MainHitbox" type="CollisionShape3D" parent="." index="8"] [node name="MainHitbox" type="CollisionShape3D" parent="." index="7"]
shape = SubResource("CapsuleShape3D_c5uwa") shape = SubResource("CapsuleShape3D_c5uwa")
script = ExtResource("3_myjng") script = ExtResource("3_myjng")
metadata/_custom_type_script = "uid://cummt2be3r1gq" metadata/_custom_type_script = "uid://cummt2be3r1gq"
[node name="MiniHitbox" type="CollisionShape3D" parent="." index="9"] [node name="MiniHitbox" type="CollisionShape3D" parent="." index="8"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.601335, 0.59523, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.601335, 0.59523, 0)
shape = SubResource("CapsuleShape3D_d7aub") shape = SubResource("CapsuleShape3D_d7aub")
script = ExtResource("3_myjng") script = ExtResource("3_myjng")
critical_zone = true critical_zone = true
metadata/_custom_type_script = "uid://cummt2be3r1gq" metadata/_custom_type_script = "uid://cummt2be3r1gq"
[node name="MiniHitbox2" type="CollisionShape3D" parent="." index="10"] [node name="MiniHitbox2" type="CollisionShape3D" parent="." index="9"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.599804, -0.600394, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.599804, -0.600394, 0)
shape = SubResource("CapsuleShape3D_d7aub") shape = SubResource("CapsuleShape3D_d7aub")
script = ExtResource("3_myjng") script = ExtResource("3_myjng")
critical_zone = true critical_zone = true
metadata/_custom_type_script = "uid://cummt2be3r1gq" metadata/_custom_type_script = "uid://cummt2be3r1gq"
[connection signal="took_damage" from="MainHitbox" to="Health" method="take_damage"] [connection signal="recieved_effect" from="MainHitbox" to="StatusEffector" method="add_effect"]
[connection signal="took_damage" from="MiniHitbox" to="Health" method="take_damage"] [connection signal="took_damage" from="MainHitbox" to="." method="take_damage"]
[connection signal="took_damage" from="MiniHitbox2" to="Health" method="take_damage"] [connection signal="recieved_effect" from="MiniHitbox" to="StatusEffector" method="add_effect"]
[connection signal="took_damage" from="MiniHitbox" to="." method="take_damage"]
[connection signal="recieved_effect" from="MiniHitbox2" to="StatusEffector" method="add_effect"]
[connection signal="took_damage" from="MiniHitbox2" to="." method="take_damage"]
[editable path="crystal_enemy"] [editable path="crystal_enemy"]

View File

@@ -27,5 +27,5 @@ rare_group = 18
rare_cost = 4 rare_cost = 4
epic_group = 26 epic_group = 26
epic_cost = 6 epic_cost = 6
legendary_group = 42 legendary_group = 36
legendary_cost = 8 legendary_cost = 8

View File

@@ -4,13 +4,13 @@
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="1_q48il"] [ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="1_q48il"]
[ext_resource type="Texture2D" uid="uid://e7lahg40lq8a" path="res://Assets/Textures/dead_eye_dog_heavy.png" id="1_qveaa"] [ext_resource type="Texture2D" uid="uid://e7lahg40lq8a" path="res://Assets/Textures/dead_eye_dog_heavy.png" id="1_qveaa"]
[ext_resource type="Texture2D" uid="uid://c0543ucoalwmi" path="res://Assets/TextureAtlases/dog_fast_heavy.tres" id="2_7nc4x"] [ext_resource type="Texture2D" uid="uid://c0543ucoalwmi" path="res://Assets/TextureAtlases/dog_fast_heavy.tres" id="2_7nc4x"]
[ext_resource type="PackedScene" uid="uid://b0nady5xm88bo" path="res://Worlds/GreenPlanet/Enemies/land_enemy.tscn" id="3_t3gih"] [ext_resource type="PackedScene" uid="uid://dl3rwqwbgrq2m" path="res://Enemies/ElderEyeDog/elder_eye_dog.tscn" id="3_m808b"]
[resource] [resource]
script = ExtResource("1_q48il") script = ExtResource("1_q48il")
title = "heavy dog" title = "Elder Eye Dog"
target_type = 1 target_type = 1
scene = ExtResource("3_t3gih") scene = ExtResource("3_m808b")
icon = ExtResource("1_lck53") icon = ExtResource("1_lck53")
death_sprite = ExtResource("1_qveaa") death_sprite = ExtResource("1_qveaa")
sprite = ExtResource("2_7nc4x") sprite = ExtResource("2_7nc4x")

View File

@@ -0,0 +1,123 @@
[gd_scene load_steps=12 format=3 uid="uid://dl3rwqwbgrq2m"]
[ext_resource type="Script" uid="uid://ejqql2660u6h" path="res://Worlds/GreenPlanet/Enemies/enemy_controller.gd" id="1_17xxt"]
[ext_resource type="PackedScene" uid="uid://canrxnpxcugc2" path="res://Scenes/corpse.tscn" id="2_lirjc"]
[ext_resource type="Script" uid="uid://cummt2be3r1gq" path="res://Scripts/hitbox.gd" id="5_bi7k0"]
[ext_resource type="Texture2D" uid="uid://b1fn60m6xfcsq" path="res://Assets/Textures/minimap_enemy.png" id="6_k6khd"]
[ext_resource type="PackedScene" uid="uid://hjq3nrnumklp" path="res://Scenes/health_bar.tscn" id="7_wko6w"]
[ext_resource type="Script" uid="uid://b62xnsbki8axa" path="res://Scripts/EnemyAI/pathing_controller.gd" id="8_2jssq"]
[ext_resource type="Script" uid="uid://cojjgevmbhwal" path="res://Scripts/status_effector.gd" id="9_2x8lp"]
[ext_resource type="PackedScene" uid="uid://r2s4pd42y0ma" path="res://Enemies/ElderEyeDog/elder_eyedog.glb" id="10_17xxt"]
[sub_resource type="SphereShape3D" id="SphereShape3D_cavbv"]
radius = 0.499268
[sub_resource type="SphereShape3D" id="SphereShape3D_h25mw"]
radius = 0.269705
[sub_resource type="ViewportTexture" id="ViewportTexture_1kwxq"]
viewport_path = NodePath("SubViewport")
[node name="ElderEyeDog" type="CharacterBody3D" node_paths=PackedStringArray("status_manager", "movement_controller", "d_n") groups=["Enemies"]]
collision_layer = 4
collision_mask = 0
script = ExtResource("1_17xxt")
status_manager = NodePath("StatusEffector")
movement_controller = NodePath("PathingController")
d_n = NodePath("Node3D")
corpse_scene = ExtResource("2_lirjc")
metadata/_custom_type_script = "uid://ejqql2660u6h"
[node name="Hitbox" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.33811, -0.0104714)
shape = SubResource("SphereShape3D_cavbv")
script = ExtResource("5_bi7k0")
metadata/_custom_type_script = "uid://cummt2be3r1gq"
[node name="Hitbox2" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.740182, -0.597066)
shape = SubResource("SphereShape3D_h25mw")
script = ExtResource("5_bi7k0")
critical_zone = true
metadata/_custom_type_script = "uid://cummt2be3r1gq"
[node name="HealthBar" type="Sprite3D" parent="."]
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 1.20821, 0)
sorting_offset = 1.0
pixel_size = 0.02
billboard = 1
texture_filter = 0
texture = SubResource("ViewportTexture_1kwxq")
[node name="MinimapIcon" type="Sprite3D" parent="."]
transform = Transform3D(2, 0, 0, 0, -8.74228e-08, 2, 0, -2, -8.74228e-08, 0, 1.40824, 0)
layers = 4
texture_filter = 0
texture = ExtResource("6_k6khd")
[node name="SubViewport" type="SubViewport" parent="."]
transparent_bg = true
size = Vector2i(200, 55)
render_target_update_mode = 4
[node name="HBoxContainer" type="HBoxContainer" parent="SubViewport"]
anchors_preset = 10
anchor_right = 1.0
offset_bottom = 32.0
grow_horizontal = 2
alignment = 1
[node name="HealthBar" parent="SubViewport" instance=ExtResource("7_wko6w")]
visible = false
offset_top = 36.0
offset_bottom = 236.0
[node name="PathingController" type="Node" parent="." node_paths=PackedStringArray("character")]
script = ExtResource("8_2jssq")
character = NodePath("..")
[node name="StatusEffector" type="Node" parent="." node_paths=PackedStringArray("sprite_container")]
script = ExtResource("9_2x8lp")
sprite_container = NodePath("../SubViewport/HBoxContainer")
metadata/_custom_type_script = "uid://cojjgevmbhwal"
[node name="Node3D" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.39813, 0)
[node name="elder_eyedog" parent="." instance=ExtResource("10_17xxt")]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
[node name="Skeleton3D" parent="elder_eyedog/Armature" index="0"]
bones/1/rotation = Quaternion(-0.439304, -1.0709e-07, 5.23691e-08, 0.898338)
bones/3/rotation = Quaternion(0.233785, 0.324851, 0.542755, 0.738399)
bones/4/rotation = Quaternion(0.202596, 0.730837, 0.133447, 0.637985)
bones/5/rotation = Quaternion(0.0807169, 0.113794, 0.103388, 0.984808)
bones/6/rotation = Quaternion(0.1897, 0.0455505, -0.0147276, 0.980674)
bones/7/rotation = Quaternion(0.212592, -0.0409247, -0.776147, 0.592221)
bones/8/rotation = Quaternion(0.145596, -0.673764, -0.223773, 0.689035)
bones/9/rotation = Quaternion(0.21458, -0.0679522, -0.273831, 0.93507)
bones/10/rotation = Quaternion(0.361696, -0.022981, -0.0737815, 0.929088)
bones/11/position = Vector3(-0.182181, 0.0249746, -0.297013)
bones/13/rotation = Quaternion(-0.190314, -0.343714, 0.667305, 0.632728)
bones/14/rotation = Quaternion(-0.315946, -0.576307, -0.237059, 0.715438)
bones/15/rotation = Quaternion(0.36767, -0.0363555, 0.344702, 0.862947)
bones/16/rotation = Quaternion(0.39201, 0.0141284, 0.103499, 0.914011)
bones/17/rotation = Quaternion(-0.415643, 0.234919, -0.806682, 0.348308)
bones/18/rotation = Quaternion(-0.155071, 0.546436, 0.037938, 0.822144)
bones/19/rotation = Quaternion(0.163239, -0.0179424, -0.154066, 0.974318)
bones/20/rotation = Quaternion(0.200947, -0.0385468, -0.00188784, 0.978842)
bones/22/position = Vector3(-0.128557, 0.0159593, 0.519261)
bones/22/scale = Vector3(0.893472, 1, 1)
bones/23/position = Vector3(0.255975, 0.0228185, 0.200587)
bones/23/scale = Vector3(0.893472, 1, 1)
bones/24/position = Vector3(0.0845419, 0.0148535, 0.129847)
[node name="AnimationPlayer" parent="elder_eyedog" index="1"]
autoplay = "Walk"
[connection signal="recieved_effect" from="Hitbox" to="StatusEffector" method="add_effect"]
[connection signal="took_damage" from="Hitbox" to="." method="take_damage"]
[connection signal="recieved_effect" from="Hitbox2" to="StatusEffector" method="add_effect"]
[connection signal="took_damage" from="Hitbox2" to="." method="take_damage"]
[editable path="elder_eyedog"]

View File

@@ -0,0 +1,13 @@
[gd_resource type="ShaderMaterial" load_steps=3 format=3 uid="uid://gyrbycd3icjr"]
[ext_resource type="Shader" uid="uid://c5bffujq0l70k" path="res://Shaders/jitter.gdshader" id="1_x1doh"]
[ext_resource type="Texture2D" uid="uid://bd1hlqvfpaxy0" path="res://Enemies/ElderEyeDog/elder_eyedog_tex.png" id="2_jh2nf"]
[resource]
render_priority = 0
shader = ExtResource("1_x1doh")
shader_parameter/affine_mapping = true
shader_parameter/albedo = ExtResource("2_jh2nf")
shader_parameter/alpha_scissor = 0.5
shader_parameter/jitter = 0.25
shader_parameter/resolution = Vector2i(320, 240)

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bd1hlqvfpaxy0"
path="res://.godot/imported/elder_eyedog_tex.png-e84d9931073744a1cd754d9c856dc8df.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Enemies/ElderEyeDog/elder_eyedog_tex.png"
dest_files=["res://.godot/imported/elder_eyedog_tex.png-e84d9931073744a1cd754d9c856dc8df.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

@@ -14,7 +14,7 @@ region = Rect2(0, 0, 32, 32)
[resource] [resource]
resource_local_to_scene = true resource_local_to_scene = true
script = ExtResource("1_ivs7a") script = ExtResource("1_ivs7a")
title = "dog" title = "Eye Dog"
target_type = 1 target_type = 1
scene = ExtResource("3_tyyee") scene = ExtResource("3_tyyee")
icon = ExtResource("2_tyyee") icon = ExtResource("2_tyyee")

View File

@@ -1,9 +1,7 @@
[gd_scene load_steps=14 format=3 uid="uid://bvq6tbkuv2mfp"] [gd_scene load_steps=12 format=3 uid="uid://bvq6tbkuv2mfp"]
[ext_resource type="Script" uid="uid://ejqql2660u6h" path="res://Worlds/GreenPlanet/Enemies/enemy_controller.gd" id="1_1dh2f"] [ext_resource type="Script" uid="uid://ejqql2660u6h" path="res://Worlds/GreenPlanet/Enemies/enemy_controller.gd" id="1_1dh2f"]
[ext_resource type="PackedScene" uid="uid://canrxnpxcugc2" path="res://Scenes/corpse.tscn" id="2_1dh2f"] [ext_resource type="PackedScene" uid="uid://canrxnpxcugc2" path="res://Scenes/corpse.tscn" id="2_1dh2f"]
[ext_resource type="Script" uid="uid://bamhci3kawuyt" path="res://Scripts/health.gd" id="2_bckix"]
[ext_resource type="PackedScene" uid="uid://cqtew0t8sttpm" path="res://Scenes/damage_particle.tscn" id="3_wnwjl"]
[ext_resource type="Script" uid="uid://cummt2be3r1gq" path="res://Scripts/hitbox.gd" id="6_3v8fr"] [ext_resource type="Script" uid="uid://cummt2be3r1gq" path="res://Scripts/hitbox.gd" id="6_3v8fr"]
[ext_resource type="Texture2D" uid="uid://b1fn60m6xfcsq" path="res://Assets/Textures/minimap_enemy.png" id="7_bkkhh"] [ext_resource type="Texture2D" uid="uid://b1fn60m6xfcsq" path="res://Assets/Textures/minimap_enemy.png" id="7_bkkhh"]
[ext_resource type="PackedScene" uid="uid://hjq3nrnumklp" path="res://Scenes/health_bar.tscn" id="8_k2835"] [ext_resource type="PackedScene" uid="uid://hjq3nrnumklp" path="res://Scenes/health_bar.tscn" id="8_k2835"]
@@ -12,37 +10,32 @@
[ext_resource type="Script" uid="uid://cojjgevmbhwal" path="res://Scripts/status_effector.gd" id="11_kpdsm"] [ext_resource type="Script" uid="uid://cojjgevmbhwal" path="res://Scripts/status_effector.gd" id="11_kpdsm"]
[sub_resource type="SphereShape3D" id="SphereShape3D_cavbv"] [sub_resource type="SphereShape3D" id="SphereShape3D_cavbv"]
radius = 0.42 radius = 0.359969
[sub_resource type="SphereShape3D" id="SphereShape3D_h25mw"] [sub_resource type="SphereShape3D" id="SphereShape3D_h25mw"]
radius = 0.151085 radius = 0.194271
[sub_resource type="ViewportTexture" id="ViewportTexture_1kwxq"] [sub_resource type="ViewportTexture" id="ViewportTexture_1kwxq"]
viewport_path = NodePath("SubViewport") viewport_path = NodePath("SubViewport")
[node name="Node3D" type="CharacterBody3D" node_paths=PackedStringArray("status_manager", "movement_controller", "health", "d_n") groups=["Enemies"]] [node name="EyeDog" type="CharacterBody3D" node_paths=PackedStringArray("status_manager", "movement_controller", "d_n") groups=["Enemies"]]
collision_layer = 4 collision_layer = 4
collision_mask = 0 collision_mask = 0
script = ExtResource("1_1dh2f") script = ExtResource("1_1dh2f")
status_manager = NodePath("StatusEffector") status_manager = NodePath("StatusEffector")
movement_controller = NodePath("PathingController") movement_controller = NodePath("PathingController")
health = NodePath("Health")
d_n = NodePath("Node3D") d_n = NodePath("Node3D")
corpse_scene = ExtResource("2_1dh2f") corpse_scene = ExtResource("2_1dh2f")
metadata/_custom_type_script = "uid://ejqql2660u6h" metadata/_custom_type_script = "uid://ejqql2660u6h"
[node name="Health" type="Node" parent="."]
script = ExtResource("2_bckix")
damage_particle_scene = ExtResource("3_wnwjl")
[node name="Hitbox" type="CollisionShape3D" parent="."] [node name="Hitbox" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.33811, 0.0832841) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.33811, -0.0104714)
shape = SubResource("SphereShape3D_cavbv") shape = SubResource("SphereShape3D_cavbv")
script = ExtResource("6_3v8fr") script = ExtResource("6_3v8fr")
metadata/_custom_type_script = "uid://cummt2be3r1gq" metadata/_custom_type_script = "uid://cummt2be3r1gq"
[node name="Hitbox2" type="CollisionShape3D" parent="."] [node name="Hitbox2" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.601201, -0.436369) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.559695, -0.45924)
shape = SubResource("SphereShape3D_h25mw") shape = SubResource("SphereShape3D_h25mw")
script = ExtResource("6_3v8fr") script = ExtResource("6_3v8fr")
critical_zone = true critical_zone = true
@@ -92,9 +85,40 @@ metadata/_custom_type_script = "uid://cojjgevmbhwal"
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.39813, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.39813, 0)
[node name="eyedog" parent="." instance=ExtResource("10_h25mw")] [node name="eyedog" parent="." instance=ExtResource("10_h25mw")]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0.3764, 0) transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
[connection signal="health_changed" from="Health" to="SubViewport/HealthBar" method="on_health_changed"] [node name="Skeleton3D" parent="eyedog/Armature" index="0"]
[connection signal="health_depleted" from="Health" to="." method="die"] bones/1/rotation = Quaternion(-0.439304, -1.0709e-07, 5.23691e-08, 0.898338)
[connection signal="took_damage" from="Hitbox" to="Health" method="take_damage"] bones/3/rotation = Quaternion(0.233785, 0.324851, 0.542755, 0.738399)
[connection signal="took_damage" from="Hitbox2" to="Health" method="take_damage"] bones/4/rotation = Quaternion(0.202596, 0.730837, 0.133447, 0.637985)
bones/5/rotation = Quaternion(0.0807169, 0.113794, 0.103388, 0.984808)
bones/6/rotation = Quaternion(0.1897, 0.0455505, -0.0147276, 0.980674)
bones/7/rotation = Quaternion(0.212592, -0.0409247, -0.776147, 0.592221)
bones/8/rotation = Quaternion(0.145596, -0.673764, -0.223773, 0.689035)
bones/9/rotation = Quaternion(0.21458, -0.0679522, -0.273831, 0.93507)
bones/10/rotation = Quaternion(0.361696, -0.022981, -0.0737816, 0.929088)
bones/11/position = Vector3(-0.182181, 0.0249746, -0.297013)
bones/13/rotation = Quaternion(-0.190314, -0.343714, 0.667305, 0.632728)
bones/14/rotation = Quaternion(-0.315946, -0.576307, -0.237059, 0.715438)
bones/15/rotation = Quaternion(0.36767, -0.0363555, 0.344702, 0.862947)
bones/16/rotation = Quaternion(0.39201, 0.0141284, 0.103499, 0.914011)
bones/17/rotation = Quaternion(-0.415643, 0.234919, -0.806682, 0.348308)
bones/18/rotation = Quaternion(-0.155071, 0.546436, 0.037938, 0.822144)
bones/19/rotation = Quaternion(0.16324, -0.0179424, -0.154066, 0.974317)
bones/20/rotation = Quaternion(0.200947, -0.0385468, -0.00188781, 0.978842)
bones/21/rotation = Quaternion(0.476805, -1.04786e-07, -5.68396e-08, 0.879009)
bones/22/position = Vector3(-0.128557, 0.0159593, 0.519261)
bones/22/scale = Vector3(0.893472, 1, 1)
bones/23/position = Vector3(0.255975, 0.0228185, 0.200587)
bones/23/scale = Vector3(0.893472, 1, 1)
bones/24/position = Vector3(0.0845419, 0.0148535, 0.129847)
[node name="AnimationPlayer" parent="eyedog" index="1"]
autoplay = "Walk"
[connection signal="recieved_effect" from="Hitbox" to="StatusEffector" method="add_effect"]
[connection signal="took_damage" from="Hitbox" to="." method="take_damage"]
[connection signal="recieved_effect" from="Hitbox2" to="StatusEffector" method="add_effect"]
[connection signal="took_damage" from="Hitbox2" to="." method="take_damage"]
[editable path="eyedog"]

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://br44qpy5v6ymr"
path="res://.godot/imported/eye_dog_tex.png-7d4de85274337ceeb649543e4825dc79.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Enemies/EyeDog/eye_dog_tex.png"
dest_files=["res://.godot/imported/eye_dog_tex.png-7d4de85274337ceeb649543e4825dc79.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.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

View File

@@ -1,13 +1,13 @@
[gd_resource type="ShaderMaterial" load_steps=3 format=3 uid="uid://bo82o88d7vo1x"] [gd_resource type="ShaderMaterial" load_steps=3 format=3 uid="uid://bo82o88d7vo1x"]
[ext_resource type="Shader" uid="uid://c5bffujq0l70k" path="res://Shaders/jitter.gdshader" id="1_crvh7"] [ext_resource type="Shader" uid="uid://c5bffujq0l70k" path="res://Shaders/jitter.gdshader" id="1_crvh7"]
[ext_resource type="Texture2D" uid="uid://wx4d2upch81n" path="res://Enemies/EyeDog/eyedog_eyedog_tex.png" id="2_j3hec"] [ext_resource type="Texture2D" uid="uid://br44qpy5v6ymr" path="res://Enemies/EyeDog/eye_dog_tex.png" id="2_1d6vt"]
[resource] [resource]
render_priority = 0 render_priority = 0
shader = ExtResource("1_crvh7") shader = ExtResource("1_crvh7")
shader_parameter/affine_mapping = true shader_parameter/affine_mapping = true
shader_parameter/albedo = ExtResource("2_j3hec") shader_parameter/albedo = ExtResource("2_1d6vt")
shader_parameter/alpha_scissor = 0.5 shader_parameter/alpha_scissor = 0.5
shader_parameter/jitter = 0.25 shader_parameter/jitter = 0.25
shader_parameter/resolution = Vector2i(320, 240) shader_parameter/resolution = Vector2i(320, 240)

View File

@@ -8,11 +8,11 @@
[ext_resource type="Texture2D" uid="uid://cdnhe2mi5c5ln" path="res://Assets/Textures/dead_eye_dog.png" id="6_rsxwm"] [ext_resource type="Texture2D" uid="uid://cdnhe2mi5c5ln" path="res://Assets/Textures/dead_eye_dog.png" id="6_rsxwm"]
[ext_resource type="Texture2D" uid="uid://g00wwrlxxdc5" path="res://Assets/Textures/icon_eye_dog.png" id="7_2sylv"] [ext_resource type="Texture2D" uid="uid://g00wwrlxxdc5" path="res://Assets/Textures/icon_eye_dog.png" id="7_2sylv"]
[ext_resource type="Texture2D" uid="uid://dj13g1w14mekw" path="res://Assets/Textures/eye_dog.png" id="8_1vnym"] [ext_resource type="Texture2D" uid="uid://dj13g1w14mekw" path="res://Assets/Textures/eye_dog.png" id="8_1vnym"]
[ext_resource type="Resource" uid="uid://cvehqh4tt28g7" path="res://Resources/Enemies/dog_fast.tres" id="9_hdp0s"] [ext_resource type="Resource" uid="uid://cvehqh4tt28g7" path="res://Enemies/BabyEyeDog/baby_eye_dog.tres" id="9_hdp0s"]
[ext_resource type="Resource" uid="uid://dxi17xvdlhkvc" path="res://Resources/Enemies/dog_heavy.tres" id="10_day26"] [ext_resource type="Resource" uid="uid://dxi17xvdlhkvc" path="res://Enemies/ElderEyeDog/elder_eye_dog.tres" id="10_day26"]
[ext_resource type="Resource" uid="uid://boik1gnpl4v0a" path="res://Resources/Enemies/dog_boss.tres" id="11_1mes0"] [ext_resource type="Resource" uid="uid://boik1gnpl4v0a" path="res://Resources/Enemies/dog_boss.tres" id="11_1mes0"]
[ext_resource type="Resource" uid="uid://dsgkwh3opyqtx" path="res://Resources/Enemies/airenemy.tres" id="12_5vny5"] [ext_resource type="Resource" uid="uid://dsgkwh3opyqtx" path="res://Resources/Enemies/airenemy.tres" id="12_5vny5"]
[ext_resource type="Resource" uid="uid://bffhb5krs5elm" path="res://Enemies/Crystalisk/airenemy2.tres" id="13_xb7gj"] [ext_resource type="Resource" uid="uid://bffhb5krs5elm" path="res://Enemies/Crystalisk/crystalisk.tres" id="13_xb7gj"]
[ext_resource type="Texture2D" uid="uid://cr1ucbuw3iotp" path="res://Assets/Textures/first_win_achievements.png" id="15_74epv"] [ext_resource type="Texture2D" uid="uid://cr1ucbuw3iotp" path="res://Assets/Textures/first_win_achievements.png" id="15_74epv"]
[ext_resource type="Script" uid="uid://cjr0pbqisd51v" path="res://Scenes/Menus/MainMenu/achievements_menu.gd" id="15_sv1gy"] [ext_resource type="Script" uid="uid://cjr0pbqisd51v" path="res://Scenes/Menus/MainMenu/achievements_menu.gd" id="15_sv1gy"]
[ext_resource type="Texture2D" uid="uid://cpa1hl36xfplg" path="res://Assets/Textures/first_scroll_seen.png" id="16_sv1gy"] [ext_resource type="Texture2D" uid="uid://cpa1hl36xfplg" path="res://Assets/Textures/first_scroll_seen.png" id="16_sv1gy"]

View File

@@ -1,16 +1,7 @@
class_name Affector class_name Affector
extends Node extends Node
var damage_particle_scene: PackedScene = preload("res://Scenes/damage_particle.tscn")
@warning_ignore("unused_parameter") @warning_ignore("unused_parameter")
func apply_effect(effect: Effect, targets: Array[EnemyController]) -> void: func apply_effect(effect: Effect, targets: Array[EnemyController]) -> void:
pass pass
func spawn_damage_indicator(damage: int, pos: Vector3) -> void:
var marker: Sprite3D = damage_particle_scene.instantiate()
get_tree().root.add_child(marker)
marker.set_number(damage)
marker.position = pos

View File

@@ -11,10 +11,6 @@ func apply_effect(effect: Effect, targets: Array[EnemyController]) -> void:
#print(shapecast.get_collider(i)) #print(shapecast.get_collider(i))
if targets.has(enemy): if targets.has(enemy):
enemy.apply_effect(effect) enemy.apply_effect(effect)
if Data.preferences.display_tower_damage_indicators and effect.damage > 0:
spawn_damage_indicator(effect.damage, enemy.d_n.global_position)
else: else:
for enemy: EnemyController in targets: for enemy: EnemyController in targets:
enemy.apply_effect(effect) enemy.apply_effect(effect)
if Data.preferences.display_tower_damage_indicators and effect.damage > 0:
spawn_damage_indicator(effect.damage, enemy.d_n.global_position)

View File

@@ -5,5 +5,3 @@ extends Affector
func apply_effect(effect: Effect, targets: Array[EnemyController]) -> void: func apply_effect(effect: Effect, targets: Array[EnemyController]) -> void:
for enemy: EnemyController in targets: for enemy: EnemyController in targets:
enemy.apply_effect(effect) enemy.apply_effect(effect)
if Data.preferences.display_tower_damage_indicators and effect.damage > 0:
spawn_damage_indicator(effect.damage, enemy.d_n.global_position)

View File

@@ -9,6 +9,8 @@ var next_node: FlowNode :
return next_node return next_node
set(value): set(value):
next_node = value next_node = value
if next_node == null:
return
var found_point: bool = false var found_point: bool = false
while !found_point: while !found_point:
#TODO: make deterministic random #TODO: make deterministic random
@@ -44,9 +46,11 @@ func walk(delta: float) -> void:
var distance_travelled: float = (speed * clampf(speed, 0.0, 1.0)) * delta var distance_travelled: float = (speed * clampf(speed, 0.0, 1.0)) * delta
distance_remaining -= distance_travelled distance_remaining -= distance_travelled
character.global_position = character.global_position.move_toward(next_pos, distance_travelled) character.global_position = character.global_position.move_toward(next_pos, distance_travelled)
character.look_at(next_pos) var distance_to_next_pos: float = character.global_position.distance_to(next_pos)
if character.global_position.distance_to(next_pos) <= 0.05: if distance_to_next_pos <= 0.05:
next_node = next_node.best_path next_node = next_node.best_path
else:
character.look_at(next_pos)
func _physics_process(delta: float) -> void: func _physics_process(delta: float) -> void:

View File

@@ -35,15 +35,15 @@ func explode() -> void:
func hit(target: CharacterBody3D) -> void: func hit(target: CharacterBody3D) -> void:
target.apply_effect(effect) target.apply_effect(effect)
if owner_id == 0: #if owner_id == 0:
if Data.preferences.display_tower_damage_indicators: #if Data.preferences.display_tower_damage_indicators:
spawn_damage_indicator(target.d_n.global_position) #spawn_damage_indicator(target.d_n.global_position)
if owner_id == multiplayer.get_unique_id(): #if owner_id == multiplayer.get_unique_id():
if Data.preferences.display_self_damage_indicators: #if Data.preferences.display_self_damage_indicators:
spawn_damage_indicator(target.d_n.global_position) #spawn_damage_indicator(target.d_n.global_position)
if owner_id != 0 and owner_id != multiplayer.get_unique_id(): #if owner_id != 0 and owner_id != multiplayer.get_unique_id():
if Data.preferences.display_party_damage_indicators: #if Data.preferences.display_party_damage_indicators:
spawn_damage_indicator(target.d_n.global_position) #spawn_damage_indicator(target.d_n.global_position)
@rpc("reliable") @rpc("reliable")

View File

@@ -3,7 +3,6 @@ extends RigidBody3D
@export var collision_shape: CollisionShape3D @export var collision_shape: CollisionShape3D
var damage_particle_scene: PackedScene = preload("res://Scenes/damage_particle.tscn")
var owner_id: int = 0 #should be left unchanged by towers, 1 for host, peer_id on peers var owner_id: int = 0 #should be left unchanged by towers, 1 for host, peer_id on peers
var direction: Vector3 = Vector3.FORWARD var direction: Vector3 = Vector3.FORWARD
var force: float = 2.0 var force: float = 2.0
@@ -21,14 +20,6 @@ func _process(delta: float) -> void:
time_alive += delta time_alive += delta
func spawn_damage_indicator(pos: Vector3) -> void:
if effect.damage > 0:
var marker: Node3D = damage_particle_scene.instantiate()
get_tree().root.add_child(marker)
marker.set_number(effect.damage)
marker.position = pos
func _on_body_entered(_body: Node) -> void: func _on_body_entered(_body: Node) -> void:
pass # Replace with function body. pass # Replace with function body.

View File

@@ -3,4 +3,4 @@ extends StatusEffect
func proc(affected: EnemyController, stacks: int, _existing_effects: Dictionary) -> void: func proc(affected: EnemyController, stacks: int, _existing_effects: Dictionary) -> void:
affected.health.take_damage(int(stats.potency * stacks)) affected.take_damage(int(stats.potency * stacks), Data.DamageIndicationType.STATUS)

View File

@@ -19,23 +19,17 @@ func shoot() -> void:
super.shoot() super.shoot()
if raycast.is_colliding(): if raycast.is_colliding():
var target: CharacterBody3D = raycast.get_collider() var target: CharacterBody3D = raycast.get_collider()
if target != null: if target != null and target is EnemyController:
var target_hitbox: CollisionShape3D = target.shape_owner_get_owner(raycast.get_collider_shape()) var hitbox: Hitbox = target.shape_owner_get_owner(raycast.get_collider_shape())
if target_hitbox is Hitbox: hit(hitbox, raycast.get_collision_point())
hit(target, target_hitbox) networked_hit.rpc(get_tree().root.get_path_to(hitbox), raycast.get_collision_point())
if Data.preferences.display_self_damage_indicators:
spawn_damage_indicator(raycast.get_collision_point())
networked_hit.rpc(get_tree().root.get_path_to(target), get_tree().root.get_path_to(target_hitbox))
func hit(_target: CharacterBody3D, target_hitbox: Hitbox) -> void: func hit(hitbox: Hitbox, hit_pos: Vector3) -> void:
target_hitbox.damage(damage) hitbox.damage(damage, Data.DamageIndicationType.PLAYER, hit_pos)
@rpc("reliable") @rpc("reliable")
func networked_hit(target_path: String, target_hitbox_path: String) -> void: func networked_hit(hitbox_path: String, hit_pos: Vector3) -> void:
var target: CharacterBody3D = get_tree().root.get_node(target_path) var hitbox: Hitbox = get_tree().root.get_node(hitbox_path) as Hitbox
var target_hitbox: Hitbox = get_tree().root.get_node(target_hitbox_path) as Hitbox hitbox.damage(damage, Data.DamageIndicationType.OTHER_PLAYER, hit_pos)
hit(target, target_hitbox)
if Data.preferences.display_party_damage_indicators:
spawn_damage_indicator(target.d_n.global_position)

View File

@@ -30,8 +30,6 @@ func shoot() -> void:
var target_hitbox: Hitbox = target.shape_owner_get_owner(shapecast.get_collider_shape(index)) var target_hitbox: Hitbox = target.shape_owner_get_owner(shapecast.get_collider_shape(index))
if target_hitbox is Hitbox: if target_hitbox is Hitbox:
hit(target, target_hitbox) hit(target, target_hitbox)
if Data.preferences.display_self_damage_indicators:
spawn_damage_indicator(target.d_n.global_position)
networked_hit.rpc(get_tree().root.get_path_to(target), get_tree().root.get_path_to(target_hitbox)) networked_hit.rpc(get_tree().root.get_path_to(target), get_tree().root.get_path_to(target_hitbox))
@@ -51,5 +49,3 @@ func networked_hit(target_path: String, target_hitbox_path: String) -> void:
var target: CharacterBody3D = get_tree().root.get_node(target_path) as CharacterBody3D var target: CharacterBody3D = get_tree().root.get_node(target_path) as CharacterBody3D
var target_hitbox: Hitbox = get_tree().root.get_node(target_hitbox_path) as Hitbox var target_hitbox: Hitbox = get_tree().root.get_node(target_hitbox_path) as Hitbox
hit(target, target_hitbox) hit(target, target_hitbox)
if Data.preferences.display_party_damage_indicators:
spawn_damage_indicator(target.d_n.global_position)

View File

@@ -4,9 +4,9 @@ extends HitscanWeapon
@export var status_stats: StatusStats @export var status_stats: StatusStats
func hit(target: CharacterBody3D, target_hitbox: Hitbox) -> void: func hit(hitbox: Hitbox, hit_pos: Vector3) -> void:
super.hit(target, target_hitbox) super.hit(hitbox, hit_pos)
target.status_manager.add_effect(build_status_object()) hitbox.add_effect(build_status_object())
func build_status_object() -> StatusEffect: func build_status_object() -> StatusEffect:

View File

@@ -9,7 +9,6 @@ signal energy_recharged(energy: int, type: Data.EnergyType)
@export var audio_player: AudioStreamPlayer3D @export var audio_player: AudioStreamPlayer3D
@export var recharge_timer: Timer @export var recharge_timer: Timer
var damage_particle_scene: PackedScene = preload("res://Scenes/damage_particle.tscn")
var hero: Hero var hero: Hero
var trigger_held: bool = false var trigger_held: bool = false
var second_trigger_held: bool = false var second_trigger_held: bool = false
@@ -86,14 +85,6 @@ func release_second_trigger() -> void:
second_trigger_held = false second_trigger_held = false
func spawn_damage_indicator(pos: Vector3) -> void:
if damage > 0:
var marker: Node3D = damage_particle_scene.instantiate()
get_tree().root.add_child(marker)
marker.set_number(damage)
marker.position = pos
func shoot() -> void: func shoot() -> void:
animator.play("shoot") animator.play("shoot")
audio_player.play() audio_player.play()

View File

@@ -6,6 +6,7 @@ var time_alive: float = 0.0
var movement_speed: float = 1.0 var movement_speed: float = 1.0
var movement_vector: Vector3 var movement_vector: Vector3
func _ready() -> void: func _ready() -> void:
var theta: float = deg_to_rad(40) var theta: float = deg_to_rad(40)
var z: float = randf_range(cos(theta), 1) var z: float = randf_range(cos(theta), 1)
@@ -13,10 +14,15 @@ func _ready() -> void:
var vector: Vector3 = Vector3(sqrt(1 - pow(z, 2)) * cos(phi), z, sqrt(1 - pow(z, 2)) * sin(phi)) var vector: Vector3 = Vector3(sqrt(1 - pow(z, 2)) * cos(phi), z, sqrt(1 - pow(z, 2)) * sin(phi))
movement_vector = vector.normalized() movement_vector = vector.normalized()
func set_number(num: int) -> void: func set_number(num: int) -> void:
label.text = str(num) label.text = str(num)
func set_color(color: Color) -> void:
label.modulate = color
func _process(delta: float) -> void: func _process(delta: float) -> void:
time_alive += delta time_alive += delta
position += movement_vector * movement_speed * delta position += movement_vector * movement_speed * delta

View File

@@ -12,6 +12,7 @@ var save_data: SaveData
var keymap_data: KeymapData var keymap_data: KeymapData
const DEFAULT_SERVER_PORT: int = 58008 const DEFAULT_SERVER_PORT: int = 58008
enum DamageIndicationType {PLAYER = 0, TOWER = 1, OTHER_PLAYER = 2, STATUS = 3}
enum EnergyType {UNDEFINED = 0, DISCRETE = 1, CONTINUOUS = 2} enum EnergyType {UNDEFINED = 0, DISCRETE = 1, CONTINUOUS = 2}
enum TargetType {UNDEFINED = 0, LAND = 1, AIR = 2, BOTH = 3} enum TargetType {UNDEFINED = 0, LAND = 1, AIR = 2, BOTH = 3}
enum EnemyType {UNDEFINED = 0, LAND = 1, AIR = 2} enum EnemyType {UNDEFINED = 0, LAND = 1, AIR = 2}

View File

@@ -173,6 +173,7 @@ func spawn_enemy_wave() -> void:
level.flow_field.calculate() level.flow_field.calculate()
for spawn: EnemySpawner in level.enemy_spawns: for spawn: EnemySpawner in level.enemy_spawns:
#spawn.path.disable_visualization() #spawn.path.disable_visualization()
spawn.visible = false
spawn.spawn_wave() spawn.spawn_wave()
wave_started.emit(wave) wave_started.emit(wave)
@@ -247,7 +248,7 @@ func end_wave() -> void:
connected_players_nodes[peer_id].currency += ceili(pot / connected_players_nodes.size()) connected_players_nodes[peer_id].currency += ceili(pot / connected_players_nodes.size())
connected_players_nodes[peer_id].unready_self() connected_players_nodes[peer_id].unready_self()
for spawn: EnemySpawner in level.enemy_spawns: for spawn: EnemySpawner in level.enemy_spawns:
spawn.path.enable_visualization() spawn.visible = true
#level.a_star_graph_3d.enable_non_path_tower_frames() #level.a_star_graph_3d.enable_non_path_tower_frames()
level.enable_non_path_tower_frames() level.enable_non_path_tower_frames()
if is_multiplayer_authority(): if is_multiplayer_authority():

View File

@@ -4,7 +4,6 @@ extends Node
signal health_depleted signal health_depleted
signal health_changed(health: int) signal health_changed(health: int)
@export var damage_particle_scene: PackedScene
@export var max_health: int = 10 @export var max_health: int = 10
var current_health: int var current_health: int

View File

@@ -3,8 +3,13 @@ extends CollisionShape3D
@export var critical_zone: bool = false @export var critical_zone: bool = false
signal took_damage(amount: int) signal took_damage(amount: int, damage_type: Data.DamageIndicationType, pos: Vector3)
signal recieved_effect(effect: StatusEffect)
func damage(amount: int) -> void: func damage(amount: int, damage_type: Data.DamageIndicationType = Data.DamageIndicationType.PLAYER, pos: Vector3 = global_position) -> void:
took_damage.emit(amount * 1.5 if critical_zone else amount) took_damage.emit(roundi(amount * 1.5) if critical_zone else amount, damage_type, pos)
func apply_effect(effect: StatusEffect) -> void:
recieved_effect.emit(effect)

View File

@@ -1,9 +1,7 @@
[gd_scene load_steps=10 format=3 uid="uid://bjo2q6vca5qlv"] [gd_scene load_steps=8 format=3 uid="uid://bjo2q6vca5qlv"]
[ext_resource type="Script" uid="uid://ejqql2660u6h" path="res://Worlds/GreenPlanet/Enemies/enemy_controller.gd" id="1_m83kr"] [ext_resource type="Script" uid="uid://ejqql2660u6h" path="res://Worlds/GreenPlanet/Enemies/enemy_controller.gd" id="1_m83kr"]
[ext_resource type="PackedScene" uid="uid://canrxnpxcugc2" path="res://Scenes/corpse.tscn" id="2_aed6c"] [ext_resource type="PackedScene" uid="uid://canrxnpxcugc2" path="res://Scenes/corpse.tscn" id="2_aed6c"]
[ext_resource type="Script" uid="uid://bamhci3kawuyt" path="res://Scripts/health.gd" id="3_wiose"]
[ext_resource type="PackedScene" uid="uid://cqtew0t8sttpm" path="res://Scenes/damage_particle.tscn" id="4_mhq3m"]
[ext_resource type="PackedScene" uid="uid://hjq3nrnumklp" path="res://Scenes/health_bar.tscn" id="9_4xla1"] [ext_resource type="PackedScene" uid="uid://hjq3nrnumklp" path="res://Scenes/health_bar.tscn" id="9_4xla1"]
[ext_resource type="Script" uid="uid://cojjgevmbhwal" path="res://Scripts/status_effector.gd" id="9_7hati"] [ext_resource type="Script" uid="uid://cojjgevmbhwal" path="res://Scripts/status_effector.gd" id="9_7hati"]
[ext_resource type="Texture2D" uid="uid://b1fn60m6xfcsq" path="res://Assets/Textures/minimap_enemy.png" id="9_7yfyh"] [ext_resource type="Texture2D" uid="uid://b1fn60m6xfcsq" path="res://Assets/Textures/minimap_enemy.png" id="9_7yfyh"]
@@ -12,21 +10,16 @@
[sub_resource type="ViewportTexture" id="ViewportTexture_ss5ir"] [sub_resource type="ViewportTexture" id="ViewportTexture_ss5ir"]
viewport_path = NodePath("SubViewport") viewport_path = NodePath("SubViewport")
[node name="Dog" type="CharacterBody3D" node_paths=PackedStringArray("status_manager", "movement_controller", "health", "d_n") groups=["Enemies"]] [node name="Dog" type="CharacterBody3D" node_paths=PackedStringArray("status_manager", "movement_controller", "d_n") groups=["Enemies"]]
collision_layer = 4 collision_layer = 4
collision_mask = 3 collision_mask = 3
motion_mode = 1 motion_mode = 1
script = ExtResource("1_m83kr") script = ExtResource("1_m83kr")
status_manager = NodePath("StatusEffector") status_manager = NodePath("StatusEffector")
movement_controller = NodePath("BeeliningController") movement_controller = NodePath("BeeliningController")
health = NodePath("Health")
d_n = NodePath("Node3D") d_n = NodePath("Node3D")
corpse_scene = ExtResource("2_aed6c") corpse_scene = ExtResource("2_aed6c")
[node name="Health" type="Node" parent="."]
script = ExtResource("3_wiose")
damage_particle_scene = ExtResource("4_mhq3m")
[node name="Sprite3D" type="Sprite3D" parent="."] [node name="Sprite3D" type="Sprite3D" parent="."]
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0.637873, 0) transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0.637873, 0)
sorting_offset = 1.0 sorting_offset = 1.0
@@ -68,6 +61,3 @@ sprite_container = NodePath("../SubViewport/HBoxContainer")
metadata/_custom_type_script = "uid://cojjgevmbhwal" metadata/_custom_type_script = "uid://cojjgevmbhwal"
[node name="Node3D" type="Node3D" parent="."] [node name="Node3D" type="Node3D" parent="."]
[connection signal="health_changed" from="Health" to="SubViewport/HealthBar" method="on_health_changed"]
[connection signal="health_depleted" from="Health" to="." method="die"]

View File

@@ -2,15 +2,18 @@ class_name EnemyController extends CharacterBody3D
signal reached_goal(enemy: Enemy, penalty: int) signal reached_goal(enemy: Enemy, penalty: int)
signal died(enemy: Enemy) signal died(enemy: Enemy)
signal health_changed(health: int)
@export var stats: Enemy @export var stats: Enemy
@export var status_manager: StatusEffector @export var status_manager: StatusEffector
@export var movement_controller: EnemyMovement @export var movement_controller: EnemyMovement
@export var health: Health @export var max_health: int = 10
@export var d_n: Node3D @export var d_n: Node3D
#@export var sprite: Sprite3D #@export var sprite: Sprite3D
@export var corpse_scene: PackedScene @export var corpse_scene: PackedScene
var damage_particle_scene: PackedScene = preload("res://Scenes/damage_particle.tscn")
var current_health: int
var corpse_root: Node var corpse_root: Node
var movement_speed: float var movement_speed: float
var movement_speed_penalty: float = 1.0 var movement_speed_penalty: float = 1.0
@@ -18,16 +21,61 @@ var alive: bool = true
func _ready() -> void: func _ready() -> void:
health.max_health = stats.health max_health = stats.health
health.current_health = stats.health current_health = stats.health
health_changed.connect($SubViewport/HealthBar.on_health_changed)
$SubViewport/HealthBar.setup(stats.health) $SubViewport/HealthBar.setup(stats.health)
#sprite.texture = stats.sprite.duplicate()
movement_speed = stats.movement_speed movement_speed = stats.movement_speed
status_manager.enemy = self status_manager.enemy = self
func spawn_damage_indicator(damage: int, pos: Vector3, damage_type: Data.DamageIndicationType) -> void:
var color: Color = Color.WHITE
if damage_type == Data.DamageIndicationType.PLAYER:
if !Data.preferences.display_self_damage_indicators:
return
else:
color = Color.FIREBRICK
if damage_type == Data.DamageIndicationType.TOWER:
if !Data.preferences.display_tower_damage_indicators:
return
else:
color = Color.WHITE_SMOKE
if damage_type == Data.DamageIndicationType.OTHER_PLAYER:
if !Data.preferences.display_party_damage_indicators:
return
else:
color = Color.AQUAMARINE
if damage_type == Data.DamageIndicationType.STATUS:
if !Data.preferences.display_status_effect_damage_indicators:
return
else:
color = Color.INDIAN_RED
var marker: DamageParticle = damage_particle_scene.instantiate()
get_tree().root.add_child(marker)
marker.set_number(damage)
marker.set_color(color)
marker.position = pos
func take_damage(damage: int, damage_type: Data.DamageIndicationType = Data.DamageIndicationType.TOWER, damage_point: Vector3 = global_position) -> void:
current_health -= damage
health_changed.emit(current_health)
if damage > 0:
spawn_damage_indicator(damage, damage_point, damage_type)
if current_health <= 0:
die()
func heal_damage(healing: int) -> void:
current_health += healing
if current_health > max_health:
current_health = max_health
health_changed.emit(current_health)
func apply_effect(effect: Effect) -> void: func apply_effect(effect: Effect) -> void:
health.take_damage(effect.damage) take_damage(effect.damage)
for status: StatusEffect in effect.status_effects: for status: StatusEffect in effect.status_effects:
status_manager.add_effect(status) status_manager.add_effect(status)

View File

@@ -1,11 +1,9 @@
[gd_scene load_steps=16 format=3 uid="uid://b0nady5xm88bo"] [gd_scene load_steps=14 format=3 uid="uid://b0nady5xm88bo"]
[ext_resource type="Script" uid="uid://ejqql2660u6h" path="res://Worlds/GreenPlanet/Enemies/enemy_controller.gd" id="1_fwsjt"] [ext_resource type="Script" uid="uid://ejqql2660u6h" path="res://Worlds/GreenPlanet/Enemies/enemy_controller.gd" id="1_fwsjt"]
[ext_resource type="PackedScene" uid="uid://ri8r03wqy80t" path="res://Scenes/8_direction_sprite.tscn" id="2_o7jmg"] [ext_resource type="PackedScene" uid="uid://ri8r03wqy80t" path="res://Scenes/8_direction_sprite.tscn" id="2_o7jmg"]
[ext_resource type="Script" uid="uid://bamhci3kawuyt" path="res://Scripts/health.gd" id="2_swu53"]
[ext_resource type="PackedScene" uid="uid://canrxnpxcugc2" path="res://Scenes/corpse.tscn" id="2_y7h25"] [ext_resource type="PackedScene" uid="uid://canrxnpxcugc2" path="res://Scenes/corpse.tscn" id="2_y7h25"]
[ext_resource type="Texture2D" uid="uid://dj13g1w14mekw" path="res://Assets/Textures/eye_dog.png" id="3_naknq"] [ext_resource type="Texture2D" uid="uid://dj13g1w14mekw" path="res://Assets/Textures/eye_dog.png" id="3_naknq"]
[ext_resource type="PackedScene" uid="uid://cqtew0t8sttpm" path="res://Scenes/damage_particle.tscn" id="4_tn1tu"]
[ext_resource type="Script" uid="uid://cummt2be3r1gq" path="res://Scripts/hitbox.gd" id="7_5eo4w"] [ext_resource type="Script" uid="uid://cummt2be3r1gq" path="res://Scripts/hitbox.gd" id="7_5eo4w"]
[ext_resource type="Texture2D" uid="uid://b1fn60m6xfcsq" path="res://Assets/Textures/minimap_enemy.png" id="9_f8btv"] [ext_resource type="Texture2D" uid="uid://b1fn60m6xfcsq" path="res://Assets/Textures/minimap_enemy.png" id="9_f8btv"]
[ext_resource type="Script" uid="uid://b62xnsbki8axa" path="res://Scripts/EnemyAI/pathing_controller.gd" id="10_gljle"] [ext_resource type="Script" uid="uid://b62xnsbki8axa" path="res://Scripts/EnemyAI/pathing_controller.gd" id="10_gljle"]
@@ -23,20 +21,15 @@ region = Rect2(0, 0, 32, 32)
[sub_resource type="ViewportTexture" id="ViewportTexture_4tj6k"] [sub_resource type="ViewportTexture" id="ViewportTexture_4tj6k"]
viewport_path = NodePath("SubViewport") viewport_path = NodePath("SubViewport")
[node name="WalkingEnemy" type="CharacterBody3D" node_paths=PackedStringArray("status_manager", "movement_controller", "health", "d_n") groups=["Enemies"]] [node name="WalkingEnemy" type="CharacterBody3D" node_paths=PackedStringArray("status_manager", "movement_controller", "d_n") groups=["Enemies"]]
collision_layer = 4 collision_layer = 4
collision_mask = 3 collision_mask = 3
script = ExtResource("1_fwsjt") script = ExtResource("1_fwsjt")
status_manager = NodePath("StatusEffector") status_manager = NodePath("StatusEffector")
movement_controller = NodePath("PathingController") movement_controller = NodePath("PathingController")
health = NodePath("Health")
d_n = NodePath("Node3D") d_n = NodePath("Node3D")
corpse_scene = ExtResource("2_y7h25") corpse_scene = ExtResource("2_y7h25")
[node name="Health" type="Node" parent="."]
script = ExtResource("2_swu53")
damage_particle_scene = ExtResource("4_tn1tu")
[node name="DirectionSprite" parent="." instance=ExtResource("2_o7jmg")] [node name="DirectionSprite" parent="." instance=ExtResource("2_o7jmg")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.585, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.585, 0)
pixel_size = 0.04 pixel_size = 0.04
@@ -95,7 +88,3 @@ metadata/_custom_type_script = "uid://cojjgevmbhwal"
[node name="Node3D" type="Node3D" parent="."] [node name="Node3D" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.429125, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.429125, 0)
[connection signal="health_changed" from="Health" to="SubViewport/HealthBar" method="on_health_changed"]
[connection signal="health_depleted" from="Health" to="." method="die"]
[connection signal="took_damage" from="Hitbox" to="Health" method="take_damage"]

View File

@@ -1,10 +1,12 @@
[gd_scene load_steps=31 format=3 uid="uid://y1qa1g3ic8sp"] [gd_scene load_steps=33 format=3 uid="uid://y1qa1g3ic8sp"]
[ext_resource type="Script" uid="uid://cvejbo3srx8py" path="res://Scripts/level.gd" id="1_ws6nn"] [ext_resource type="Script" uid="uid://cvejbo3srx8py" path="res://Scripts/level.gd" id="1_ws6nn"]
[ext_resource type="PackedScene" uid="uid://d2yv447trxkwt" path="res://Scenes/enemy_spawner.tscn" id="3_5imwp"] [ext_resource type="PackedScene" uid="uid://d2yv447trxkwt" path="res://Scenes/enemy_spawner.tscn" id="3_5imwp"]
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="3_6od8s"] [ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="3_6od8s"]
[ext_resource type="Resource" uid="uid://8eba45hql7bo" path="res://Enemies/EyeDog/dog.tres" id="5_6od8s"] [ext_resource type="Resource" uid="uid://8eba45hql7bo" path="res://Enemies/EyeDog/eye_dog.tres" id="5_6od8s"]
[ext_resource type="Resource" uid="uid://bffhb5krs5elm" path="res://Enemies/Crystalisk/airenemy2.tres" id="9_4gdda"] [ext_resource type="Resource" uid="uid://dxi17xvdlhkvc" path="res://Enemies/ElderEyeDog/elder_eye_dog.tres" id="5_j6d65"]
[ext_resource type="Resource" uid="uid://cvehqh4tt28g7" path="res://Enemies/BabyEyeDog/baby_eye_dog.tres" id="6_ks6qx"]
[ext_resource type="Resource" uid="uid://bffhb5krs5elm" path="res://Enemies/Crystalisk/crystalisk.tres" id="9_4gdda"]
[ext_resource type="PackedScene" uid="uid://1b2ikdanl66b" path="res://Scenes/CardPrinter/card_printer.tscn" id="9_r25gu"] [ext_resource type="PackedScene" uid="uid://1b2ikdanl66b" path="res://Scenes/CardPrinter/card_printer.tscn" id="9_r25gu"]
[ext_resource type="Script" uid="uid://cxwtuxytavfu5" path="res://Scripts/enemy_goal.gd" id="9_s3rd7"] [ext_resource type="Script" uid="uid://cxwtuxytavfu5" path="res://Scripts/enemy_goal.gd" id="9_s3rd7"]
[ext_resource type="Script" uid="uid://yk54owkf7pgj" path="res://Scripts/cinema_cam.gd" id="9_xuyhn"] [ext_resource type="Script" uid="uid://yk54owkf7pgj" path="res://Scripts/cinema_cam.gd" id="9_xuyhn"]
@@ -233,7 +235,7 @@ size = Vector3(70.0478, 1, 73.4615)
[node name="Bridge" type="Node3D" node_paths=PackedStringArray("tower_path", "player_spawns", "enemy_spawns", "enemy_goals", "corpses", "flow_field", "cinematic_cam", "printer", "shop")] [node name="Bridge" type="Node3D" node_paths=PackedStringArray("tower_path", "player_spawns", "enemy_spawns", "enemy_goals", "corpses", "flow_field", "cinematic_cam", "printer", "shop")]
script = ExtResource("1_ws6nn") script = ExtResource("1_ws6nn")
enemy_pool = Array[ExtResource("3_6od8s")]([ExtResource("5_6od8s"), ExtResource("9_4gdda")]) enemy_pool = Array[ExtResource("3_6od8s")]([ExtResource("5_6od8s"), ExtResource("9_4gdda"), ExtResource("5_j6d65"), ExtResource("6_ks6qx")])
tower_path = NodePath("Towers") tower_path = NodePath("Towers")
player_spawns = [NodePath("PlayerSpawnLocations/PlayerSpawn1"), NodePath("PlayerSpawnLocations/PlayerSpawn2"), NodePath("PlayerSpawnLocations/PlayerSpawn3"), NodePath("PlayerSpawnLocations/PlayerSpawn4")] player_spawns = [NodePath("PlayerSpawnLocations/PlayerSpawn1"), NodePath("PlayerSpawnLocations/PlayerSpawn2"), NodePath("PlayerSpawnLocations/PlayerSpawn3"), NodePath("PlayerSpawnLocations/PlayerSpawn4")]
enemy_spawns = [NodePath("GroundSpawn"), NodePath("GroundSpawn2"), NodePath("GroundSpawn3"), NodePath("GroundSpawn4"), NodePath("GroundSpawn5"), NodePath("AirSpawn")] enemy_spawns = [NodePath("GroundSpawn"), NodePath("GroundSpawn2"), NodePath("GroundSpawn3"), NodePath("GroundSpawn4"), NodePath("GroundSpawn5"), NodePath("AirSpawn")]
@@ -396,11 +398,10 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1)
[node name="ShopStand" parent="." instance=ExtResource("19_h6brl")] [node name="ShopStand" parent="." instance=ExtResource("19_h6brl")]
transform = Transform3D(0.675552, 0, -0.737313, 0, 1, 0, 0.737313, 0, 0.675552, 27.7723, 0.5, -9.72493) transform = Transform3D(0.675552, 0, -0.737313, 0, 1, 0, 0.737313, 0, 0.675552, 27.7723, 0.5, -9.72493)
[node name="Killbox" type="Area3D" parent="." node_paths=PackedStringArray("level")] [node name="Killbox" type="Area3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.77224, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.77224, 0, 0)
collision_mask = 2 collision_mask = 2
script = ExtResource("26_tuncf") script = ExtResource("26_tuncf")
level = NodePath("")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Killbox"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Killbox"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0668106, -6.8471, 0.829394) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0668106, -6.8471, 0.829394)

View File

@@ -7,7 +7,7 @@
render_priority = 0 render_priority = 0
shader = ExtResource("1_o41vb") shader = ExtResource("1_o41vb")
shader_parameter/scroll_speed = 0.6 shader_parameter/scroll_speed = 0.6
shader_parameter/angle_degrees = 45.0 shader_parameter/angle_degrees = 0.0
shader_parameter/repeat_x = 1.0 shader_parameter/repeat_x = 1.0
shader_parameter/repeat_y = 1.0 shader_parameter/repeat_y = 1.0
shader_parameter/row_offset = 1.0 shader_parameter/row_offset = 1.0