예제 #1
0
        void runCreateDeck()
        {
            GameMenuButtonData.service.ClearPullTabDeck(GameMenuButtonData.gameSystemID, 0);
            int c = 0;

            for (int deal = 0; deal < 250; deal++)
            {
                SetControlPropertyThreadSafe(lblStatus, "Text", "Creating Deal " + deal.ToString() + " of 250");
                List <WEBService.PullTab> tabs = new List <WEBService.PullTab>();
                for (int tabID = 0; tabID < 4000; tabID++)
                {
                    WEBService.PullTab tab = new WEBService.PullTab();
                    tab.TabID   = c++;
                    tab.DealID  = deal;
                    tab.TabData = createRandomTab();
                    tabs.Add(tab);
                }
                GameMenuButtonData.service.CreatePullTabs(tabs.ToArray());
            }

            SetControlPropertyThreadSafe(lblStatus, "Text", "Creating Deal 250 of 250\r\nDone!");
        }
예제 #2
0
        public static decimal getGameInfo(ref int[,] ReadTabIcons, ref decimal[] FINALlineAmountWonDecimal, ref int[] FINALnumberOfIconsOnLine, ref int FINALfreeTabs)
        {
            StateMain.singleton.playBonusWon    = 0;
            StateMain.singleton.playFreeTabsWon = 0;

            System.Console.WriteLine("----------- Get Info -----------");
            decimal totalWin = 0;

            WEBService.PullTab tab = Bingo.singleton.service.GetPullTab(Bingo.gameSystemID, 0);
            StateMain.singleton.lblTabNo.Text = tab.DealID.ToString("000") + "-" + tab.TabID.ToString("0000");
            for (int i = 0; i < 9; i++)
            {
                ReadTabIcons[i % Definitions.reelWidth, i / Definitions.reelWidth] = tab.TabData[i];
            }

            for (int i = 0; i < Definitions.TotalPaylines; i++)             // current payline
            {
                int  repCount  = 0;
                int  firstIcon = -1;
                bool cut       = false;


                for (int j = 0; j < Definitions.reelWidth; j++)         //current col
                {
                    for (int k = 0; k < Definitions.iconsViewRows; k++) //current row
                    {
                        bool payIcon = (Definitions.PAYLINES[(i * 3) + k, j] > 0);


                        int icon = ReadTabIcons[j, k];
                        if (payIcon)
                        {
                            if (firstIcon == -1)
                            {
                                repCount  = 1;
                                firstIcon = icon;
                            }
                            else if (icon == firstIcon && !cut)
                            {
                                repCount++;
                            }
                            else
                            {
                                cut = true;
                            }
                        }
                    }
                }


                if (firstIcon >= 0)
                {
                    decimal amount = Definitions.PAYTABLE[firstIcon, repCount - 1] * (StateMain.singleton.TabPrices[StateMain.singleton.tabPricesIdx] / 10);
                    System.Console.WriteLine("payline: " + i + " Icon=" + firstIcon + "  reps=" + repCount + " amt: " + amount.ToString("C"));

                    FINALnumberOfIconsOnLine[i]  = repCount;
                    FINALlineAmountWonDecimal[i] = amount;
                    totalWin += amount;
                }
                else
                {
                    System.Console.WriteLine("Icon=X");
                }
            }
            int[] sym = analyzeTab(ReadTabIcons);
            int   AnySymNo = 0, CherryNo = sym[Definitions.iconIndexMax - 1];

            for (int i = 0; i < (Definitions.iconIndexMax - 1); i++)
            {
                if (AnySymNo < sym[i])
                {
                    AnySymNo = sym[i];
                }
            }

            //find best bonus...
            FINALfreeTabs = 0;
            for (int i = (Definitions.freeTabsPayTable.Length - 1); i >= 0; i--)
            {
                if (Definitions.freeTabsPayTable[i].isCherry)
                {
                    if (CherryNo >= Definitions.freeTabsPayTable[i].repeatitions && FINALfreeTabs < Definitions.freeTabsPayTable[i].FreeTabs)
                    {
                        FINALfreeTabs = Definitions.freeTabsPayTable[i].FreeTabs;
                    }

                    StateMain.singleton.playFreeTabsWon = FINALfreeTabs;
                }
                else
                {
                    if (AnySymNo >= Definitions.freeTabsPayTable[i].repeatitions && StateMain.singleton.playBonusWon == 0)
                    {
                        //FINALfreeTabs = Definitions.freeTabsPayTable[i].FreeTabs;

                        decimal amt = Definitions.freeTabsPayTable[i].FreeTabs * (StateMain.singleton.TabPrices[StateMain.singleton.tabPricesIdx] / 10);
                        totalWin += amt;
                        StateMain.singleton.playBonusWon = amt;
                    }
                }
            }

            StateMain.singleton.totalWon = totalWin;

            return(totalWin);
        }