Exemple #1
0
        public void Attack_WhenAttacksHerself_ReturnsUnalteredHealth()
        {
            FakeCharacter me = new FakeCharacter();

            AttackService sut = new AttackService();

            sut.Attack(100, me, me);

            Assert.Equal(1000, me.HealthPoints);
        }
        public void CalculateThresold_WhenEnemyLevelIsInTheRange_ReturnsNormalThreshold()
        {
            FakeCharacter attacker = new FakeCharacter();
            FakeCharacter enemy    = new FakeCharacter();

            AttackService sut = new AttackService();

            float threshold = sut.CalculateThreshold(attacker, enemy);

            Assert.Equal(1F, threshold);
        }
Exemple #3
0
        public void Attack_WhenCauseDamageToAThing_ReturnsSubtractedHealth()
        {
            FakeCharacter me    = new FakeCharacter();
            Thing         enemy = new Thing(1000);

            AttackService sut = new AttackService();

            sut.Attack(100, me, enemy);

            Assert.Equal(900, enemy.HealthPoints);
        }
 public AttackController(ILogger <AttackController> logger,
                         IHubContext <AttackHub> hubContext,
                         DnsDbContext dnsDb,
                         AttackService attackService,
                         NotifyService notifyService,
                         RedisService redisService)
 {
     _logger        = logger;
     _hubContext    = hubContext;
     _dnsDb         = dnsDb;
     _attackService = attackService;
     _notifyService = notifyService;
     _redisService  = redisService;
 }
Exemple #5
0
        public void SendAttack()
        {
            var attacker   = new Village(new Troops());
            var defensor   = new Village(new Troops());
            var troopsToGo = new Troops
            {
                Barbarians    = 1000,
                LightCavalary = 1500,
                Rams          = 190
            };

            IAttackService service = new AttackService();


            service.SendAttack(attacker, defensor);
        }
        public void CalculateThresold_WhenEnemyLevelIsSmallerThan5_ReturnsLowerThreshold()
        {
            Mock <Character> attacker = new Mock <Character>();

            attacker.Setup(x => x.Level).Returns(3);

            Mock <Character> enemy = new Mock <Character>();

            enemy.Setup(x => x.Level).Returns(8);

            AttackService sut = new AttackService();

            float threshold = sut.CalculateThreshold(attacker.Object, enemy.Object);

            Assert.Equal(0.5F, threshold);
        }
        public void AttackService_DefenderWins()
        {
            // Arrange
            var attackService = new AttackService(new DefenderWinsRandomGen());

            // Act
            int attackerUnits = 2;
            int defenderUnits = 2;
            int attackerUnitsLost;
            int defenderUnitsLost;
            var result = attackService.Attack(
                attackerUnits, defenderUnits,
                out attackerUnitsLost, out defenderUnitsLost);

            // Assert
            Assert.IsFalse(result);
            Assert.AreEqual(attackerUnits, attackerUnitsLost);
            Assert.AreEqual(0, defenderUnitsLost);
        }
Exemple #8
0
        public void Attack_WhenCharactersArentAllies_ReturnsSubtractedHealth()
        {
            Faction faction  = new Faction(1);
            Faction faction2 = new Faction(2);

            FakeCharacter character = new FakeCharacter();

            character.JoinFaction(faction);

            FakeCharacter character2 = new FakeCharacter();

            character2.JoinFaction(faction2);

            AttackService sut = new AttackService();

            sut.Attack(100, character, character2);

            Assert.Equal(900, character2.HealthPoints);
        }
        public void AttackService_DefenderWinsForEvenDiceRolls()
        {
            // Arrange
            var randomService = new PredefinedRandomGen(6, 6);
            var attackService = new AttackService(randomService);

            // Act
            int attackerUnits = 2;
            int defenderUnits = 2;
            int attackerUnitsLost;
            int defenderUnitsLost;
            var result = attackService.Attack(
                attackerUnits, defenderUnits,
                out attackerUnitsLost, out defenderUnitsLost);

            // Assert
            Assert.IsFalse(result);
            Assert.AreEqual(attackerUnits, attackerUnitsLost);
            Assert.AreEqual(0, defenderUnitsLost);
        }
        //Service READONLY
        private AttackService CreateAttackService()
        {
            var service = new AttackService();

            return(service);
        }
Exemple #11
0
        private void Start()
        {
            var userName     = ConfigurationManager.AppSettings["username"];
            var userPassword = ConfigurationManager.AppSettings["password"];
            var user         = new User(userName, userPassword);

            var reqCache     = new RequestCache(user);
            var loginService = new PlayerService();

            reqCache.DoLogin();
            _rootObject = loginService.GetPlayerAndCurrentVillageInfo(reqCache);

            if (_rootObject.csrf == null || _rootObject.village.id == 0)
            {
                throw new Exception("_csrfToken or _currentVillage is not set!");
            }

            var villageId = _rootObject.village.id;

            Console.WriteLine("Login succeded!");


            var reportService = new ReportService();
            var reportItems   = reportService.GetReportItemsFrom(reqCache.Manager, 0, villageId);

            reportService.GetReport(reqCache.Manager, villageId, reportItems[0].Id);

            Environment.Exit(0);

            while (true)
            {
                var villageCache           = new WorldMapVillageCache();
                var worldMapVillageService = new WorldMapVillageService(villageCache);
                var barbarianVillages      = worldMapVillageService.GetBarbarianVillagesInRange(5, 507, 530);

                Console.WriteLine($"Nr of villages {barbarianVillages.Count}");

                var attackService = new AttackService();
                var unitService   = new UnitService();

                foreach (var village in barbarianVillages)
                {
                    var planedAttack = new PlanedAttack
                    {
                        Units = new Dictionary <Units, int>
                        {
                            { Units.Light, 4 },
                            { Units.Spy, 1 }
                        },
                        Attacker          = _rootObject.village,
                        EnemyVillageXCord = village.X,
                        EnemyVillageYCord = village.Y
                    };

                    var unitsInVillageNow = unitService.GetMyUnitsInVillage(reqCache.Manager, _rootObject.village.id);
                    var canSendAttack     = true;
                    foreach (var keyValuePair in planedAttack.Units)
                    {
                        if (unitsInVillageNow[keyValuePair.Key] < keyValuePair.Value)
                        {
                            canSendAttack = false;
                        }
                    }

                    if (!canSendAttack)
                    {
                        Console.WriteLine("We don't have enough units to send the attack!");
                        continue;
                    }

                    attackService.SendAttack(reqCache.Manager, _rootObject, planedAttack);
                    Thread.Sleep(200 + GetRandomInt(0, 500));
                }

                Console.WriteLine($"Sleeping for half hour, {DateTime.Now:hh:mm:ss}");
                Thread.Sleep(60 * 35 * 1000);
            }

            #region Comments....

            /*       var barrackService = new UnitService();
             *
             *     Console.WriteLine("barracks");
             *     foreach (var item in barrackService.GetActiveQueueForBarracks(reqCache.Manager, _rootObject.village.id))
             *     {
             *         Console.WriteLine(item);
             *     }
             *
             *     Console.WriteLine("stable");
             *     foreach (var item in barrackService.GetActiveQueueForStable(reqCache.Manager, _rootObject.village.id))
             *     {
             *         Console.WriteLine(item);
             *     }
             *
             *     Environment.Exit(0);*/

            /*foreach (var buildingQueueItem in new BuildingService(reqCache.Manager).GetActiveBuilingQueue())
             * {
             *  Console.WriteLine(buildingQueueItem);
             * }
             *
             * var buildingService = new BuildingService(reqCache.Manager);
             * const BuildingTypes type = BuildingTypes.Stable;
             * var csrfToken = _rootObject.csrf;
             * var villageId = _rootObject.village.id;
             * buildingService.AddBuildingUppgradeToActiveQeueu(type, csrfToken, villageId);
             *
             * foreach (var buildingQueueItem in buildingService.GetActiveBuilingQueue())
             * {
             *  Console.WriteLine(buildingQueueItem);
             * }
             *
             * buildingService.CancelBuildingUpgradeFromActiveQueue(buildingService.GetActiveBuilingQueue()[2].Id, csrfToken, villageId);
             *
             * foreach (var buildingQueueItem in new BuildingService(reqCache.Manager).GetActiveBuilingQueue())
             * {
             *  Console.WriteLine(buildingQueueItem);
             * }
             */

//            var units = new Dictionary<Units, int>
//            {
//                {Units.Spear, 1}
//            };
//            new UnitService(reqCache.Manager).AddOrderToActiveQueue(units, _rootObject.csrf, _rootObject.village.id);
//            new BuildingService(reqManager).GetActiveBuilingQueue();

            /*   var eventSevice = new EventService(reqManager);
             * var masterLimit = 0;
             * while (true) {
             *     var masters = eventSevice.GetAvalibleMasters();
             *
             *     if (masters <= masterLimit) {
             *         var sleepInMs = ( GetRandomInt(0, 120)) * 1000;
             *         var timeSpan = new TimeSpan(0, 0, 0, 0, sleepInMs);
             *         var timeStr = $"minutes {timeSpan.Minutes}, sec {timeSpan.Seconds}";
             *         var currentTime = DateTime.Now;
             *         Console.Write($"Sleeping for {timeStr}, CurrenTime {currentTime:hh:mm:ss}, Running again at ");
             *         var dateTime = currentTime.Add(timeSpan);
             *         Console.WriteLine($"{dateTime:hh:mm:ss}");
             *         Thread.Sleep(sleepInMs);
             *         continue;
             *     }
             *
             *     var myFlags = eventSevice.GetMyFlags();
             *     var oponents = eventSevice.GetOponents(_rootObject.csrf);
             *
             *     foreach (var op in oponents) {
             *         if (myFlags.Flags[op.FlagType] > 4) {
             *             continue;
             *         }
             *
             *         if(masters <= masterLimit)continue;
             *         masters -= 1;
             *
             *         Console.WriteLine($"Send to get {op.FlagType}");
             *
             *         Console.WriteLine(op.Url);
             *        var req = reqManager.GenerateGETRequest(op.Url, null, null, true);
             *         var res = reqManager.GetResponse(req);
             *         var htmlres = RequestManager.GetResponseStringFromResponse(res);
             *     }
             * }*/

            /*  new MapService(reqManager).GetMapForGrid(480,500);
             *
             * var buildingService = new BuildingService(reqManager);
             * var attackService = new AttackService(reqManager);
             *
             * var planedAttack = new PlanedAttack {
             *    Units = new Dictionary<Units, int> {
             *        {Units.Spear, 10},
             *        {Units.Sword, 10}
             *    },
             *    Attacker = _rootObject.village,
             *    EnemyVillageXCord = 521,
             *    EnemyVillageYCord = 474
             * };
             *
             *
             * attackService.SendAttack(_rootObject, planedAttack);
             *
             * Console.WriteLine("Attack sent!");
             *
             * //            Console.WriteLine($"The HQ is level {buildingService.GetBuildingLevel(BuildingTypes.Main)}");
             * //            Console.WriteLine($"The Barracks is level {buildingService.GetBuildingLevel(BuildingTypes.Barracks)}");
             * //            Console.WriteLine($"The Stable is level {buildingService.GetBuildingLevel(BuildingTypes.Stable)}");
             * //            Console.WriteLine($"The Storage is level {buildingService.GetBuildingLevel(BuildingTypes.Storage)}");
             *
             * var storage = new Storage(0);
             *
             *
             * var timeLeftWood = storage.TimeLeftUntillWoodFull(_rootObject);
             * var woodStr = TimeFormater.TimeSpanToString(timeLeftWood);
             * Console.WriteLine($"time untill wood is full {woodStr}");
             *
             * var timeLeftClay = storage.TimeLeftUntillClayFull(_rootObject);
             * var clayStr = TimeFormater.TimeSpanToString(timeLeftClay);
             * Console.WriteLine($"time untill clay is full {clayStr}");
             *
             * var timeLeftIron = storage.TimeLeftUntillIronFull(_rootObject);
             * var ironStr = TimeFormater.TimeSpanToString(timeLeftIron);
             * Console.WriteLine($"time untill iron is full {ironStr}");
             */

            #endregion
        }
Exemple #12
0
 public AttackHub(ILogger <AttackHub> logger, DnsDbContext dnsDb, AttackService attackService)
 {
     _logger        = logger;
     _dbContext     = dnsDb;
     _attackService = attackService;
 }