Ulty / COFantasy

Toolbox pour Chroniques Oubliées Fantasy sur Roll20
10 stars 12 forks source link

arme de l'été #315

Closed jsoury closed 1 year ago

jsoury commented 1 year ago

Salut Ulti, 

J'ai implémenté deux fonctions pour la gestion des armes de l'été pour "les seigneurs de l'hiver" je te les donne ici si tu veux rajouter cette option à ton script, il faut ajouter le predictat "CreatureDeHiver" pour les PNJ et "armeDeEte" pour les PJ

//add in function dealDamage() diviseDmg = dealDamageWinter(options, target, diviseDmg, expliquer);
function dealDamageWinter(options, target, diviseDmg, expliquer) {
    if (predicateAsBool(options.attaquant, "CreatureDeHiver") 
    && predicateAsBool(target, "armeDeEte"))
    { 
      diviseDmg = 5;
      expliquer("dégâts divisé par 5");
      return diviseDmg
    }
  }
//add in defenseOfPerso() defense = addArmureWinter(target, attaquant, defense, explications));
function addArmureWinter(target, attaquant, defense, explications) {
    if (
        predicateAsBool(target, "armeDeEte") &&
        predicateAsBool(attaquant, "CreatureDeHiver")
    ) {
        let bonusDef = 25;
        defense += bonusDef;
        explications.push(
            "la cible est protégé par une arme de l'été +" + bonusDef + " en DEF"
        );
        return defense
    }
}
Ulty commented 1 year ago

Merci pour le partage. Par soucis de cohérence avec les autres prédicats, je pense plutôt utiliser CreatureDeLHiver et ArmeDeLEte.

jsoury commented 1 year ago

j'ai une erreur quand j'appelle la macro statut :

TypeError: Cannot read properties of undefined (reading 'predicates') TypeError: Cannot read properties of undefined (reading 'predicates') at getPredicates (apiscript.js:718:13) at predicateAsBool (apiscript.js:771:14) at defenseOfPerso (apiscript.js:12015:5) at apiscript.js:26931:21 at apiscript.js:7219:5 at Array.forEach (<anonymous>) at iterSelected (apiscript.js:7208:12) at apiscript.js:26780:5 at getSelected (apiscript.js:7687:11) at statut (apiscript.js:26775:3)

je n'arrive pas a regler cela

Ulty commented 1 year ago

C'est uniquement avec ton ajout pour les armes de l'été, ou bien tu as le même problème avec le script sans modification ?

Ulty commented 1 year ago

A priori, c'était à cause de la mention de attaquant dans ton code. J'ai corrigé tout ça dans le commit 31e75a5

jsoury commented 1 year ago

Super merci, je ne l'aurais pas trouvé celle-là :)

Pour les armes, j'ai fait ça si quelqu'un passe par là, ou si tu veux le rajouter dans la doc :)

Flamme de l'été --if predicatCible CreatureDeLHiver --incrDmgCoef 3 --incrCritCoef 3 --else --plus 1d6 --feu --enflamme --endif

La lance de l'Aube --if predicatCible CreatureDeLHiver --incrDmgCoef 1 --incrCritCoef 1 --else --plus 1d6 --feu --enflamme --endif

PS: je m'en suis servie pour ajouter des rencontres à mes joueurs dragons de givre, géant de glace etc ... Il est vrai que ça a rendu le combat contre les esprits de givre plutôt useless.