effects system

This commit is contained in:
Rendo 2025-08-07 00:11:05 +05:00
commit cc1fdd44a4
4 changed files with 30 additions and 4 deletions

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=13 format=3 uid="uid://twqkevpn0q1a"]
[gd_scene load_steps=14 format=3 uid="uid://twqkevpn0q1a"]
[ext_resource type="Texture2D" uid="uid://b0gyyb6xwfjex" path="res://base/assets/sprites/test_enemy/0000.png" id="1_7qny8"]
[ext_resource type="Script" uid="uid://j0w37fjl13ox" path="res://base/scripts/enemies/directional_sprite3d.gd" id="2_hmq60"]
@ -10,6 +10,7 @@
[ext_resource type="Texture2D" uid="uid://bu54h8g5r50qp" path="res://base/assets/sprites/test_enemy/0006.png" id="8_snoby"]
[ext_resource type="Texture2D" uid="uid://c57drlhnuicu5" path="res://base/assets/sprites/test_enemy/0007.png" id="9_83myg"]
[ext_resource type="Script" uid="uid://biqn05eyrhdya" path="res://base/scripts/enemies/floor_mover.gd" id="10_rvsun"]
[ext_resource type="Script" uid="uid://c8ngo2rpuroum" path="res://base/scripts/effects_system/effect_handler.gd" id="11_ajcop"]
[sub_resource type="GDScript" id="GDScript_rvsun"]
resource_name = "temp"
@ -60,3 +61,8 @@ script = SubResource("GDScript_rvsun")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.766538, 0)
shape = SubResource("CapsuleShape3D_rvsun")
[node name="Entity" type="Node" parent="."]
[node name="EffectHandler" type="Node" parent="."]
script = ExtResource("11_ajcop")

View file

@ -0,0 +1,21 @@
extends Node
signal effect_added(effect : StringName)
signal effect_removed(effect : StringName)
## Add effect to
func add_effect(effectScene : PackedScene):
var effect = effectScene.instantiate()
effect.owner = owner
if get_node(effect.name) != null:
remove_effect(effect.name)
add_child(effect)
effect_added.emit(effect.name)
func remove_effect(effect : StringName):
var path = NodePath(effect)
if get_node(path) == null:
printerr("Effect does not exist: ", effect)
return
effect_removed.emit(effect)
get_node(path).queue_free()

View file

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

View file

@ -1,4 +1,4 @@
extends Node3D
extends Node
## Base class for all hp-based objects
class_name Entity
@ -68,8 +68,6 @@ func kill(source : Entity):
context.target = self
killed.emit(context)
GameSignalBus.entity_killed.emit(context)
deconstruct()
## Method used to properly deconstruct entity