Esempio n. 1
0
        public void CreationIsOk()
        {
            bool test = false;
            var  xdoc = XDocument.Parse(@"<Root>
                                        <Paylines name='BasePayLines'>
                                        <Payline name='line1' VerticalOffsets='1,1,1'/>
                                        </Paylines>
                                        </Root>");

            var payLineXML = xdoc.Descendants("Payline").ToList <XElement>()
                             .Select(xe => new Payline(xe))
                             .ToList <Payline>()[0];

            var payLine = new Payline("line2", new List <ESlotOffset> {
                ESlotOffset.Fisrt, ESlotOffset.Third, ESlotOffset.Second
            });

            if (payLineXML != null && payLine != null &&
                payLineXML.VerticalOffsets != null &&
                payLine.VerticalOffsets != null &&
                payLineXML.VerticalOffsets.Count == 3 &&
                payLine.VerticalOffsets.Count == 3)
            {
                test = true;
            }
            Assert.IsTrue(test);
        }
        public VikingMegaReelDecoder(PaylineRepository paylineRepository)
        {
            this.paylineRepository = paylineRepository;

            _mainGamePayLine = paylineRepository.Get("local345677_250");
            _freeGamePayLine = paylineRepository.Get("local776543_250");
            _xmlHelper       = new XmlHelper();
        }
Esempio n. 3
0
        public SlotResult Evaluate(Paytable paytable, ReelWindow reelWindow, IRng rng)
        {
            if (paytable.ScatterComboGroup == null)
            {
                throw new Exception("ScatterEvaluator cannot evalate a paytable without a ScatterComboGroup");
            }

            SlotResult        result    = new SlotResult();
            ScattersComponent component = new ScattersComponent();

            List <PayCombo> payCombos = paytable.ScatterComboGroup.Combos;

            for (int combo = 0; combo < payCombos.Count; ++combo)
            {
                PayCombo payCombo      = payCombos[combo];
                int      bestPayAmount = 0;
                PayCombo bestPayCombo  = null;

                // TODO: This assumes the scatter combo contains one type of symbol only.
                // In almost all cases, this will be true so leaving it for now.
                bool   match  = false;
                Symbol symbol = payCombo.SymbolsInPayCombo[0];
                if (reelWindow.SymbolPositions.ContainsKey(symbol) &&
                    reelWindow.SymbolPositions[symbol].Count >= payCombo.SymbolsInPayCombo.Count)
                {
                    match = true;
                }

                if (match && (payCombo.PayAmount >= bestPayAmount))
                {
                    bestPayCombo  = payCombo;
                    bestPayAmount = payCombo.PayAmount;
                }

                if (bestPayCombo != null)
                {
                    // TODO: Might be able to optimize this but making PaylineCoord and SymbolPosition the same thing...
                    Payline payline = new Payline();
                    foreach (var position in reelWindow.SymbolPositions[symbol])
                    {
                        payline.AddPaylineCoord(new PaylineCoord {
                            ReelIndex = position.ReelIndex, Offset = position.ReelOffset
                        });
                    }
                    component.PayResults.Add(new PayResult {
                        PayCombo = bestPayCombo, Payline = payline
                    });
                    result.TotalWin += bestPayCombo.PayAmount;
                }
            }

            if (component.PayResults.Count > 0)
            {
                result.AddComponent <ScattersComponent>(component);
            }

            return(result);
        }
        private Payline GetPayline(string key)
        {
            Payline payline = null;

            string[] resourceNameSegments = null;
            string   targetResource       = null;

            var resource = Array.Find(manifestResourceNames, name =>
            {
                var isMatch = false;

                if (name.EndsWith(".payline"))
                {
                    var resourceSegments = name.Split('.');

                    if (resourceSegments.Length > 1)
                    {
                        var resourceName = resourceSegments[resourceSegments.Length - 2];
                        isMatch          = string.Compare(resourceName, key, true, CultureInfo.InvariantCulture) == 0;

                        if (isMatch)
                        {
                            resourceNameSegments = resourceSegments;
                            targetResource       = resourceName;
                        }
                    }
                }

                return(isMatch);
            });

            if (!string.IsNullOrWhiteSpace(resource) && resourceNameSegments.Length > 1)
            {
                using (var stream = executingAssembly.GetManifestResourceStream(resource))
                {
                    if (stream != null)
                    {
                        using (var sr = new StreamReader(stream))
                        {
                            var adapter = JsonConvert.DeserializeObject <PaylineAdapter>(sr.ReadToEnd());
                            payline = new Payline(
                                adapter.Paylines,
                                adapter.Paylines.Count,
                                GetConfig((PaylineType)adapter.Type));

                            Paylines.Add(targetResource, payline);
                        }
                    }
                }
            }

            return(payline);
        }
Esempio n. 5
0
    public override PaylineGroup BuildPaylineGroup()
    {
        PaylineGroup paylines = new PaylineGroup();

        Payline payline1 = new Payline();

        payline1.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 0, Offset = 0
        });
        payline1.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 1, Offset = 0
        });
        payline1.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 2, Offset = 0
        });

        Payline payline2 = new Payline();

        payline2.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 0, Offset = 1
        });
        payline2.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 1, Offset = 1
        });
        payline2.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 2, Offset = 1
        });

        Payline payline3 = new Payline();

        payline3.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 0, Offset = 2
        });
        payline3.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 1, Offset = 2
        });
        payline3.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 2, Offset = 2
        });

        paylines.AddPayline(payline1);
        paylines.AddPayline(payline2);
        paylines.AddPayline(payline3);

        return(paylines);
    }
Esempio n. 6
0
    public void Evaluation_SlotResult8()
    {
        paytable.ScatterComboGroup.Combos.Clear();
        paytable.ScatterComboGroup.AddPayCombo(new PayCombo(new Symbol(0, "AA"), 3, 100, "Free Spins"));

        ReelWindow reelWindow = new ReelWindow(paytable.BaseGameReelGroup, new List <int> {
            0, 0, 0
        });
        SlotResult results = scatterEvaluator.Evaluate(paytable, reelWindow, rng);

        var     component = results.GetComponent <ScattersComponent>();
        Payline payline   = component.PayResults[0].Payline;

        Assert.AreEqual(0, payline.PaylineCoords[0].ReelIndex);
        Assert.AreEqual(0, payline.PaylineCoords[0].Offset);
        Assert.AreEqual(1, payline.PaylineCoords[1].ReelIndex);
        Assert.AreEqual(0, payline.PaylineCoords[1].Offset);
        Assert.AreEqual(2, payline.PaylineCoords[2].ReelIndex);
        Assert.AreEqual(0, payline.PaylineCoords[2].Offset);
    }
        private List <byte[, ]> GetWinTable(Payline payLine, IEnumerable <WinPosition> winPositions, int[] wheelPattern)
        {
            var winTable = new List <byte[, ]>();

            foreach (var wp in winPositions)
            {
                var lineTable = new byte[Width, Height];

                for (var i = 0; i < wheelPattern.Length; i++)
                {
                    for (var j = wheelPattern[i]; j < Height; j++)
                    {
                        lineTable[i, j] = (byte)PaylinePos.Empty;
                    }
                }

                if (wp.Line == 0)
                {
                    for (var i = 0; i < wp.RowPositions.Count; i++)
                    {
                        if (wp.RowPositions[i] > 0)
                        {
                            lineTable[i, wp.RowPositions[i] - 1] = (byte)PaylinePos.Hit;
                        }
                    }
                }
                else
                {
                    payLine.Lines[wp.Line].ForEach(r =>
                    {
                        lineTable[r.Reel, r.Position] = wp.RowPositions[r.Reel] > 0 ? (byte)PaylinePos.Hit : (byte)PaylinePos.NotHit;
                    });
                }

                winTable.Add(lineTable);
            }

            return(winTable);
        }
Esempio n. 8
0
    public void Init()
    {
        rng = new Rng();
        paylineEvaluator = new PaylineEvaluator();
        paytable         = new Paytable();

        // Reels
        ReelGroup reels = new ReelGroup();

        ReelStrip reel = new ReelStrip();

        reel.AddSymbol(new Symbol(0, "AA"));
        reel.AddSymbol(new Symbol(1, "BB"));
        reel.AddSymbol(new Symbol(2, "CC"));

        reels.AddReel(reel);
        reels.AddReel(reel);
        reels.AddReel(reel);
        reels.AddReel(reel);
        reels.AddReel(reel);

        // Paylines
        PaylineGroup paylines = new PaylineGroup();

        Payline payline1 = new Payline();

        payline1.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 0, Offset = 0
        });
        payline1.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 1, Offset = 0
        });
        payline1.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 2, Offset = 0
        });
        payline1.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 3, Offset = 0
        });
        payline1.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 4, Offset = 0
        });

        Payline payline2 = new Payline();

        payline2.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 0, Offset = 1
        });
        payline2.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 1, Offset = 1
        });
        payline2.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 2, Offset = 1
        });
        payline2.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 3, Offset = 1
        });
        payline2.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 4, Offset = 1
        });

        Payline payline3 = new Payline();

        payline3.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 0, Offset = 2
        });
        payline3.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 1, Offset = 2
        });
        payline3.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 2, Offset = 2
        });
        payline3.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 3, Offset = 2
        });
        payline3.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 4, Offset = 2
        });

        Payline payline4 = new Payline();

        payline4.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 0, Offset = 0
        });
        payline4.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 1, Offset = 1
        });
        payline4.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 2, Offset = 2
        });
        payline4.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 3, Offset = 1
        });
        payline4.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 4, Offset = 0
        });

        Payline payline5 = new Payline();

        payline5.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 0, Offset = 2
        });
        payline5.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 1, Offset = 1
        });
        payline5.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 2, Offset = 0
        });
        payline5.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 3, Offset = 1
        });
        payline5.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 4, Offset = 2
        });

        paylines.AddPayline(payline1);
        paylines.AddPayline(payline2);
        paylines.AddPayline(payline3);
        paylines.AddPayline(payline4);
        paylines.AddPayline(payline5);

        // PayCombos
        PayComboGroup payCombos = new PayComboGroup(new SymbolComparer());

        // AA
        payCombos.AddPayCombo(new PayCombo(new Symbol(0, "AA"), 5, 50));
        payCombos.AddPayCombo(new PayCombo(new Symbol(0, "AA"), 4, 25));
        payCombos.AddPayCombo(new PayCombo(new Symbol(0, "AA"), 3, 10));

        // BB
        payCombos.AddPayCombo(new PayCombo(new Symbol(1, "BB"), 5, 15));
        payCombos.AddPayCombo(new PayCombo(new Symbol(1, "BB"), 4, 10));
        payCombos.AddPayCombo(new PayCombo(new Symbol(1, "BB"), 3, 5));

        // CC
        payCombos.AddPayCombo(new PayCombo(new Symbol(2, "CC"), 5, 10));
        payCombos.AddPayCombo(new PayCombo(new Symbol(2, "CC"), 4, 5));
        payCombos.AddPayCombo(new PayCombo(new Symbol(2, "CC"), 3, 1));

        paytable.BaseGameReelGroup = reels;
        paytable.PaylineGroup      = paylines;
        paytable.PayComboGroup     = payCombos;
    }
    public Payline ECheckSale(string pCheckName, string pRoutingNumber, string pBnkAcNumber, string pAccountHolderType, string pAccountType, string pSecCode, string pPayment, Decimal pAmount, string pCurrency)
    {
        Payline payline = new Payline();


        System.Web.HttpServerUtility o = System.Web.HttpContext.Current.Server;
        string parmList = "";

        parmList = string.Format("username={0}&password={1}&type=sale&amount={2}&currency={3}&checkname={4}&checkaba={5}&checkaccount={6}&account_holder_type={7}&account_type={8}&sec_code=WEB&payment=check", ConfigurationSettings.AppSettings["PlGP:User"], ConfigurationSettings.AppSettings["PlGP:Pwd"], pAmount, pCurrency, pCheckName, pRoutingNumber, pBnkAcNumber, pAccountHolderType, pAccountType);

        payline.Request = parmList;

        // create and setup web request
        HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(System.Configuration.ConfigurationSettings.AppSettings["PlGP:HostAddress"]);

        webRequest.Method        = "POST";
        webRequest.ContentType   = "application/x-www-form-urlencoded";
        webRequest.ContentLength = parmList.Length;

        StreamWriter requestStream = null;

        try
        {
            requestStream = new StreamWriter(webRequest.GetRequestStream());
            requestStream.Write(parmList);
        }
        catch (Exception ex)
        {
            ErrorHandler("Error in GetAllApplicationData function .", ex.Message, ex.StackTrace);
        }
        finally
        {
            requestStream.Close();
        }

        HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();

        using (StreamReader responseStream = new StreamReader(webResponse.GetResponseStream()))
        {
            ResponseOut = o.UrlDecode(responseStream.ReadToEnd());
            responseStream.Close();
        }

        payline.Response = ResponseOut;

        string[] segments = ResponseOut.Split("&".ToCharArray());
        foreach (string segment in segments)
        {
            if (segment.StartsWith("response="))
            {
                payline.IsApproved = segment.Replace("response=", "").Trim().ToLower() == "1";
            }
            if (segment.StartsWith("responsetext="))
            {
                payline.Message = segment.Replace("responsetext=", "");
            }
            if (segment.StartsWith("authcode="))
            {
                payline.AuthorizationCode = segment.Replace("authcode=", "");
            }
            if (segment.StartsWith("transactionid="))
            {
                payline.AuthCaptureId = segment.Replace("transactionid=", "");
            }
            if (segment.StartsWith("TOKEN="))
            {
                payline.Token = segment.Replace("TOKEN=", "").Trim();
            }
            if (segment.ToUpper().StartsWith("PROFILEID="))
            {
                payline.ProfileId = segment.ToUpper().Replace("PROFILEID=", "").Trim();
            }
            if (segment.ToUpper().StartsWith("PAYERID="))
            {
                payline.PayerID = segment.ToUpper().Replace("PAYERID=", "").Trim();
            }
            if (segment.ToUpper().StartsWith("PAYERSTATUS="))
            {
                payline.PayerStatus = segment.ToUpper().Replace("PAYERSTATUS=", "").Trim();
            }
        }

        return(payline);
    }
    public Payline Sale(string firstName, string lastName, string accountNumber, string expirationMonth, string expirationYear, string securityCode, Decimal amount, string currency, string address1, int zip, string city, string state, string country)
    {
        Payline payline = new Payline();


        System.Web.HttpServerUtility o = System.Web.HttpContext.Current.Server;
        string parmList = "";

        parmList = string.Format("username={0}&password={1}&type=sale&ccnumber={2}&ccexp={3}{4}&cvv={5}&amount={6}&first_name={7}&last_name={8}&currency={9}&payment=creditcard&address1={10}&zip={11}&city={12}&state={13}&country={14}", ConfigurationSettings.AppSettings["PlGP:User"], ConfigurationSettings.AppSettings["PlGP:Pwd"], accountNumber, expirationMonth, expirationYear, securityCode, amount, firstName, lastName, currency, address1, zip, city, state, country);

        payline.Request = parmList;

        // create and setup web request
        HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(System.Configuration.ConfigurationSettings.AppSettings["PlGP:HostAddress"]);

        webRequest.Method        = "POST";
        webRequest.ContentType   = "application/x-www-form-urlencoded";
        webRequest.ContentLength = parmList.Length;

        StreamWriter requestStream = null;

        try
        {
            requestStream = new StreamWriter(webRequest.GetRequestStream());
            requestStream.Write(parmList);
        }
        catch (Exception ex)
        {
            ErrorHandler("Error in GetAllApplicationData function .", ex.Message, ex.StackTrace);
        }
        finally
        {
            requestStream.Close();
        }

        HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();

        using (StreamReader responseStream = new StreamReader(webResponse.GetResponseStream()))
        {
            ResponseOut = o.UrlDecode(responseStream.ReadToEnd());
            responseStream.Close();
        }

        payline.Response = ResponseOut;

        string[] segments = ResponseOut.Split("&".ToCharArray());
        foreach (string segment in segments)
        {
            if (segment.StartsWith("response="))
            {
                payline.IsApproved = segment.Replace("response=", "").Trim().ToLower() == "1";
            }
            if (segment.StartsWith("responsetext="))
            {
                payline.Message = segment.Replace("responsetext=", "");
            }
            if (segment.StartsWith("authcode="))
            {
                payline.AuthorizationCode = segment.Replace("authcode=", "");
            }
            if (segment.StartsWith("transactionid="))
            {
                payline.AuthCaptureId = segment.Replace("transactionid=", "");
            }
            if (segment.StartsWith("TOKEN="))
            {
                payline.Token = segment.Replace("TOKEN=", "").Trim();
            }
            if (segment.ToUpper().StartsWith("PROFILEID="))
            {
                payline.ProfileId = segment.ToUpper().Replace("PROFILEID=", "").Trim();
            }
            if (segment.ToUpper().StartsWith("PAYERID="))
            {
                payline.PayerID = segment.ToUpper().Replace("PAYERID=", "").Trim();
            }
            if (segment.ToUpper().StartsWith("PAYERSTATUS="))
            {
                payline.PayerStatus = segment.ToUpper().Replace("PAYERSTATUS=", "").Trim();
            }
        }

        return(payline);
    }
Esempio n. 11
0
    public void Init()
    {
        rng = new Rng();
        paylineEvaluator = new PaylineEvaluator();
        paytable         = new Paytable();

        // Reels
        ReelGroup reels = new ReelGroup();

        ReelStrip reel = new ReelStrip();

        reel.AddSymbol(new Symbol(0, "AA"));
        reel.AddSymbol(new Symbol(1, "BB"));
        reel.AddSymbol(new Symbol(2, "CC"));

        reels.AddReel(reel);
        reels.AddReel(reel);
        reels.AddReel(reel);
        reels.AddReel(reel);
        reels.AddReel(reel);

        // Paylines
        PaylineGroup paylines = new PaylineGroup();

        Payline payline1 = new Payline();

        payline1.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 0, Offset = 0
        });
        payline1.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 1, Offset = 0
        });
        payline1.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 2, Offset = 0
        });
        payline1.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 3, Offset = 0
        });
        payline1.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 4, Offset = 0
        });

        Payline payline2 = new Payline();

        payline2.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 0, Offset = 1
        });
        payline2.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 1, Offset = 1
        });
        payline2.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 2, Offset = 1
        });
        payline2.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 3, Offset = 1
        });
        payline2.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 4, Offset = 1
        });

        Payline payline3 = new Payline();

        payline3.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 0, Offset = 2
        });
        payline3.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 1, Offset = 2
        });
        payline3.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 2, Offset = 2
        });
        payline3.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 3, Offset = 2
        });
        payline3.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 4, Offset = 2
        });

        Payline payline4 = new Payline();

        payline4.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 0, Offset = 0
        });
        payline4.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 1, Offset = 1
        });
        payline4.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 2, Offset = 2
        });
        payline4.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 3, Offset = 1
        });
        payline4.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 4, Offset = 0
        });

        Payline payline5 = new Payline();

        payline5.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 0, Offset = 2
        });
        payline5.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 1, Offset = 1
        });
        payline5.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 2, Offset = 0
        });
        payline5.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 3, Offset = 1
        });
        payline5.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 4, Offset = 2
        });

        paylines.AddPayline(payline1);
        paylines.AddPayline(payline2);
        paylines.AddPayline(payline3);
        paylines.AddPayline(payline4);
        paylines.AddPayline(payline5);

        // PayCombos
        ISymbolComparer comparer = new SymbolComparer();

        comparer.Substitute(new Symbol(0, "AA"), new Symbol(3, "MX"));
        comparer.Substitute(new Symbol(1, "BB"), new Symbol(3, "MX"));
        PayComboGroup payCombos = new PayComboGroup(comparer);

        // AA
        payCombos.AddPayCombo(new PayCombo(new Symbol(0, "AA"), 5, 200));
        payCombos.AddPayCombo(new PayCombo(new Symbol(0, "AA"), 4, 150));
        payCombos.AddPayCombo(new PayCombo(new Symbol(0, "AA"), 3, 100));

        // BB
        payCombos.AddPayCombo(new PayCombo(new Symbol(1, "BB"), 5, 175));
        payCombos.AddPayCombo(new PayCombo(new Symbol(1, "BB"), 4, 125));
        payCombos.AddPayCombo(new PayCombo(new Symbol(1, "BB"), 3, 85));

        // CC
        payCombos.AddPayCombo(new PayCombo(new Symbol(2, "CC"), 5, 130));
        payCombos.AddPayCombo(new PayCombo(new Symbol(2, "CC"), 4, 80));
        payCombos.AddPayCombo(new PayCombo(new Symbol(2, "CC"), 3, 30));

        // MX
        payCombos.AddPayCombo(new PayCombo(new Symbol(3, "MX"), 5, 44));
        payCombos.AddPayCombo(new PayCombo(new Symbol(3, "MX"), 4, 33));
        payCombos.AddPayCombo(new PayCombo(new Symbol(3, "MX"), 3, 22));

        paytable.BaseGameReelGroup = reels;
        paytable.PaylineGroup      = paylines;
        paytable.PayComboGroup     = payCombos;
    }
Esempio n. 12
0
 private void SetPaylineText(TextMeshProUGUI _uiLine, Payline _payline)
 {
     _uiLine.text = $"{_payline.EnglishDescription}<pos=60%>{_payline.WinAmounts[0]}";
 }
Esempio n. 13
0
    public void Init()
    {
        rng = new Rng();
        paylineEvaluator = new PaylineEvaluator();
        paytable         = new Paytable();

        // Reels
        ReelGroup reels = new ReelGroup();

        ReelStrip reel = new ReelStrip();

        reel.AddSymbol(new Symbol(0, "AA"));
        reel.AddSymbol(new Symbol(1, "BB"));
        reel.AddSymbol(new Symbol(2, "CC"));
        reel.AddSymbol(new Symbol(3, "WW"));

        reels.AddReel(reel);
        reels.AddReel(reel);
        reels.AddReel(reel);
        reels.AddReel(reel);
        reels.AddReel(reel);

        // Paylines
        PaylineGroup paylines = new PaylineGroup();

        Payline payline1 = new Payline();

        payline1.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 0, Offset = 0
        });
        payline1.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 1, Offset = 0
        });
        payline1.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 2, Offset = 0
        });
        payline1.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 3, Offset = 0
        });
        payline1.AddPaylineCoord(new PaylineCoord {
            ReelIndex = 4, Offset = 0
        });

        paylines.AddPayline(payline1);

        // PayCombos
        ISymbolComparer comparer = new SymbolComparer();

        comparer.Substitute(new Symbol(3, "WW"), new Symbol(0, "AA"));
        comparer.Substitute(new Symbol(3, "WW"), new Symbol(0, "BB"));
        comparer.Substitute(new Symbol(3, "WW"), new Symbol(0, "CC"));
        PayComboGroup payCombos = new PayComboGroup(comparer);

        // WW
        payCombos.AddPayCombo(new PayCombo(new Symbol(3, "WW"), 5, 1000));
        payCombos.AddPayCombo(new PayCombo(new Symbol(3, "WW"), 4, 500));
        payCombos.AddPayCombo(new PayCombo(new Symbol(3, "WW"), 3, 100));

        // AA
        payCombos.AddPayCombo(new PayCombo(new Symbol(0, "AA"), 5, 50));
        payCombos.AddPayCombo(new PayCombo(new Symbol(0, "AA"), 4, 25));
        payCombos.AddPayCombo(new PayCombo(new Symbol(0, "AA"), 3, 10));

        // BB
        payCombos.AddPayCombo(new PayCombo(new Symbol(1, "BB"), 5, 15));
        payCombos.AddPayCombo(new PayCombo(new Symbol(1, "BB"), 4, 10));
        payCombos.AddPayCombo(new PayCombo(new Symbol(1, "BB"), 3, 5));

        // CC
        payCombos.AddPayCombo(new PayCombo(new Symbol(2, "CC"), 5, 10));
        payCombos.AddPayCombo(new PayCombo(new Symbol(2, "CC"), 4, 5));
        payCombos.AddPayCombo(new PayCombo(new Symbol(2, "CC"), 3, 1));

        paytable.BaseGameReelGroup = reels;
        paytable.PaylineGroup      = paylines;
        paytable.PayComboGroup     = payCombos;
    }
Esempio n. 14
0
 public void AddPayline(Payline payline)
 {
     _table.Add(payline);
 }