using Godot; using System; using System.Linq; using Babushka.scripts.CSharp.Common.Fight; public partial class FightHappeningStateDebugger : Node { [Export] private Label _label; private FightWorld.FightHappeningData Data => FightWorld.Instance.fightHappeningData!; public void StateChange(FightHappening.FightState from, FightHappening.FightState to) { _label.Text += $"State changed from {from} to {to}\n"; switch (to) { case FightHappening.FightState.None: break; case FightHappening.FightState.FightStartAnim: break; case FightHappening.FightState.FightersEnter: break; case FightHappening.FightState.FightersEnterAnim: _label.Text += $" {Data.fightersEnterStaging!.enteringAllyFighters.Count} allies " + $"and {Data.fightersEnterStaging.enteringEnemyFighters.Count} enemies are entering the fight.\n"; break; case FightHappening.FightState.NextFighter: break; case FightHappening.FightState.StateCheck: break; case FightHappening.FightState.InputActionSelect: break; case FightHappening.FightState.ActionCheckDetails: break; case FightHappening.FightState.InputActionDetail: break; case FightHappening.FightState.ActionExecute: _label.Text += $" Executing action: {Data.actionStaging!.GetType()}\n"; break; case FightHappening.FightState.ActionAnim: break; case FightHappening.FightState.EnemyActionSelect: break; case FightHappening.FightState.PlayerWin: break; case FightHappening.FightState.EnemyWin: break; default: throw new ArgumentOutOfRangeException(nameof(to), to, null); } } }