diff options
Diffstat (limited to 'Effects')
-rw-r--r-- | Effects/BurnEffect.tscn | 2 | ||||
-rw-r--r-- | Effects/Effect.gd | 2 | ||||
-rw-r--r-- | Effects/Effect.gd.uid | 1 | ||||
-rw-r--r-- | Effects/PoisonEffect.tscn | 6 | ||||
-rw-r--r-- | Effects/SlowEffect.gd | 4 | ||||
-rw-r--r-- | Effects/SlowEffect.gd.uid | 1 | ||||
-rw-r--r-- | Effects/SlowEffect.tscn | 2 | ||||
-rw-r--r-- | Effects/burn_effect.gd | 7 | ||||
-rw-r--r-- | Effects/burn_effect.gd.uid | 1 | ||||
-rw-r--r-- | Effects/poison_effect.gd | 31 | ||||
-rw-r--r-- | Effects/poison_effect.gd.uid | 1 |
11 files changed, 49 insertions, 9 deletions
diff --git a/Effects/BurnEffect.tscn b/Effects/BurnEffect.tscn index a8e1ed0..230ba8f 100644 --- a/Effects/BurnEffect.tscn +++ b/Effects/BurnEffect.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://dmj3et5exg4s5"] -[ext_resource type="Script" path="res://Effects/burn_effect.gd" id="1_8my4q"] +[ext_resource type="Script" uid="uid://cux7gicjhvwjj" path="res://Effects/burn_effect.gd" id="1_8my4q"] [node name="BurnEffect" type="Node2D"] script = ExtResource("1_8my4q") diff --git a/Effects/Effect.gd b/Effects/Effect.gd index f1662a7..0c74c2b 100644 --- a/Effects/Effect.gd +++ b/Effects/Effect.gd @@ -11,6 +11,8 @@ var DurationTimer: Timer var tick: float = 0.0 var TickTimer: Timer +var is_stackable := false + func _ready(): pass diff --git a/Effects/Effect.gd.uid b/Effects/Effect.gd.uid new file mode 100644 index 0000000..ab7a56b --- /dev/null +++ b/Effects/Effect.gd.uid @@ -0,0 +1 @@ +uid://cfhsuvinjr561 diff --git a/Effects/PoisonEffect.tscn b/Effects/PoisonEffect.tscn new file mode 100644 index 0000000..4dc6a31 --- /dev/null +++ b/Effects/PoisonEffect.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://bkg0ehkbm3b7n"] + +[ext_resource type="Script" uid="uid://brkb8283qfppx" path="res://Effects/poison_effect.gd" id="1_tyodc"] + +[node name="PoisonEffect" type="Node2D"] +script = ExtResource("1_tyodc") diff --git a/Effects/SlowEffect.gd b/Effects/SlowEffect.gd index 622a97e..fd33fe6 100644 --- a/Effects/SlowEffect.gd +++ b/Effects/SlowEffect.gd @@ -24,10 +24,10 @@ func _ready(): func add(): - unit.sprite.self_modulate = Color(0, 0, 1) + unit.sprite.modulate += Color(0, 0, 1, 0) unit.speed -= unit.base_speed * magnitude func remove(): - unit.sprite.self_modulate = Color(1, 1, 1) + unit.sprite.modulate -= Color(0, 0, 1, 0) unit.speed += unit.base_speed * magnitude diff --git a/Effects/SlowEffect.gd.uid b/Effects/SlowEffect.gd.uid new file mode 100644 index 0000000..86f984e --- /dev/null +++ b/Effects/SlowEffect.gd.uid @@ -0,0 +1 @@ +uid://y6uskr33vcy1 diff --git a/Effects/SlowEffect.tscn b/Effects/SlowEffect.tscn index ceef7b4..5b2b8da 100644 --- a/Effects/SlowEffect.tscn +++ b/Effects/SlowEffect.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://chay02kqn73gv"] -[ext_resource type="Script" path="res://Effects/SlowEffect.gd" id="1_8smja"] +[ext_resource type="Script" uid="uid://y6uskr33vcy1" path="res://Effects/SlowEffect.gd" id="1_8smja"] [node name="SlowEffect" type="Node2D"] script = ExtResource("1_8smja") diff --git a/Effects/burn_effect.gd b/Effects/burn_effect.gd index 2e8bf7d..fe62f37 100644 --- a/Effects/burn_effect.gd +++ b/Effects/burn_effect.gd @@ -6,8 +6,6 @@ extends Effect var level := 1 var power := 0.0 -var base_modulate: Color - func _ready(): power = 5.0 + (level - 1) @@ -16,9 +14,8 @@ func _ready(): set_tick(1.0) tick_finished.connect(func(): - base_modulate = unit.sprite.self_modulate unit.set_hp(unit.hp - power) - unit.sprite.self_modulate = Color(1, 0, 0) + unit.sprite.modulate += Color(1, 0, 0, 0) await get_tree().create_timer(0.1).timeout - unit.sprite.self_modulate = base_modulate + unit.sprite.modulate -= Color(1, 0, 0, 0) ) diff --git a/Effects/burn_effect.gd.uid b/Effects/burn_effect.gd.uid new file mode 100644 index 0000000..5460c71 --- /dev/null +++ b/Effects/burn_effect.gd.uid @@ -0,0 +1 @@ +uid://cux7gicjhvwjj diff --git a/Effects/poison_effect.gd b/Effects/poison_effect.gd new file mode 100644 index 0000000..b04786d --- /dev/null +++ b/Effects/poison_effect.gd @@ -0,0 +1,31 @@ +extends Effect + + +@onready var unit: Unit = get_parent() + +var level := 1 +var power := 0.0 + + +func _init() -> void: + is_stackable = true + + +func _ready(): + power = 1.0 + (level - 1) + + set_duration(2.0 + ((level - 1) * 0.1)) + + set_tick(1.0) + tick_finished.connect(func(): + unit.set_hp(unit.hp - power) + await get_tree().create_timer(0.1).timeout + ) + + +func add(): + unit.sprite.modulate += Color(0, 1, 0, 0) + + +func remove(): + unit.sprite.modulate -= Color(0, 1, 0, 0) diff --git a/Effects/poison_effect.gd.uid b/Effects/poison_effect.gd.uid new file mode 100644 index 0000000..fd2c76e --- /dev/null +++ b/Effects/poison_effect.gd.uid @@ -0,0 +1 @@ +uid://brkb8283qfppx |