示例#1
0
文件: Game.cs 项目: AztecPyramid/Labs
 public Game(IGameDataProvider data)
 {
     this._game = data.Data;
     _bank = new Bank(_game.Tables["Properties"]);
     _rules = new Rules();
     _players = new Hashtable();
 }
示例#2
0
        public GameMessage ProcessConsequence(GameMessage request, Player currentPlayer, Bank bank)
        {
            GameMessage response = new GameMessage();
            response.opCode = GameEnum.success;

            switch (request.opCode)
            {
                case GameEnum.chance:
                    response = ProcessChance((ChancesEnum)request.chanceId, currentPlayer);
                    response = ProcessConsequence(response, currentPlayer, bank);
                    break;
                case GameEnum.communityChest:
                    // To Do
                    //ProcessCommunityChestRule
                    break;
                case GameEnum.purchaseProperty:
                    response.opCode = bank.PurchaseProperty(request.propertyId, currentPlayer);
                    break;
                case GameEnum.purchaseHouse:
                    break;
                case GameEnum.purchaseHotel:
                    break;
                case GameEnum.passGo:
                    break;
                case GameEnum.pay:
                    response.opCode = bank.Debit(request.amount, currentPlayer);
                    break;
                case GameEnum.collect:
                    response.opCode = bank.Credit(request.amount, currentPlayer);
                    break;
                case GameEnum.mortgageProperty:
                    break;
                case GameEnum.goToJail:
                    break;
                case GameEnum.sellHotel:
                    break;
                case GameEnum.sellHouse:
                    break;
                case GameEnum.payRent:
                    break;
                default:
                    //option to buy property, or pay rent
                    break;
            }
            return response;
        }