コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        public void UpdateCharacter(Character character)
        {
            CharacterDbEntity characterDb = character.Build(true);

            _repository.Update(characterDb.User);
        }
コード例 #6
0
 public FightResult(CharacterDbEntity attackerChar, CharacterDbEntity targetChar)
 {
     AttackerChar = attackerChar;
     TargetChar   = targetChar;
 }