From f4d8ed87e2ef2ea7c4e30dc04320368995f8a7af Mon Sep 17 00:00:00 2001 From: jonathan Date: Wed, 1 Oct 2025 01:42:29 +0200 Subject: [PATCH] Added blob attack action --- scenes/Babushka_scene_fight_happening.tscn | 2 +- .../Common/Fight/Actions/BlobAttackAction.cs | 36 +++++++++++++++++++ scripts/CSharp/Common/Fight/FightWorld.cs | 3 +- 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 scripts/CSharp/Common/Fight/Actions/BlobAttackAction.cs diff --git a/scenes/Babushka_scene_fight_happening.tscn b/scenes/Babushka_scene_fight_happening.tscn index 8749350..f7d0bed 100644 --- a/scenes/Babushka_scene_fight_happening.tscn +++ b/scenes/Babushka_scene_fight_happening.tscn @@ -36,7 +36,7 @@ _allyFighters = NodePath("AllyFighters") _enemyFighters = NodePath("EnemyFighters") _blobFighterVisual = ExtResource("4_vp8s0") _vesnaFighterVisual = ExtResource("4_qo0gi") -_positionDistanceFromCenter = PackedFloat32Array(200, 400, 600) +_positionDistanceFromCenter = PackedFloat32Array(300, 550, 800) [node name="AllyFighters" type="Node2D" parent="FightVisuals"] diff --git a/scripts/CSharp/Common/Fight/Actions/BlobAttackAction.cs b/scripts/CSharp/Common/Fight/Actions/BlobAttackAction.cs new file mode 100644 index 0000000..2fcbb73 --- /dev/null +++ b/scripts/CSharp/Common/Fight/Actions/BlobAttackAction.cs @@ -0,0 +1,36 @@ +using System; +using System.Threading.Tasks; +using Babushka.scripts.CSharp.Common.Util; + +namespace Babushka.scripts.CSharp.Common.Fight.Actions; + +public class BlobAttackAction : FighterAction +{ + public override Variant> GetAnimationEnd() + { + return 1; + } + + public override bool NextDetail() + { + return false; + } + + public override void ExecuteAction() + { + FightWorld.Instance.allyFighters.vesnaFighter.AddHealth(-3); + } + + public override async Task AnimateAction(AllFightersVisual allFightersVisual) + { + var currentFighter = HappeningData.fighterStack.Current; + var targetFighter = FightWorld.Instance.allyFighters.vesnaFighter; + + var currentFighterVisual = allFightersVisual.GetVisualForFighter(currentFighter); + var targetFighterVisual = allFightersVisual.GetVisualForFighter(targetFighter); + + await currentFighterVisual.AnimatePosToTarget(targetFighterVisual); + _ = targetFighterVisual.AnimateHit(); + await currentFighterVisual.AnimatePosToBase(); + } +} \ No newline at end of file diff --git a/scripts/CSharp/Common/Fight/FightWorld.cs b/scripts/CSharp/Common/Fight/FightWorld.cs index ea49c34..0596ff7 100644 --- a/scripts/CSharp/Common/Fight/FightWorld.cs +++ b/scripts/CSharp/Common/Fight/FightWorld.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Babushka.scripts.CSharp.Common.Fight.Actions; using Babushka.scripts.CSharp.Common.Util; using Godot; @@ -180,7 +181,7 @@ public partial class FightWorld : Node maxHealth = 12, availableActions = [ - new FighterAction.Skip() + new BlobAttackAction() ] };