La meilleure façon de le faire est d'utiliser une fonction. Elle n'a pas besoin de ressembler exactement à ça, mais.. :
class Whatever
{
private double basePower = 5000;
public int numPowerUps = 5;
public double GetActualPower()
{
return basePower + (numPowerUps * basePower * 0.1);
}
}
Il suffit de remettre numPowerUps à 0 lorsqu'ils sont épuisés. De cette façon, c'est beaucoup plus clair.
Une parenthèse :
La raison pour laquelle cela ne fonctionne pas est que l'addition puis la soustraction de pourcentages ne fonctionne pas. Par exemple :
1. What is 10% of 100? --> 10
2. Add that to the 100 --> 110
3. What is 10% of 110? --> 11
4. Subtract that from 110 --> 99
Vous vous retrouverez toujours avec 99% de votre valeur initiale. Si vous voulez vraiment prendre un raccourci, vous pouvez faire ceci :
1. What is 10% of 100? --> 10
2. Add that to the 100 --> 110
3. What is (100/11) = 9.09090909...% of 110? --> 10
4. Subtract that from 110 --> 100
Mais vous êtes alors potentiellement susceptible de commettre des erreurs de virgule flottante. La méthode de la fonction est non seulement plus claire et plus nette, mais aussi potentiellement moins sujette aux erreurs.