public override void executeUpdate(Object sender, EventArgs e) { if (sender is Dice) { // Dice dice = (Dice)sender; theBoard.addEventText(theBoard.currentPlayer.getName() + " rolled a " + dice.getRollValue()); if (dice.getRollValue() == 7) { ////Thief event!! ////Go through each player to see if they loose thier resources ////Once the thief event has successfully run, we can terminate this event. //MessageBox.Show(theBoard.currentPlayer.getName() + " rolled a 7. The thief has been activated!"); //RobberStealEvt evt = new RobberStealEvt(); //disableEventObjects(); //evt.beginExecution(theBoard, this); } else { //Players get resources foreach (Tile tile in theBoard.boardTiles) { if (tile is TerrainTile) { TerrainTile tt = (TerrainTile)tile; if (tt.getGatherChance() == dice.getRollValue()) { if (!tt.isGatherBlocked()) { //All players here get the resource. foreach (Settlement set in tt.adjascentSettlements) { if (set.getOwningPlayer() != null) { ResourceCard rc = Board.TheBank.giveOutResource(tt.getResourceType()); if (rc != null) { set.getOwningPlayer().giveResource(rc); if (set.city()) { //Give an extra for cities set.getOwningPlayer().giveResource(rc); } } else { theBoard.addEventText("Not enough " + Board.RESOURCE_NAMES[(int)tt.getResourceType()] + " to give to " + set.getOwningPlayer().getName()); } } } } } } } } //Event resolved endExecution(); } }