1 votes

Logistique du tissu de tarot et cartes "2 de ___".

La toile de tarot est un objet qui double l'effet de toute rune ou carte utilisée dans Isaac. Ma question porte sur ce qui se passe lorsque vous utilisez une carte multiplicatrice alors que vous êtes à 0 de cet objet.

Si vous utilisez un 2 de trèfle alors que vous êtes à 0 bombe, vous vous retrouverez avec 4 (2 sans toile de tarot). Est-ce que le jeu vous "donne 2 bombes" deux fois, ou est-ce qu'il vous "donne 2 bombes", puis le double du 2 ? Je réalise les deux aboutiraient au même résultat Je me demande juste si quelqu'un le sait.

2voto

Mage Xy Points 17536

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.

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X