Le Charactermancer est un système Roll20 qui guide l'utilisateur dans un processus de prise de décision sur le plateau de jeu virtuel. Il a été implémenté dans lesfeuilles de personnage officielles de Roll20 pour DND 5eetpour Pathfinder officielles de Roll20.
Traduction
Comme le reste des sections de la Feuille de personnage, les Standards de la feuille doivent être suivis dans le Charactermancer. Cela inclut l'internationalisation (ou clés de traduction i18n). N'importe quel élément peut être désigné pour être traduit en ajoutant un élément à la balise html. Lire plus sur le fonctionnement de la traduction ici.
Glissements
Slide d'introduction
<charmancer class="sheet-charmancer-intro">
Le Charactermancer fonctionne en chargeant une série de glissements dans un ordre déterminé. Les glissements sont des blocs de HTML inclus dans le fichier HTML de la feuille de personnage. Ils sont désignés avec une balise <charmancer>
. Chaque diapositive doit être nommée afin d'être appelée ou référencée, ce qui est fait à partir de la balise <charmancer> en ajoutant une classe précédée de "sheet-charmancer-" suivie du nom de la diapositive. Les diapositives peuvent contenir tous les mêmes éléments HTML et entrées que la fiche de personnage, ainsi que quelques ajouts et exceptions notables décrits ci-dessous. Les diapositives sont appelées soit par un Sheet Worker via la fonction startCharactermancer(<slide name>), soit par une autre diapositive via le bouton "suivant".
Iframe du Compendium
<div class="sheet-compendium-page sheet-example" accept="CategoryIndex:Backgrounds"></div>
À l'intérieur des diapositives se trouve l'Iframe du Compendium qui vous permet d'afficher des pages du Compendium de la fiche de personnage. Si une balise à l'intérieur d'une diapositive reçoit la classe "sheet-compendium-page" et dispose également d'un paramètre d'acceptation, lorsque la diapositive est rendue, elle inclura également l'Iframe du Compendium incorporé à l'intérieur. Le paramètre d'acceptation doit correspondre à une page du Compendium du livre utilisé par la fiche de personnage, sinon les données ne seront pas affichées. L'Iframe du Compendium peut être mis à jour dynamiquement par le Sheet Worker en utilisant la fonction changeCompendiumPage.
Navigation de slide
Bouton suivant
<button type="submit" value="example">Suivant</button>
Le bouton Suivant fait passer le Charactermancer à la diapositive suivante. Le type de bouton doit être "submit" et le paramètre valeur doit correspondre au nom d'une autre diapositive. De plus, une vérification sera effectuée pour vérifier que tous les saisies Charactermancer qui sont à la fois visibles et obligatoires ont une valeur. L'opération renverra en surbrillance les entrées obligatoires sans valeur et ne progressera pas à la diapositive suivante.
Bouton précédent
<button type="back" value="example">Précédent</button>
Les boutons précédents fonctionnent de la même manière que les boutons suivants, à l'exception de l'exigence de "back" en tant que type et de la non-validation des champs obligatoires.
Bouton Annuler
<button type="cancel" value="example">Annuler Charactermancer</button>
Les boutons Annuler ferment le Créateur de personnage, renvoyant l'utilisateur à la Feuille de personnage. Le type de bouton doit être "annuler". Il peut transmettre sa valeur par un événement qui se déclenche en cliquant sur le bouton, qui peut être entendu par le listener on "mancer:cancel"
.
Bouton Terminer
<button type="finish" value="example">Appliquer les modifications</button>
Le bouton Terminer ferme le Créateur de personnage, revenant à la Feuille de personnage. Le type de bouton doit être "terminer". En cliquant sur le bouton Terminer, un événement est créé qui peut être entendu avec le listener on "mancerfinish:name"
, qui contient l'objet de données du Créateur de personnage comme argument.
Glisseur final
Le nom "final" est réservé pour une diapositive spéciale. La diapositive finale sert de transition entre le Créateur de personnage et la Feuille de personnage. Le Charactermancer est désactivé une fois que la diapositive finale est appelée, mais il reste visible et affiche le contenu de la diapositive finale jusqu'à ce quefinishCharactermancer()
soit appelé. Cette diapositive permet à la Feuille de personnage et aux Travailleurs de prendre tous les résultats de l'Objet de données du Charactermancer et de les appliquer avant de rendre le contrôle au joueur.
Entrées du Charactermancer
0
Les attributs dans le Charactermancer utilisent une convention de nommage différente de celle de la Feuille de personnage. Les entrées du Charactermancer commencent par"comp_"
. Les entrées et sélections nommées selon cette convention passeront automatiquement leurs valeurs à l'Objet de données du Charactermancer. L'objet de données peut être référencé sur les diapositives actuelles et futures en appelant la fonctiongetCharmancerData()
et sera également édité pour être utilisé dans les feuilles de caractères lors de l'événementmancerfinish
.
Objet de données du Charactermancer { "première-diapositive": { "données": {}, "valeurs": {} }, "seconde-diapositive": { "données": { "choix1": { "Nombre de widgets": { "Widgets": 2 }, "Type de widgets": { "Type": "Spongieux" } } }, "valeurs": { "choix1": "Widget:Exemple" }, "répétition": ["<repeating_id1>", "<repeating_id2>"] } }
L'objet de données du Charactermancer stocke automatiquement les données des entrées et des sélections de chaque diapositive tout au long du processus. Les valeurs de ces entrées et sélections sont enregistrées en format JSON sous le nom de la diapositive et la clé "values". De plus, "data" peut être transmis à l'espace de noms de la diapositive de l'Objet de Données à partir de la fonction getCompendiumData. Si des sections répétées sont utilisées dans la diapositive, les identifiants répétés sont enregistrés sous la clé "repeating" de cette diapositive. L'objet entier peut être récupéré à tout moment en utilisant la fonction getCharmancerData.
Prérequis
<input type="text" name="comp_example" required>
Les entrées et sélections marquées comme "requises" dans leur balise n'autoriseront pas les utilisateurs à terminer la diapositive en cours et passer à la suivante tant que ce champ n'aura pas une valeur. Les champs requis qui ont été laissés vides lors de l'utilisation du bouton suivant auront la classe "sheet-hilite"et l'utilisateur ne passera pas à la diapositive suivante. Les entrées requises n'imposent pas l'exigence si elles ont été cachées à l'intérieur d'une Section Conditionnelle. Les groupes d'éléments peuvent être rendus obligatoires. Si le Requis est ajouté à la balise d'un div parent, tous les Inputs et Selects enfants à l'intérieur deviennent également obligatoires.
Sélections Populées du Compendium
<select name="comp_race" accept="Category:Items">
Sélections à l'intérieur des diapositives peuvent être automatiquement remplies avec des options provenant du Compendium Roll20. La sélection a besoin du paramètre Accept, qui inclut une chaîne de recherche compatible avec le Compendium. Des recherches complexes à multiples attributs peuvent être utilisées pour fournir des résultats filtrés spécifiques. Les options remplies de cette manière auront l'expansion source incluse après le résultat entre parenthèses.
Sections conditionnelles
<div class="sheet-choice sheet-example">
Les sections conditionnelles sont des balises HTML avec l'attribut "sheet-choice". Ces sections sont masquées par défaut lorsque la diapositive est affichée. Elles peuvent être affichées ou masquées avec les fonctionsshowChoices(<class name>)
ethideChoices(<class name>)
, respectivement.
Bouton d'action
<button type="action" name="act_starting_gold"></button>
Introduits dans la mise à jour du Charactermancer, les boutons d'action. Ces boutons peuvent être détectés avec l'événement de clic "clicked". Ils ne se limitent pas au Charactermancer et peuvent également être utilisés sur la Feuille de Personnage. Le bouton doit être de type "action" et le nom du bouton doit être précédé de act_
pour être détecté.
Listeners du Personnage
Ces listeners fonctionnent pour les changements du Charactermancer et ont accès aux fonctions du Charactermancer.
mancerchange
on("mancerchange:choice_1 mancerchange:choice_3", function(eventinfo) {...});
Le listener mancerchange est déclenché lorsque les valeurs des Entrées du Charactermancer sont modifiées. Il transmet un argument contenant les propriétés suivantes:
- currentStep:"charmancer-intro" L'étape actuelle sur laquelle se trouve l'utilisateur
- newValue:"Races:Elf" La valeur à laquelle l'Entrée du Charactermancer a été modifiée
- sourceType:"player" Si le changement a été déclenché par un "worker" ou le "joueur"
- triggerName:"race" Le nom de l'entrée Charactermancer qui a été modifiée
page :<slide name>
on("page:charmancer-intro", function(eventinfo) {...});
Le gestionnaire de page se déclenche lors de l'ouverture de la diapositive appelée par un bouton suivant ou la fonction startCharmancer. Il transmet un argument contenant les propriétés suivantes :
- sourceType:"player" Si le changement a été déclenché par un "worker" ou le "joueur"
- triggerName:"charactermancer-intro" Le nom de la diapositive Charactermancer qui vient d'être ouverte
clicked :<action button name>
on("clicked:action_button", function(eventinfo) {...});
L'écouteur clicked se déclenche lorsqu'un bouton d'action est cliqué. Il transmet un argument contenant les propriétés suivantes :
- triggerName : "clicked:action_button" Le nom du bouton d'action qui a été cliqué
mancerroll :<roll button name>
on("mancerroll:roll_stats", function(eventinfo) {...}) ;
Cet écouteur se déclenche lorsqu'un bouton de roulage est cliqué dans le Charactermancer. Il transmet un argument contenant les propriétés suivantes :
-
currentStep : "charmancer-intro"
Diapositive sur laquelle l'utilisateur se trouve actuellement - rouleau : Un objet JSON contenant les résultats du lancer.
- triggerName : "roll_stats" Le nom du jet du Charactermancien qui a déclenché l'écouteur.
Écouteurs de feuilles
Ces auditeurs se déclencheront après la sortie du Charactermancer et auront accès à l'ensemble normal des travailleurs de la feuille.
mancer:annuler
on("mancer:cancel", function(eventinfo) {...}) ;
L'écouteur mancer:cancel se déclenche lorsqu'un joueur quitte le Charactermancer via le bouton Cancel, ce qui peut être utilisé lorsqu'un utilisateur redémarre le Charactermancer. Il transmet un objet comme argument avec comme valeur le nom de la diapositive sur laquelle l'utilisateur a quitté le Charactermancer :
- valeur : "slide1"
mancerfinish :<name>
on("mancerfinish:l1-mancer", function(eventinfo) {...}) ;
L'écouteur mancerfinish se déclenche lorsqu'un joueur quitte le Charactermancer via le bouton Finish. Il transmet en argument un objet ayant la même valeur que l'objet de données Charactermancer. C'est ici que les choix du Charactermancer seront appliqués à la feuille elle-même. La fonctionsetCharmancerText()
est disponible ici pour vous permettre de mettre à jour la diapositive "finale" pendant que les modifications sont appliquées.
Fonctions
Les travailleurs de feuille normaux sont désactivés lorsque le Charactermancien est actif, à l'exception des cas suivants :
setAttrs()
est toujours utilisable lorsque le Charactermancien est actif, bien que sa fonction soit différente, il ne pourra définir des valeurs que pour la diapositive du Charactermancien en cours Les fonctions qui accèdent aux attributs de la feuille sans les modifier(comme getAttrs()
etgetSectionIDs())
fonctionneront comme à l'accoutumée. getCompendiumPage()
etgetCompendiumQuery()
fonctionnent pour les feuilles et Charactermancer.
Une remarque sur les sélecteurs : Beaucoup de ces fonctions utilisent un sélecteur css pour trouver l'élément html pertinent sur la diapositive. La première partie de ce sélecteur doit être une classe, mais le reste du sélecteur peut utiliser n'importe quelle syntaxe de sélecteur JQuery valide.
Ces fonctions ne sont disponibles que lorsque le Charactermancer est actif :
startCharactermancer(<slide name>)
startCharactermancer("first-slide") ;
La fonction startCharactermancer lance le Charactermancer. Ceci masque la feuille de personnage et charge le Charactermancer. Il chargera le code HTML de la diapositive nommée, transmise en tant que premier argument, et déclenchera l'écoute de l'ouverture de la page pour cette diapositive.
setCharmancerText(<update object>) ;
setCharmancerText({"class_example" : "Hello world !"}) ;
La fonctionsetCharmancerText
vous permet de mettre à jour des sections de votre diapositive actuelle avec un nouveau texte. L'argument transmis à la fonction est un objet dont les clés sont les sélecteurs des éléments à mettre à jour et les valeurs le texte qui remplacera le contenu existant de ces sections. Cette fonction permet l'utilisation de balises html, tout le texte est passé par la même fonction d'assainissement que celle utilisée pour le reste de la feuille de caractères (qui, par exemple, ajoutesheet-
aux noms de classes).
changeCompendiumPage(<IFrame selector>, <Compendium Page Name>)
changeCompendiumPage("sheet-iframe", "Welcome Page") ;
La fonction changeCompendiumPage vous permet de modifier dynamiquement la page du compendium chargée dans un iFrame Compendium sur votre diapositive actuelle. Le premier argument doit correspondre au nom de la classe de l'iFrame et le second argument transmet la page du Compendium à rendre. Il est recommandé d'utiliser la catégorie de la page pour garantir une correspondance unique. Par exemple, "Druide" peut correspondre à une page de la catégorie "Classes" et de la catégorie "PNJ", mais "Classes:Druide" sera une page unique.
changeCharmancerPage(<slide name>, <callback>)
changeCharmancerPage("options_slide", function() {...}) ;
Cette fonction modifie la diapositive actuelle du Charactermancer. Le premier argument est le nom de la diapositive. Il accepte un rappel, qui est appelé après le chargement de la diapositive.
setAttrs(<update object>)
setAttrs({"test_attribute" : 2})
La fonction setAttrs fonctionne de la même manière pour les entrées du Charactermancer que pour les attributs de la feuille de personnage, à l'exception des points suivants. Lorsque le Charactermancer est actif, il ne peut être utilisé que pour mettre à jour les entrées du Charactermancer et il effacera les entrées radio et les cases à cocher si la valeur qu'elles contiennent ne correspond pas à leur(s) valeur(s) donnée(s). Ces attributs doivent avoir une entrée dans la diapositive, sinon leurs valeurs seront supprimées de l'objet de données Charactermancer lors du passage à la page suivante.
setCharmancerOptions(<Class Name>, <Select Options>, <Settings>, <Callback>) ; </pre>
setCharmancerOptions("select-class", "Category:Items Type:Weapons", {add :["Magic Longsword", "Axe of Amazingness"], category : "Items"}) ;
La fonction setCharmancerOptions vous permet de mettre à jour les sélections du Charactermancer ou les entrées radio avec des options dynamiques selon les besoins. La fonction requiert les deux premiers arguments mais peut en accepter jusqu'à quatre. Le premier argument est le nom de la classe du Charactermancer Select que vous souhaitez remplir d'options. Le deuxième argument peut être un tableau d'options prédéfinies ou une chaîne de recherche du Compendium pour générer une liste dynamique d'options à partir du Compendium. Le troisième argument accepte plusieurs paramètres optionnels différents, détaillés ci-dessous. Le dernier argument est un rappel à exécuter après le retour de setCharmancerOptions. Ce callback reçoit un paramètre qui est un tableau des valeurs qui ont été trouvées/remplies. Lorsqu'elle est utilisée avec des entrées de type='radio', la fonction fonctionne de la même manière, mais si elle trouve toutes les travées portant ce nom dans la diapositive, elle les remplit avec le contenu<label><input type="checkbox"></label>
à la place.
- catégorie : Nom de la catégorie d'options
- disable : Tableau des options à désactiver, qui doivent correspondre aux valeurs
- sélectionné : Valeur de l'option initiale sélectionnée
- add : Tableau d'options supplémentaires ou diverses à inclure au bas des options de sélection
- show_source : Affiche les options avec les initiales de Compendium Expansion entre parenthèses (disponible uniquement lors de l'utilisation d'une requête de compendium comme option de sélection).
disableCharmancerOptions(<Class Name>, <Select Options>, <Settings>) ;
disableCharmancerOptions("select-class", ["one", "two"]) ;
La fonctiondisableCharmancerOptions
est similaire à la fonctionsetCharmancerOptions
. Il n'accepte qu'une série d'options permettant de désactiver les sélections de personnages ou les entrées radio. La fonction ne désactive pas une option actuellement sélectionnée. Si deux sélections ou plus ont les mêmes valeurs, il les désactive toutes en même temps. Si vous passez un tableau vide, tout sera réactivé.
showChoices([<class name>]) ;
showChoices(["feuille-test", "feuille-test2]) ;
La fonction showChoices révèle les sections conditionnelles cachées avec la classesheet-choice
. Elle accepte comme argument un tableau de noms de classes pour les sections conditionnelles à révéler.
hideChoices([<class name>]) ;
hideChoices(["feuille-test", "feuille-test2]) ;
La fonction hideChoices masque les sections conditionnelles actuellement visibles avec la classesheet-choice
. Elle accepte comme argument un tableau de noms de classes pour les sections conditionnelles à masquer. Si aucun argument n'est donné, tous les choix de la diapositive en cours seront masqués.
getCompendiumPage(<Compendium Page Name>, [<Values>], <Callback>)
getCompendiumPage(<code> Nom du compendium", function(data) {...}) ;
La fonction getCompendiumPage extrait les attributs de données d'une page de recueil et vous permet de transmettre ces données à l'objet de données Charactermancer et à une fonction de rappel. Le premier argument de la fonction est le nom de la page du Compendium dont vous souhaitez extraire les données, ou un tableau de pages. Là encore, il est recommandé d'utiliser le format<category>:<pagename>
pour garantir un résultat correct. La troisième option est un rappel qui transmet l'objet de données en tant qu'argument.
Si cette fonction est appelée dans l'événementmancerchange :
pour un attribut, toutes les données seront enregistrées dans la section "data" de l'objet JSON de la diapositive en cours, sous une clé correspondant au nom de cet attribut. Pour garantir l'enregistrement correct des données, il est recommandé de s'assurer quegetCompendiumPage
est le premier gestionnaire de feuilles asynchrone appelé dans cet événement. Si plusieurs pages sont extraites à l'aide de cette fonction, seule la première sera enregistrée dans les données. Si une chaîne vide est utilisée comme premier argument, les données actuellement enregistrées pour cet attribut seront effacées (mais pas la valeur de l'attribut).
Ces données ne sont pas enregistrées dans Firebase. Au contraire, tous les champs de données sont récupérés en une seule fois dans le compendium lorsque le Charactermancer est ouvert pour la première fois.
getCompendiumQuery(<Compendium Query String>, <Callback>)
getCompendiumQuery("Category:Spells Level:1|2|3 Class:*Bard", function(data) {...}) ;
Cette fonction fonctionne de manière similaire à getCompendiumPage, sauf qu'elle utilise une chaîne de requête (ou un tableau de requêtes) pour récupérer des résultats et n'enregistre aucune donnée dans l'objet Charactermancer.
getCharmancerData()
var data = getCharmancerData();
La fonction getCharmancerData renvoie la valeur actuelle de l'objet de données Charactermancer.
deleteCharmancerData([<pages>], <Callback>)
deleteCharmancerData(["slide1","slide3","slide4"], function(data) {...})
La fonction deleteCharmancerDataaccepte deux arguments. Le premier argument est un tableau de noms de diapositives pour supprimer toutes les données et valeurs associées à l'objet de données Charactermancer, ce qui nettoie la diapositive comme si elle n'avait jamais été visitée. Si aucune diapositive n'est spécifiée en argument, la fonction supprimera toutes les données et choix. Le deuxième argument est un rappel effectué après l'exécution de la fonction deleteCharmancerData
.
finishCharactermancer() =
terminerCharactermancer()
La fonction finishCharactermancer, qui est un cas particulier, renvoie la diapositive finale à la feuille de personnage.
setSectionOrder(<Repeating Section Name>, <Section Array>, <Callback>) ;
(Fonction normale de travailleur du drap, pas une fonction de Charactermancer)
setSectionOrder("proficiencies", final-array, callbackFunction) ;
La fonction setSectionOrder permet d'ordonner les sections répétitives selon vos préférences. La fonction accepte une section répétitive (repeating_
est ajoutée à cette valeur), la méthode de commande basée sur les données de l'élément répétitif et une fonction de rappel facultative.
Charactermancer Sections répétitives
Les sections répétitives du Charactermancer fonctionnent différemment des sections répétitives des feuilles de personnage. Plutôt que d'être définies pour un élément particulier de la page ( <fieldset>), les sections répétées dans le Charactermancer sont des extraits de code HTML qui peuvent être ajoutés à n'importe quel élément de la diapositive Charactermancer active (y compris à l'intérieur d'une autre section répétée). Cet HTML est désinfecté de la même manière que le reste de la feuille.
Lorsqu'une section est ajoutée à la diapositive, une identifiant de ligne unique est généré pour cette ligne. Cet identifiant est appliqué en tant que classe à l'élément parent de cette section, et est utilisé pour renommer les entrées, les boutons d'action ou les boutons de lancer de dés à l'intérieur de cette section. La convention de nommage est : "repeating_123456789_row_input", où "row" est le nom de la section répétée, et "input" est le nom de l'entrée. Les valeurs des entrées dans les sections répétées sont enregistrées sous la clé "values" dans l'objet de données Charactermancer avec le reste des valeurs de cette diapositive. Le nom de la section répétée (le nom de la section parent, pas chaque valeur à l'intérieur) est ajouté au tableau "repeating" pour chaque diapositive.
Les écouteurs mancerchange, mancerroll
,,
et cliqués peuvent écouter les modifications d'une section répétée. Pour un changement à larepeating_123456789_row_input
, un changement sera déclenché pour l'attribut lui-même,mancerchange:repeating_row_input
, et la section dans laquelle il se trouve,mancerchange:repeating_row
. Si cette section est à l'intérieur d'une autre section répétitive, un événement sera déclenché également pour la section répétitive parent. Les informations d'événement pour un changement de section répétitive contiendront quelques nouveaux éléments, en plus de ceux normaux mentionnés ci-dessus :
-
sourceAttribute:"repeating_123456789_row_input"
L'attribut spécifique qui a été modifié -
sourceSection:"repeating_row"
Le nom de la section répétitive dans laquelle se trouve la sourceAttribute -
triggerName:"repeating_row"
Le nom de l'auditeur qui a été déclenché
Ces sections ne sont pas persistantes, ce qui signifie que lorsque l'utilisateur quitte la diapositive et la revisite, la diapositive se chargera sans les sections répétitives et comptera sur les événements de changement automatiques pour ajouter ces sections de nouveau à la page (voir la section ci-dessous sur la révision des diapositives).
Définition de section
<charmancer class="sheet-repeating-row">
<charmancer class="sheet-repeating-row">
Pour définir une section répétitive, placez le morceau de code à l'intérieur d'une balise <charmancer>
, en utilisant une classe commençant par les mots-clés "sheet-repeating-". Dans l'exemple ci-dessus, le code situé entre les balises <charmancer>
sera défini comme une section répétitive appelée "row".
addRepeatingSection(<class_name>, <section_name>, <new_name>, <callback>)
addRepeatingSection("sheet-class", "row", "spellrow", function(sectionid) {...});
Cette fonction ajoute la section répétitive spécifiée à l'élément cible spécifié. Le premier argument est le sélecteur pour l'élément cible, le deuxième spécifie quelle section répétitive ajouter. Le troisième argument est facultatif, il définit un nouveau nom de section pour cette section spécifique. S'il est omis, le nom de la section utilisera simplement le deuxième paramètre comme nom. Le rappel de cette section reçoit l'identifiant de la section qui lui a été attribué.
clearRepeatingSections(<target>, <callback>)
clearRepeatingSections("sheet-class", function() {...}) ;
Cette fonction efface toutes les sections répétitives de l'élément spécifié par le premier argument. Il supprime l'HTML lui-même, ainsi que toutes les valeurs correspondantes dans l'objet de données Charactermancer.
clearRepeatingSectionById([<section_ids>], <callback>)
clearRepeatingSectionById([<id1>, <id2>, ...], function() {...}) ;
Cette fonction est similaire à la fonction clearRepeatingSections, mais elle n'efface que des sections répétitives spécifiques, définies par le tableau dans le premier argument. Il effacera également toutes les sections répétitives à l'intérieur de celles qui ont été spécifiées.
getRepeatingSections(<target>, <callback>)
getRepeatingSections("sheet-class", function(repeating) {...});
Cette fonction renvoie des informations plus détaillées sur les sections répétitives de la diapositive actuelle. Le premier argument est un sélecteur pour l'élément cible. Ceci permet d'obtenir une liste des sections répétitives contenues dans cet élément. Si cela est omis, la fonction renvoie toutes les sections répétitives de cette diapositive. Les données renvoyées au rappel contiennent également un objet JSON qui montre la structure des sections répétitives, en précisant quelles sections se trouvent à l'intérieur d'autres sections.
Revisiter les diapositives
Si l'utilisateur quitte une diapositive, puis la revisite plus tard, le Charactermancer déclenche automatiquement des événements de modification pour les valeurs enregistrées sur la page. Ceci permet aux travailleurs de la fiche de personnage de se déclencher et de reconstruire la diapositive dans son état précédent. Ceci est nécessaire car les modifications apportées par les fonctions qui manipulent le HTML (commesetCharmancerText
etaddRepeatingSection
) ne persistent pas. Il est important de garder à l'esprit que ces travailleurs peuvent se déclencher lors de la révision de la diapositive. Planifiez les travailleurs en conséquence. Notez que lors de la réouverture d'une diapositive, les identifiants précédents répétés sont réutilisés pour les sections portant des noms correspondants, de sorte que ces identifiants doivent rester constants.
Attribut pseudo charactermancer_step
L'attributcharactermancer_step
est un attribut pseudo comme character_name. Cela vous permet de définir l'étape à laquelle le Charactermancer s'ouvrira la prochaine fois qu'il sera lancé. Cet attribut peut être défini par une fonction normale desetAttrs
et ne peut pas être défini pendant que le Charactermancer est actif.