Exemplo n.º 1
0
 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)
     {
     }
 }
Exemplo n.º 2
0
    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!");
    }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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."));
 }
Exemplo n.º 6
0
 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);
 }
Exemplo n.º 7
0
 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.");
     }
 }
Exemplo n.º 8
0
    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);
    }
Exemplo n.º 9
0
        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;
        }
Exemplo n.º 11
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            BotLogic botLogic = new BotLogic(PROCESS_NAMES);

            if(botLogic.GameOverlay != null) Application.Run(botLogic.GameOverlay);
        }
Exemplo n.º 12
0
 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;
     }
 }
Exemplo n.º 13
0
        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
        }
    }
Exemplo n.º 15
0
        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);
        }
Exemplo n.º 17
0
        public void Setup()
        {
            _gameEngine = GetComponent <GameEngine>();

            Fight = GetComponent <FightController>();
            Fight.Setup(this);

            BotLogic = GetComponent <BotLogic>();

            GameEngine.GameController.OnNextActionChanged += _onNextActionChanged;
        }
Exemplo n.º 18
0
 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();
 }
Exemplo n.º 19
0
        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;
        }
Exemplo n.º 21
0
        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);
        }
Exemplo n.º 22
0
        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);
        }
Exemplo n.º 23
0
        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);
        }
Exemplo n.º 24
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);
        }
Exemplo n.º 25
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");
        }
Exemplo n.º 27
0
        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);
        }
Exemplo n.º 28
0
        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
            });
        }
Exemplo n.º 29
0
        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);
        }
Exemplo n.º 30
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);
        }
Exemplo n.º 31
0
        /* 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();
        }
Exemplo n.º 32
0
        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);
        }
Exemplo n.º 33
0
        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;
        }