using Code.Infrastructure.Utils; using Code.OfficeGame.BattleMode.Actions.Deciders; using UnityEngine; namespace Code.OfficeGame.BattleMode.Actions { public class BattleActionWait : BattleAction { private int EntryStateHash => Animator.StringToHash("WalkBlend"); public override bool Tick(float tickDelta, EntityProperties entity, BattleActionDecisionResult battleActionDecisionResult, BattleActionData battleActionData) { if (battleActionData is not WaitBattleActionData waitActionData) return true; if (!waitActionData.StartedWaiting) { waitActionData.StartedWaiting = true; var entityAnimator = entity.animator; entityAnimator.Play(EntryStateHash, 0, 0f); // Создать None State и кинуть эту штуку туда entityAnimator.Update(0f); // TODO С нормальными анимациями не нужен будет рут моушен√ entityAnimator.ResetAnimatorPosition(); } waitActionData.WaitFrames--; if (waitActionData.WaitFrames <= 0) return true; return false; } public override BattleActionType ActionType => BattleActionType.Wait; public override DeciderType DeciderType => DeciderType.AsIs; public override BattleActionData MountAndGetFrames(EntityProperties entity, BattleActionDecisionResult result) { WaitBattleActionData actionData = new() { WaitFrames = 120 }; return actionData; } } }