Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }
Ejemplo n.º 3
0
Archivo: Engine.cs Proyecto: GAlex7/TA
        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;
        }