Exemple #1
0
        public Models.ViewModels.Damage calcDamage(GameData.Models.Character character, GameData.Models.Enemy enemy)
        {
            //dammage calcs
            Models.ViewModels.Damage damage = new Models.ViewModels.Damage();
            character.Health = character.Health - enemy.Atk;
            enemy.Health     = enemy.Health - character.str;

            damage.character = character;
            damage.enemy     = enemy;

            return(damage);
        }
        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);
        }