public FightResult Fight(CharacterDbEntity attackerChar, CharacterDbEntity targetChar) { int attackerCharDamage = attackerChar.Power; int targetCharHp = targetChar.Hp; int targetCharDefense = targetChar.Defense; targetChar.Hp = targetCharHp - Math.Max(0, attackerCharDamage - targetCharDefense); return(new FightResult(attackerChar, targetChar)); }
public (Character attacker, Character defender) StartFight(int userId, int selectedCharId, int targetUserId, int selectedTargetCharId) { UserDbEntity u = _userRepository.GetAll().Include(x => x.Characters).FirstOrDefault(x => x.Id == userId); CharacterDbEntity uc = u.Characters.FirstOrDefault(x => x.Id == selectedCharId); UserDbEntity tu = _userRepository.GetAll().Include(x => x.Characters).FirstOrDefault(x => x.Id == targetUserId); CharacterDbEntity tuc = tu.Characters.FirstOrDefault(x => x.Id == selectedTargetCharId); FightResult result = _fightManager.Fight(uc, tuc); _userRepository.Update(result.TargetChar.User); Character attackerChar = uc.Build(); Character targetChar = tuc.Build(); return(attackerChar, targetChar); }
public static CharacterDbEntity Build(this Character character, bool includeUser = false) { CharacterDbEntity characterDbEntity = new CharacterDbEntity { Id = character.Id, Power = character.Power, Intelligence = character.Intelligence, Hp = character.Hp, Defense = character.Defense, Agility = character.Agility, Name = character.Name, Level = character.Level, Exp = character.Exp }; if (includeUser == true) { characterDbEntity.User = Build(character.User); } return(characterDbEntity); }
public Character GenerateCharacter(int id, Character character) { var u = _repository.GetById(id); CharacterDbEntity characterDbEntity = new CharacterDbEntity { Id = character.Id, Power = character.Power, Intelligence = character.Intelligence, Hp = character.Hp, Defense = character.Defense, Agility = character.Agility, Name = character.Name, Level = 1, Exp = 0 }; ActiveUsers[id].Characters.Add(character); u.Characters ??= new List <CharacterDbEntity>(); u.Characters.Add(characterDbEntity); _repository.Update(u); return(character); }
public void UpdateCharacter(Character character) { CharacterDbEntity characterDb = character.Build(true); _repository.Update(characterDb.User); }
public FightResult(CharacterDbEntity attackerChar, CharacterDbEntity targetChar) { AttackerChar = attackerChar; TargetChar = targetChar; }