TL;DR : Il vous donne d'abord deux bombes, puis double cette quantité.
Disons qu'il existe une fonction simple qui représente l'effet du Deux de Pique (2oS) :
int Activate2OfSpades()
return currentBombCount * 2;
L'utilisation de la Cloth de Tarot avec 2oS est censée faire en sorte que l'effet se produise deux fois. Potentiellement, cela pourrait conduire à deux flux de travail possibles :
A) L'ensemble du processus est effectué deux fois. Votre nombre actuel de bombes est doublé, puis doublé à nouveau.
TarotCloth2oS_A()
currentBombCount = Activate2OfSpades()
currentBombCount = Activate2OfSpades()
B) Le processus n'est effectué qu'une fois, mais appliqué deux fois.
TarotCloth2oS_B()
tempValue = Activate2OfSpades()
currentBombCount = currentBombValue + 2 * tempValue
Supposons que vous ayez deux bombes pour commencer. Le résultat du flux A devrait donner 8 bombes au total, tandis que le flux B en donne 10. Si vous faites cela dans le jeu, vous pouvez voir que vous vous retrouvez avec 8 bombes, donc clairement flux de travail A c'est ce que fait le code.
Maintenant, lorsque vous êtes à zéro bombe, il y a clairement un cas spécial parce que dans des circonstances normales, les deux flux de travail ne feraient absolument rien - votre valeur currentBombs resterait la même. Mettons donc à jour la fonction 2oS initiale pour tenir compte de cette situation :
int Activate2OfSpades()
if (currentBombCount == 0)
currentBombCount = 2;
else
return currentBombCount * 2;
Avec cette modification, nous pouvons voir qu'à des bombes initiales nulles, les deux flux A y B donnerait un total de 4 bombes. Donc, dans ce cas, vous ne pouvez pas déterminer quel flux de travail est utilisé.
Cependant, puisque nous avons déjà prouvé A est celle qui est utilisée dans le cas normal, vous pouvez supposer sans risque qu'elle est également utilisée dans le cas spécial.