/// <summary> /// Performs the specified action /// </summary> /// <param name="action">The PlayerAction to perform</param> public void PerformAction(PlayerAction action) { if (!CanPerformAction(action)) { throw new PlayerActionNotAllowedException(); } CurrentTile.PerformAction(this, action); OnPlayerAction?.Invoke(this); }