public void TestWithUnknownSymbols() { var table = new SymbolTable(); var holder = new SymbolHolder(table); var interpreter = new Interpreter("a", holder); Assert.Throws <UnknownSymbolException>(() => { interpreter.Interpret(); }); }
public void TestWithReservedSymbols() { var table = new SymbolTable(); var holder = new SymbolHolder(table); var interpreter = new Interpreter("PI=3", holder); Assert.Throws <ReservedSymbolException>(() => { interpreter.Interpret(); }); }
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)); } }
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")); }
// 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(); }
public Interpreter(string text, SymbolHolder symbolHolder) { _parser = new Parser(text); _symbolHolder = symbolHolder; }