public static void ChangeActivePlayer(GameState State) { if (State.CurrentPhase != TurnState.EndPhase && State.CurrentPhase != TurnState.BeginPhase) { bool isGameFinished = false; GamePlayer GameOverTest = State.ReturnPlayerByOrder(State.ActiveGamePlayer); if (GameOverTest.Cash < 0) { RemovePlayerFromGame(GameOverTest); } bool validPlayer = false; byte newOrder = 0; GamePlayer playerToChange; while (!validPlayer) { newOrder = 0; if (State.ActiveGamePlayer < State.PlayerList.Count - 1) { newOrder = (byte)(State.ActiveGamePlayer + 1); } //State.ActiveGamePlayer = newOrder; GamePlayer temp = State.ReturnPlayerByOrder(newOrder); if (temp.IsPlaying) { validPlayer = true; } } playerToChange = State.ReturnPlayerByOrder(newOrder); if (playerToChange.OrderNumber == State.ActiveGamePlayer) { isGameFinished = true; } State.ActiveGamePlayer = playerToChange.OrderNumber; State.ActivePlayer = playerToChange.MyPlayer; State.CurrentPhase = TurnState.BeginPhase; State.TurnNumber++; State.DieCast = false; State.EnableBuy = false; State.PropertyTradeRequested = 0; State.PlayerTradeRequested = null; if (playerToChange.PrisonTime >= 3) { PrisonRelease(playerToChange); } State.EventNotification = playerToChange.MyPlayer.PlayerName + " is aan de beurt"; if (isGameFinished) { GameFinished(State); } } }
public static void TradeRejected(GameState State) { State.PlayerTradeRequested = null; State.PropertyTradeRequested = 0; State.PropertyTradeDirection = Direction.nulled; State.CurrentPhase = TurnState.WaitPhase; State.PropertyTradeValue = 0; State.EventNotification = State.ReturnPlayerByOrder(State.ActiveGamePlayer).MyPlayer.PlayerName + " weigert te handelen met " + State.ReturnPlayerByBasePlayer(State.PlayerTradeRequested).MyPlayer.PlayerName; }
public static void BuyPropertyFromBank(GameState State) { if (State.EnableBuy) { GamePlayer currentActive = State.ReturnPlayerByOrder(State.ActiveGamePlayer); var house = (from h in State.LocalCardData where h.Position == currentActive.Location select h).FirstOrDefault(); PropertyOwnershipChange(house.ID, State, currentActive); currentActive.Cash -= house.BuyCost; State.CurrentPhase = TurnState.WaitPhase; } }
public static void TradeAccepted(GameState State) { GamePlayer requester = State.ReturnPlayerByOrder(State.ActiveGamePlayer); GamePlayer accepter = State.ReturnPlayerByBasePlayer(State.PlayerTradeRequested); if (State.PropertyTradeDirection == Direction.indir) { PropertyOwnershipChange(State.PropertyTradeRequested, State, requester, accepter); } else { PropertyOwnershipChange(State.PropertyTradeRequested, State, accepter, requester); } State.PlayerTradeRequested = null; State.PropertyTradeRequested = 0; State.PropertyTradeDirection = Direction.nulled; State.CurrentPhase = TurnState.WaitPhase; }
public static void ChangeActivePlayer(GameState State) { byte newOrder = 0; if (State.ActiveGamePlayer < State.PlayerList.Count - 1) { newOrder = (byte)(State.ActiveGamePlayer + 1); } GamePlayer playerToChange = State.ReturnPlayerByOrder(newOrder); State.ActiveGamePlayer = playerToChange.OrderNumber; State.ActivePlayer = playerToChange.MyPlayer; State.CurrentPhase = TurnState.BeginPhase; State.TurnNumber++; State.DieCast = false; State.EnableBuy = false; State.PropertyTradeRequested = 0; State.PlayerTradeRequested = null; }
public static void TradeRequested(GameState State, Player P, byte propID, bool propdir, int tvalue) { if (State.PlayerTradeRequested == null && State.CurrentPhase != TurnState.TradePhase) { State.CurrentPhase = TurnState.TradePhase; State.PlayerTradeRequested = P; State.PropertyTradeRequested = propID; State.PropertyTradeValue = tvalue; if (propdir) { State.PropertyTradeDirection = Direction.indir; } else { State.PropertyTradeDirection = Direction.outdir; } State.EventNotification = State.ReturnPlayerByOrder(State.ActiveGamePlayer).MyPlayer.PlayerName + " wilt handelen met " + P.PlayerName + " over " + State.LocalCardData[propID].Name + " voor " + tvalue.ToString(); } }
public static void CardEffect(int localID, GameState State, GamePlayer gPlayer) { var house = (from h in State.LocalCardData where h.ID == localID select h).FirstOrDefault(); if (State.IsBought[localID] == false) { State.EnableBuy = true; State.CurrentPhase = TurnState.BuyPhase; } else { GamePlayer owner = State.ReturnPlayerByOrder((byte)State.Ownership[localID]); if (owner != gPlayer) { PayRent(house, gPlayer, owner); } State.CurrentPhase = TurnState.WaitPhase; } }
public static void BuyPropertyFromBank(GameState State) { if (State.EnableBuy) { GamePlayer currentActive = State.ReturnPlayerByOrder(State.ActiveGamePlayer); var house = (from h in State.LocalCardData where h.Position == currentActive.Location select h).FirstOrDefault(); if (!State.IsBought[house.ID]) { State.EventNotification = currentActive.MyPlayer.PlayerName + " koopt " + house.Name + " van de bank voor " + house.BuyCost.ToString(); PropertyOwnershipChange(house.ID, State, currentActive); currentActive.Cash -= house.BuyCost; } else { State.EventNotification = house.Name + " is al het eigendom van " + State.ReturnPlayerByOrder((byte)State.Ownership[house.ID]).MyPlayer.PlayerName; } State.CurrentPhase = TurnState.WaitPhase; } }
public static void TradeAccepted(GameState State) { GamePlayer requester = State.ReturnPlayerByOrder(State.ActiveGamePlayer); GamePlayer accepter = State.ReturnPlayerByBasePlayer(State.PlayerTradeRequested); if (State.PropertyTradeDirection == Direction.indir) { PropertyOwnershipChange(State.PropertyTradeRequested, State, requester, accepter); requester.Cash -= State.PropertyTradeValue; accepter.Cash += State.PropertyTradeValue; } else { PropertyOwnershipChange(State.PropertyTradeRequested, State, accepter, requester); accepter.Cash -= State.PropertyTradeValue; requester.Cash += State.PropertyTradeValue; } State.EventNotification = requester.MyPlayer.PlayerName + " verhandelt " + State.LocalCardData[State.PropertyTradeRequested].Name + " met " + accepter.MyPlayer.PlayerName; State.PlayerTradeRequested = null; State.PropertyTradeRequested = 0; State.PropertyTradeDirection = Direction.nulled; State.CurrentPhase = TurnState.WaitPhase; State.PropertyTradeValue = 0; }