Files
Hasebe/Assets/Code/OfficeGame/BattleMode/Actions/BattleActionWait.cs
T
2026-11-02 01:46:10 +03:00

49 lines
1.7 KiB
C#

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;
}
}
}