Skip to content

Commit a2b660c

Browse files
cornerloanLifeHckr
authored andcommitted
Added mechanics to fox and turtle (#214)
* cyberfox mechanic added * turtle has effects, might be OP? * Added dodge, dodge added to cyberfox Dodge: 50% chance to not take damage and remove a charge/stack
1 parent 1c33fda commit a2b660c

File tree

3 files changed

+54
-3
lines changed

3 files changed

+54
-3
lines changed

Classes/StatusEffects/StatusEffect.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,29 @@ public partial class StatusEffect : TextureRect, IBattleEvent
110110
)
111111
.SetTags(true);
112112

113+
private static readonly Action<BattleEventArgs, StatusEffect> DodgeEffect = (e, self) =>
114+
{
115+
if (e is BattleDirector.Harbinger.OnDamageInstanceArgs dmgArgs)
116+
{
117+
if (dmgArgs.Dmg.Target != self.Sufferer || dmgArgs.Dmg.Damage <= 0)
118+
return;
119+
if (StageProducer.GlobalRng.RandiRange(0, 1) == 0)
120+
return;
121+
122+
dmgArgs.Dmg.ModifyDamage(0, 0);
123+
self.DecCount();
124+
}
125+
};
126+
127+
public static readonly StatusEffect Dodge = new StatusEffect()
128+
.InitStatus(
129+
"Dodge",
130+
DodgeEffect,
131+
BattleEffectTrigger.OnDamageInstance,
132+
GD.Load<Texture2D>("res://Classes/StatusEffects/Assets/Status_Dodge.png")
133+
)
134+
.SetTags(true);
135+
113136
public static readonly Action<BattleEventArgs, StatusEffect> DisableEffect = (_, self) =>
114137
{
115138
self.DecCount();

Scenes/Puppets/Enemies/CyberFox/CyberFox.tscn

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
[gd_scene load_steps=7 format=3 uid="uid://2iq6mp0o5eri"]
1+
[gd_scene load_steps=8 format=3 uid="uid://2iq6mp0o5eri"]
22

33
[ext_resource type="Script" uid="uid://dnkjrr1f5up7x" path="res://Scenes/Puppets/Enemies/CyberFox/P_CyberFox.cs" id="1_e1x4p"]
44
[ext_resource type="PackedScene" uid="uid://cdoguwlxehbpg" path="res://Scenes/Puppets/StatusContainer.tscn" id="2_t5538"]
55
[ext_resource type="Texture2D" uid="uid://dy61pskhqgjoo" path="res://Scenes/Puppets/Enemies/CyberFox/Assets/CyberFox.png" id="3_e1x4p"]
66
[ext_resource type="PackedScene" uid="uid://bgomxovxs7sr8" path="res://Scenes/Puppets/HealthBar.tscn" id="4_lmj2w"]
7+
[ext_resource type="Script" uid="uid://3yclsl4kckx4" path="res://Scenes/Puppets/Enemies/CyberFox/Assets/GlitchScript.cs" id="5_a0uir"]
78

89
[sub_resource type="Gradient" id="Gradient_c7cx1"]
910
offsets = PackedFloat32Array(0.0227273, 1)
@@ -15,8 +16,9 @@ gradient = SubResource("Gradient_c7cx1")
1516
width = 100
1617
height = 18
1718

18-
[node name="EnemPuppet" type="Node2D" node_paths=PackedStringArray("HealthBar", "Sprite", "_statusContainer")]
19+
[node name="EnemPuppet" type="Node2D" node_paths=PackedStringArray("_effectNode", "HealthBar", "Sprite", "_statusContainer")]
1920
script = ExtResource("1_e1x4p")
21+
_effectNode = NodePath("GlitchNode")
2022
HealthBar = NodePath("ProgressBar")
2123
Sprite = NodePath("Sprite")
2224
_statusContainer = NodePath("StatusContainer")
@@ -26,7 +28,7 @@ offset_top = -6.0
2628
offset_bottom = 30.0
2729

2830
[node name="Sprite" type="Sprite2D" parent="."]
29-
position = Vector2(0, -12)
31+
position = Vector2(10, -12)
3032
texture = ExtResource("3_e1x4p")
3133

3234
[node name="ProgressBar" parent="." instance=ExtResource("4_lmj2w")]
@@ -35,3 +37,12 @@ offset_top = 32.0
3537
offset_right = 50.0
3638
offset_bottom = 52.0
3739
texture_progress = SubResource("GradientTexture2D_c0jk6")
40+
41+
[node name="GlitchNode" type="Node2D" parent="." node_paths=PackedStringArray("Sprite")]
42+
position = Vector2(10, 0)
43+
script = ExtResource("5_a0uir")
44+
Sprite = NodePath("Sprite2D")
45+
46+
[node name="Sprite2D" type="Sprite2D" parent="GlitchNode"]
47+
position = Vector2(0, -12)
48+
texture = ExtResource("3_e1x4p")

Scenes/Puppets/Enemies/CyberFox/P_CyberFox.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ public partial class P_CyberFox : EnemyPuppet
77
public static new readonly string LoadPath =
88
"res://Scenes/Puppets/Enemies/CyberFox/CyberFox.tscn";
99

10+
[Export]
11+
private GlitchScript _effectNode;
12+
1013
public override void _Ready()
1114
{
1215
MaxHealth = 130;
@@ -26,5 +29,19 @@ public override void _Ready()
2629
enemTween.SetEase(Tween.EaseType.InOut);
2730
enemTween.SetLoops();
2831
enemTween.Play();
32+
33+
BattleEvents = new EnemyEffect[]
34+
{
35+
new EnemyEffect(
36+
this,
37+
BattleEffectTrigger.OnLoop,
38+
1,
39+
(e, eff, val) =>
40+
{
41+
e.BD.AddStatus(Targetting.First, StatusEffect.Dodge, 1);
42+
_effectNode.TriggerGlitch(1f);
43+
}
44+
),
45+
};
2946
}
3047
}

0 commit comments

Comments
 (0)