Better action system

This commit is contained in:
ThomasCharester committed 2026-10-30 02:58:51 +03:00
1 parent 2bd71f8dc5
commit 71bb4c3b5b
110 files changed
+73523 -86288

No files matched your search

@@ -1,31 +1,32 @@
using Cysharp.Threading.Tasks;
using Code.OfficeGame.BattleMode.Actions.Deciders;
namespace Code.OfficeGame.BattleMode.Actions
{
public class BattleActionWait : BattleAction
{
private int _waitFrames;
public override void Tick(float tickDelta)
public override bool Tick(float tickDelta,
EntityProperties entity,
BattleActionDecisionResult battleActionDecisionResult,
BattleActionData battleActionData)
{
_waitFrames--;
if (_waitFrames <= 0) Finished = true;
}
public override async UniTask<BattleActionDecisionResult> DecideAction()
{
Finished = false;
var waitActionData = (WaitBattleActionData) battleActionData;
await UniTask.Yield();
_waitFrames = 120;
waitActionData.WaitFrames--;
if (waitActionData.WaitFrames <= 0) return true;
return new()
{
ResultCode = BattleActionDecisionResultCode.Decided,
FrameDuration = _waitFrames
};
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;
}
}
}