Skip to content

Commit

Permalink
A few tweaks (read more
Browse files Browse the repository at this point in the history
Quest manager:
- Added quest sounds. These paths are constants and are triggered with the QuickAudio plugin. There's also a single variable controlling the volume for them. These sounds currently overlap (since the signals overlap). Want to look into queueing quest notifications but it's not a priority.

Cogito Objects:
- I've added a damage_received signal to more objects to open up future possibilities to them reacting to receiving damage. This is currently only really used for the GenericButton, which now treats receiving damage as being used. Can be tested in the 05 Demo Laboratory.
All currently available objects that deal damage should work with this.

- Added Lightzones to 04 Demo Lobby.
  • Loading branch information
Phazorknight committed Apr 9, 2024
1 parent c0ad88c commit 45eeaa8
Show file tree
Hide file tree
Showing 26 changed files with 314 additions and 116 deletions.
Binary file not shown.
24 changes: 24 additions & 0 deletions COGITO/Assets/Audio/Phazorknight/Cogito_QuestComplete.wav.import
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
[remap]

importer="wav"
type="AudioStreamWAV"
uid="uid://bb4msh10jgao0"
path="res://.godot/imported/Cogito_QuestComplete.wav-118def53ebf98b16cc4db3097277b5c2.sample"

[deps]

source_file="res://COGITO/Assets/Audio/Phazorknight/Cogito_QuestComplete.wav"
dest_files=["res://.godot/imported/Cogito_QuestComplete.wav-118def53ebf98b16cc4db3097277b5c2.sample"]

[params]

force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=1
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0
Binary file not shown.
24 changes: 24 additions & 0 deletions COGITO/Assets/Audio/Phazorknight/Cogito_QuestFailed.wav.import
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
[remap]

importer="wav"
type="AudioStreamWAV"
uid="uid://dqfkx2gild50x"
path="res://.godot/imported/Cogito_QuestFailed.wav-73565376fac4c4f1ddcc95d3d9a7244c.sample"

[deps]

source_file="res://COGITO/Assets/Audio/Phazorknight/Cogito_QuestFailed.wav"
dest_files=["res://.godot/imported/Cogito_QuestFailed.wav-73565376fac4c4f1ddcc95d3d9a7244c.sample"]

[params]

force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=1
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0
Binary file not shown.
24 changes: 24 additions & 0 deletions COGITO/Assets/Audio/Phazorknight/Cogito_QuestStart.wav.import
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
[remap]

importer="wav"
type="AudioStreamWAV"
uid="uid://bb17d2na61tbv"
path="res://.godot/imported/Cogito_QuestStart.wav-3ad218b690cf0adc22d97750761c747e.sample"

[deps]

source_file="res://COGITO/Assets/Audio/Phazorknight/Cogito_QuestStart.wav"
dest_files=["res://.godot/imported/Cogito_QuestStart.wav-3ad218b690cf0adc22d97750761c747e.sample"]

[params]

force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=1
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0
5 changes: 4 additions & 1 deletion COGITO/CogitoObjects/Cogito_Button.gd
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
extends Node3D
signal object_state_updated(interaction_text: String) #used to display correct interaction prompts
signal pressed()
signal damage_received(damage_value:float)

@export_group("Cogito Button Settings")
## Sound that plays when pressed.
Expand Down Expand Up @@ -79,9 +80,11 @@ func press():
if nodepath != null:
var object = get_node(nodepath)
object.interact(player_interaction_component)



func on_damage_received():
interact(CogitoSceneManager._current_player_node.player_interaction_component)


func check_for_item() -> bool:
var inventory = player_interaction_component.get_parent().inventory_data
Expand Down
1 change: 1 addition & 0 deletions COGITO/CogitoObjects/Cogito_Door.gd
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ class_name CogitoDoor

signal object_state_updated(interaction_text:String)
signal door_state_changed(is_open:bool)
signal damage_received(damage_value:float)

@onready var audio_stream_player_3d = $AudioStreamPlayer3D

Expand Down
1 change: 1 addition & 0 deletions COGITO/CogitoObjects/Cogito_Switch.gd
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ extends Node3D

signal object_state_updated(interaction_text: String) #used to display correct interaction prompts
signal switched(is_on: bool)
signal damage_received(damage_value:float)

@onready var audio_stream_player_3d = $AudioStreamPlayer3D

Expand Down
11 changes: 10 additions & 1 deletion COGITO/Components/Attributes/CogitoAttribute.gd
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ signal attribute_reached_zero(attribute_name:String, value_current:float, value_
@export var value_max : float
## Value this attribute starts with per default.
@export var value_start : float

## Use this for when you want an attribute value to be unchangeable but still use signals etc. Can also be turned on/off at runtime.
@export var is_locked : bool = false
var value_current : float

# Used when loading/setting an attribute
Expand All @@ -29,6 +30,10 @@ func set_attribute(_value_current:float, _value_max:float):


func add(amount):
if is_locked:
attribute_changed.emit(attribute_name,value_current,value_max,true)
return

value_current += amount

if value_current > value_max:
Expand All @@ -37,6 +42,10 @@ func add(amount):


func subtract(amount):
if is_locked:
attribute_changed.emit(attribute_name,value_current,value_max,false)
return

value_current -= amount

if value_current <= 0:
Expand Down
2 changes: 0 additions & 2 deletions COGITO/Components/Attributes/CogitoHealthAttribute.gd
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,8 @@ var parent_position : Vector3
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
value_current = value_start

attribute_reached_zero.connect(on_death)
attribute_changed.connect(on_health_change)
print(attribute_name,": emitting attribute change. Current value is: ", value_current)
attribute_changed.emit(attribute_name,value_current,value_max,true)


Expand Down
4 changes: 2 additions & 2 deletions COGITO/Components/HitboxComponent.gd
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ class_name HitboxComponent
@export var health_attribute : CogitoHealthAttribute

func _ready() -> void:
if get_parent() is CogitoObject:
if get_parent().has_signal("damage_received"):
if !get_parent().damage_received.is_connected(damage):
get_parent().damage_received.connect(damage)
else:
print("HitboxComponent: Parent ", get_parent().name, " isn't CogitoObject.")
print("HitboxComponent: Parent ", get_parent().name, " is missing a damage_received() signal.")

func damage(damage_amount:float):
if health_attribute:
Expand Down
2 changes: 0 additions & 2 deletions COGITO/Components/LightzoneComponent.gd
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,9 @@ extends Area3D

func _on_body_entered(body):
if body.is_in_group("Player") :
print("Player entered lightzone.")
body.increase_attribute("visibility", 1, ConsumableItemPD.ValueType.CURRENT)


func _on_body_exited(body):
if body.is_in_group("Player") :
print("Player left lightzone.")
body.decrease_attribute("visibility", 1)
8 changes: 4 additions & 4 deletions COGITO/DemoScenes/COGITO_01_Demo.tscn
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,7 @@ script = ExtResource("16_fg1wi")
inventory_item = ExtResource("17_nl6sa")
quantity = 2

[sub_resource type="Resource" id="Resource_g6vn6"]
[sub_resource type="Resource" id="Resource_n26k3"]
resource_local_to_scene = true
script = ExtResource("2_chxar")
inventory_slots = Array[ExtResource("16_fg1wi")]([SubResource("Resource_v7b11"), SubResource("Resource_eku8j"), null, null])
Expand Down Expand Up @@ -348,7 +348,7 @@ size = Vector3(1.5, 0.01, 1.5)
[sub_resource type="BoxShape3D" id="BoxShape3D_ht4uj"]
size = Vector3(100, 3, 100)

[sub_resource type="Resource" id="Resource_xi0gu"]
[sub_resource type="Resource" id="Resource_nqqkb"]
resource_local_to_scene = true
script = ExtResource("2_chxar")
inventory_slots = Array[ExtResource("16_fg1wi")]([null, null, null, null, null, null, null, null])
Expand Down Expand Up @@ -1253,7 +1253,7 @@ transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107,
[node name="Chest" parent="INTERACTIVE_OBJECTS" groups=["external_inventory"] instance=ExtResource("14_d7sxi")]
transform = Transform3D(0.686504, 0, -0.727126, 0, 1, 0, 0.727126, 0, 0.686504, -4.38933, 0.0425703, 5.97176)
inventory_name = "Chest"
inventory_data = SubResource("Resource_g6vn6")
inventory_data = SubResource("Resource_n26k3")
uses_animation = true
open_animation = "open"

Expand Down Expand Up @@ -1613,7 +1613,7 @@ transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 2.1480
transform = Transform3D(-1, 0, 7.45058e-07, 0, 1, 0, -7.45058e-07, 0, -1, -7.5375, 0.905039, -3.30884)
pause_menu = NodePath("../TabMenu")
player_hud = NodePath("../Player_HUD")
inventory_data = SubResource("Resource_xi0gu")
inventory_data = SubResource("Resource_nqqkb")
step_height_camera_lerp = 1.5

[node name="Player_HUD" parent="." node_paths=PackedStringArray("player") instance=ExtResource("4_1ofwa")]
Expand Down
84 changes: 81 additions & 3 deletions COGITO/DemoScenes/COGITO_04_Demo_Lobby.tscn
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[gd_scene load_steps=358 format=3 uid="uid://e31n36p8i6an"]
[gd_scene load_steps=366 format=3 uid="uid://e31n36p8i6an"]

[ext_resource type="Script" path="res://COGITO/SceneManagement/cogito_scene.gd" id="1_dracg"]
[ext_resource type="Texture2D" uid="uid://sdcljx8f5dhj" path="res://COGITO/Assets/hdris/kloofendal_48d_partly_cloudy_puresky_2k.hdr" id="2_a8imk"]
Expand Down Expand Up @@ -50,6 +50,7 @@
[ext_resource type="PackedScene" uid="uid://w6hpf431lt3l" path="res://COGITO/DemoScenes/DemoPrefabs/chair_cushion.tscn" id="42_ys0cu"]
[ext_resource type="PackedScene" uid="uid://cse4e4f61awy2" path="res://COGITO/Assets/Models/Kenney/Furniture/GLTF format/kitchenMicrowave.glb" id="43_rl17a"]
[ext_resource type="PackedScene" uid="uid://u2b6ss4xaxp8" path="res://COGITO/DemoScenes/DemoPrefabs/coffee_mug.tscn" id="44_harbr"]
[ext_resource type="PackedScene" uid="uid://bab56bf0vqfss" path="res://COGITO/PrefabScenes/Pickups/pickup_battery.tscn" id="45_628oc"]
[ext_resource type="PackedScene" uid="uid://cxof5rvjpgx1l" path="res://COGITO/DemoScenes/DemoPrefabs/door_basic.tscn" id="45_xp8oa"]
[ext_resource type="PackedScene" uid="uid://b8t65a0tc7uq0" path="res://COGITO/DemoScenes/DemoPrefabs/bathroom_mirror.tscn" id="46_dfquo"]
[ext_resource type="PackedScene" uid="uid://dtdievhv81y4e" path="res://COGITO/DemoScenes/DemoPrefabs/bathroom_sink.tscn" id="47_a6dcc"]
Expand Down Expand Up @@ -87,6 +88,7 @@
[ext_resource type="PackedScene" uid="uid://bqwcopwwk2x6s" path="res://COGITO/DemoScenes/DemoPrefabs/ksi_steps_single.tscn" id="88_u6glq"]
[ext_resource type="PackedScene" uid="uid://dueiqjrnnwseq" path="res://COGITO/Assets/Models/Kenney/SpaceInterior/GLTF format/KSI_ledge_corner_outer.glb" id="89_ifcfc"]
[ext_resource type="PackedScene" uid="uid://dqw7n4i3g4b7g" path="res://COGITO/Assets/Models/Kenney/SpaceInterior/GLTF format/KSI_ledge_painted.glb" id="90_0bo26"]
[ext_resource type="PackedScene" uid="uid://ctr7n0w3hgys7" path="res://COGITO/Components/LightzoneComponent.tscn" id="91_1svd8"]
[ext_resource type="PackedScene" uid="uid://cwd3g16ep0idw" path="res://COGITO/PrefabScenes/Pickups/pickup_flashlight.tscn" id="91_fk2yu"]
[ext_resource type="PackedScene" uid="uid://c0yox8yh1bexx" path="res://COGITO/PrefabScenes/Pickups/ripped_page_a_pickup.tscn" id="91_qq2p0"]
[ext_resource type="PackedScene" uid="uid://uoru03g0vtp" path="res://COGITO/PrefabScenes/Pickups/ripped_page_b_pickup.tscn" id="92_11u5w"]
Expand Down Expand Up @@ -121,7 +123,7 @@ volumetric_fog_temporal_reprojection_amount = 0.85
density = 0.04
albedo = Color(0.694118, 0.694118, 0.694118, 1)

[sub_resource type="Resource" id="Resource_277ed"]
[sub_resource type="Resource" id="Resource_0qwjs"]
resource_local_to_scene = true
script = ExtResource("4_0kggm")
inventory_slots = Array[Resource("res://COGITO/InventoryPD/CustomResources/InventorySlotPD.gd")]([null, null, null, null, null, null, null, null])
Expand Down Expand Up @@ -3243,6 +3245,24 @@ resource_name = "metalLight"
albedo_color = Color(0.918013, 0.929502, 0.9647, 1)
emission_enabled = true

[sub_resource type="BoxShape3D" id="BoxShape3D_mq6up"]
size = Vector3(16.4526, 6.84363, 36.7433)

[sub_resource type="BoxShape3D" id="BoxShape3D_5poav"]
size = Vector3(8.66685, 6.84363, 32.1016)

[sub_resource type="BoxShape3D" id="BoxShape3D_lbu7f"]
size = Vector3(2.0559, 3.70407, 8.19129)

[sub_resource type="BoxShape3D" id="BoxShape3D_yw841"]
size = Vector3(3.37023, 3.70407, 18.7055)

[sub_resource type="BoxShape3D" id="BoxShape3D_5eu0v"]
size = Vector3(3.37023, 3.70407, 8.35876)

[sub_resource type="BoxShape3D" id="BoxShape3D_4k13h"]
size = Vector3(5.08541, 3.48608, 16.0137)

[node name="Cogito04NewDemo" type="Node3D" node_paths=PackedStringArray("connectors")]
script = ExtResource("1_dracg")
connectors = [NodePath("MAIN_LOBBY/LAB_CONNECTOR/ConnectorFromLab")]
Expand Down Expand Up @@ -3270,7 +3290,7 @@ material = SubResource("FogMaterial_4avjx")
transform = Transform3D(-1, 0, 7.45058e-07, 0, 1, 0, -7.45058e-07, 0, -1, 3.03073, 0.905039, -17.9321)
pause_menu = NodePath("../PauseMenu")
player_hud = NodePath("../Player_HUD")
inventory_data = SubResource("Resource_277ed")
inventory_data = SubResource("Resource_0qwjs")
step_height_camera_lerp = 1.5

[node name="Player_HUD" parent="." node_paths=PackedStringArray("player") instance=ExtResource("5_to5tg")]
Expand Down Expand Up @@ -6620,6 +6640,18 @@ transform = Transform3D(0.0213438, 0, -0.999772, 0, 1, 0, 0.999772, 0, 0.0213438
[node name="computerScreen5" parent="ARCHIVE" instance=ExtResource("52_8322x")]
transform = Transform3D(0.0213438, 0, -0.999772, 0, 1, 0, 0.999772, 0, 0.0213438, 0.596934, 1.57892, -4.51492)

[node name="Pickup_Battery" parent="ARCHIVE" instance=ExtResource("45_628oc")]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0.666521, 0.734926, -3.89347)

[node name="Pickup_Battery2" parent="ARCHIVE" instance=ExtResource("45_628oc")]
transform = Transform3D(-0.876634, 0, -0.481157, 0, 1, 0, 0.481157, 0, -0.876634, 0.418519, 0.734926, -3.85862)

[node name="Pickup_Battery3" parent="ARCHIVE" instance=ExtResource("45_628oc")]
transform = Transform3D(-0.876634, 0, -0.481157, 0, 1, 0, 0.481157, 0, -0.876634, 0.15419, 0.734926, -3.88472)

[node name="Pickup_Battery4" parent="ARCHIVE" instance=ExtResource("45_628oc")]
transform = Transform3D(-0.876634, 0, -0.481157, 0, 1, 0, 0.481157, 0, -0.876634, -0.383062, 0.734926, -3.84369)

[node name="MEETING_ROOM" type="Node3D" parent="."]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -0.0997177, 0, -9.01854)

Expand Down Expand Up @@ -7711,6 +7743,50 @@ transform = Transform3D(-2.63806e-09, 0.998177, -0.0603517, 4.36317e-08, 0.06035
transform = Transform3D(-0.999185, 0.0287171, 0.0283608, 0.0286762, 0.0106298, 0.999532, 0.0284021, 0.999531, -0.0114446, 0.584339, 0.607864, 14.3816)
mass = 0.5

[node name="LIGHTZONES" type="Node3D" parent="."]

[node name="LZ_General" parent="LIGHTZONES" instance=ExtResource("91_1svd8")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.13766, 0, 0)

[node name="CollisionShape3D" parent="LIGHTZONES/LZ_General" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.85434, 2.92181, -2.02478)
shape = SubResource("BoxShape3D_mq6up")

[node name="LZ_fromMainWindows" parent="LIGHTZONES" instance=ExtResource("91_1svd8")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.13766, 0, 0)

[node name="CollisionShape3D" parent="LIGHTZONES/LZ_fromMainWindows" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.03852, 2.92181, 0.296041)
shape = SubResource("BoxShape3D_5poav")

[node name="CollisionShape3D2" type="CollisionShape3D" parent="LIGHTZONES/LZ_fromMainWindows"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.93299, 4.49159, -12.0422)
shape = SubResource("BoxShape3D_lbu7f")

[node name="CollisionShape3D3" type="CollisionShape3D" parent="LIGHTZONES/LZ_fromMainWindows"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.93299, 4.49159, 12.0048)
shape = SubResource("BoxShape3D_lbu7f")

[node name="CollisionShape3D4" type="CollisionShape3D" parent="LIGHTZONES/LZ_fromMainWindows"]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -6.17804, 4.49159, 8.92728)
shape = SubResource("BoxShape3D_lbu7f")

[node name="CollisionShape3D5" type="CollisionShape3D" parent="LIGHTZONES/LZ_fromMainWindows"]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -6.17804, 4.49159, -8.93436)
shape = SubResource("BoxShape3D_lbu7f")

[node name="CollisionShape3D6" type="CollisionShape3D" parent="LIGHTZONES/LZ_fromMainWindows"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.83844, 4.49159, 0.366645)
shape = SubResource("BoxShape3D_yw841")

[node name="CollisionShape3D7" type="CollisionShape3D" parent="LIGHTZONES/LZ_fromMainWindows"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.83844, 1.56776, -0.0511444)
shape = SubResource("BoxShape3D_5eu0v")

[node name="CollisionShape3D8" type="CollisionShape3D" parent="LIGHTZONES/LZ_fromMainWindows"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.71305, 1.67676, -0.0526435)
shape = SubResource("BoxShape3D_4k13h")

[connection signal="body_entered" from="QUESTS/Archive_QuestStarter" to="QUESTS/Archive_QuestStarter" method="_on_body_entered"]
[connection signal="body_entered" from="QUESTS/Laptop_QuestStarter" to="QUESTS/Laptop_QuestStarter" method="_on_body_entered"]
[connection signal="body_entered" from="QUESTS/Archive_QuestEnder" to="QUESTS/Archive_QuestEnder" method="_on_body_entered"]
Expand All @@ -7726,3 +7802,5 @@ mass = 0.5
[editable path="DEMO_HINTS/Hint_06_AdvancedDoors"]
[editable path="DEMO_HINTS/Hint_07_Keypad"]
[editable path="Platform/GenericSwitch"]
[editable path="LIGHTZONES/LZ_General"]
[editable path="LIGHTZONES/LZ_fromMainWindows"]
14 changes: 13 additions & 1 deletion COGITO/DemoScenes/DemoPrefabs/generic_button.tscn
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
[gd_scene load_steps=8 format=3 uid="uid://cs6raqlyejqul"]
[gd_scene load_steps=10 format=3 uid="uid://cs6raqlyejqul"]

[ext_resource type="Script" path="res://COGITO/CogitoObjects/Cogito_Button.gd" id="1_l32yq"]
[ext_resource type="AudioStream" uid="uid://b6wdy2102jymr" path="res://COGITO/Assets/Audio/Kenney/UiAudio/switch2.ogg" id="2_awyad"]
[ext_resource type="PackedScene" uid="uid://l61jtpfxu5x5" path="res://COGITO/Components/Interactions/BasicInteraction.tscn" id="3_v8dn1"]
[ext_resource type="PackedScene" uid="uid://cqgg1nng0vvbh" path="res://COGITO/Components/Attributes/HealthAttribute.tscn" id="4_26rcl"]
[ext_resource type="PackedScene" uid="uid://k28yrbg3k3pw" path="res://COGITO/Components/HitboxComponent.tscn" id="5_dudfk"]

[sub_resource type="CylinderMesh" id="CylinderMesh_clo4d"]
top_radius = 0.05
Expand Down Expand Up @@ -40,3 +42,13 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0041995, -0.0154781, -0.001
shape = SubResource("BoxShape3D_nti18")

[node name="BasicInteraction" parent="." instance=ExtResource("3_v8dn1")]

[node name="HealthAttribute" parent="." instance=ExtResource("4_26rcl")]
value_max = 1.0
value_start = 1.0
is_locked = true

[node name="HitboxComponent" parent="." node_paths=PackedStringArray("health_attribute") instance=ExtResource("5_dudfk")]
health_attribute = NodePath("../HealthAttribute")

[connection signal="damage_taken" from="HealthAttribute" to="." method="on_damage_received"]
Loading

0 comments on commit 45eeaa8

Please sign in to comment.