32 lines
928 B
C#
32 lines
928 B
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Grid;
|
|
using UnityEngine;
|
|
|
|
namespace Actions {
|
|
public class SpinAction : BaseAction {
|
|
private float totalSpinAmount;
|
|
|
|
private void Update() {
|
|
if (!IsActive) return;
|
|
|
|
float spinAddAmount = 360f * Time.deltaTime;
|
|
transform.eulerAngles += new Vector3(0, spinAddAmount, 0);
|
|
totalSpinAmount += spinAddAmount;
|
|
|
|
if (!(totalSpinAmount >= 360f)) return;
|
|
ActionComplete();
|
|
}
|
|
|
|
public override void TakeAction(GridPosition gridPosition, Action onSpinComplete) {
|
|
totalSpinAmount = 0f;
|
|
ActionStart(onSpinComplete);
|
|
}
|
|
|
|
public override List<GridPosition> GetValidActionGridPositionList() => new() { Unit.GridPosition };
|
|
|
|
public override string GetActionName() => "Spin";
|
|
|
|
public override int GetActionPointsCost() => 2;
|
|
}
|
|
} |