public static FreeSpinCollapsingResult GenerateWithBonusFreeSpinCollapsingResult(int level) { var generateCount = 0; var config = new Configuration(); var spinResult = GenerateWinningSpinResult(level); var targetWheel = MainGameEngine.GetTargetWheel(level, config, spinResult.Wheel.ReelStripsId); var freeSpinCollapsingResult = FreeSpinBonusEngine.CreateFreeSpinCollapsingResult( spinResult, targetWheel, config.Payline, config.FreeGamePayTable, config.FreeGameScatterSymbols); while (!freeSpinCollapsingResult.HasFeatureBonus) { spinResult = GenerateWinningSpinResult(level); targetWheel = MainGameEngine.GetTargetWheel(level, config, spinResult.Wheel.ReelStripsId); freeSpinCollapsingResult = FreeSpinBonusEngine.CreateFreeSpinCollapsingResult( spinResult, targetWheel, config.Payline, config.FreeGamePayTable, config.FreeGameScatterSymbols); generateCount++; Debug.WriteLine($"CollapsingSpinResult Generate Count: {generateCount}"); } return(freeSpinCollapsingResult); }
public decimal EngineShouldCreateCorrectPayout(string revealItemString, int revealItem, int level) { var config = new Configuration(); var spinBet = MainGameEngine.GenerateSpinBet(new RequestContext <SpinArgs>("", "", PlatformType.Web) { GameSetting = new Model.Entity.GameSetting { GameSettingGroupId = 0 }, Currency = new Model.Entity.Currency { Id = 0 }, Parameters = new SpinArgs { LineBet = 1, Multiplier = 1 }, }); var spinResult = GenerateWithBonusSpinResult(level); var revealItems = Array.ConvertAll(revealItemString.Split(','), Convert.ToInt32); var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult); revealBonus.UpdateBonus(revealItems, revealItem); var revealBonusResult = RevealBonusEngine.CreateRevealBonusResult(revealBonus); return(revealBonusResult.Win); }
public void EngineShouldRemoveCorrectWinPositions(string wheelString, int level) { var config = new Configuration(); var wheel = new Wheel(Game.WheelWidth, Game.WheelHeight, wheelString.ToFormattedWheelString()); var winPositions = MainGameEngine.GenerateWinPositions( config.Payline, config.PayTable, wheel, 1, Game.Lines, config.BonusConfig.Collapse.Multipliers.First()); var bonusPositions = MainGameEngine.GenerateBonusPositions(wheel); var removedWinPositions = CollapsingBonusEngine.GetRemoveWinPositions(winPositions, bonusPositions); foreach (var winPositionIndex in winPositions.Select((Value, Index) => new { Value, Index })) { var removedWinPosition = removedWinPositions.ElementAt(winPositionIndex.Index); Assert.AreEqual(winPositionIndex.Value.Line, removedWinPosition.Line); } foreach (var bonusPositionIndex in bonusPositions.Select((Value, Index) => new { Value, Index })) { Assert.AreEqual(bonusPositionIndex.Value.Line, 0); } }
public decimal SpinResultShouldCreateCorrectPayout(string wheelString, int level, decimal bet) { var config = new Configuration(); var spinBet = MainGameEngine.GenerateSpinBet(new RequestContext <SpinArgs>("", "", PlatformType.Web) { GameSetting = new Model.Entity.GameSetting { GameSettingGroupId = 0 }, Currency = new Model.Entity.Currency { Id = 0 }, Parameters = new SpinArgs { LineBet = bet, Multiplier = 1 } }); var wheel = new Wheel(Game.WheelWidth, Game.WheelHeight, wheelString.ToFormattedWheelString()); var winPositions = MainGameEngine.GenerateWinPositions(config.Payline, config.PayTable, wheel, spinBet.LineBet, spinBet.Lines, spinBet.Multiplier); var stackedReels = MainGameEngine.GetStackedReels(wheel, config.PayTable); var bonusPositions = MainGameEngine.GenerateBonusPositions(stackedReels); var spinResult = new SpinResult(spinBet, wheel, winPositions, bonusPositions); return(spinResult.Win); }
public string EngineShouldCreateCorrectRowPositions(string wheelString, int replacementSymbol, int level) { var config = new Configuration(); var wheel = new Wheel(Game.WheelWidth, Game.WheelHeight, wheelString.ToFormattedWheelString()); if (wheel.CountDistinct(Symbols.Mystery) > 0) /// Calculate wins with replaced mystery symbols { var replacedMysterySymbolWheel = MainGameEngine.GenerateReplacedMysterySymbolWheel(config, wheel, replacementSymbol); var winPositions = MainGameEngine.GenerateWinPositions( config.Payline, config.PayTable, replacedMysterySymbolWheel, 1, Game.Lines, 1); return(string.Join('|', winPositions.Select(wp => string.Join(',', wp.RowPositions)))); } else { var winPositions = MainGameEngine.GenerateWinPositions( config.Payline, config.PayTable, wheel, 1, Game.Lines, 1); return(string.Join('|', winPositions.Select(wp => string.Join(',', wp.RowPositions)))); } }
public void EngineShouldGetRemoveCorrectRowPositions(string wheelString, int level) { var config = new Configuration(); var wheel = new Wheel(Game.WheelWidth, Game.WheelHeight, wheelString.ToFormattedWheelString()); var winPositions = MainGameEngine.GenerateWinPositions( config.Payline, config.PayTable, wheel, 1, Game.Lines, config.BonusConfig.Collapse.Multipliers.First()); var bonusPositions = MainGameEngine.GenerateBonusPositions(wheel); var removedWinPositions = CollapsingBonusEngine.GetRemoveWinPositions(winPositions, bonusPositions); for (var widthIndex = 0; widthIndex < wheel.Width; widthIndex++) { var removeRowPositions = CollapsingBonusEngine.GetRemoveRowPositions(winPositions, widthIndex); var removeWinPositions = winPositions .Select(wp => wp.RowPositions[widthIndex] - 1) .Where(wp => wp != -1) .Distinct(); var targetRowPositions = removeWinPositions; Assert.IsTrue(!targetRowPositions.Except(removeRowPositions).Any()); } }
public bool EngineShouldCreateCorrectMainGameRandomWheel(int level) { var areReelsCorrect = true; var config = new Configuration(); var targetWheel = MainGameEngine.GetTargetWheel(level, config); var topIndices = MainGameEngine.GenerateRandomWheelIndices(targetWheel); var wheel = MainGameEngine.GenerateNormalWheel(level, targetWheel, topIndices); for (var widthIndex = 0; widthIndex < Game.WheelWidth; widthIndex++) { for (var heightIndex = 0; heightIndex < Game.WheelHeight; heightIndex++) { var index = (Game.WheelHeight * widthIndex) + heightIndex; var symbol = wheel[widthIndex][heightIndex]; if (!targetWheel[index][0].Contains(symbol)) { areReelsCorrect = false; } } } return(areReelsCorrect); }
public string EngineShouldCreateCorrectCollapseReels(string wheelString, string indicesString, int level) { var config = new Configuration(); var spinBet = MainGameEngine.GenerateSpinBet(new RequestContext <SpinArgs>("", "", PlatformType.Web) { GameSetting = new Model.Entity.GameSetting { GameSettingGroupId = 0 }, Currency = new Model.Entity.Currency { Id = 0 }, Parameters = new SpinArgs { LineBet = 1, Multiplier = 1 } }); var targetWheel = config.WeightedReelStripsCollection.FirstOrDefault().Wheel; var topIndices = Array.ConvertAll(indicesString.Split(','), Convert.ToInt32).ToList(); var wheel = new Wheel(Game.WheelWidth, Game.WheelHeight, wheelString.ToFormattedWheelString()); var winPositions = MainGameEngine.GenerateWinPositions(config.Payline, config.PayTable, wheel, spinBet.LineBet, spinBet.Lines, config.BonusConfig.FreeSpin.Multipliers.First()); var bonusPositions = MainGameEngine.GenerateBonusPositions(wheel); var freeSpinResult = new FreeSpinResult(spinBet, wheel, topIndices, winPositions, bonusPositions, config.BonusConfig.FreeSpin.Multipliers.First()); var freeSpinCollapsingResult = FreeSpinBonusEngine.CreateFreeSpinCollapsingResult(freeSpinResult, targetWheel, config.BonusConfig.FreeSpin.Multipliers, config.Payline, config.PayTable); return(string.Join('|', freeSpinCollapsingResult.Wheel.Reels.Select(symbols => string.Join(',', symbols)))); }
public bool SpinResultShouldFlagSpinResultWithFeatureOnScatter(string wheelString, int level, decimal bet) { var config = new Configuration(); var spinBet = MainGameEngine.GenerateSpinBet(new RequestContext <SpinArgs>("", "", PlatformType.Web) { GameSetting = new Model.Entity.GameSetting { GameSettingGroupId = 0 }, Currency = new Model.Entity.Currency { Id = 0 }, Parameters = new SpinArgs { LineBet = bet, Multiplier = 1 } }); var wheel = new Wheel(Game.WheelWidth, Game.WheelHeight, wheelString.ToFormattedWheelString()); var winPositions = MainGameEngine.GenerateWinPositions( config.Payline, config.MainGamePayTable, wheel, spinBet.LineBet, spinBet.Lines, 1); var bonusPositions = MainGameEngine.GenerateBonusPositions(wheel); var spinResult = new SpinResult(spinBet, wheel, null, winPositions, bonusPositions); return(spinResult.HasFeatureBonus); }
public void EngineShouldGetRemoveCorrectRowPositions(string wheelString, int level) { var config = new Configuration(); var wheel = new Wheel(Game.WheelWidth, Game.WheelHeight, wheelString.ToFormattedWheelString()); var winPositions = MainGameEngine.GenerateWinPositions(config.Payline, config.PayTable, wheel, 1, 1); var removedWinPositions = CollapsingBonusEngine.GetRemoveWinPositions(winPositions); for (var widthIndex = 0; widthIndex < wheel.Width; widthIndex++) { for (var heightIndex = 0; heightIndex < Game.WheelHeight; heightIndex++) { var index = (widthIndex * Game.WheelHeight) + heightIndex; var removeRowPositions = CollapsingBonusEngine.GetRemoveRowPositions(winPositions, index); var removeWinPositions = winPositions .Select(wp => wp.RowPositions[index] > 0 ? index % Game.WheelWidth : -1) .Where(wp => wp != -1) .Distinct(); var targetRowPositions = removeWinPositions; Assert.IsTrue(!targetRowPositions.Except(removeRowPositions).Any()); } } }
public void EngineShouldCreateCorrectSpinBet() { var config = new Configuration(); var requestContext = new RequestContext <SpinArgs>("", "", PlatformType.Web) { GameSetting = new Model.Entity.GameSetting { GameSettingGroupId = 0 }, Currency = new Model.Entity.Currency { Id = 0 }, Parameters = new SpinArgs { LineBet = 1, Multiplier = 1 } }; var spinBet = MainGameEngine.GenerateSpinBet(requestContext); var isCurrencyEqual = spinBet.CurrencyId == requestContext.Currency.Id; var isGameSettingGroupEqual = spinBet.GameSettingGroupId == requestContext.GameSetting.GameSettingGroupId; var isLineBetEqual = spinBet.LineBet == requestContext.Parameters.LineBet; var isCreditsEqual = spinBet.Credits == Game.Credits; var isAutoSpinEqual = spinBet.IsAutoSpin == requestContext.Parameters.IsAutoSpin; var isLinesEqual = spinBet.Lines == Game.Lines; var isMultiplierEqual = spinBet.Multiplier == requestContext.Parameters.Multiplier; var isFunPlayDisabled = spinBet.FunPlayDemoKey == 0; Assert.IsTrue(isCurrencyEqual && isGameSettingGroupEqual && isLineBetEqual && isCreditsEqual && isAutoSpinEqual && isLinesEqual && isMultiplierEqual && isFunPlayDisabled); }
public void EngineShouldGenerateCorrectCollapseWheel(int level) { var config = new Configuration(); var spinResult = GenerateWinningSpinResult(level); var referenceWheel = MainGameEngine.GetTargetWheel(level, config); var removedWinPositions = CollapsingBonusEngine.GetRemoveWinPositions(spinResult.WinPositions); var collapsingRemoves = CollapsingBonusEngine.GetCollapseRemoveItems(removedWinPositions); var newTopIndices = CollapsingBonusEngine.GetCollapseTopIndices(referenceWheel, spinResult.TopIndices, collapsingRemoves); var collapsingAdds = CollapsingBonusEngine.GetCollapseAddItems(referenceWheel, newTopIndices, collapsingRemoves); var collapsingWheel = CollapsingBonusEngine.GenerateCollapsedWheel(spinResult.Wheel, collapsingRemoves, collapsingAdds); var newWheel = spinResult.Wheel.Copy(); foreach (var removeItem in collapsingRemoves) { var cleanReel = newWheel[removeItem.Key]; foreach (var index in removeItem.Value.OrderByDescending(val => val)) { cleanReel.RemoveAt(index); } newWheel[removeItem.Key] = collapsingAdds[removeItem.Key].Concat(cleanReel).ToList(); } foreach (var reelIndex in collapsingWheel.Reels.Select((Value, Index) => new { Value, Index })) { var referenceReel = newWheel[reelIndex.Index]; Assert.IsTrue(!referenceReel.Except(reelIndex.Value).Any()); } newWheel.Equals(collapsingWheel); }
public void EngineShouldCreateCorrectWinPositionLineAndMultiplierAndSymbol(string wheelString, int replacementSymbol, int level) { var config = new Configuration(); var wheel = new Wheel(Game.WheelWidth, Game.WheelHeight, wheelString.ToFormattedWheelString()); if (wheel.CountDistinct(Symbols.Mystery) > 0) /// Calculate wins with replaced mystery symbols { var replacedMysterySymbolWheel = MainGameEngine.GenerateReplacedMysterySymbolWheel(config, wheel, replacementSymbol); var winPositions = MainGameEngine.GenerateWinPositions( config.Payline, config.PayTable, replacedMysterySymbolWheel, 1, Game.Lines, 1); Assert.IsTrue(!winPositions.Any(wp => wp.Line < 0 || wp.Multiplier <= 0 || wp.Symbol < 0)); } else { var winPositions = MainGameEngine.GenerateWinPositions( config.Payline, config.PayTable, wheel, 1, Game.Lines, 1); Assert.IsTrue(!winPositions.Any(wp => wp.Line < 0 || wp.Multiplier <= 0 || wp.Symbol < 0)); } }
public bool SpinResultShouldHaveBombCollapseWhenReelsHaveBombAndWin(string wheelString, int level, decimal bet) { var config = new Configuration(); var spinBet = MainGameEngine.GenerateSpinBet(new RequestContext <SpinArgs>("", "", PlatformType.Web) { GameSetting = new Model.Entity.GameSetting { GameSettingGroupId = 0 }, Currency = new Model.Entity.Currency { Id = 0 }, Parameters = new SpinArgs { LineBet = bet, Multiplier = 1 } }); var wheel = new Wheel(Game.WheelWidth, Game.WheelHeight, wheelString); var winPositions = MainGameEngine.GenerateWinPositions( config.Payline, config.PayTable, wheel, spinBet.LineBet, spinBet.Lines, spinBet.Multiplier); var bombAndStopperPositions = MainGameEngine.GenerateBombAndStopperPositions(wheel, winPositions); var spinResult = new Games.NuwaAndTheFiveElements.Models.GameResults.Spins.SpinResult(level, spinBet, wheel, null, winPositions, null, bombAndStopperPositions); return(spinResult.HasBomb && spinResult.Collapse); }
public string EngineShouldCreateCorrectCollapseReels(string wheelString, string indicesString, int level) { wheelString = string.Join(',', wheelString.Split('|')); var config = new Configuration(); var spinBet = MainGameEngine.GenerateSpinBet(new RequestContext <SpinArgs>("", "", PlatformType.Web) { GameSetting = new Model.Entity.GameSetting { GameSettingGroupId = 0 }, Currency = new Model.Entity.Currency { Id = 0 }, Parameters = new SpinArgs { LineBet = 1, Multiplier = 1 } }); var targetWheel = MainGameEngine.GetTargetWheel(level, config); var topIndices = Array.ConvertAll(indicesString.Split(','), Convert.ToInt32).ToList(); var wheel = new Wheel(Game.WheelWidth, Game.WheelHeight, wheelString); var winPositions = MainGameEngine.GenerateWinPositions(config.Payline, config.PayTable, wheel, spinBet.LineBet, spinBet.Lines, 1); var matchingSymbolPositions = MainGameEngine.GenerateMatchingSymbolPositions(config.SymbolCollapsePairs, winPositions.Select(wp => wp.Symbol).ToList(), wheel); var bombAndStopperPositions = MainGameEngine.GenerateBombAndStopperPositions(wheel, winPositions); var spinResult = new Games.NuwaAndTheFiveElements.Models.GameResults.Spins.SpinResult(level, spinBet, wheel, topIndices, winPositions, matchingSymbolPositions, bombAndStopperPositions); var collapsingSpinResult = CollapsingBonusEngine.CreateCollapsingSpinResult(spinResult, targetWheel, config.SymbolCollapsePairs, config.Payline, config.PayTable); return(string.Join('|', collapsingSpinResult.Wheel.Reels.Select(symbols => string.Join(',', symbols)))); }
public decimal EngineShouldCreateCorrectPayout(string wheelString, int level, int scatterMultiplier) { var config = new Configuration(); var spinBet = MainGameEngine.GenerateSpinBet(new RequestContext <SpinArgs>("", "", PlatformType.Web) { GameSetting = new Model.Entity.GameSetting { GameSettingGroupId = 0 }, Currency = new Model.Entity.Currency { Id = 0 }, Parameters = new SpinArgs { LineBet = 1, Multiplier = 1 } }); var wheel = new Wheel(Game.WheelWidth, Game.WheelHeight, wheelString); var winPositions = MainGameEngine.GenerateWinPositions( config.Payline, config.PayTable, wheel, spinBet.LineBet, spinBet.Lines, spinBet.Multiplier); var spinResult = new Games.NuwaAndTheFiveElements.Models.GameResults.Spins.SpinResult(level, spinBet, wheel, null, winPositions, null, null); var instantWinBonus = InstantWinBonusEngine.CreateInstantWinBonus(spinResult); instantWinBonus.UpdateBonus(scatterMultiplier); var instantWinBonusResult = InstantWinBonusEngine.CreateInstantWinBonusResult(instantWinBonus); return(instantWinBonusResult.Win); }
public string EngineShouldCreateCorrectRespinWheel(string wheelString, string newWheelString, int level) { var config = new Configuration(); var spinBet = MainGameEngine.GenerateSpinBet(new RequestContext <SpinArgs>("", "", PlatformType.Web) { GameSetting = new Model.Entity.GameSetting { GameSettingGroupId = 0 }, Currency = new Model.Entity.Currency { Id = 0 }, Parameters = new SpinArgs { LineBet = 1, Multiplier = 1 } }); var wheel = new Wheel(Game.WheelWidth, Game.WheelHeight, wheelString.ToFormattedWheelString()); var winPositions = MainGameEngine.GenerateWinPositions(config.Payline, config.PayTable, wheel, spinBet.LineBet, spinBet.Lines, spinBet.Multiplier); var stackedReels = MainGameEngine.GetStackedReels(wheel, config.PayTable); var bonusPositions = MainGameEngine.GenerateBonusPositions(stackedReels); var spinResult = new SpinResult(spinBet, wheel, winPositions, bonusPositions); var newWheel = new Wheel(Game.WheelWidth, Game.WheelHeight, newWheelString.ToFormattedWheelString()); var generatedWheel = RespinBonusEngine.GenerateRespinWheel(spinResult, newWheel); return(string.Join(",", generatedWheel.Reels.SelectMany(symbol => symbol))); }
public static CollapsingSpinResult GenerateWithBonusCollapsingSpinResult(int level) { var generateCount = 0; var config = new Configuration(); var spinResult = GenerateWinningSpinResult(level); var targetWheel = MainGameEngine.GetTargetWheel(level, config, spinResult.Wheel.ReelStripsId); var collapsingSpinResult = CollapsingBonusEngine.CreateCollapsingSpinResult( spinResult, targetWheel, config.Payline, config.MainGamePayTable); while (!collapsingSpinResult.HasFeatureBonus) { spinResult = GenerateWinningSpinResult(level); targetWheel = MainGameEngine.GetTargetWheel(level, config, spinResult.Wheel.ReelStripsId); collapsingSpinResult = CollapsingBonusEngine.CreateCollapsingSpinResult( spinResult, targetWheel, config.Payline, config.MainGamePayTable); generateCount++; Debug.WriteLine($"CollapsingSpinResult Generate Count: {generateCount}"); } return(collapsingSpinResult); }
public void EngineShouldGetRemoveCorrectRowPositions(string wheelString, int level) { var config = new Configuration(); var wheel = new Wheel(Game.WheelWidth, Game.WheelHeight, wheelString); var winPositions = MainGameEngine.GenerateWinPositions( config.Payline, config.PayTable, wheel, 1, Game.Lines, 1); var matchingSymbolPositions = MainGameEngine.GenerateMatchingSymbolPositions(config.SymbolCollapsePairs, winPositions.Select(wp => wp.Symbol).ToList(), wheel); var bombAndStopperPositions = MainGameEngine.GenerateBombAndStopperPositions(wheel, winPositions); var removedWinPositions = CollapsingBonusEngine.GetRemoveWinPositions(winPositions); for (var widthIndex = 0; widthIndex < wheel.Width; widthIndex++) { var removeRowPositions = CollapsingBonusEngine.GetRemoveRowPositions(winPositions, matchingSymbolPositions, bombAndStopperPositions, widthIndex); var removeWinPositions = winPositions .Select(wp => wp.RowPositions[widthIndex] - 1) .Where(wp => wp != -1) .Distinct(); var removeMatchingSymbolPositions = matchingSymbolPositions[widthIndex] .Select(position => position - 1) .Where(position => position != -1) .Distinct(); var targetRowPositions = removeWinPositions.Union(removeMatchingSymbolPositions); Assert.IsTrue(!targetRowPositions.Except(removeRowPositions).Any()); } }
public void EngineShouldCreateFreeSpinBonusResultFromFreeSpinCollapsingResult(int level) { var config = new Configuration(); var requestContext = new RequestContext <BonusArgs>("", "", PlatformType.Web) { GameSetting = new Model.Entity.GameSetting { GameSettingGroupId = 0 }, Currency = new Model.Entity.Currency { Id = 0 }, Parameters = new BonusArgs(), Platform = PlatformType.All }; Assert.DoesNotThrow(() => { var freeSpinResult = FreeSpinBonusEngine.CreateFreeSpinResult(level, requestContext, config); var freeSpinBonus = FreeSpinBonusEngine.CreateFreeSpinBonus(freeSpinResult); var targetWheel = MainGameEngine.GetTargetWheel(level, config, freeSpinResult.Wheel.ReelStripsId); var freeSpinCollapsingResult = FreeSpinBonusEngine.CreateFreeSpinCollapsingResult(freeSpinResult, targetWheel, config.BonusConfig.FreeSpin.Multipliers, config.Payline, config.PayTable); var freeSpinBonusResult = FreeSpinBonusEngine.CreateFreeSpinBonusResult(freeSpinBonus, freeSpinCollapsingResult); }); }
public int EngineShouldCreateCorrectBonusPositionsCount(string wheelString) { var config = new Configuration(); var wheel = new Wheel(Game.WheelWidth, Game.WheelHeight, wheelString.ToFormattedWheelString()); var bonusPositions = MainGameEngine.GenerateBonusPositions(wheel); return(bonusPositions.Count); }
public static T New(MainGameEngine engine) { T actor = new T(); actor.SetMainGameEngine(engine); engine.allActors.Add(actor); return(actor); }
public void EngineShouldCreateCorrectWinPositionLineAndMultiplierAndSymbol(string wheelString, int level) { var config = new Configuration(); var wheel = new Wheel(Game.WheelWidth, Game.WheelHeight, wheelString.ToFormattedWheelString()); var winPositions = MainGameEngine.GenerateWinPositions(config.Payline, config.PayTable, wheel, 1, 1); Assert.IsTrue(!winPositions.Any(wp => wp.Line < 0 || wp.Multiplier <= 0 || wp.Symbol < 0)); }
public string EngineShouldCreateCorrectRowPositions(string wheelString, int level) { var config = new Configuration(); var wheel = new Wheel(Game.WheelWidth, Game.WheelHeight, wheelString.ToFormattedWheelString()); var winPositions = MainGameEngine.GenerateWinPositions(config.Payline, config.PayTable, wheel, 1, 1); return(string.Join('|', winPositions.Select(wp => string.Join(',', wp.RowPositions)))); }
public int EngineShouldGetCorrectStackedSymbols(string wheelString) { var config = new Configuration(); var wheel = new Wheel(Game.WheelWidth, Game.WheelHeight, wheelString.ToFormattedWheelString()); var stackedSymbols = MainGameEngine.GetStackedSymbols(wheel); return(stackedSymbols.Count); }
public int EngineShouldCreateCorrectWinPositionCount(string wheelString, int level) { var config = new Configuration(); var wheel = new Wheel(Game.WheelWidth, Game.WheelHeight, wheelString.ToFormattedWheelString()); var winPositions = MainGameEngine.GenerateWinPositions(config.Payline, config.PayTable, wheel, 1, 1); return(winPositions.Count); }
static void Main(string[] args) { // TCP server port int port = 1111; if (args.Length > 0) { port = int.Parse(args[0]); } Console.WriteLine($"TCP server port: {port}"); Console.WriteLine(); // Create a new TCP chat server MainGameEngine engine = new MainGameEngine(); engine.server = new ChatServer(IPAddress.Any, port, engine); var server = engine.server; // Start the server Console.Write("Server starting..."); server.Start(); Console.WriteLine("Done!"); Console.WriteLine("Press Enter to stop the server or '!' to restart the server..."); //Game Engine Start! engine.Start(); // Perform text input for (;;) { string line = Console.ReadLine(); if (string.IsNullOrEmpty(line)) { break; } // Restart the server if (line == "!") { Console.Write("Server restarting..."); server.Restart(); Console.WriteLine("Done!"); continue; } // Multicast admin message to all sessions line = "(admin) " + line; server.Multicast(line); } // Stop the server Console.Write("Server stopping..."); server.Stop(); Console.WriteLine("Done!"); }
public void EngineShouldRemoveCorrectWinPositionCount(string wheelString, int level) { var config = new Configuration(); var wheel = new Wheel(Game.WheelWidth, Game.WheelHeight, wheelString.ToFormattedWheelString()); var winPositions = MainGameEngine.GenerateWinPositions(config.Payline, config.PayTable, wheel, 1, 1); var removedWinPositions = CollapsingBonusEngine.GetRemoveWinPositions(winPositions); Assert.AreEqual(winPositions.Count, removedWinPositions.Count); }
public int EngineShouldRetrieveCorrectCollapseMultiplier(int level, int iterations) { var config = new Configuration(); var targetWheel = MainGameEngine.GetTargetWheel(level, config, false); var targetMultiplier = CollapsingBonusEngine.GetCollapseMultiplier(config.BonusConfig.Collapse.Multipliers, iterations); return(targetMultiplier); }
//when make actor, need engine public void SetMainGameEngine(MainGameEngine _engine) { engine = _engine; SetUp(); // Type thisType = this.GetType(); // MethodInfo theMethod = thisType.GetMethod("Update"); // theMethod.Invoke(this, userParameters); // engine.setUps.Add(FirstUpdate); }