示例#1
0
        public TurboSlotGump(TurboSlot Slot, int[] Symbols)
            : base(25, 25)
        {
            m_Slot = Slot;
            m_Symbols = Symbols;

            if (m_Slot == null)
                return; // Something is obviously wrong!
            int dispy = m_Symbols[13];
            int backgroundcolor = m_Symbols[14];
            int titlecolor = m_Symbols[15];
            int titlestyle = m_Symbols[16];
            int headingcolor1 = m_Symbols[17];
            int headingcolor2 = m_Symbols[18];
            int paycolor = m_Symbols[19];
            int slotart = m_Symbols[20];
            decimal payout = 0;
            string[] Jackpot = { null, null };
            bool progressive = false;
            int ProgressiveHue = 0;
            int PayoutHue = 37;
            int lastjackpotstarty = 85;
            int progstarty = 65;
            int symbolxoffset = 0;
            string text = null;
            int tilecolor = 9304;
            if ((SlotThemeType)m_Slot.SlotTheme == SlotThemeType.GruesomeGambling || (SlotThemeType)m_Slot.SlotTheme == SlotThemeType.StatScrolls)
                tilecolor = 9204;
            else if ((SlotThemeType)m_Slot.SlotTheme == SlotThemeType.Holiday1)
                tilecolor = 0xBBC;
            else if ((SlotThemeType)m_Slot.SlotTheme == SlotThemeType.FarmerFaceoff || (SlotThemeType)m_Slot.SlotTheme == SlotThemeType.OffToTheRaces
                                    || (SlotThemeType)m_Slot.SlotTheme == SlotThemeType.TrophyHunter)
                tilecolor = 2524;
            else if ((SlotThemeType)m_Slot.SlotTheme == SlotThemeType.PowerScrolls)
            {
                tilecolor = 9354;
                symbolxoffset = 16;
            }

            if (backgroundcolor == 0)
                text = String.Format("<body bgcolor=\"black\"><basefont SIZE={0} COLOR=\"#{1:x6}\"><CENTER>{2}</CENTER></basefont></body>", titlestyle, titlecolor, m_Slot.Name);
            else if (backgroundcolor < 0)
                text = String.Format("<basefont SIZE={0} COLOR=\"#{1:x6}\"><CENTER>{2}</CENTER></basefont>", titlestyle, titlecolor, m_Slot.Name);
            else
                text = String.Format("<body bgcolor=\"#{0:x6}\"><basefont SIZE={1} COLOR=\"#{2:x6}\"><CENTER>{3}</CENTER></basefont></body>", backgroundcolor, titlestyle, titlecolor, m_Slot.Name);
            if ((m_Slot.ProgSlotMaster != null && !m_Slot.ProgSlotMaster.Deleted && ((TurboSlot)m_Slot.ProgSlotMaster).ProgIsMaster) || m_Slot.ProgIsMaster)
            {
                progressive = true;
                lastjackpotstarty = 110;
                if (m_Slot.ProgIsMaster)
                {
                    //pjackpot += m_Slot.ProgJackpot;
                    ProgressiveHue = m_Slot.Hue;
                }
                else
                {
                    //pjackpot += ((TurboSlot) m_Slot.ProgSlotMaster).ProgJackpot;
                    ProgressiveHue = ((TurboSlot)m_Slot.ProgSlotMaster).Hue;
                }
                ProgressiveHue += -1;
                if (ProgressiveHue < 0)
                    ProgressiveHue = 1149;
            }
            Closable = true;
            Disposable = true;
            Dragable = true;
            Resizable = false;
            AddPage(0);
            AddBackground(18, 64, 371, 278, 5120);
            AddBackground(32, 193, 345, 100, 2620);
            AddImageTiled(23, 298, 363, 10, 5121);
            AddHtml(30, 65, 170, 23, @text, (bool)false, (bool)false);

            if (m_Slot.ShowPayback || (m_Slot.InUseBy != null && m_Slot.InUseBy.AccessLevel != AccessLevel.Player))
            {
                float payoutdif = Math.Abs(m_Slot.w_Percentage - m_Slot.WinningPercentage);
                PayoutHue = 267;
                if (payoutdif > 15.0f || m_Slot.WinningPercentage > 100.0f)
                    PayoutHue = 37;
                else if (payoutdif > 7.0f)
                    PayoutHue = 55;
                else if (payoutdif > 3.0f)
                    PayoutHue = 87;
                text = String.Format("{0:##0.00}%", m_Slot.WinningPercentage);
                AddLabel(205, 65, headingcolor1, @"Payback Percentage:");
                AddLabel(330, 65, PayoutHue, @text);
                progstarty = 85;
                if (progressive)
                    lastjackpotstarty = 125;
                if (m_Slot.InUseBy != null && m_Slot.InUseBy.AccessLevel != AccessLevel.Player)
                {
                    if (m_Slot.w_Percentage > 99.5f)
                        PayoutHue = 37;
                    else if (m_Slot.w_Percentage > 90.0f)
                        PayoutHue = 267;
                    else if (m_Slot.w_Percentage > 80.0f)
                        PayoutHue = 87;
                    else if (m_Slot.w_Percentage > 60.0f)
                        PayoutHue = 55;
                    else if (m_Slot.w_Percentage > 40.0f)
                        PayoutHue = 37;
                    string[] pstring = new string[] { "L", "N", "T", "E", "C", "R" };
                    text = String.Format("({0})", pstring[(int)m_Slot.CurrentPayback]);
                    if ((int)m_Slot.SlotPaybackOdds == 5)
                        AddLabel(208, 80, 37, @text);
                    else
                        AddLabel(208, 80, headingcolor1, @text);
                    AddLabel(232, 80, headingcolor1, @"Statisical Odds:");
                    text = String.Format("{0:##0.00}%", m_Slot.w_Percentage);
                    AddLabel(330, 80, PayoutHue, @text);
                    progstarty = 155;
                    lastjackpotstarty = 94;
                }
            }
            AddImageTiled(37, 200, 335, 86, 9354);
            AddImageTiled(150, 202, 2, 83, 9353);
            AddLabel(30, 100, headingcolor2, @"Cost: ");
            AddLabel(65, 100, paycolor, m_Slot.Cost.ToString());
            AddLabel(30, 120, headingcolor2, @"Credits: ");
            AddLabel(80, 120, paycolor, m_Slot.Won.ToString());
            AddLabel(30, 140, headingcolor2, @"Last Pay: ");
            AddLabel(92, 140, paycolor, m_Slot.LastPay.ToString());
            AddButton(30, 163, 4026, 4027, 11, GumpButtonType.Reply, 0);
            AddLabel(65, 164, headingcolor1, @"View Pay Table");
            AddButton(30, 307, 4020, 4021, 12, GumpButtonType.Reply, 0);
            if (m_Slot.FreeSpin)
                AddLabel(65, 307, headingcolor2, @"Free");
            else
                AddLabel(65, 307, headingcolor1, @"Spin");
            AddButton(118, 307, 4029, 4030, 13, GumpButtonType.Reply, 0);
            AddLabel(153, 307, headingcolor1, @"Cash Out");
            AddButton(235, 300, 4037, 4036, 14, GumpButtonType.Reply, 0);
            AddLabel(270, 307, headingcolor1, @"ATM");
            AddImageTiled(60, 205, 75, 75, tilecolor);
            AddImageTiled(167, 205, 75, 75, tilecolor);
            AddImageTiled(274, 205, 75, 75, tilecolor);
            AddImageTiled(258, 202, 2, 83, 9353);
            if (slotart != 0)
                ShowSymbol(155, 90, slotart);
            if (m_Slot.LastWonBy != null && !m_Slot.LastWonBy.Deleted)
            {
                AddLabel(230, lastjackpotstarty, headingcolor2, "Last Jackpot won by:");
                text = String.Format("<BASEFONT COLOR=#FFFFFF><Center>{0}<//Center></BASEFONT>", m_Slot.LastWonBy.Name);
                AddHtml(205, lastjackpotstarty + 15, 180, 15, @text, (bool)false, (bool)false);
                text = String.Format("{0:MM/dd/yy hh:mm:ss tt}", m_Slot.LastWonByDate);
                AddLabel(205, lastjackpotstarty + 30, headingcolor2, "Date:");
                AddLabel(237, lastjackpotstarty + 30, paycolor, text);
                text = String.Format("{0:##,###,### Gold!}", m_Slot.LastWonAmount);
                AddLabel(202, lastjackpotstarty + 45, headingcolor2, "Value:");
                AddLabel(237, lastjackpotstarty + 45, paycolor, text);
            }
            if (progressive)
            {
                Jackpot = m_Slot.GetJackpotPayoutStr(0, out payout);
                AddHtml(245, progstarty, 356, 23, @"<BASEFONT COLOR=#FFFFFF><U>Progressive Jackpot</U></BASEFONT>", (bool)false, (bool)false);
                AddLabel(280, progstarty + 15, ProgressiveHue, Jackpot[0]);
            }
            ShowSymbol(75 - symbolxoffset, 220 - dispy / 3, m_Slot.ReelOne);
            ShowSymbol(183 - symbolxoffset, 220 - dispy / 3, m_Slot.ReelTwo);
            ShowSymbol(290 - symbolxoffset, 220 - dispy / 3, m_Slot.ReelThree);
            if (Utility.Random(25000) == 45)
                CEOCookie(headingcolor2);
        }
		public TurboSlotPayTableGump( TurboSlot Slot, int[] Symbols) : base( 25, 25 )
		{
			m_Slot = Slot;
			m_Symbols = Symbols;
			
			int anybarsindex = m_Symbols[10];
			int totalsymbols = m_Symbols[11];
			int dispx = m_Symbols[12];
			int dispy = m_Symbols[13];
			int backgroundcolor = m_Symbols[14];
			int titlecolor = m_Symbols[15];
            int titlestyle = m_Symbols[16];
			int headingcolor1 = m_Symbols[17];
			int headingcolor2 = m_Symbols[18];
			int paycolor = m_Symbols[19];
            decimal payout;
            int tilecolor = 9304;
            if ((SlotThemeType)m_Slot.SlotTheme == SlotThemeType.GruesomeGambling || (SlotThemeType)m_Slot.SlotTheme == SlotThemeType.StatScrolls)
                tilecolor = 9204;
            else if ((SlotThemeType)m_Slot.SlotTheme == SlotThemeType.Holiday1)
                tilecolor = 0xBBC;
            else if ((SlotThemeType)m_Slot.SlotTheme == SlotThemeType.FarmerFaceoff || (SlotThemeType)m_Slot.SlotTheme == SlotThemeType.OffToTheRaces
                                    || (SlotThemeType)m_Slot.SlotTheme == SlotThemeType.TrophyHunter)
                tilecolor = 2524;

			string text = null;
			if (backgroundcolor == 0)
				text = String.Format( "<body bgcolor=\"black\"><basefont SIZE={0} COLOR=\"#{1:x6}\"><CENTER>{2}</CENTER></basefont></body>",titlestyle, titlecolor, m_Slot.Name);
			else if (backgroundcolor < 0)
				text = String.Format( "<basefont SIZE={0} COLOR=\"#{1:x6}\"><CENTER>{2}</CENTER></basefont>",titlestyle, titlecolor, m_Slot.Name);
			else
				text = String.Format( "<body bgcolor=\"#{0:x6}\"><basefont SIZE={1} COLOR=\"#{2:x6}\"><CENTER>{3}</CENTER></basefont></body>",backgroundcolor, titlestyle, titlecolor, m_Slot.Name);

			bool progressive = false;
			int ProgressiveHue = 0;

			if ((m_Slot.ProgSlotMaster != null && !m_Slot.ProgSlotMaster.Deleted && ((TurboSlot) m_Slot.ProgSlotMaster).ProgIsMaster) || m_Slot.ProgIsMaster)
			{
				progressive = true;
				if (m_Slot.ProgIsMaster)
					ProgressiveHue = m_Slot.Hue;
				else
					ProgressiveHue = ((TurboSlot) m_Slot.ProgSlotMaster).Hue;
				ProgressiveHue += -1;
				if (ProgressiveHue < 0)
					ProgressiveHue = 1149;
			}


			bool bonusround = ((BonusRoundType) m_Slot.BonusRound != BonusRoundType.None);// ? true:false;
			int tiledlength = (30 * totalsymbols) + (dispy * 7);
			//int backgroundlength = 425 (30 * totalsymbols) + (dispy * 10);
			int backgroundlength = 185 + (30 * totalsymbols) + (dispy * 10);
            if ((ScatterType)m_Slot.ScatterPay == ScatterType.None)
				backgroundlength = (backgroundlength - 90) - (dispy*2);
            else if ((ScatterType)m_Slot.ScatterPay == ScatterType.LeftOnly)
            {
                backgroundlength = (backgroundlength - 30);
                tiledlength += 60 + (dispy * 2);
            }

			if (m_Slot.AnyBars)
				tiledlength += 30 + dispy;
			else
				backgroundlength = (backgroundlength - 30) - dispy;
			if (bonusround)
			{
				tiledlength -= (30 + dispy);
				backgroundlength = backgroundlength + 30;
			}
            if ((SlotThemeType)m_Slot.SlotTheme == SlotThemeType.PowerScrolls)
            {
                tiledlength += 35;
                backgroundlength += 35;
            }
			Closable=true;
			Disposable=true;
			Dragable=true;
			Resizable=false;
			AddPage(0);
            int backgroundx = 0;
            if ((int)m_Slot.JackpotRewards != 0)
                    backgroundx = 35;
			AddBackground(37, 34, 180+backgroundx+dispx*3, backgroundlength, 5120);

			AddHtml( 45, 41, 165+backgroundx+dispx*3, 22, @text, (bool)false, (bool)false);

			AddImageTiled(45, 84, 102+dispx*3, tiledlength, tilecolor);
			AddLabel(45, 64, headingcolor1, @"Pay Table");
            if (progressive)
            {
                m_Slot.GetJackpotPayoutStr(0, out payout);
                payout = payout * 100;
                AddLabel(147 + dispx * 3, 67, ProgressiveHue, @"(Progessive)");
            }
			int starty = 85;
			for (int i = 0; i < totalsymbols ; i++)
			{
				if (!bonusround || (bonusround && i != m_Symbols[8]))
				{
					ShowSymbol(45, starty, m_Symbols[i]);
					ShowSymbol(75+dispx, starty, m_Symbols[i]);
					ShowSymbol(105+dispx*2, starty, m_Symbols[i]);
                    if (i == 0 && progressive)
                        ShowPayout(155 + dispx * 3, starty, paycolor, m_Slot.GetJackpotPayoutStr(0, out payout));
                    else
					    ShowPayout(155+dispx*3, starty, paycolor, m_Slot.GetJackpotPayoutStr(i, out payout));
					starty += 30 + dispy;
				}
				if (i==anybarsindex && m_Slot.AnyBars)
				{
					ShowSymbol(45,  starty, m_Symbols[0]);
					ShowSymbol(105+dispx*2, starty, m_Symbols[anybarsindex]);
					AddLabel(46+dispx+dispx/2, starty+3, headingcolor2, @"Any Three Above"); // was 65
					ShowPayout(155+dispx*3, starty, paycolor, m_Slot.GetJackpotPayoutStr(8, out payout));
					starty += 30 + dispy;
				}

			}

            if ((ScatterType)Slot.ScatterPay != ScatterType.None)
            {
                if ((ScatterType)Slot.ScatterPay == ScatterType.Any)
                {
                    starty += 5;
                    int ScatterSymbol = m_Symbols[m_Symbols[9]];
                    if ((ScatterType)m_Slot.ScatterPay == ScatterType.Any)
                        AddLabel(45, starty, headingcolor1, @"Scatter Pay");
                    else
                        AddLabel(45, starty, headingcolor1, @"Extra Chance");
                    starty += 25;
                    AddImageTiled(45, starty - 4, 101 + dispx * 3, 64 + dispy, tilecolor);
                    ShowSymbol(45, starty, ScatterSymbol);
                    AddLabel(74 + dispx + dispx / 2, starty - 2, headingcolor2, @"Any One");
                    ShowPayout(154 + dispx * 3, starty, paycolor, m_Slot.GetJackpotPayoutStr(9, out payout));
                    starty += 30 + dispy / 2;
                    ShowSymbol(45, starty, ScatterSymbol);
                    ShowSymbol(75 + dispx, starty, ScatterSymbol);
                    AddLabel(74 + dispx + dispx / 2, starty - 2, headingcolor2, @"Any Two");
                    ShowPayout(154 + dispx * 3, starty, paycolor, m_Slot.GetJackpotPayoutStr(10, out payout));
                }
                else
                {
                    int ScatterSymbol = m_Symbols[m_Symbols[9]];
                    ShowSymbol(45, starty, ScatterSymbol);
                    ShowSymbol(75 + dispx, starty, ScatterSymbol);
                    AddLabel(105 + dispx*2 + dispx / 2, starty+2, headingcolor2, @"Any");
                    ShowPayout(154 + dispx * 3, starty, paycolor, m_Slot.GetJackpotPayoutStr(10, out payout));
                    starty += 30 + dispy;
                    ShowSymbol(45, starty, ScatterSymbol);
                    AddLabel(75 + dispx + dispx / 2, starty+2, headingcolor2, @"Any");
                    AddLabel(105 + dispx*2 + dispx / 2, starty+2, headingcolor2, @"Any");
                    ShowPayout(154 + dispx * 3, starty, paycolor, m_Slot.GetJackpotPayoutStr(9, out payout));
                }
				starty += 35 + dispy;
			}
			if (bonusround)
			{
				int BonusSymbol = m_Symbols[m_Symbols[8]];
				AddLabel(45, starty, headingcolor1, @"Bonus Round"); //426
				starty += 25;
				AddImageTiled(45, starty-4, 101+dispx*3, 35+dispy/2, tilecolor);
				ShowSymbol(45, starty, BonusSymbol);
				ShowSymbol(75+dispx, starty, BonusSymbol);
				ShowSymbol(105+dispx*2, starty, BonusSymbol);
			}
		}