private static void CheckForIsland(TowerInitMessage tower) { try { if (!tower.guild.Equals(Account.Guild)) { foreach (var pos in Account.Route) { if ((CalculateDistance(pos.X, pos.Y, tower.position.X, tower.position.Y) <= 48)) { if (CalculateDistance(Account.Position.X, Account.Position.Y, pos.X, pos.Y) < 4.5) { Bot.underAttackBy = tower.entityInfo; BotSettings.escapingIsland = true; if (!BotLogic.OnAttackRunning && Bot.Running) { BotLogic.StartonAttackThread(); } return; } } } } } catch (Exception) { } }
public void BotLogic_CreateBot_Should_Not_Create_A_Bot_In_Rapid_Succession() { // Arrange var randomHelper = new Mock <IRandomHelper>(); var botRepository = new Mock <IRepository <Bot> >(); var scriptRepository = new Mock <IRepository <BotScript> >(); var playerRepository = new Mock <IRepository <Player> >(); var botMapper = new BotMapper(); var botToCreateMapper = new BotToCreateMapper(); var arenaLogic = new Mock <IArenaLogic>(); var configurationHelper = new Mock <IConfigurationHelper>(); IBotLogic botLogic = new BotLogic( randomHelper.Object, botRepository.Object, scriptRepository.Object, playerRepository.Object, botMapper, botToCreateMapper, arenaLogic.Object, configurationHelper.Object); var arenaDto = new ArenaDto(3, 3); var player = new Player { Id = Guid.NewGuid(), LastDeployment = DateTime.UtcNow }; var botToCreateDto = new BotToCreateDto(Guid.NewGuid(), "BotName", 100, 200, "BotScript"); // Mock arenaLogic.Setup(x => x.GetArena()).ReturnsAsync(arenaDto); playerRepository.Setup(x => x.Single(Any.Predicate <Player>())).ReturnsAsync(player); configurationHelper.Setup(x => x.BotDeploymentLimit).Returns(1); // Act Func <Task> act = async() => await botLogic.CreateBot(botToCreateDto); // Assert act.Should().ThrowAsync <LogicException>().WithMessage("You are not allowed to create multiple robots in rapid succession!"); }
public void ShouldMarkShipAsSunkForGivenCollectionNextPointWillBeRandomGenerated() { var shipDataGeneratorMock = new Mock <IShipDataGenerator>(); shipDataGeneratorMock.Setup(m => m.GetDirection()).Returns(1); var botLogic = new BotLogic(shipDataGeneratorMock.Object); botLogic.StoreLastStatus(Coordinate.FromIndex(1, 0), Status.Miss); botLogic.StoreLastStatus(Coordinate.FromIndex(1, 1), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(2, 1), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(3, 1), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(0, 1), Status.Hit); var listForMarking = new List <Coordinate> { Coordinate.FromIndex(1, 0), Coordinate.FromIndex(1, 1), Coordinate.FromIndex(2, 1), Coordinate.FromIndex(3, 1), Coordinate.FromIndex(0, 1) }; botLogic.MarkShipAsSunk(listForMarking); botLogic.GetNextCoordinate(); shipDataGeneratorMock.Verify(x => x.GetRand0To9(), Times.Exactly(2)); }
public async Task BotLogic_UpdateBots_Should_Update_Bots() { // Arrange var randomHelper = new Mock <IRandomHelper>(); var botRepository = new Mock <IRepository <Bot> >(); var scriptRepository = new Mock <IRepository <BotScript> >(); var playerRepository = new Mock <IRepository <Player> >(); var botMapper = new BotMapper(); var botToCreateMapper = new BotToCreateMapper(); var arenaLogic = new Mock <IArenaLogic>(); var configurationHelper = new Mock <IConfigurationHelper>(); IBotLogic botLogic = new BotLogic( randomHelper.Object, botRepository.Object, scriptRepository.Object, playerRepository.Object, botMapper, botToCreateMapper, arenaLogic.Object, configurationHelper.Object); var botDto = new BotDto(); // Mock botRepository.Setup(x => x.Update(It.IsAny <IList <Bot> >())).Returns <IList <Bot> >(Task.FromResult); // Act await botLogic.UpdateBots(new[] { botDto }.ToList()); // Assert botRepository.Verify(x => x.Update(It.IsAny <IList <Bot> >()), Times.Once); }
public void getSearchTextTest() { Assert.AreEqual("Warszawa", BotLogic.getSearchText("Warszawa?")); Assert.AreEqual("London", BotLogic.getSearchText("Check London!")); Assert.AreEqual("Atlanta", BotLogic.getSearchText("USA, Atlanta")); Assert.AreEqual("Hamburg", BotLogic.getSearchText("Was im Hamburg?")); Assert.AreEqual("Chicago", BotLogic.getSearchText("Now Chicago.")); }
public async Task LastMatch(CommandContext ctx, string playerName) { await ctx.Channel.SendMessageAsync($"Last match stats:\n" + $"RESULT: \t{BotLogic.ObtainLastMatchResult(playerName)}\n" + $"MAP: \t{BotLogic.ObtainLastMatchMap(playerName)}\n" + $"SCORE: \t{BotLogic.ObtainLastMatchScore(playerName)}") .ConfigureAwait(false); }
private static void TaskTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { if (Tasks.Count >= 1) { var _task = Tasks[currentID]; if (RemoveTask(currentID)) { var nextTask = Tasks.Values.ToArray()[0]; currentID = nextTask.id; ChangeTask(nextTask.type); if (_task.type == "bm" && Tasks.Count > 0) { BotSettings.leaveBM = true; BotSettings.autoJoinBM = false; } if (_task.type == "raid" && Tasks.Count > 0) { BotSettings.leaveBM = true; BotSettings.autoJoinRaid = false; } BotMethods.WriteLine("Finished Task. Starting " + Tasks[currentID].type + " Task."); Thread.Sleep(100); } } else { StopTaskSystem(); if (BotSettings.tasksDoneLogout) { BotMethods.WriteLine("Finished all Tasks. Logging out."); BotLogic.StopBotThread(); var point = Bot.MoveToCorner(); BotMethods.MoveTo(point.X, point.Y); var counter = 60; Thread.Sleep(555); while (Account.Route.Count >= 3 && !Account.IsSunk && counter > 0) { if (point.X == Account.Position.X && point.Y == Account.Position.Y) { break; } Thread.Sleep(1000); counter--; } Thread.Sleep(new Random().Next(175, 385)); BotMethods.Logout(0); LogginOut = true; while (Server.Connected) { Thread.Sleep(100); } BotCalculator.StopThreads(); BotMethods.WriteLine("Succesfully logged out."); return; } BotMethods.WriteLine("Finished all Tasks. Returning to default Settings."); } }
public async Task BotLogic_CreateBot_Should_Create_A_Bot() { // Arrange var randomHelper = new Mock <IRandomHelper>(); var botRepository = new Mock <IRepository <Bot> >(); var scriptRepository = new Mock <IRepository <BotScript> >(); var playerRepository = new Mock <IRepository <Player> >(); var botMapper = new BotMapper(); var botToCreateMapper = new BotToCreateMapper(); var arenaLogic = new Mock <IArenaLogic>(); var configurationHelper = new Mock <IConfigurationHelper>(); IBotLogic botLogic = new BotLogic( randomHelper.Object, botRepository.Object, scriptRepository.Object, playerRepository.Object, botMapper, botToCreateMapper, arenaLogic.Object, configurationHelper.Object); var arenaDto = new ArenaDto(4, 3); var player = new Player { Id = Guid.NewGuid(), LastDeployment = DateTime.MinValue }; var botToCreateDto = new BotToCreateDto(Guid.NewGuid(), "BotName", 100, 200, "BotScript"); var botScripts = new List <BotScript> { new BotScript { Id = Guid.Empty, Script = botToCreateDto.Script } }; // Mock randomHelper.Setup(x => x.Get <PossibleOrientations>()).Returns(PossibleOrientations.South); botRepository.Setup(x => x.Find(Any.Predicate <Bot>(), i => i.Player)).ReturnsAsync(new List <Bot>()); randomHelper.Setup(x => x.Get(It.IsAny <int>())).Returns(5); arenaLogic.Setup(x => x.GetArena()).ReturnsAsync(arenaDto); botRepository.Setup(x => x.Create(It.IsAny <Bot>())).Returns <Bot>(Task.FromResult); playerRepository.Setup(x => x.Single(Any.Predicate <Player>())).ReturnsAsync(player); scriptRepository.Setup(x => x.Single(Any.Predicate <BotScript>())) .ReturnsAsync((Expression <Func <BotScript, bool> > predicate) => botScripts.SingleOrDefault(predicate.Compile())); scriptRepository.Setup(x => x.Update(It.IsAny <BotScript>())).Returns <BotScript>(Task.FromResult); // Act var result = await botLogic.CreateBot(botToCreateDto); // Assert result.Should().NotBeNull(); result.Name.Should().Be(botToCreateDto.Name); result.Orientation.Should().Be(PossibleOrientations.South); result.X.Should().Be(1); result.Y.Should().Be(2); result.FromX.Should().Be(1); result.FromY.Should().Be(2); result.MaximumHealth.Should().Be(botToCreateDto.MaximumHealth); result.CurrentHealth.Should().Be(botToCreateDto.MaximumHealth); result.MaximumStamina.Should().Be(botToCreateDto.MaximumStamina); result.CurrentStamina.Should().Be(botToCreateDto.MaximumStamina); result.Memory.Should().NotBeNull(); result.TimeOfDeath.Should().Be(DateTime.MaxValue); }
public void ShouldUseRandomDataAtStart() { var shipDataGeneratorMock = new Mock <IShipDataGenerator>(); var botLogic = new BotLogic(shipDataGeneratorMock.Object); botLogic.GetNextCoordinate(); shipDataGeneratorMock.Verify(x => x.GetRand0To9(), Times.Exactly(2)); }
public void SetUp() { telegramUser = new TelegramUser(1337); botLogic = new BotLogic(new MockDataBase()); telegramHandler = new TelegramHandler(null); telegramHandler.OnMessage += botLogic.ExecuteUserRequest; botLogic.OnReply += Nothing; }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); BotLogic botLogic = new BotLogic(PROCESS_NAMES); if(botLogic.GameOverlay != null) Application.Run(botLogic.GameOverlay); }
private static void ConnectionThread() { try { DateTime dateTime_ = DateTime.Now; while (true) { TimeSpan ts = (DateTime.Now - Client.lastPacket); if (!Server.IsConnected() || ts.TotalSeconds > 70.0) { BotSession.Sessionreconnects++; break; } TimeSpan ts2 = (DateTime.Now - dateTime_); if (ts2.TotalMinutes >= 1.0) { GC.Collect(); GC.WaitForPendingFinalizers(); HelpTools.ClearMemory(HelpTools.GetCurrentProcess()); dateTime_ = DateTime.Now; } TimeSpan ts3 = (DateTime.Now - BotSession.dailyQuestFinishTime); if (ts3.TotalHours >= 24 && ts3.TotalMinutes >= 1 && ts3.TotalSeconds >= 1 && !BotSession.Sessioncandodailyquest) { BotSession.Sessioncandodailyquest = true; } Thread.Sleep(1000); } Thread.Sleep(2000); Bot.Running = false; if (Server._targetSocket != null && Server._targetSocket.Connected) { Server._targetSocket.Close(); } if (Bot.Running) { BotLogic.StopBotThread(); } if (BotLogic.OnAttackRunning) { BotLogic.StoponAttackThrad(); } Server.Connected = false; if (BotSettings.tasksDoneLogout && TaskSystem.TasksSystem.LogginOut) { return; } BotSession.lostConnection = true; } catch (Exception ex) { BotMethods.WriteLine("There was an error in the connection-Thread!\n\n" + ex.Message); ConnectionThread(); return; } }
private void StartMetaGen(World world) { world.RunSynchronously(() => { Slot metagen_slot = world.RootSlot.Find("5013598197metagen local slot"); if (metagen_slot == null) { metagen_slot = world.AddLocalSlot("5013598197metagen local slot"); } MetaGen metagen = metagen_slot.GetComponent <MetaGen>(); if (metagen == null) { Action <MetaGen> beforeAttach = (MetaGen comp) => { //comp.hearingRecorder = hearingRecorder; comp.recording_hearing_user = recording_hearing_user; }; metagen = metagen_slot.AttachComponent <MetaGen>(true, beforeAttach); } else { //metagen.hearingRecorder = hearingRecorder; metagen.recording_hearing_user = recording_hearing_user; //metagen.StartRecording(); } metagens[current_session_id] = metagen; metagen.admin_mode = admin_mode; MetaMetaGen.current_metagen = metagen; //hearingRecorder.metagen_comp = metagen; //attach BotLogic if (use_bot_ui) { //Slot botLogicSlot = world.LocalUser.Root.Slot.AddLocalSlot("botlogic local slot"); Slot botLogicSlot = world.RootSlot.AddLocalSlot("botlogic local slot"); BotLogic logicComp = botLogicSlot.AttachComponent <BotLogic>(); logicComp.mg = current_metagen; current_metagen.botComponent = logicComp; } current_metagen.silent_mode = use_silent_mode; current_metagen.dataBase = dataBase; ResetHearingUser(); current_metagen.record_local_user = default_record_local_user; current_metagen.Initialize(); current_metagen.OnUserLeftCallback += MaybeResetHearingUserOnLeft; //current_metagen.OnUserJoinedCallback += MaybeResetHearingUserOnJoin; earsSlot = world.AddSlot("AudioListener"); //world.LocalUser.LocalUserRoot.OverrideEars.Target = earsSlot; //hearingRecorder.earSlot = earsSlot; current_metagen.record_everyone = record_everyone; current_metagen.recording_hearing = false; current_metagen.is_loaded = true; }); }
void SpawnObject() { GameObject o = Instantiate(spawnObject); //instantiate object BotLogic bl = o.GetComponent(typeof(BotLogic)) as BotLogic; //get logic component if (bl != null) { bl.SetPlanet(spawnAtTarget); //add spawn target to logic component } }
public void ShouldUseNonRandomGeneratorIfPreviousWasHit() { var shipDataGeneratorMock = new Mock <IShipDataGenerator>(); var botLogic = new BotLogic(shipDataGeneratorMock.Object); botLogic.StoreLastStatus(Coordinate.FromIndex(1, 0), Status.Miss); botLogic.GetNextCoordinate(); shipDataGeneratorMock.Verify(x => x.GetRand0To9(), Times.Exactly(2)); }
public void SimpeTest(string message, ChatStatus expected) { var databse = new MockDataBase(); var botLogic = new BotLogic(databse); var userRequest = telegramHandler.ParseUserMessageText(telegramUser, message); botLogic.Execute(userRequest); Assert.AreEqual(expected, databse.Users[telegramUser.Id].ChatStatus); }
public void Setup() { _gameEngine = GetComponent <GameEngine>(); Fight = GetComponent <FightController>(); Fight.Setup(this); BotLogic = GetComponent <BotLogic>(); GameEngine.GameController.OnNextActionChanged += _onNextActionChanged; }
public static void StartThreads() { if (_shipThread != null) { _shipThread.Abort(); int num = 0; while (true) { if (!_shipThread.IsAlive) { if (_shipThread.ThreadState != System.Threading.ThreadState.Running) { break; } } if (num >= 5) { break; } num++; Thread.Sleep(1000); } } if (_connectionThread != null) { _connectionThread.Abort(); int num = 0; while (true) { if (!_connectionThread.IsAlive) { if (_connectionThread.ThreadState != System.Threading.ThreadState.Running) { break; } } if (num >= 5) { break; } num++; Thread.Sleep(1000); } } if ((Bot._botThread == null || !Bot.Running) && BotLogic.attacking >= 0) { BotLogic.StartBotThread(); } _shipThread = new Thread((ShipThread)); _shipThread.Start(); _connectionThread = new Thread((ConnectionThread)); _connectionThread.Start(); }
public void ShouldTargetOneOfBothSidesAfterFirstHit() { var shipDataGeneratorMock = new Mock <IShipDataGenerator>(); var botLogic = new BotLogic(shipDataGeneratorMock.Object); botLogic.StoreLastStatus(Coordinate.FromIndex(1, 0), Status.Miss); botLogic.StoreLastStatus(Coordinate.FromIndex(1, 1), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(2, 1), Status.Hit); var coordinate = botLogic.GetNextCoordinate(); coordinate.RowToIndex.Should().Be(3); }
private void CreateBot(string _vehicle, TeamManager.Team _botTeam, BotLogic botLogic, Vector3 pos, Vector3 euler) { TankInitSystem vehicle = new GameObject("Vehicle", typeof(TankInitSystem)).GetComponent <TankInitSystem>(); vehicle.VehicleName = _vehicle; vehicle._InstanceNetType = InstanceNetType.GameNetworkBotOffline; vehicle.ownerTeam = _botTeam; vehicle.BulletCountList = new int[] { 1000, 1000, 1000 }; vehicle.thinkLogic = botLogic; vehicle.InitTankInitSystem(); vehicle.transform.position = pos; vehicle.transform.eulerAngles = euler; }
public void ShouldKeepOneDirectionUntilMiss() { var shipDataGeneratorMock = new Mock <IShipDataGenerator>(); var botLogic = new BotLogic(shipDataGeneratorMock.Object); botLogic.StoreLastStatus(Coordinate.FromIndex(1, 0), Status.Miss); botLogic.StoreLastStatus(Coordinate.FromIndex(1, 1), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(2, 1), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(3, 1), Status.Hit); var coordinate = botLogic.GetNextCoordinate(); coordinate.RowToIndex.Should().Be(4); }
public void ShouldCheckAllPossibleDirectionsUntilNextHit() { var shipDataGeneratorMock = new Mock <IShipDataGenerator>(); var botLogic = new BotLogic(shipDataGeneratorMock.Object); shipDataGeneratorMock.Setup(m => m.GetDirection()).Returns(3); botLogic.StoreLastStatus(Coordinate.FromIndex(1, 1), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(2, 1), Status.Miss); botLogic.StoreLastStatus(Coordinate.FromIndex(1, 2), Status.Miss); botLogic.StoreLastStatus(Coordinate.FromIndex(0, 1), Status.Miss); botLogic.GetNextCoordinate(); shipDataGeneratorMock.Verify(x => x.GetDirection(), Times.Once); }
public void ShouldTurnToTheOtherSideWhenLastWasMiss() { var shipDataGeneratorMock = new Mock <IShipDataGenerator>(); var botLogic = new BotLogic(shipDataGeneratorMock.Object); botLogic.StoreLastStatus(Coordinate.FromIndex(1, 0), Status.Miss); botLogic.StoreLastStatus(Coordinate.FromIndex(1, 1), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(2, 1), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(3, 1), Status.Miss); var coordinate = botLogic.GetNextCoordinate(); coordinate.RowToIndex.Should().Be(0); }
public void ShouldGetSortedHitListForLookingForSides() { var shipDataGeneratorMock = new Mock <IShipDataGenerator>(); shipDataGeneratorMock.Setup(m => m.GetDirection()).Returns(1); var botLogic = new BotLogic(shipDataGeneratorMock.Object); botLogic.StoreLastStatus(Coordinate.FromIndex(2, 1), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(1, 1), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(3, 1), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(4, 1), Status.Miss); var coordinate = botLogic.GetNextCoordinate(); coordinate.RowToIndex.Should().Be(0); }
public async Task BotLogic_GetAllLiveBots_Should_Only_Return_Live_Bots() { // Arrange var randomHelper = new Mock <IRandomHelper>(); var botRepository = new Mock <IRepository <Bot> >(); var scriptRepository = new Mock <IRepository <BotScript> >(); var playerRepository = new Mock <IRepository <Player> >(); var botMapper = new BotMapper(); var botToCreateMapper = new BotToCreateMapper(); var arenaLogic = new Mock <IArenaLogic>(); var configurationHelper = new Mock <IConfigurationHelper>(); IBotLogic botLogic = new BotLogic( randomHelper.Object, botRepository.Object, scriptRepository.Object, playerRepository.Object, botMapper, botToCreateMapper, arenaLogic.Object, configurationHelper.Object); var bots = new List <Bot> { new Bot { Name = "BOT1", CurrentHealth = 0 }, new Bot { Name = "BOT2", CurrentHealth = 1 }, new Bot { Name = "BOT3", CurrentHealth = 0 } }; // Mock botRepository.Setup(x => x.Find(Any.Predicate <Bot>(), Any.Include <Bot, Player>())) .ReturnsAsync((Expression <Func <Bot, bool> > predicate, Expression <Func <Bot, Player> > include) => (IList <Bot>)bots.Where(predicate.Compile()).ToList()); // Act var result = await botLogic.GetAllLiveBots(); // Assert result.Should().HaveCount(1); result.Should().Contain(x => x.Name == "BOT2"); }
public async Task BotLogic_GetAllActiveBots_Should_Only_Return_Recently_Died_Bots() { // Arrange var randomHelper = new Mock <IRandomHelper>(); var botRepository = new Mock <IRepository <Bot> >(); var scriptRepository = new Mock <IRepository <BotScript> >(); var botScriptRepository = new Mock <IRepository <Bot, BotScript> >(); var playerRepository = new Mock <IRepository <Player> >(); var botMapper = new BotMapper(); var botToCreateMapper = new BotToCreateMapper(); var arenaLogic = new Mock <IArenaLogic>(); IBotLogic botLogic = new BotLogic( randomHelper.Object, botRepository.Object, scriptRepository.Object, botScriptRepository.Object, playerRepository.Object, botMapper, botToCreateMapper, arenaLogic.Object); var bots = new List <Bot> { new Bot { Name = "BOT1", CurrentHealth = 0, TimeOfDeath = DateTime.UtcNow.AddSeconds(-11) }, new Bot { Name = "BOT2", Id = Guid.NewGuid(), CurrentHealth = 0, TimeOfDeath = DateTime.UtcNow.AddSeconds(-1) } }; // Mock botRepository.Setup(x => x.Find(Any.Predicate <Bot>(), Any.Include <Bot, Player>())) .ReturnsAsync((Expression <Func <Bot, Boolean> > predicate, Expression <Func <Bot, Player> > include) => (IList <Bot>)bots.Where(predicate.Compile()).ToList()); // Act var result = await botLogic.GetAllActiveBots(); // Assert result.Should().HaveCount(1); result.Should().Contain(x => x.Name == "BOT2"); }
public void ShouldShootAgainNearFirstHitWhenBothSidesAreMissed_ItIsCornerCaseForTwoConnectedShips() { var shipDataGeneratorMock = new Mock <IShipDataGenerator>(); shipDataGeneratorMock.Setup(m => m.GetDirection()).Returns(1); var botLogic = new BotLogic(shipDataGeneratorMock.Object); botLogic.StoreLastStatus(Coordinate.FromIndex(1, 0), Status.Miss); botLogic.StoreLastStatus(Coordinate.FromIndex(1, 1), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(2, 1), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(3, 1), Status.Miss); botLogic.StoreLastStatus(Coordinate.FromIndex(0, 1), Status.Miss); var coordinate = botLogic.GetNextCoordinate(); coordinate.RowToIndex.Should().Be(1); coordinate.ColumnToIndex.Should().Be(2); }
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapGet("/", async context => { var myBot = new BotLogic(); myBot.BotMessageReceivedLogic(); await context.Response.WriteAsync("Hello from the covid bot"); }); }); app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto }); }
public void ShouldGetRidOfWrongPath_CornerCaseWhen3ShipsAreSticked() { var shipDataGeneratorMock = new Mock <IShipDataGenerator>(); shipDataGeneratorMock.Setup(m => m.GetDirection()).Returns(1); var botLogic = new BotLogic(shipDataGeneratorMock.Object); botLogic.StoreLastStatus(Coordinate.FromIndex(2, 1), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(2, 2), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(2, 3), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(2, 4), Status.Miss); botLogic.StoreLastStatus(Coordinate.FromIndex(2, 0), Status.Miss); botLogic.StoreLastStatus(Coordinate.FromIndex(1, 1), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(3, 1), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(4, 1), Status.Miss); var coordinate = botLogic.GetNextCoordinate(); coordinate.RowToIndex.Should().Be(0); }
public void ShouldGetRidOfWrongPath_CornerCaseWhen2ShipsAreSticked() { var shipDataGeneratorMock = new Mock <IShipDataGenerator>(); shipDataGeneratorMock.Setup(m => m.GetDirection()).Returns(1); var botLogic = new BotLogic(shipDataGeneratorMock.Object); botLogic.StoreLastStatus(Coordinate.FromIndex(2, 5), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(3, 5), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(4, 5), Status.ShipHasSunk); botLogic.StoreLastStatus(Coordinate.FromIndex(1, 5), Status.Miss); botLogic.StoreLastStatus(Coordinate.FromIndex(3, 4), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(3, 6), Status.Hit); botLogic.StoreLastStatus(Coordinate.FromIndex(3, 7), Status.Miss); var coordinate = botLogic.GetNextCoordinate(); coordinate.ColumnToIndex.Should().Be(3); }
/* end http://stackoverflow.com/a/1524047 */ public Overlay(BotLogic _owner, int _keyOffsetX, int _keyOffsetY, string process) { InitializeComponent(); owner = _owner; keyOffsetX = _keyOffsetX; keyOffsetY = _keyOffsetY - 50; overlayFont = new Font(FontFamily.GenericMonospace, 10f); creditBrush = new SolidBrush(Color.Aqua); initializeOverlayBrushes(); backgroundBrush = new SolidBrush(Color.Black); windowFinder = new WindowFinder(); windowFinder.SetProcess(process); // todo: add hooks programatically keyboardHook = new globalKeyboardHook(); keyboardHook.KeyDown += KeyboardHook_KeyDown; keyboardHook.HookedKeys.Add(toggleKey); keyboardHook.HookedKeys.Add(toggleVisibleKey); keyboardHook.HookedKeys.Add(toggleKeyModeKey); keyboardHook.HookedKeys.Add(toggleAutoReadyKey); keyboardHook.HookedKeys.Add(dumpKey); keyboardHook.hook(); Byte[] bitmapData = Convert.FromBase64String(CREDIT_IMAGE_B64); using (System.IO.MemoryStream streamBitmap = new System.IO.MemoryStream(bitmapData)) { creditImage = (Bitmap)Image.FromStream(streamBitmap); } creditImageEnabled = getColoredBitmap(creditImage, Color.FromArgb(0, 1, 0)); creditImageDisabled = getColoredBitmap(creditImage, Color.FromArgb(1, 0, 0)); this.DoubleBuffered = true; //owner.Start(); }
public async Task BotLogic_GetBotScript_Should_Return_Correct_Script() { // Arrange var randomHelper = new Mock <IRandomHelper>(); var botRepository = new Mock <IRepository <Bot> >(); var scriptRepository = new Mock <IRepository <BotScript> >(); var playerRepository = new Mock <IRepository <Player> >(); var botMapper = new BotMapper(); var botToCreateMapper = new BotToCreateMapper(); var arenaLogic = new Mock <IArenaLogic>(); var configurationHelper = new Mock <IConfigurationHelper>(); IBotLogic botLogic = new BotLogic( randomHelper.Object, botRepository.Object, scriptRepository.Object, playerRepository.Object, botMapper, botToCreateMapper, arenaLogic.Object, configurationHelper.Object); var botId = Guid.NewGuid(); var script = "BotScript!"; var botScripts = new List <BotScript> { new BotScript { Id = botId, Script = script } }; // Mock scriptRepository.Setup(x => x.Single(Any.Predicate <BotScript>())) .ReturnsAsync((Expression <Func <BotScript, bool> > predicate) => botScripts.SingleOrDefault(predicate.Compile())); // Act var result = await botLogic.GetBotScript(botId); // Assert result.Should().Be(script); }
private string signalToFriendlyName(BotLogic.Signal signal) { string newName = signal.ToString().Replace("Key_", "").Replace("_Fever", ""); if (!newName.Contains("_")) return newName; // fine for normal, 4-key names newName = newName.Replace("Up", "U") .Replace("Down", "D") .Replace("Left", "L") .Replace("Right", "R") .Replace("_", ""); return newName; }