private ICollection <IAction> GetAvailableActions(ChoosableActionTile tile, Player player) { List <IAction> availableActions = new List <IAction>(); foreach (IAction action in tile.Actions) { if (action is IBuyable) { if (((PropertyTile)tile).Owner == null && ((PropertyTile)tile).Price <= player.Money) { availableActions.Add(action); } continue; } else if (action is ISellable) { if (((PropertyTile)tile).Owner == player) { availableActions.Add(action); } continue; } availableActions.Add(action); } return(availableActions); }
private void ExecuteActionFromTile(IChoosableAction tile, Player player) { if (tile.Actions.Count > 1) { ChoosableActionTile actionTile = tile as ChoosableActionTile; ObjectValidator.NullObjectValidation(actionTile); ICollection <IAction> availableActions = this.GetAvailableActions(actionTile, player); Console.WriteLine("Choose Action"); Console.WriteLine(this.AvailableActionsToString(availableActions)); string actionString = Console.ReadLine(); IAction chosenAction = this.ChooseAction(availableActions, actionString); chosenAction.Execute(tile, player); if (player.IsBankrupt) { this.players.Remove(player); } } else { Console.WriteLine("Continue..."); Console.ReadLine(); tile.Actions.First().Execute(tile, player); if (player.IsBankrupt) { this.players.Remove(player); } } }
private ICollection<IAction> GetAvailableActions(ChoosableActionTile tile, Player player) { List<IAction> availableActions = new List<IAction>(); foreach(IAction action in tile.Actions) { if(action is IBuyable){ if(((PropertyTile)tile).Owner == null && ((PropertyTile)tile).Price <= player.Money) { availableActions.Add(action); } continue; }else if(action is ISellable) { if(((PropertyTile)tile).Owner == player) { availableActions.Add(action); } continue; } availableActions.Add(action); } return availableActions; }