feat: nouveaux apprentissages (Capacités de Totem, Historique, Réputation) et expérience de Groupe
- Dialogue d'apprentissage personnage : 4 nouveaux types d'achat.
- Capacité de Totem : options filtrées (mode de jeu, niveau de
groupe, totem, non-apprises), difficulté = valeur d'Apprentissage,
limites 3×N1 / 1×N2-N3 / max 5, marque system.learned de l'item
(convention type character) et learned.ability du personnage.
- Élément d'Historique : difficulté 9, handicap 1 si astérisque
(background.asterisk), marque learned.background + item.
- Test de Réputation (réduire/augmenter) : réduire = difficulté
10 − score visé (−1 pt), augmenter = difficulté = réputation
actuelle (+1 par succès), bornes 0-10, marque learned.reputation.
- Évolution : option Dé de Totem Adapté ×2 quand Adapté > Humain
(1D remplacé par un dé adapté compté ×2 via VermineUtils.roll).
- Correction règles : les Dés d'Expérience sont dépensés même en cas
d'échec du jet d'apprentissage (décompte hors #applySuccess).
- Expérience de Groupe : nouveau dialogue d'apprentissage de Groupe
(niveau, réserve, capacité de totem), réserve d'expérience et phase
dans system.experience, boutons sur la fiche Groupe, reset des
limites par phase (level/reserve/ability).
- Phase d'expérience : filtre par groupe sélectionné, associe chaque
personnage à son premier groupe, reset des limites de tous les
nouveaux types d'apprentissage.
- Corrections : l'attaque de créature n'ajoute plus la Réaction du Rôle
(regles_creatures.txt), suppression de la case XP des en-têtes PJ
(legacy et AppV2).
- Divers : .eslintrc.js (règles inexistantes/obsolètes retirées),
libellé jaune de dialogue en couleur chitine, i18n FR/EN, chips
« appris » sur l'onglet expérience du personnage.
This commit is contained in:
@@ -123,6 +123,76 @@ export class VermineExperience {
|
||||
return 0
|
||||
}
|
||||
|
||||
/**
|
||||
* Un Dé de Totem Adapté peut remplacer un Dé d'Expérience (compte ×2)
|
||||
* uniquement si le personnage possède strictement plus de Dés Adaptés
|
||||
* que Humains.
|
||||
* @param {number} human human totem dice
|
||||
* @param {number} adapted adapted totem dice
|
||||
* @returns {boolean}
|
||||
*/
|
||||
static canUseAdaptedDie(human, adapted) {
|
||||
return adapted > human
|
||||
}
|
||||
|
||||
/**
|
||||
* Difficulté d'un jet d'apprentissage de Capacité de Totem : valeur
|
||||
* d'Apprentissage de la capacité.
|
||||
* @param {object} abilityData system data de l'item ability
|
||||
* @returns {number}
|
||||
*/
|
||||
static totemAbilityLearningDifficulty(abilityData) {
|
||||
return parseInt(abilityData?.learn?.threshold, 10) || 5
|
||||
}
|
||||
|
||||
/**
|
||||
* Handicap d'un jet d'apprentissage de Capacité de Totem : valeur
|
||||
* d'Apprentissage de la capacité.
|
||||
* @param {object} abilityData system data de l'item ability
|
||||
* @returns {number}
|
||||
*/
|
||||
static totemAbilityLearningHandicap(abilityData) {
|
||||
return parseInt(abilityData?.learn?.hindrance, 10) || 0
|
||||
}
|
||||
|
||||
/**
|
||||
* Difficulté d'un jet d'obtention d'un Élément d'Historique.
|
||||
* @returns {number}
|
||||
*/
|
||||
static backgroundLearningDifficulty() {
|
||||
return 9
|
||||
}
|
||||
|
||||
/**
|
||||
* Handicap d'un jet d'obtention d'un Élément d'Historique : (I) si
|
||||
* l'Historique est listé avec un astérisque.
|
||||
* @param {boolean} asterisk
|
||||
* @returns {number}
|
||||
*/
|
||||
static backgroundLearningHandicap(asterisk) {
|
||||
return asterisk ? 1 : 0
|
||||
}
|
||||
|
||||
/**
|
||||
* Difficulté d'un jet visant à réduire le score de Réputation (devenir
|
||||
* plus célèbre) : 10 moins le score que le personnage souhaite atteindre.
|
||||
* @param {number} current réputation actuelle
|
||||
* @returns {number}
|
||||
*/
|
||||
static reputationReduceDifficulty(current) {
|
||||
return 10 - Math.max(0, (parseInt(current, 10) || 0) - 1)
|
||||
}
|
||||
|
||||
/**
|
||||
* Difficulté d'un jet visant à augmenter le score de Réputation (se faire
|
||||
* oublier) : égale à la Réputation actuelle.
|
||||
* @param {number} current réputation actuelle
|
||||
* @returns {number}
|
||||
*/
|
||||
static reputationIncreaseDifficulty(current) {
|
||||
return parseInt(current, 10) || 0
|
||||
}
|
||||
|
||||
/**
|
||||
* Clé i18n du libellé du niveau de compétence visé.
|
||||
* @param {number} level
|
||||
|
||||
Reference in New Issue
Block a user