private Characteristics GenerateFightMonsterCharacteristics(int monsterLevel, int monsterBattlePowerPercent, Characteristics heroCharacteristics) { Characteristics monsterCharacteristics = new Characteristics(); int heroBattlePower = CharacteristicsFormulas.CalculateBattlePower(heroCharacteristics); Random random = new Random(); int maxPercent = MaxPercent; int monsterAttackPercent = random.Next(MinimumPercentAttack, MaximumPercentAttack); int monsterDefensePercent = random.Next(MinimumPercentDefense, MaximumPercentDefense); int monsterMasteryPercent = random.Next(MinimumPercentMastery, MaximumPercentMastery); int monsterDexterityPercent = maxPercent - monsterAttackPercent - monsterDefensePercent - monsterMasteryPercent; int monsterBattlePower = MonsterFormulas.CalculateBattlePower(heroBattlePower, monsterBattlePowerPercent); monsterCharacteristics.Attack = MonsterFormulas.CalculateAttack(monsterLevel, monsterBattlePower, monsterAttackPercent); monsterCharacteristics.Defense = MonsterFormulas.CalculateDefense(monsterLevel, monsterBattlePower, monsterAttackPercent); monsterCharacteristics.Mastery = MonsterFormulas.CalculateMastery(monsterLevel, monsterBattlePower, monsterMasteryPercent); monsterCharacteristics.Dexterity = MonsterFormulas.CalculateDexterity(monsterLevel, monsterBattlePower, monsterDexterityPercent); monsterCharacteristics.Mass = heroCharacteristics.Mass; return(monsterCharacteristics); }