Global

Ces fonctions doivent être définies avec une portée globale. Si vous ne souhaitez pas utiliser une de ces fonctionnalités, ne définissez simplement pas la fonction.

init(sheet)

  • sheet, type Sheet : La feuille à initialiser.
  • Retourne : void.

Initialise une feuille, comme une feuille de personnage ou de craft. Vous pouvez obtenir le type de feuille via sheet.id().

Les onglets de tabs ne sont pas initialisés individuellement, et devraient être initialisés comme s'ils faisaient partie de la vue parente.

Exemple :

init = function(sheet) {
    if (sheet.id() === "main") {
        initMain(sheet);
    } 
    else if (sheet.id() === "weapon") {
        initWeapon(sheet);
    }
};

const initMain = function(sheet) {
    // initialize the main sheet
    sheet.get("hp");  // ...
};

const initWeapon = function(sheet) {
    // initialize the weapon sheet
    // ...
};

drop(from, to)

  • from, type Sheet : La feuille source.
  • to, type Sheet : La feuille de destination.
  • Retourne : void|string.

Cette fonction est appelée quand vous glissez-déposez un craft sur une feuille de personnage.

Si vous voulez simplement ajouter les données à un repeater, retournez l'id de ce repeater. Sinon, vous devrez manipuler les données de la feuille de destination.

Pour le moment, il est seulement possible de déposer un craft dans une feuille de personnage.

Exemples :

drop = function(from, to) {
    if (from.id() === "weapon" && to.id() === "main") {
        return "weapons";  // "weapons" is a repeater id
    }
};
drop = function(from, to) {
    if (from.id() === "heal" && to.id() === "main") {
        to.get("hp").value(
            from.get("maxhp").value()
        );  // set the target's hp to the source maxhp
    }
};

dropDice(result, to)

  • result, type DiceResult : Le résultat d'un jet de dé dans le Dice Log.
  • sheet, type Sheet : La feuille de destination.
  • Retourne : void.

Pour certains systèmes, il peut être utile de glisser-déposer un résultat de jet de dé dans la feuille. Avec cette fonction, vous pouvez créer une interaction entre le Dice Log et une feuille de personnage ou un craft.

Exemple :

dropDice = function(result, sheet) {
    if (result.containsTag("heal")) {
        let hp = sheet.get("hp");
        hp.value(hp.value() + result.total);  // le personnage est soigné du total du jet de dé
    }
};

initRoll(result, callback)

  • result, type DiceResult : Le résultat d'un jet de dé dans le Dice Log.
  • callback, type Function : Une fonction callback pour afficher le résultat du jet.
  • Retourne : void.

Cette fonction vous permet de personnaliser l'affichage du résultat d'un jet de dé. Vous devrez appeler cette fonction callback avec ces deux arguments :

  • view, type string : L'identifiant de la vue que vous voulez utiliser pour afficher le résultat du jet
  • onRender, type Function : Une fonction appelée lorsque la vue s'affichera, dans laquelle vous pouvez changer les données de cette vue. Merci de noter que la vue est aussi initialisée dans la fonction globale init().

Exemple :

initRoll = function(result, callback) {
    callback('diceresult', function(sheet) {  // diceresult est l'identifiant de la vue que vous voulez utiliser
        sheet.get('total').text(result.total);  // appliquez différents changements à la vue
        
        if (result.total > 20) {
            sheet.get('total').addClass('text-large');
        }
    });
};

getReferences(sheet)

  • sheet, type Sheet : La feuille avec ses références.
  • Retourne : Object.

Si vous souhaitez créer des références par programmation (références avec '@' dans un Label "computed"), vous pouvez utiliser cette méthode. Retourne un objet avec les identifiants des références comme clé et le contenu de la référence comme valeur. Les valeurs sont interprétées. Cette fonction n'est appelée automatiquement qu'une fois à l'init d'une vue. Même si vous l'appelez à nouveau (pour rafraîchir la valeur de la référence par exemple), cela ne fonctionnera pas.

Exemple :

getReferences = function(sheet) {
    return {
        "halfHp": sheet.get("hp").value() / 2,  // numeric value
        "defaultBonus": "5 + 8",  // simple reference,
        "bonus": "@strength + @defaultBonus"  // reference others
    };
};

getBarAttributes(sheet)

  • sheet, type Sheet : La feuille à laquelle seront rattachées les barres de son token.
  • Retourne : Object.

Les joueurs peuvent connecter les barres de leur token aux attributs de leur personnage avec cette fonction. Elle requière d'avoir une valeur et une valeur maximale. Cette méthode retourne un Object avec les titres des barres comme clés, et un Array(2) (tableau de deux éléments) où le premier élément est la valeur courante, et le second, la valeur maximale de la barre.

La barre du token se met à jour quand la feuille est changée, et la feuille se met à jour quand la valeur de la barre est modifiée

Exemple :

getBarAttributes = function (sheet) {  // [triggered when dropping a token onto a scene] adds options to the "Connect to" dropdown menu. The selected field will be displayed as a dynamic gauge on the token
   if (sheet.id() === "main") {  // limits the code to the cases where it's a character being dropped onto the scene, as opposed to a craft for example.
      return {
         "Hunger": ['counter_hunger', 5],
         "Willpower": ["counter_willpower", "counter_willpower_max"],
         "Health": ['counter_health', 'counter_health_max']
      };
   }
   if (sheet.id() === "monster") {
        return {
            "HP": ["hp", "hpmax"],
            "Mana": ["mana", 30]  // you can use numbers directly for maximums
        };
    }
};

getCriticalHits(result)

result, type: DiceResult

Cette fonction globale permet de personnaliser les couleurs des résultats des jets de dé.

getCriticalHits

Elle doit retourner un object, avec pour chaque dimension de dé, un autre objet qui associe une couleur avec les valeurs possibles.

Voici un exemple :

getCriticalHits = function(result) {
    return {
        "20": {
            "critical": [20, 19],
            "fumble": [1],
        },
        "6": {
            "critical": [],
            "fumble": [],
            "cyan": [2, 3],
            "pink": [1]
        }
    }
}

Dans cet exemple, les dés seront affichés en vert "critique" sur 19 et 20, et en rouge "fumble" sur les 1, uniquement sur les d20. Sur les d6, les couleurs ne changent pas pour les critiques et fumbles, en revanche les 2 et 3 sont en bleu, et les 1 en rose.

result est un objet de type DiceResult qui vous permet de modifier le comportement en fonction des résultats ou des tags associés au jet, par exemple.

Les différentes couleurs disponibles sont les suivantes :

critical
fumble
red
orange
yellow
green
cyan
magenta
pink