TurnBasedStrategyCourse/Assets/Scripts/Actions/BaseAction.cs

21 lines
701 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();
}
}