Exemplo n.º 1
0
 private void OnAddDiceToCup(object sender, DiceEventArgs e)
 {
     _diceCup.Add(e.Dice);
     View.ShowDiceCupContent(_diceCup);
 }
Exemplo n.º 2
0
        private void ChangedBlackDiceSide(object sender, DiceEventArgs eventArgs)
        {
            Contract.Requires(CurrentState == State.WaitForDiceChoice);
            Contract.Requires(gameState.CurrentAttack.DiceForAttack[eventArgs.DiceId].Color == EDice.B);
            Contract.Requires(gameState.CurrentAttack.DiceForAttack[eventArgs.DiceId].SideIndex != 0 &&
                             (gameState.CurrentAttack.DiceForAttack[eventArgs.DiceId].SideIndex < 4 ||
                              gameState.CurrentAttack.DiceForAttack[eventArgs.DiceId].SideIndex > 5));
            Contract.Requires(gameState.CurrentPlayer == eventArgs.SenderId);
            Contract.Ensures(CurrentState == Contract.OldValue(CurrentState));
            Contract.Ensures(gameState.CurrentAttack.DiceForAttack[eventArgs.DiceId].SideIndex ==
                            (Contract.OldValue(gameState.CurrentAttack.DiceForAttack[eventArgs.DiceId].SideIndex) < 7 ? 7 : 6));

            gameState.CurrentAttack.DiceForAttack[eventArgs.DiceId].SideIndex = eventArgs.SideId;
            StateChanged();
        }
Exemplo n.º 3
0
        private void DiceClicked(object sender, DiceEventArgs eventArgs)
        {
            Contract.Requires(CurrentState == State.WaitForDiceChoice);
            Contract.Ensures(CurrentState == Contract.OldValue(CurrentState));

            // Do not act on dice click if it's not the players turn.
            if (!HasTurn())
            {
                return;
            }

            Dice dice = gameState.CurrentAttack.DiceForAttack[eventArgs.DiceId];
            if (dice.Color == EDice.B)
            {
                switch (dice.SideIndex)
                {
                    case 1:
                    case 2:
                    case 3:
                    case 6:
                        eventManager.QueueEvent(EventType.ChangedBlackDiceSide, new DiceEventArgs(eventArgs.DiceId, 7));
                        break;
                    case 7:
                        eventManager.QueueEvent(EventType.ChangedBlackDiceSide, new DiceEventArgs(eventArgs.DiceId, 6));
                        break;
                }
            }
        }
Exemplo n.º 4
0
        private void BoughtDice(object sender, DiceEventArgs eventArgs)
        {
            Contract.Requires(CurrentState == State.WaitForDiceChoice);
            Contract.Requires(gameState.CurrentAttack.DiceForAttack.Count(d => d.Color == EDice.B) < 5);
            Contract.Ensures(CurrentState == Contract.OldValue(CurrentState));

            Dice dice = FullModel.GetDice(EDice.B);
            dice.SideIndex = eventArgs.SideId;
            gameState.CurrentAttack.DiceForAttack.Add(dice);
            Player.Instance.HeroParty.Heroes[gameState.CurrentPlayer].RemoveFatigue(1);

            stateMachine.PlaceStates(State.BuyExtraDice, State.WaitForDiceChoice);
            stateMachine.ChangeToNextState();
            stateMachine.ChangeToNextState();
        }