private void OnAddDiceToCup(object sender, DiceEventArgs e) { _diceCup.Add(e.Dice); View.ShowDiceCupContent(_diceCup); }
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(); }
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; } } }
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(); }