public int GetDefenceAfterLevelUp(Rarity oldRarity, int oldDef) { var newRarity = oldRarity - 1; var newMax = newRarity.GetDefenceMax(); var newMin = newRarity.GetDefenceMin(); var range = newMax - newMin; var oldMax = oldRarity.GetDefenceMax(); var oldMin = oldRarity.GetDefenceMin(); var relNew = ScaleNumber(oldMin, oldMax, newMin, newMax, oldDef); var relMin = relNew - (range * 6 / 100); var relMax = relNew + (range * 8 / 100); var nDef = Fun.GetRandomValue(relMin, relMax + 1); if (nDef > newMax) { nDef = newMax; } if (nDef < newMin) { nDef = newMin; } return(nDef); }
public int RandomizeDefence(Rarity rarity) => Fun.GetRandomValue(rarity.GetDefenceMin(), rarity.GetDefenceMax() + 1);