TurnBasedStrategyCourse/Assets/Scripts/Actions/BaseAction.cs

23 lines
757 B
C#

using System;
using System.Collections.Generic;
using Grid;
using UnityEngine;
namespace Actions {
public abstract class BaseAction : MonoBehaviour {
protected bool IsActive;
protected Action OnActionComplete;
protected Unit Unit;
protected virtual void Awake() => Unit = GetComponent<Unit>();
public abstract string GetActionName();
public abstract void TakeAction(GridPosition gridPosition, Action onActionComplete);
public virtual bool IsValidActionGridPosition(GridPosition gridPosition) => GetValidActionGridPositionList().Contains(gridPosition);
public abstract List<GridPosition> GetValidActionGridPositionList();
public virtual int GetActionPointsCost() => 1;
}
}