Example #1
0
        public void TestWithUnknownSymbols()
        {
            var table       = new SymbolTable();
            var holder      = new SymbolHolder(table);
            var interpreter = new Interpreter("a", holder);

            Assert.Throws <UnknownSymbolException>(() =>
            {
                interpreter.Interpret();
            });
        }
Example #2
0
        public void TestWithReservedSymbols()
        {
            var table       = new SymbolTable();
            var holder      = new SymbolHolder(table);
            var interpreter = new Interpreter("PI=3", holder);

            Assert.Throws <ReservedSymbolException>(() =>
            {
                interpreter.Interpret();
            });
        }
Example #3
0
        public override void OnProcessHit(HitInfo info)
        {
            base.OnProcessHit(info);
            SymbolHolder randomHolder = info.hitHolders[Random.Range(0, info.hitHolders.Count)];
            ElosSymbol   symbol       = randomHolder.symbol as ElosSymbol;

            Util.InstantiateAt <ElosEffectBalloon>(assets.effectBalloon, slot.transform.parent, randomHolder.transform).Play(symbol.GetRandomTalk());
            foreach (SymbolHolder holder in info.hitHolders)
            {
                info.sequence.Join(ShowWinAnimation(info, holder));
            }
        }
Example #4
0
        public void TestWithSymbols()
        {
            var table       = new SymbolTable();
            var holder      = new SymbolHolder(table);
            var interpreter = new Interpreter("a=2+2", holder);

            interpreter.Interpret();

            Assert.True(table.HasSymbol("a"));
            Assert.Equal(4, holder.Get("a"));

            interpreter = new Interpreter("b=a+a", holder);
            interpreter.Interpret();
            Assert.True(table.HasSymbol("b"));
            Assert.Equal(8, holder.Get("b"));
        }
Example #5
0
        // Winning particle and audio effect when a line is a "hit"
        public Tweener ShowWinAnimation(HitInfo info, SymbolHolder holder)
        {
            return(Util.Tween(() => {
                int coins = (info.hitChains - 2) * (info.hitChains - 2) * (info.hitChains - 2) + 1;

                if (info.hitSymbol.payType == Symbol.PayType.Normal)
                {
                    assets.particlePrize.transform.position = holder.transform.position;
                    Util.Emit(assets.particlePrize, coins);
                    if (info.hitChains <= 3)
                    {
                        assets.audioWinSmall.Play();
                    }
                    else if (info.hitChains == 4)
                    {
                        assets.audioWinMedium.Play();
                    }
                    else
                    {
                        assets.audioWinBig.Play();
                    }
                    if (info.hitChains >= 4)
                    {
                        assets.tweens.tsWin.SetText(info.hitChains + "-IN-A-ROW!", info.hitChains * 40).Play();
                    }
                }
                else
                {
                    assets.audioWinSpecial.Play();
                    if (info.hitSymbol.payType == Symbol.PayType.FreesSpin)
                    {
                        assets.tweens.tsWinSpecial.SetText("Free Spin!").Play();
                    }
                    else
                    {
                        assets.tweens.tsWinSpecial.SetText("BONUS!").Play();
                    }
                }
            }));
        }
 public ObservableSymbolCollection(SymbolHolder holder)
 {
     _symbolDictionary = holder.SymbolDictionary;
     Update();
 }
Example #7
0
 public Interpreter(string text, SymbolHolder symbolHolder)
 {
     _parser       = new Parser(text);
     _symbolHolder = symbolHolder;
 }