示例#1
0
        public void checkIfEnemyDead()
        {
            GameData.Models.Battle enemy = new GameData.Models.Battle();
            enemy.enemyHealth = 200;
            RobesAndArmorGit.Logic.DamageCalc damageCalc = new RobesAndArmorGit.Logic.DamageCalc();

            Assert.False(damageCalc.checkIfEnemyDead(enemy));
        }
示例#2
0
 public bool checkIfEnemyDead(GameData.Models.Battle battle)
 {
     if (battle.enemyHealth <= 0)
     {
         return(true);
     }
     return(false);
 }
        private GameData.Models.Battle newBattle(GameData.Models.Character character)
        {
            GameData.Models.Battle battle = new GameData.Models.Battle();
            battle.characterID = character.Id;
            GameData.Models.Enemy enemy = randomEnemy(character.Level);
            battle.enemyId     = enemy.Id;
            battle.enemyHealth = enemy.Health;
            _context.Add(battle);
            _context.SaveChanges();

            return(battle);
        }
 private bool checkForExistingBattle(GameData.Models.Character character)
 {
     //checks if there is an already started battle in the database
     GameData.Models.Battle battle = _context.battles.SingleOrDefault(m => m.characterID == character.Id);
     if (battle == null)
     {
         return(false);
     }
     else
     {
         return(true);
     }
 }
        public async Task <IActionResult> damage(int?id)
        {
            //return the view with the new damage
            GameData.Models.Battle battle = _context.battles.SingleOrDefault(m => m.Id == id);

            Logic.DamageCalc          calcdam   = new Logic.DamageCalc();
            GameData.Models.Character character = _context.Characters.FirstOrDefault(m => m.Id == battle.characterID);



            Models.ViewModels.Damage damage = calcdam.calcDamage(_context.Characters.FirstOrDefault(m => m.Id == battle.characterID), _context.Enemies.FirstOrDefault(m => m.Id == battle.enemyId));
            battle.enemyHealth = damage.enemy.Health;

            if (calcdam.checkIfCharDead(damage.character))
            {
                //character is dead

                deadCharacter();
            }
            else if (calcdam.checkIfEnemyDead(battle))
            {
                //enemy is dead

                deadEnemy();
            }
            else
            {
                //battle goes on as nobody is dead
                _context.Update(battle);
                await _context.SaveChangesAsync();

                character.Health = damage.character.Health;
                _context.Update(character);
                await _context.SaveChangesAsync();

                return(RedirectToAction("battle", "Battle"));
            }



            return(RedirectToAction("battle", "Battle"));



            //return View("~/Views/Characters/Battle.cshtml", battle);
        }
        private async void deadCharacter()
        {
            //character is dead delete 10% of his money and update health to full
            Logic.CharacterDeadCalc characterDeadCalc = new Logic.CharacterDeadCalc();
            ApplicationUser         usr = await GetCurrentUserAsync();

            GameData.Models.Character character = await _context.Characters.SingleOrDefaultAsync(m => m.UserID == usr.UserName);

            character        = characterDeadCalc.calcOnDeadMoney(character);
            character.Health = 500;

            GameData.Models.Battle battle = _context.battles.SingleOrDefault(m => m.characterID == character.Id);

            _context.Update(character);
            await _context.SaveChangesAsync();

            _context.battles.Remove(battle);
            await _context.SaveChangesAsync();
        }