using System; using Server; using Server.Items; using Server.Gumps; namespace Server.Gumps { public class TurboSlotPayTableGump : Gump { private TurboSlot m_Slot; private int[] m_Symbols; private int[] m_jackpotmultiplier; public enum BonusRoundType { None, MinerMadness } public enum ScatterType { None, Any, LeftOnly }; public enum SlotThemeType { Classic, ClassicII, ClassicIII, FarmerFaceoff, GruesomeGambling, Holiday1, LadyLuck, MinerMadness, OffToTheRaces, Pirates, PowerScrolls, StatScrolls, TailorTreats, TrophyHunter } 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( "
{2}
",titlestyle, titlecolor, m_Slot.Name); else if (backgroundcolor < 0) text = String.Format( "
{2}
",titlestyle, titlecolor, m_Slot.Name); else text = String.Format( "
{3}
",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); } } private void ShowSymbol(int x, int y, int symbol) { string text = null; switch (symbol) { case 0: break; case 90001: text = String.Format("
7
"); AddHtml(x, y, 40, 50, @text, (bool)false, (bool)false); break; case 90002: text = String.Format("
7
"); AddHtml(x, y, 40, 50, @text, (bool)false, (bool)false); break; case 90003: text = String.Format("
7
"); AddHtml(x, y, 40, 50, @text, (bool)false, (bool)false); break; case 90004: text = String.Format("
7
"); AddHtml(x, y, 40, 50, @text, (bool)false, (bool)false); break; case 90100: //White "Lucky" Necklace & Golden Robe AddItem(x, y, 7940, 2213); AddItem(x - 8, y + 3, 4232, 1150); break; case 90101: //Golden Cloak and Sash AddItem(x, y, 5424, 2213); break; case 90102: //Golden Sash AddItem(x, y + 5, 5441, 2213); break; case 90103: //Golden Bars AddItem(x, y, 7153, 2213); break; case 90104: //Golden Horseshoes AddItem(x, y, 4022, 2213); break; case 90200: // Barbed Kit AddItem(x, y, 3997, 2128); break; case 90201: // Horned Kit AddItem(x, y, 3997, 2116); break; case 90202: // Spined Kit AddItem(x, y, 3997, 2219); break; case 90203: // Purple Fancy Shirt AddItem(x, y, 7933, 23); break; case 90204: // Colored Folded Cloth AddItem(x, y, 5984, 1151); break; case 90250: // Sea Horse AddItem(x, y, 8479, 694); break; case 90300: // Stat Scroll AddItem(x, y+5, 5359, 1153); break; case 90301: // TrueHarrower AddItem(x, y, 9736, 1175); break; case 90302: // Red Corpser AddItem(x, y, 8402, 36); break; case 90303: // Fake Harrower AddItem(x, y-15, 9659); break; case 90304: // OrnateCrown AddItem(x, y, 5201, 1269); break; case 90305: // Summon Altars AddItem(x, y, 6587, 1109); break; case 90306: // Red Skull Candle AddItem(x, y, 6228, 37); break; default: AddItem(x, y, symbol); break; } } private void ShowPayout ( int posx, int posy, int color, string[] paystring ) { if (paystring[1] != null) posy -= 5; for (int i = 0; i < paystring.Length ; i++) { if (paystring[i] != null) { AddLabel(posx, posy, color, paystring[i]); posy += 17; } } } } }