17 votes

Comment modéliser le style de combat du guerrier, la compétence de Grande Maîtrise avec les armes, dans Anydice?

Je cherchais à créer une fonction AnyDice pour modéliser le style de combat Great Weapon Fighting (qui vous permet de relancer les 1 et les 2), mais je n'arrivais pas à le faire fonctionner sur n'importe quel dé arbitraire.

J'ai trouvé celui-ci :

function: reroll R:n under N:n {
   if R < N { result: d12 } else {result: R}
}
output [reroll 1d12 under 3] named "combat d'arme greataxe"

Et ça fonctionne bien. Mais je ne sais pas comment rendre la fonction générique pour ne pas avoir à changer le d12 à chaque fois que je veux relancer un dé différent.

J'ai essayé

function: reroll R:n under N:n {
   if R < N { result: d{1..R} } else {result: R}
}
output [reroll 1d12 under 3] named "combat d'arme greataxe"

mais cela ne donne pas les bonnes probabilités. Peut-être que si je pouvais récupérer la taille du dé à l'intérieur de la fonction...

1voto

user61230 Points 11

Cela peut être fait de manière procédurale

\** GRANDE COMBAT À L'ÉPÉE **\
\
  le premier paramètre est évalué comme un jet de dé, le deuxième est évalué comme un dé,
  un dé ne peut pas être lancé dans une fonction et assigné à une variable (c'est nul).
  le seul moyen d'évaluer un jet de dé est de le passer en argument; DAMAGE_ROLL
  et DAMAGE_DIE doivent être les mêmes, c'est-à-dire d6 & d6
\
function: gwf avec DAMAGE_ROLL:n lancé sur DAMAGE_DIE:d {
   si DAMAGE_ROLL < 3 { résultat: dDAMAGE_DIE }
   résultat: DAMAGE_ROLL
}
\ donc, nous définissons une autre fonction pour appeler la première \
function: gwf avec dé DIE:d { résultat: [gwf avec DIE lancé sur DIE] }

\** COUP CRITIQUE (OU RATÉ) **\
\
  le seul moyen d'évaluer un jet de dé est de le passer en argument, donc ROLL doit être 'd20'
  Je ne vois pas de solution au couplage serré entre la définition de fonction et l'appel de fonction.
\
function: est-ce que ROLL:n est un coup critique ou manqué avec des dégâts DAMAGE:d {
   si ROLL = 20 { résultat: dDAMAGE+dDAMAGE }
   si ROLL = 1 { résultat: 0 }
   résultat: dDAMAGE
}
\ donc, nous définissons une autre fonction pour appeler la première \
function: renvoyer coup critique ou manqué avec des dégâts DAMAGE:d { résultat: [est-ce que d20 est un coup critique ou manqué avec des dégâts DAMAGE] }

\ FIN DES DÉFINITIONS \

function: jet de dégâts du combattant { résultat: [renvoyer coup critique ou manqué avec des dégâts 2d[gwf with die d6]]+5 }
function: jet de dégâts du voleur { résultat: [renvoyer coup critique ou manqué avec des dégâts 4d6]+4 }

sortie 1d6+4 nommée "voleur, fais quelque chose d'utile"
sortie [jet de dégâts du combattant] nommée "combattant (un coup)"
sortie [jet de dégâts du voleur] nommée "voleur (attaque furtive)"
sortie [jet de dégâts du combattant]+[jet de dégâts du combattant] nommée "combattant (deux coups)"
sortie [jet de dégâts du combattant]+[jet de dégâts du combattant]+[jet de dégâts du voleur] nommée "Qui est ton papa?"

Lien AnyDice

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