diff --git a/prefab/roomTemplates/dungeon/utilityRoom.tscn b/prefab/roomTemplates/dungeon/utilityRoom.tscn
index 88429b6..fbb9f64 100644
--- a/prefab/roomTemplates/dungeon/utilityRoom.tscn
+++ b/prefab/roomTemplates/dungeon/utilityRoom.tscn
@@ -69,7 +69,7 @@ tile_set = ExtResource("1_rn2om")
[node name="Ground" type="TileMapLayer" parent="TileMap"]
use_parent_material = true
-tile_map_data = PackedByteArray("AAAAAAAAAQAAAAMAAAAAAAEAAQACAAEAAAAAAAIAAQACAAEAAAAAAAMAAQACAAEAAAAAAAQAAQACAAEAAAAAAAUAAQACAAEAAAAAAAYAAQACAAEAAAABAAAAAQABAAIAAAACAAAAAQABAAIAAAADAAAAAQABAAIAAAAEAAAAAQABAAIAAAAFAAAAAQABAAIAAAAGAAAAAQABAAIAAAAHAAAAAQABAAIAAAAIAAAAAQABAAIAAAAJAAAAAQABAAIAAAAKAAAAAQABAAIAAAALAAAAAQABAAIAAAAMAAAAAQABAAIAAAANAAAAAQABAAIAAAAOAAAAAQABAAIAAAAPAAAAAQABAAIAAAAQAAAAAQABAAIAAAARAAAAAQABAAIAAAASAAAAAQABAAIAAAATAAAAAQABAAIAAAAUAAAAAQABAAIAAAAVAAAAAQABAAIAAAAWAAAAAQACAAMAAAAWAAMAAQAAAAEAAAAWAAQAAQAAAAEAAAAWAAUAAQAAAAEAAAAWAAYAAQAAAAEAAAAWAAcAAQAAAAEAAAAWAAgAAQAAAAEAAAAWAAkAAQAAAAEAAAAWAAoAAQAAAAEAAAAWAAsAAQAAAAEAAAAWAAwAAQAAAAEAAAAAAAcAAQACAAEAAAAAAAgAAQACAAEAAAAAAAkAAQACAAEAAAAAAAoAAQACAAEAAAAAAAsAAQACAAEAAAAAAAwAAQACAAEAAAAVAA8AAQABAAAAAAAUAA8AAQABAAAAAAATAA8AAQABAAAAAAASAA8AAQABAAAAAAARAA8AAQABAAAAAAAQAA8AAQABAAAAAAAPAA8AAQABAAAAAAAOAA8AAQABAAAAAAANAA8AAQABAAAAAAAMAA8AAQABAAAAAAALAA8AAQABAAAAAAAKAA8AAQABAAAAAAAJAA8AAQABAAAAAAAIAA8AAQABAAAAAAAHAA8AAQABAAAAAAAGAA8AAQABAAAAAAAFAA8AAQABAAAAAAAEAA8AAQABAAAAAAADAA8AAQABAAAAAAACAA8AAQABAAAAAAABAA8AAQABAAAAAAAAAA8AAQAAAAUAAAAWAA8AAQACAAUAAAASAAsAAQAEAAQAAAATAAsAAQAEAAQAAAAUAAsAAQAEAAQAAAAVAAsAAQAFAAQAAAABAAsAAQADAAQAAAACAAsAAQAEAAQAAAADAAsAAQAEAAQAAAAEAAsAAQAEAAQAAAAFAAsAAQAEAAQAAAAGAAsAAQAEAAQAAAAHAAsAAQAEAAQAAAAIAAsAAQAEAAQAAAAOAAsAAQAEAAQAAAAPAAsAAQAEAAQAAAAQAAsAAQAEAAQAAAARAAsAAQAEAAQAAAABAAoAAQAEAAMAAAAVAAoAAQAEAAMAAAACAAoAAQAEAAIAAAAUAAoAAQAEAAIAAAANAAQAAQAEAAQAAAANAAwAAQAEAAQAAAAMAA0AAQAEAAQAAAALAA4AAQAEAAQAAAAJAAsAAQAEAAQAAAAGAAoAAQAEAAQAAAAHAAkAAQAEAAQAAAAIAAgAAQAEAAQAAAAJAAcAAQAEAAQAAAAKAAcAAQAEAAQAAAALAAcAAQAEAAQAAAAMAAcAAQAEAAQAAAANAAcAAQAEAAQAAAAOAAcAAQAEAAQAAAAPAAcAAQAEAAQAAAAQAAcAAQAEAAQAAAARAAcAAQAEAAQAAAASAAcAAQAEAAQAAAATAAcAAQAEAAQAAAAUAAcAAQAEAAQAAAAVAAcAAQAEAAQAAAABAAcAAQAEAAQAAAACAAcAAQAEAAQAAAADAAcAAQAEAAQAAAAEAAcAAQAEAAQAAAAFAAcAAQAEAAQAAAALAAYAAQAEAAQAAAAMAAUAAQAEAAQAAAAPAAMAAQAEAAQAAAAQAAMAAQAEAAQAAAARAAMAAQAEAAQAAAASAAMAAQAEAAQAAAATAAMAAQAEAAQAAAAUAAMAAQAEAAQAAAAVAAMAAQAEAAQAAAABAAMAAQAEAAQAAAACAAMAAQAEAAQAAAADAAMAAQAEAAQAAAAEAAMAAQAEAAQAAAAFAAMAAQAEAAQAAAAGAAMAAQAEAAQAAAAHAAMAAQAEAAQAAAAIAAMAAQAEAAQAAAAJAAMAAQAEAAQAAAA=")
+tile_map_data = PackedByteArray("AAAAAAAAAQAAAAMAAAAAAAEAAQACAAEAAAAAAAIAAQACAAEAAAAAAAMAAQACAAEAAAAAAAQAAQACAAEAAAAAAAUAAQACAAEAAAAAAAYAAQACAAEAAAABAAAAAQABAAIAAAACAAAAAQABAAIAAAADAAAAAQABAAIAAAAEAAAAAQABAAIAAAAFAAAAAQABAAIAAAAGAAAAAQABAAIAAAAHAAAAAQABAAIAAAAIAAAAAQABAAIAAAAJAAAAAQABAAIAAAAKAAAAAQABAAIAAAALAAAAAQABAAIAAAAMAAAAAQABAAIAAAANAAAAAQABAAIAAAAOAAAAAQABAAIAAAAPAAAAAQABAAIAAAAQAAAAAQABAAIAAAARAAAAAQABAAIAAAASAAAAAQABAAIAAAATAAAAAQABAAIAAAAUAAAAAQABAAIAAAAVAAAAAQABAAIAAAAWAAAAAQACAAMAAAAWAAMAAQAAAAEAAAAWAAQAAQAAAAEAAAAWAAUAAQAAAAEAAAAWAAYAAQAAAAEAAAAWAAcAAQAAAAEAAAAWAAgAAQAAAAEAAAAWAAkAAQAAAAEAAAAWAAoAAQAAAAEAAAAWAAsAAQAAAAEAAAAWAAwAAQAAAAEAAAAAAAcAAQACAAEAAAAAAAgAAQACAAEAAAAAAAkAAQACAAEAAAAAAAoAAQACAAEAAAAAAAsAAQACAAEAAAAAAAwAAQACAAEAAAAVAA8AAQABAAAAAAAUAA8AAQABAAAAAAATAA8AAQABAAAAAAASAA8AAQABAAAAAAARAA8AAQABAAAAAAAQAA8AAQABAAAAAAAPAA8AAQABAAAAAAAOAA8AAQABAAAAAAANAA8AAQABAAAAAAAMAA8AAQABAAAAAAALAA8AAQABAAAAAAAKAA8AAQABAAAAAAAJAA8AAQABAAAAAAAIAA8AAQABAAAAAAAHAA8AAQABAAAAAAAGAA8AAQABAAAAAAAFAA8AAQABAAAAAAAEAA8AAQABAAAAAAADAA8AAQABAAAAAAACAA8AAQABAAAAAAABAA8AAQABAAAAAAAAAA8AAQAAAAUAAAAWAA8AAQACAAUAAAASAAsAAQAEAAQAAAATAAsAAQAEAAQAAAAUAAsAAQAEAAQAAAAVAAsAAQAFAAQAAAABAAsAAQADAAQAAAACAAsAAQAEAAQAAAADAAsAAQAEAAQAAAAEAAsAAQAEAAQAAAAFAAsAAQAEAAQAAAAGAAsAAQAEAAQAAAAHAAsAAQAEAAQAAAAIAAsAAQAEAAQAAAAOAAsAAQAEAAQAAAAPAAsAAQAEAAQAAAAQAAsAAQAEAAQAAAARAAsAAQAEAAQAAAABAAoAAQAEAAMAAAAVAAoAAQAEAAMAAAACAAoAAQAEAAIAAAAUAAoAAQAEAAIAAAANAAQAAQAEAAQAAAANAAwAAQAEAAQAAAAMAA0AAQAEAAQAAAALAA4AAQAEAAQAAAAJAAsAAQAEAAQAAAAGAAoAAQAEAAQAAAAHAAkAAQAEAAQAAAAIAAgAAQAEAAQAAAAJAAcAAQAEAAQAAAAKAAcAAQAEAAQAAAALAAcAAQAEAAQAAAAMAAcAAQAEAAQAAAANAAcAAQAEAAQAAAAOAAcAAQAEAAQAAAAPAAcAAQAEAAQAAAAQAAcAAQAEAAQAAAARAAcAAQAEAAQAAAASAAcAAQAEAAQAAAATAAcAAQAEAAQAAAAUAAcAAQAEAAQAAAAVAAcAAQAFAAQAAAABAAcAAQADAAQAAAACAAcAAQAEAAQAAAADAAcAAQAEAAQAAAAEAAcAAQAEAAQAAAAFAAcAAQAEAAQAAAALAAYAAQAEAAQAAAAMAAUAAQAEAAQAAAAPAAMAAQAEAAQAAAAQAAMAAQAEAAQAAAARAAMAAQAEAAQAAAASAAMAAQAEAAQAAAATAAMAAQAEAAQAAAAUAAMAAQAEAAQAAAAVAAMAAQAFAAQAAAABAAMAAQADAAQAAAACAAMAAQAEAAQAAAADAAMAAQAEAAQAAAAEAAMAAQAEAAQAAAAFAAMAAQAEAAQAAAAGAAMAAQAEAAQAAAAHAAMAAQAEAAQAAAAIAAMAAQAEAAQAAAAJAAMAAQAEAAQAAAAKAAMAAQAEAAQAAAAKAAsAAQAEAAQAAAALAAsAAQAEAAQAAAAGAAcAAQAEAAQAAAALAAMAAQAEAAQAAAAMAAMAAQAEAAQAAAA=")
tile_set = ExtResource("1_rn2om")
[node name="Barrier" type="TileMapLayer" parent="TileMap"]
diff --git a/prefab/roomTemplates/tutorials/tripleShotSpell.tscn b/prefab/roomTemplates/tutorials/tripleShotSpell.tscn
index 3fcf5a1..9ef8d0a 100644
--- a/prefab/roomTemplates/tutorials/tripleShotSpell.tscn
+++ b/prefab/roomTemplates/tutorials/tripleShotSpell.tscn
@@ -63,7 +63,7 @@ tile_set = ExtResource("2_k54gk")
[node name="Ground" type="TileMapLayer" parent="TileMap"]
use_parent_material = true
-tile_map_data = PackedByteArray("AAAAAAAAAQAAAAMAAAAAAAEAAQACAAEAAAAAAAIAAQACAAEAAAAAAAMAAQACAAEAAAAAAAQAAQACAAEAAAAAAAcAAQACAAEAAAAPAAAAAQABAAIAAAAAAAUAAQACAAEAAAAAAAYAAQACAAEAAAABAAAAAQABAAIAAAACAAAAAQABAAIAAAADAAAAAQABAAIAAAAEAAAAAQABAAIAAAAFAAAAAQABAAIAAAAGAAAAAQABAAIAAAAHAAAAAQABAAIAAAAIAAAAAQABAAIAAAAJAAAAAQABAAIAAAAKAAAAAQABAAIAAAALAAAAAQABAAIAAAAMAAAAAQABAAIAAAANAAAAAQABAAIAAAAOAAAAAQABAAMAAAAAAAoAAQAAAAUAAAABAAoAAQABAAAAAAACAAoAAQABAAAAAAADAAoAAQABAAAAAAAEAAoAAQABAAAAAAAFAAoAAQABAAAAAAAGAAoAAQABAAAAAAAHAAoAAQABAAAAAAAIAAoAAQABAAAAAAAJAAoAAQABAAAAAAAKAAoAAQABAAAAAAALAAoAAQABAAAAAAAMAAoAAQABAAAAAAANAAoAAQABAAAAAAAOAAoAAQABAAAAAAAPAAoAAQABAAAAAAAQAAoAAQABAAAAAAARAAoAAQABAAAAAAASAAoAAQABAAAAAAATAAoAAQABAAAAAAAUAAoAAQABAAAAAAAVAAoAAQABAAAAAAAWAAoAAQABAAAAAAAXAAoAAQACAAUAAAAQAAAAAQABAAIAAAARAAAAAQABAAIAAAASAAAAAQABAAIAAAATAAAAAQABAAIAAAAUAAAAAQABAAIAAAAXAAcAAQAAAAEAAAAXAAYAAQAAAAEAAAAXAAUAAQAAAAEAAAAXAAQAAQAAAAEAAAAXAAMAAQAAAAEAAAAXAAIAAQAAAAEAAAAXAAEAAQAAAAEAAAAXAAAAAQACAAMAAAAVAAAAAQABAAIAAAAWAAAAAQABAAIAAAAEAAkAAQAEAAQAAAAFAAgAAQAEAAQAAAAGAAcAAQAEAAQAAAAHAAYAAQAEAAQAAAAIAAUAAQAEAAQAAAAKAAUAAQAEAAQAAAAMAAUAAQAEAAQAAAAOAAUAAQADAAQAAAAQAAUAAQAEAAQAAAASAAUAAQADAAAAAAAJAAUAAQAEAAQAAAALAAUAAQAEAAQAAAANAAkAAQADAAAAAAANAAgAAQADAAAAAAANAAcAAQADAAAAAAANAAYAAQADAAAAAAANAAUAAQADAAAAAAAPAAUAAQAEAAQAAAARAAUAAQAFAAQAAAASAAYAAQADAAAAAAASAAcAAQADAAAAAAASAAQAAQADAAAAAAASAAMAAQADAAAAAAASAAIAAQADAAAAAAASAAEAAQADAAAAAAA=")
+tile_map_data = PackedByteArray("AAAAAAAAAQAAAAMAAAAAAAEAAQACAAEAAAAAAAIAAQACAAEAAAAAAAMAAQACAAEAAAAAAAQAAQACAAEAAAAAAAcAAQACAAEAAAAPAAAAAQABAAIAAAAAAAUAAQACAAEAAAAAAAYAAQACAAEAAAABAAAAAQABAAIAAAACAAAAAQABAAIAAAADAAAAAQABAAIAAAAEAAAAAQABAAIAAAAFAAAAAQABAAIAAAAGAAAAAQABAAIAAAAHAAAAAQABAAIAAAAIAAAAAQABAAIAAAAJAAAAAQABAAIAAAAKAAAAAQABAAIAAAALAAAAAQABAAIAAAAMAAAAAQABAAIAAAANAAAAAQABAAIAAAAOAAAAAQABAAMAAAAAAAoAAQAAAAUAAAABAAoAAQABAAAAAAACAAoAAQABAAAAAAADAAoAAQABAAAAAAAEAAoAAQABAAAAAAAFAAoAAQABAAAAAAAGAAoAAQABAAAAAAAHAAoAAQABAAAAAAAIAAoAAQABAAAAAAAJAAoAAQABAAAAAAAKAAoAAQABAAAAAAALAAoAAQABAAAAAAAMAAoAAQABAAAAAAANAAoAAQABAAAAAAAOAAoAAQABAAAAAAAPAAoAAQABAAAAAAAQAAoAAQABAAAAAAARAAoAAQABAAAAAAASAAoAAQABAAAAAAATAAoAAQABAAAAAAAUAAoAAQABAAAAAAAVAAoAAQABAAAAAAAWAAoAAQABAAAAAAAXAAoAAQACAAUAAAAQAAAAAQABAAIAAAARAAAAAQABAAIAAAASAAAAAQABAAIAAAATAAAAAQABAAIAAAAUAAAAAQABAAIAAAAXAAcAAQAAAAEAAAAXAAYAAQAAAAEAAAAXAAUAAQAAAAEAAAAXAAQAAQAAAAEAAAAXAAMAAQAAAAEAAAAXAAIAAQAAAAEAAAAXAAEAAQAAAAEAAAAXAAAAAQACAAMAAAAVAAAAAQABAAIAAAAWAAAAAQABAAIAAAAEAAkAAQAEAAQAAAAFAAgAAQAEAAQAAAAGAAcAAQAEAAQAAAAHAAYAAQAEAAQAAAAIAAUAAQAEAAQAAAAKAAUAAQAEAAQAAAAMAAUAAQAEAAQAAAASAAUAAQADAAAAAAAJAAUAAQAEAAQAAAALAAUAAQAEAAQAAAANAAkAAQADAAAAAAANAAgAAQADAAAAAAANAAcAAQADAAAAAAANAAYAAQADAAAAAAANAAUAAQADAAAAAAASAAYAAQADAAAAAAASAAcAAQADAAAAAAASAAQAAQADAAAAAAASAAMAAQADAAAAAAASAAIAAQADAAAAAAASAAEAAQADAAAAAAAOAAUAAQADAAQAAAAPAAYAAQAEAAQAAAAQAAcAAQAEAAQAAAARAAgAAQAEAAQAAAAQAAkAAQAEAAQAAAA=")
tile_set = ExtResource("2_k54gk")
[node name="Barrier" type="TileMapLayer" parent="TileMap"]
diff --git a/prefab/weapons/BeginnerStaff.tscn b/prefab/weapons/BeginnerStaff.tscn
index bde7a79..ef4e660 100644
--- a/prefab/weapons/BeginnerStaff.tscn
+++ b/prefab/weapons/BeginnerStaff.tscn
@@ -6,10 +6,10 @@
[ext_resource type="AudioStream" uid="uid://cak6chjjsu7wo" path="res://sounds/fire.wav" id="4_p12sk"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_obcq2"]
-size = Vector2(49, 5)
+size = Vector2(48, 5)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_14m1g"]
-size = Vector2(49, 5.25)
+size = Vector2(48, 5)
[node name="BeginnerStaff" type="RigidBody2D"]
collision_layer = 8
@@ -26,7 +26,7 @@ collision_layer = 8
collision_mask = 102
[node name="CollisionShape2D" type="CollisionShape2D" parent="DamageArea2D"]
-position = Vector2(25.5, 0.5)
+position = Vector2(26, 0.5)
shape = SubResource("RectangleShape2D_obcq2")
[node name="StaffOfTheUndead2" type="Sprite2D" parent="."]
@@ -34,7 +34,7 @@ position = Vector2(30, 0)
texture = ExtResource("3_rhhwp")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
-position = Vector2(25.5, 0.375)
+position = Vector2(26, 0.5)
shape = SubResource("RectangleShape2D_14m1g")
[node name="Marker2D" type="Marker2D" parent="."]
diff --git a/prefab/weapons/StaffNecromancy.tscn b/prefab/weapons/StaffNecromancy.tscn
index cd3fdd0..938ba57 100644
--- a/prefab/weapons/StaffNecromancy.tscn
+++ b/prefab/weapons/StaffNecromancy.tscn
@@ -23,6 +23,7 @@ _recoilStrength = 5
UniqueIcon = ExtResource("3_31iau")
[node name="DamageArea2D" type="Area2D" parent="."]
+visible = false
collision_layer = 8
collision_mask = 102
diff --git a/scripts/character/CharacterTemplate.cs b/scripts/character/CharacterTemplate.cs
index cffcc91..d228b9d 100644
--- a/scripts/character/CharacterTemplate.cs
+++ b/scripts/character/CharacterTemplate.cs
@@ -71,6 +71,7 @@ public partial class CharacterTemplate : CharacterBody2D
protected const float JumpVelocity = -240;
+ //How long it takes for an item to recover from a collision with the ground and platform after being thrown (in seconds)
//物品被扔出后多长时间恢复与地面和平台的碰撞(单位:秒)
private readonly double _itemCollisionRecoveryTime = 0.045f;
@@ -406,8 +407,7 @@ public partial class CharacterTemplate : CharacterBody2D
{
return false;
}
-
-
+
//The item store is marked null, or the item container is null.
//物品存放的标记为null,或者物品容器为null。
if (ItemMarker2D == null || ItemContainer == null)
@@ -437,14 +437,13 @@ public partial class CharacterTemplate : CharacterBody2D
//您可以在这里补充更多类型对象的捡起状态处理。
if (pickAbleItemNode2D is PickAbleTemplate pickAbleTemplate)
{
+ pickAbleTemplate.LoadingResource();
pickAbleTemplate.Owner = this;
pickAbleTemplate.Picked = true;
- pickAbleTemplate.SetCollisionMaskValue(Config.LayerNumber.Platform, false);
- pickAbleTemplate.SetCollisionMaskValue(Config.LayerNumber.Floor, false);
- pickAbleTemplate.SetCollisionMaskValue(Config.LayerNumber.Wall, false);
- LogCat.Log("item_pickup_disables_collision_damage", LogCat.LogLabel.ContactInjury);
+ pickAbleTemplate.Freeze = true;
+ pickAbleTemplate.DisabledCollisionShape2D();
pickAbleTemplate.EnableContactInjury = false;
- pickAbleTemplate.Sleeping = true;
+ LogCat.Log("item_pickup_disables_collision_damage", LogCat.LogLabel.ContactInjury);
}
if (pickAbleItemNode2D is ProjectileWeapon projectileWeapon)
@@ -805,10 +804,14 @@ public partial class CharacterTemplate : CharacterBody2D
{
return;
}
-
- pickAbleTemplate.Sleeping = false;
+ pickAbleTemplate.LoadingResource();
pickAbleTemplate.Owner = this;
pickAbleTemplate.Picked = false;
+ //Setting an initial speed of 0 for items here prevents the problem of throwing items too fast.
+ //在这里给物品设置一个为0的初始速度,可防止扔出物品时速度过快的问题。
+ pickAbleTemplate.LinearVelocity = Vector2.Zero;
+ pickAbleTemplate.EnabledCollisionShape2D();
+ pickAbleTemplate.Freeze = false;
var timer = new Timer();
pickAbleTemplate.AddChild(timer);
timer.WaitTime = _itemCollisionRecoveryTime;
@@ -820,14 +823,9 @@ public partial class CharacterTemplate : CharacterBody2D
//仍出武器时,我们不能立即恢复物理碰撞,立即恢复会导致武器更早的与地面和平台碰撞,阻止武器的飞行。
pickAbleTemplate.EnableContactInjury = true;
LogCat.Log("item_thrown_restore_collision_damage", LogCat.LogLabel.ContactInjury);
- pickAbleTemplate.SetCollisionMaskValue(Config.LayerNumber.Floor, true);
- pickAbleTemplate.SetCollisionMaskValue(Config.LayerNumber.Wall, true);
- pickAbleTemplate.SetCollisionMaskValue(Config.LayerNumber.Platform, true);
timer.QueueFree();
};
- //Setting an initial speed of 0 for items here prevents the problem of throwing items too fast.
- //在这里给物品设置一个为0的初始速度,可防止扔出物品时速度过快的问题。
- pickAbleTemplate.LinearVelocity = Vector2.Zero;
+
break;
}
diff --git a/scripts/pickable/PickAbleTemplate.cs b/scripts/pickable/PickAbleTemplate.cs
index 64c64d0..f542831 100644
--- a/scripts/pickable/PickAbleTemplate.cs
+++ b/scripts/pickable/PickAbleTemplate.cs
@@ -85,6 +85,12 @@ public partial class PickAbleTemplate : RigidBody2D, IItem
///
private Area2D? _damageArea2D;
+ ///
+ /// Damage collision shape
+ /// 伤害的碰撞形状
+ ///
+ private CollisionShape2D? _damageAreaCollisionShape2D;
+
///
/// Whether the item is currently picked up
/// 当前物品是否被捡起了
@@ -192,17 +198,38 @@ public partial class PickAbleTemplate : RigidBody2D, IItem
}
+ private CollisionShape2D? _collisionShape2D;
+
+
+ ///
+ /// Whether the resource has been loaded
+ /// 是否已加载过资源了
+ ///
+ private bool _loadedResource;
+
public override void _Ready()
{
+ LoadingResource();
+ }
+
+ public void LoadingResource()
+ {
+ if (_loadedResource)
+ {
+ return;
+ }
_damageArea2D = GetNode("DamageArea2D");
+ _damageAreaCollisionShape2D = _damageArea2D.GetNode("CollisionShape2D");
_damageArea2D.BodyEntered += OnBodyEnter;
_damageArea2D.BodyExited += OnBodyExited;
_tipLabel = GetNodeOrNull