示例#1
0
        public override void OnDiceRolled()
        {
            if (RollNumber == 1)
            {
                RollDice(3);
                Dealer.PrivateOverheadMessage(MessageType.Regular, 0x35, 1153391, string.Format("{0}\t{1}\t{2}", GetRoll(0), GetRoll(1), GetRoll(2)), Player.NetState); // *rolls the dice; they land on ~1_FIRST~ ~2_SECOND~ ~3_THIRD~*
            }
            else
            {
                Roll.Add(Utility.RandomMinMax(1, 6));

                Dealer.PrivateOverheadMessage(MessageType.Regular, 0x35, RollNumber == 2 ? 1153633 : 1153634, RollNumber == 2 ? GetRoll(3).ToString() : GetRoll(4).ToString(), Player.NetState); // *rolls the fourth die: ~1_DIE4~*
            }

            if (RollNumber == 3)
            {
                int winnings = 0;

                if (IsFiveOfAKind())
                {
                    winnings = TotalBet * 80;
                }
                else if (IsFourOfAKind())
                {
                    winnings = TotalBet * 3;
                }
                else if (IsStraight())
                {
                    winnings = TotalBet * 2;
                }
                else if (IsFullHouse())
                {
                    winnings = (int)(TotalBet * 1.5);
                }
                else if (IsThreeOfAKind())
                {
                    winnings = TotalBet;
                }

                if (winnings > 0)
                {
                    Winner = true;
                    OnWin();

                    WinningTotal = winnings;
                    PointsSystem.CasinoData.AwardPoints(Player, winnings);

                    Dealer.PrivateOverheadMessage(MessageType.Regular, 0x35, 1153377, string.Format("{0}\t{1}", Player.Name, winnings.ToString(CultureInfo.GetCultureInfo("en-US"))), Player.NetState); // *pays out ~2_VAL~ chips to ~1_NAME~*
                }
                else
                {
                    Dealer.PrivateOverheadMessage(MessageType.Regular, 0x35, 1153376, string.Format("{0}\t{1}", Player.Name, TotalBet.ToString(CultureInfo.GetCultureInfo("en-US"))), Player.NetState); // *rakes in ~1_NAME~'s ~2_VAL~-chip bet*
                }
            }
            else
            {
                _RollTimer = Timer.DelayCall(TimeSpan.FromSeconds(30), () =>
                {
                    Stage = GameStage.Rolling;
                    BeginRollDice();
                });
            }

            Stage = GameStage.Results;
            RollNumber++;
        }