If you want the game more like XCOM where shooting first uses up all the unit’s action points then you can add this code in the Unit script.
public bool TrySpendActionPointsToTakeAction(BaseAction baseAction)
{
if (CanSpendActionPointsToTakeAction(baseAction))
{
SpendActionPoints(baseAction.GetActionPointsCost());
if (baseAction.GetActionName() == "Shoot") //New code here
{
actionPoints = 0;
OnAnyActionPointsChanged?.Invoke(this, EventArgs.Empty);
}
return true;
} else
{
return false;
}
}