public void RollDice(PlayerMobile pm) { if (CurrentRoll == null || RollIndex == 0) { CurrentRoll = Roll(); } else { CurrentRoll.Reroll(); } RollIndex++; string roll = RollIndex == 1 ? "1st" : RollIndex == 2 ? "2nd" : "final"; bool isYahtzee = PlayerEntry.ValidateTypeFromRoll(CurrentRoll, ScoreType.Yahtzee); Players.ForEach(e => { if (pm == e.Player) { if (isYahtzee) { YahtzeeGame.SendMessage(e.Player, "You have rolled a Yahtzee!!!"); } else { YahtzeeGame.SendMessage(e.Player, String.Format("You have made your {0} roll.", roll)); } } else { if (isYahtzee) { YahtzeeGame.SendMessage(e.Player, String.Format("{0} has rolled a Yahtzee!!!", e.Player.Name)); } else { YahtzeeGame.SendMessage(e.Player, String.Format("{0} has made thier {1} roll.", e.Player.Name, roll)); } } }); if (Board != null) { if (isYahtzee) { Effects.PlaySound(Board.GetWorldLocation(), Board.Map, 0x3D); } else { DoRollEffects(pm); } } Timer.DelayCall(TimeSpan.FromSeconds(.25), SendGumps); }
public void CompleteTurn() { if (CurrentRoll != null) { CurrentRoll.Clear(); } if (UsingJoker) { UsingJoker = false; } if (TurnIndex == Players.Count - 1) { Round++; TurnIndex = 0; } else { TurnIndex++; } if (Round >= Rounds) { EndGame(); return; } PlayerEntry next = Players[TurnIndex]; if (Players.Count > 1) { Players.ForEach(e => { if (e.Player == next.Player) { YahtzeeGame.SendMessage(e.Player, "It's your turn!", 75); } else { if (next.Player.NetState == null) { YahtzeeGame.SendMessage(e.Player, String.Format("It is now {0}'s turn, however they are no longer online!", next.Player.Name), 75); } else { YahtzeeGame.SendMessage(e.Player, String.Format("It is now {0}'s turn!", next.Player.Name), 75); } } }); } RollIndex = 0; Timer.DelayCall(TimeSpan.FromSeconds(.5), SendGumps); }
public void Serialize(GenericWriter writer) { writer.Write(0); writer.Write(TurnIndex); writer.Write(RollIndex); writer.Write(Round); writer.Write(UsingJoker); if (CurrentRoll == null) { CurrentRoll = Server.Engines.Yahtzee.Roll.Zero; } CurrentRoll.Serialize(writer); writer.Write(Players.Count); Players.ForEach(e => e.Serialize(writer)); }