public int GetAttactAfterLevelUp(Rarity oldRarity, int oldAtk) { var newRarity = oldRarity - 1; var newMax = newRarity.GetAttackMax(); var newMin = newRarity.GetAttackMin(); var range = newMax - newMin; var oldMax = oldRarity.GetAttackMax(); var oldMin = oldRarity.GetAttackMin(); var relNew = ScaleNumber(oldMin, oldMax, newMin, newMax, oldAtk); var relMin = relNew - (range * 6 / 100); var relMax = relNew + (range * 8 / 100); var nAtk = Fun.GetRandomValue(relMin, relMax + 1); if (nAtk > newMax) { nAtk = newMax; } if (nAtk < newMin) { nAtk = newMin; } return(nAtk); }
public int RandomizeAttack(Rarity rarity) => Fun.GetRandomValue(rarity.GetAttackMin(), rarity.GetAttackMax() + 1);