diff --git a/changelog.md b/changelog.md index 8eae2d44..f6c18f52 100644 --- a/changelog.md +++ b/changelog.md @@ -1,4 +1,11 @@ # 12.0 +## 12.0.21 - La nomination d'Astrobazzarh +- Les noms pour les messages dans le tchat sont maintenant ceux des tokens plutôt que ceux des acteurs +- Fix: le choix des effets dans les options s'affiche correctement + +## 12.0.20 - Le tableau d'Astrobazzarh +- Ecran d'accueil officiel Scriptarium + ## 12.0.19 - La témérité d'Astrobazzarh - Fix - les défenses des créatures sont correctement filtrées diff --git a/module/actor.js b/module/actor.js index 848368ac..d0c962cf 100644 --- a/module/actor.js +++ b/module/actor.js @@ -181,7 +181,7 @@ export class RdDActor extends RdDBaseActorSang { whisper: ChatUtility.getOwners(this), content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-potionenchantee-chateaudormant.html`, { pr: nouveauReve, - alias: this.name, + alias: this.getAlias(), potionName: it.name, potionImg: it.img }) @@ -1341,7 +1341,7 @@ export class RdDActor extends RdDBaseActorSang { const etat = this.getEtatGeneral({ ethylisme: true }); const nbDoses = Number(this.system.compteurs.ethylisme.nb_doses || 0); const ethylismeData = { - alias: this.name, + alias: this.getAlias(), actor: this, vie: this.system.sante.vie.max, alcool: alcool, @@ -1426,7 +1426,7 @@ export class RdDActor extends RdDBaseActorSang { const perteDissolution = Math.max(0, Math.min(dissolution, conversion)); let stressRollData = { - alias: this.name, + alias: this.getAlias(), selectedCarac: this.system.carac.reve, rolled: stressRoll, stress: fromStress, @@ -1517,7 +1517,7 @@ export class RdDActor extends RdDBaseActorSang { carac.value = niveauSuivant; let checkXp = { - alias: this.name, + alias: this.getAlias(), carac: caracName, value: niveauSuivant, xp: carac.xp @@ -1547,7 +1547,7 @@ export class RdDActor extends RdDBaseActorSang { newCompData.system.niveau += 1; newCompData.system.xp = newXP; let checkXp = { - alias: this.name, + alias: this.getAlias(), competence: newCompData.name, niveau: newCompData.system.niveau, xp: newCompData.system.xp, @@ -1784,7 +1784,7 @@ export class RdDActor extends RdDBaseActorSang { } const competence = this.getCompetence(compName); let rollData = { - alias: this.name, + alias: this.getAlias(), caracValue: Number(carac.value), selectedCarac: carac, competence: competence, @@ -1857,7 +1857,7 @@ export class RdDActor extends RdDBaseActorSang { label: 'Jet ' + Grammar.apostrophe('de', competence.name), template: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-competence.html', rollData: { - alias: this.name, + alias: this.getAlias(), carac: this.system.carac, selectedCarac: this.getCaracByName(caracName), selectedCaracName: caracName, @@ -2930,7 +2930,7 @@ export class RdDActor extends RdDBaseActorSang { let newQuantite = herbeData.system.quantite - herbeData.nbBrins; let messageData = { - alias: this.name, + alias: this.getAlias(), nbBrinsReste: newQuantite, potion: newPotion, herbe: herbeData diff --git a/module/actor/base-actor-reve.js b/module/actor/base-actor-reve.js index 50680bb4..fbbf03ca 100644 --- a/module/actor/base-actor-reve.js +++ b/module/actor/base-actor-reve.js @@ -117,7 +117,7 @@ export class RdDBaseActorReve extends RdDBaseActor { for (let effect of this.getEffects()) { if (effect.duration.type !== 'none' && (effect.duration.remaining <= 0 || options.terminer)) { await effect.delete(); - ChatMessage.create({ content: `${this.name} n'est plus ${Misc.lowerFirst(game.i18n.localize(effect.system.label))} !` }); + ChatMessage.create({ content: `${this.getAlias()} n'est plus ${Misc.lowerFirst(game.i18n.localize(effect.system.label))} !` }); } } } @@ -288,7 +288,7 @@ export class RdDBaseActorReve extends RdDBaseActor { await this.openRollDialog({ name: `jet-${this.id}`, - label: `Jet de ${this.name}`, + label: `Jet de ${this.getAlias()}`, template: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll.html', rollData: { carac: carac, @@ -463,7 +463,7 @@ export class RdDBaseActorReve extends RdDBaseActor { async $afficherEncaissement(encaissement, show, defenderToken) { foundry.utils.mergeObject(encaissement, { - alias: defenderToken?.name ?? this.name, + alias: defenderToken?.name ?? this.getAlias(), hasPlayerOwner: this.hasPlayerOwner, show: show ?? {} }, { overwrite: false }); @@ -496,7 +496,7 @@ export class RdDBaseActorReve extends RdDBaseActor { } const rolled = await RdDResolutionTable.roll(this.getReveActuel(), - Number(entite.system.carac.niveau.value)); const rollData = { - alias: this.name, + alias: this.getAlias(), rolled: rolled, entite: entite.name, selectedCarac: this.system.carac.reve @@ -516,7 +516,7 @@ export class RdDBaseActorReve extends RdDBaseActor { isEntiteAccordee(attacker) { return true } async setEntiteReveAccordee(actor) { - ui.notifications.error("Impossible de s'accorder à " + this.name + ": ce n'est pas une entité incarnée"); + ui.notifications.error("Impossible de s'accorder à " + this.getAlias() + ": ce n'est pas une entité incarnée"); } } diff --git a/module/actor/base-actor-sang.js b/module/actor/base-actor-sang.js index 26a58350..45d84458 100644 --- a/module/actor/base-actor-sang.js +++ b/module/actor/base-actor-sang.js @@ -191,7 +191,7 @@ export class RdDBaseActorSang extends RdDBaseActorReve { encaissement.mort = true; ChatMessage.create({ content: ` - ${this.name} vient de succomber à une seconde blessure critique ! Que les Dragons gardent son Archétype en paix !` + ${this.getAlias()} vient de succomber à une seconde blessure critique ! Que les Dragons gardent son Archétype en paix !` }); } return blessure; @@ -218,7 +218,7 @@ export class RdDBaseActorSang extends RdDBaseActorReve { async jetDeVie() { if (this.isDead()) { ChatMessage.create({ - content: `Jet de Vie: ${this.name} est déjà mort, ce n'est pas la peine d'en rajouter !!!!!`, + content: `Jet de Vie: ${this.getAlias()} est déjà mort, ce n'est pas la peine d'en rajouter !!!!!`, whisper: ChatUtility.getOwners(this) }) return @@ -242,7 +242,7 @@ export class RdDBaseActorSang extends RdDBaseActorReve { await this.santeIncDec("vie", -perte); } if (this.isDead()) { - msgText += `
${this.name} est mort !!!!`; + msgText += `
${this.getAlias()} est mort !!!!`; } else if (prochainJet > 0) { msgText += `
Prochain jet de vie dans ${prochainJet} ${isCritique ? 'round' : 'minute'}${prochainJet > 1 ? 's' : ''} ${isCritique ? '(état critique)' : '(état grave)'}` @@ -273,7 +273,7 @@ export class RdDBaseActorSang extends RdDBaseActorReve { async setSonne(sonne = true) { if (!game.combat && sonne) { - ui.notifications.info(`${this.name} est hors combat, il ne reste donc pas sonné`); + ui.notifications.info(`${this.getAlias()} est hors combat, il ne reste donc pas sonné`); return; } await this.setEffect(STATUSES.StatusStunned, sonne) diff --git a/module/actor/base-actor.js b/module/actor/base-actor.js index d84a9a20..349d1973 100644 --- a/module/actor/base-actor.js +++ b/module/actor/base-actor.js @@ -78,6 +78,13 @@ export class RdDBaseActor extends Actor { return game.actors.get(actorId) } + getAlias() { + if (this.token?.name != null && this.token != this.prototypeToken) { + return this.token.name + } + return this.name + } + isPersonnageJoueur() { return false } static extractActorMin = (actor) => { return { id: actor?.id, type: actor?.type, name: actor?.name, img: actor?.img }; }; @@ -367,7 +374,7 @@ export class RdDBaseActor extends Actor { chatAchatItem.quantiteTotal = quantite; ChatMessage.create({ user: achat.userId, - speaker: { alias: (acheteur ?? vendeur).name }, + speaker: { alias: (acheteur ?? vendeur).getAlias() }, whisper: ChatUtility.getOwners(this), content: await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/chat-achat-item.html', chatAchatItem) }); @@ -683,7 +690,7 @@ export class RdDBaseActor extends Actor { type: this.type, img: this.img, pack: this.pack, - name: this.name, + name: this.getAlias(), system: { description: this.system.description } } renderTemplate('systems/foundryvtt-reve-de-dragon/templates/post-actor.html', chatData) @@ -691,10 +698,10 @@ export class RdDBaseActor extends Actor { } actionImpossible(action) { - ui.notifications.info(`${this.name} ne peut pas faire cette action: ${action}`) + ui.notifications.info(`${this.getAlias()} ne peut pas faire cette action: ${action}`) } - async roll() { this.actionImpossible("jet de caractéristiques") } + async jetEthylisme() { this.actionImpossible("jet d'éthylisme") } async rollAppelChance() { this.actionImpossible("appel à la chance") } async jetDeMoral() { this.actionImpossible("jet de moral") } diff --git a/module/actor/commerce-sheet.js b/module/actor/commerce-sheet.js index 2aed0d6b..7a305195 100644 --- a/module/actor/commerce-sheet.js +++ b/module/actor/commerce-sheet.js @@ -73,7 +73,7 @@ export class RdDCommerceSheet extends RdDBaseActorSheet { } const disponible = this.actor.getQuantiteDisponible(item) if (disponible == 0) { - ui.notifications.warn(`${this.name} n'a plus de ${item.name} en vente`); + ui.notifications.warn(`${this.getAlias()} n'a plus de ${item.name} en vente`); return; } diff --git a/module/actor/random/app-personnage-aleatoire.js b/module/actor/random/app-personnage-aleatoire.js index 47888d69..c4e23799 100644 --- a/module/actor/random/app-personnage-aleatoire.js +++ b/module/actor/random/app-personnage-aleatoire.js @@ -19,7 +19,7 @@ const PATHS = [ const RANDOM_VALUES = { 'system.sexe': { 'masculin': 1, 'féminin': 1 }, - 'system.main': { 'droitier': 51, 'gaucher': 15, 'ambidectre': 6 }, + 'system.main': { 'droitier': 51, 'gaucher': 15, 'ambidextre': 6 }, 'system.cheveux': { 'noirs': 2, 'bruns': 5, 'châtains clair': 5, 'blonds': 4, 'blonds très clair': 1, 'roux carotte': 1, 'roux cuivré': 3 }, 'system.yeux': { 'noirs': 2, 'noisettes': 3, 'bruns vert': 4, 'verts': 3, 'bleus clair': 3, 'bleus gris': 2, 'gris': 1, 'mauves': 1, 'indigos': 1 }, } diff --git a/module/dialog-create-signedraconique.js b/module/dialog-create-signedraconique.js index 0f50f21c..40f90988 100644 --- a/module/dialog-create-signedraconique.js +++ b/module/dialog-create-signedraconique.js @@ -51,7 +51,7 @@ export class DialogCreateSigneDraconique extends Dialog { whisper: ChatUtility.getOwners(actor), content: await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/chat-signe-draconique-actor.html", { signe: signe, - alias: actor.name + alias: actor.getAlias() }) }); } diff --git a/module/rdd-combat.js b/module/rdd-combat.js index 6401f7a8..78c27dcb 100644 --- a/module/rdd-combat.js +++ b/module/rdd-combat.js @@ -133,10 +133,10 @@ export class RdDCombatManager extends Combat { scene: canvas.scene._id, actor: combatant.actor?._id, token: combatant.token._id, - alias: combatant.token.name, + alias: combatant.token?.name, sound: CONFIG.sounds.dice, }, - flavor: `${combatant.token.name} a fait son jet d'Initiative (${messageOptions.info})
` + flavor: `${combatant.token?.name} a fait son jet d'Initiative (${messageOptions.info})
` }, messageOptions); roll.toMessage(messageData, { rollMode, create: true }); @@ -252,7 +252,7 @@ export class RdDCombatManager extends Combat { if (action && action.type == "arme") { for (let initData of premierRoundInit) { if (Grammar.toLowerCaseNoAccentNoSpace(action.system.initpremierround).includes(initData.pattern)) { - let msg = `

L'initiative de ${combatant.actor.name} a été modifiée !

+ let msg = `

L'initiative de ${combatant.actor.getAlias()} a été modifiée !


Etant donné son ${action.name}, son initative pour ce premier round est désormais de ${initData.init}. @@ -754,7 +754,7 @@ export class RdDCombat { /* -------------------------------------------- */ _prepareAttaque(competence, arme) { let rollData = { - alias: this.attackerToken.name, + alias: this.attacker?.getAlias(), passeArme: foundry.utils.randomID(16), mortalite: arme?.system.mortalite, competence: competence, @@ -803,10 +803,10 @@ export class RdDCombat { } const choixParticuliere = await ChatMessage.create({ - alias: this.attacker.name, + alias: this.attacker.getAlias(), whisper: ChatUtility.getOwners(this.attacker), content: await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/chat-demande-attaque-particuliere.html', { - alias: this.attackerToken.name, + alias: this.attacker.getAlias(), attackerId: this.attackerId, attackerToken: this.attackerToken, defenderToken: this.defenderToken, @@ -826,7 +826,7 @@ export class RdDCombat { attackerRoll.dmg = RdDBonus.dmg(attackerRoll, this.attacker, this.defender.isEntite()); let defenderRoll = { attackerRoll: attackerRoll, passeArme: attackerRoll.passeArme, show: {} } attackerRoll.show = { - cible: this.defenderToken?.name ?? 'la cible', + cible: this.defender?.getAlias() ?? 'la cible', isRecul: (attackerRoll.particuliere == 'force' || attackerRoll.tactique == 'charge') } await RdDResolutionTable.displayRollData(attackerRoll, this.attacker, 'chat-resultat-attaque.html'); @@ -892,7 +892,7 @@ export class RdDCombat { const choixDefense = await ChatMessage.create({ // message privé: du défenseur à lui même (et aux GMs) speaker: ChatMessage.getSpeaker(this.defender, canvas.tokens.get(this.defenderTokenId)), - alias: this.attackerToken.name, + alias: this.attacker?.getAlias(), whisper: ChatUtility.getOwners(this.defender), content: await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/chat-demande-defense.html', paramDemandeDefense), }); @@ -1015,7 +1015,7 @@ export class RdDCombat { /* -------------------------------------------- */ _prepareParade(attackerRoll, armeParade, competenceParade) { let defenderRoll = { - alias: this.defenderToken?.name, + alias: this.defender?.getAlias(), passeArme: attackerRoll.passeArme, diffLibre: attackerRoll.diffLibre, attackerToken: this.attackerToken, @@ -1072,7 +1072,7 @@ export class RdDCombat { async esquive(attackerRoll, compId, compName) { const esquive = this.defender.getCompetence(compId) ?? this.defender.getCompetence(compName) if (esquive == undefined) { - ui.notifications.error(this.defender.name + " n'a pas de compétence " + compName); + ui.notifications.error(this.defender.getAlias() + " n'a pas de compétence " + compName); return; } console.log("RdDCombat.esquive >>>", attackerRoll, esquive); @@ -1099,7 +1099,7 @@ export class RdDCombat { /* -------------------------------------------- */ _prepareEsquive(attackerRoll, competence) { let rollData = { - alias: this.defenderToken?.name, + alias: this.defender.getAlias(), passeArme: attackerRoll.passeArme, diffLibre: attackerRoll.diffLibre, attackerToken: this.attackerToken, @@ -1278,9 +1278,10 @@ export class RdDCombat { if (!actor?.isActorCombat()) { return } + const alias = token?.name ?? actor.getAlias(); const formData = { combatId: combat._id, - alias: token.name ?? actor.name, + alias: alias, etatGeneral: actor.getEtatGeneral(), isSonne: actor.isSonne(), blessuresStatus: actor.computeResumeBlessure(), @@ -1293,12 +1294,12 @@ export class RdDCombat { } await ChatMessage.create({ content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-actor-turn-acteur.hbs`, formData), - alias: token.name ?? actor.name + alias: alias }) await ChatMessage.create({ content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-actor-turn-sante.hbs`, formData), whisper: ChatUtility.getOwners(actor), - alias: token.name ?? actor.name + alias: alias }) } } \ No newline at end of file diff --git a/module/rdd-roll.js b/module/rdd-roll.js index 5613e322..296e9ca1 100644 --- a/module/rdd-roll.js +++ b/module/rdd-roll.js @@ -32,7 +32,7 @@ export class RdDRoll extends Dialog { /* -------------------------------------------- */ static _setDefaultOptions(actor, rollData) { let defaultRollData = { - alias: actor.name, + alias: actor.getAlias(), ajustementsConditions: CONFIG.RDD.ajustementsConditions, difficultesLibres: CONFIG.RDD.difficultesLibres, etat: actor.getEtatGeneral(), @@ -345,24 +345,25 @@ export class RdDRoll extends Dialog { /* -------------------------------------------- */ _getTitle(rollData) { + const alias = rollData.alias const carac = rollData.selectedCarac.label; if (!rollData.competence) { - return carac; + return `${alias}: ${carac}` } const compName = rollData.competence.name; const niveau = Misc.toSignedString(rollData.competence.system.niveau) if (compName == carac) { // cas des créatures - return `${carac} Niveau ${niveau}` + return `${alias}: ${carac} Niveau ${niveau}` } if (rollData.draconicList && rollData.selectedSort) { // cas de lancer de sort - return `${rollData.competence.name} Niveau ${niveau} ${rollData.selectedSort.name}` + return `${alias}: ${rollData.competence.name} Niveau ${niveau} ${rollData.selectedSort.name}` } if (rollData.arme && rollData.arme.name != compName) { // ajouter l'arme au titre si son nom n'est pas la compétence - return `${carac} / ${compName} (${rollData.arme.name}) Niveau ${niveau}` + return `${alias}: ${carac} / ${compName} (${rollData.arme.name}) Niveau ${niveau}` } - return `${carac} / ${compName} Niveau ${niveau}` + return `${alias}: ${carac} / ${compName} Niveau ${niveau}` } } diff --git a/module/rdd-rolltables.js b/module/rdd-rolltables.js index d47d270a..a80e94d5 100644 --- a/module/rdd-rolltables.js +++ b/module/rdd-rolltables.js @@ -1,4 +1,3 @@ -import { Grammar } from "./grammar.js"; import { CompendiumTable, CompendiumTableHelpers, SystemCompendiums } from "./settings/system-compendiums.js"; export class RdDRollTables { diff --git a/module/rdd-tmr-dialog.js b/module/rdd-tmr-dialog.js index a80eaba3..7389b9ad 100644 --- a/module/rdd-tmr-dialog.js +++ b/module/rdd-tmr-dialog.js @@ -460,7 +460,7 @@ export class RdDTMRDialog extends Dialog { let rencontreData = { actor: this.actor, - alias: this.actor.name, + alias: this.actor.getAlias(), reveDepart: this.actor.getReveActuel(), competence: this.actor.getBestDraconic(), rencontre: this.currentRencontre, @@ -641,7 +641,7 @@ export class RdDTMRDialog extends Dialog { // simuler une rencontre let rencontreData = { actor: this.actor, - alias: this.actor.name, + alias: this.actor.getAlias(), reveDepart: this.actor.getReveActuel(), competence: this.actor.getBestDraconic(), rencontre: this.currentRencontre, @@ -1098,7 +1098,10 @@ export class RdDTMRDialog extends Dialog { if (!this.viewOnly && this.actor.isResonanceSigneDraconique(coord)) { ChatMessage.create({ whisper: ChatUtility.getOwners(this.actor), - content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-signe-draconique-resonance.html`, { alias: this.actor.name, typeTMR: TMRUtility.getTMRType(coord) }) + content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-signe-draconique-resonance.html`, { + alias: this.actor.getAlias(), + typeTMR: TMRUtility.getTMRType(coord) + }) }); } } diff --git a/module/settings/status-effects.js b/module/settings/status-effects.js index b8d4592a..7caeda8a 100644 --- a/module/settings/status-effects.js +++ b/module/settings/status-effects.js @@ -15,17 +15,17 @@ export const STATUSES = { } const rddStatusEffects = [ - { rdd: true, id: STATUSES.StatusStunned, label: 'EFFECT.StatusStunned', icon: 'icons/svg/stoned.svg', "duration.rounds": 1 }, - { rdd: true, id: STATUSES.StatusBleeding, label: 'EFFECT.StatusBleeding', icon: 'icons/svg/blood.svg' }, - { rdd: true, id: STATUSES.StatusProne, label: 'EFFECT.StatusProne', icon: 'icons/svg/falling.svg' }, - { rdd: true, id: STATUSES.StatusGrappling, tint: '#33cc33', label: 'EFFECT.StatusGrappling', icon: 'systems/foundryvtt-reve-de-dragon/icons/empoignade.webp' }, - { rdd: true, id: STATUSES.StatusGrappled, tint: '#ff9900', label: 'EFFECT.StatusGrappled', icon: 'systems/foundryvtt-reve-de-dragon/icons/empoignade.webp' }, - { rdd: true, id: STATUSES.StatusRestrained, label: 'EFFECT.StatusRestrained', icon: 'icons/svg/net.svg' }, - { rdd: true, id: STATUSES.StatusUnconscious, label: 'EFFECT.StatusUnconscious', icon: 'icons/svg/unconscious.svg' }, - { rdd: true, id: STATUSES.StatusBlind, label: 'EFFECT.StatusBlind', icon: 'icons/svg/blind.svg' }, - { rdd: true, id: STATUSES.StatusComma, label: 'EFFECT.StatusComma', icon: 'icons/svg/skull.svg' }, - { rdd: true, id: STATUSES.StatusDead, label: 'EFFECT.StatusDead', icon: 'icons/svg/skull.svg' }, - { rdd: true, id: STATUSES.StatusDemiReve, label: 'EFFECT.StatusDemiReve', icon: 'systems/foundryvtt-reve-de-dragon/icons/heures/hd12.svg' } + { rdd: true, id: STATUSES.StatusStunned, name: 'EFFECT.StatusStunned', img: 'icons/svg/stoned.svg', "duration.rounds": 1 }, + { rdd: true, id: STATUSES.StatusBleeding, name: 'EFFECT.StatusBleeding', img: 'icons/svg/blood.svg' }, + { rdd: true, id: STATUSES.StatusProne, name: 'EFFECT.StatusProne', img: 'icons/svg/falling.svg' }, + { rdd: true, id: STATUSES.StatusGrappling, tint: '#33cc33', name: 'EFFECT.StatusGrappling', img: 'systems/foundryvtt-reve-de-dragon/icons/empoignade.webp' }, + { rdd: true, id: STATUSES.StatusGrappled, tint: '#ff9900', name: 'EFFECT.StatusGrappled', img: 'systems/foundryvtt-reve-de-dragon/icons/empoignade.webp' }, + { rdd: true, id: STATUSES.StatusRestrained, name: 'EFFECT.StatusRestrained', img: 'icons/svg/net.svg' }, + { rdd: true, id: STATUSES.StatusUnconscious, name: 'EFFECT.StatusUnconscious', img: 'icons/svg/unconscious.svg' }, + { rdd: true, id: STATUSES.StatusBlind, name: 'EFFECT.StatusBlind', img: 'icons/svg/blind.svg' }, + { rdd: true, id: STATUSES.StatusComma, name: 'EFFECT.StatusComma', img: 'icons/svg/skull.svg' }, + { rdd: true, id: STATUSES.StatusDead, name: 'EFFECT.StatusDead', img: 'icons/svg/skull.svg' }, + { rdd: true, id: STATUSES.StatusDemiReve, name: 'EFFECT.StatusDemiReve', img: 'systems/foundryvtt-reve-de-dragon/icons/heures/hd12.svg' } ]; const demiReveStatusEffect = rddStatusEffects.find(it => it.id == STATUSES.StatusDemiReve); @@ -57,7 +57,7 @@ export class StatusEffects extends FormApplication { restricted: true }); - CONFIG.RDD.allEffects = rddStatusEffects.concat(CONFIG.statusEffects.filter(it => !rddEffectIds.includes(it.id))); + CONFIG.RDD.allEffects = rddStatusEffects.concat(CONFIG.statusEffects.filter(it => !rddEffectIds.includes(it.id))) StatusEffects._setUseStatusEffects(StatusEffects._getUseStatusEffects()); console.log('statusEffects', CONFIG.statusEffects); diff --git a/styles/simple.css b/styles/simple.css index f9eb048f..37d15512 100644 --- a/styles/simple.css +++ b/styles/simple.css @@ -613,6 +613,14 @@ input:is(.blessure-premiers_soins, .blessure-soins_complets) { max-height: 16px; border-width: 0; } +.button-effect-info { + vertical-align: baseline; + width: 1.4rem; + height: 1.4rem; + background-color: var(--color-tooltip); + padding: 0.2em; + border-width: 0; +} .small-button-direction { max-height: 32px; max-width: 32px; diff --git a/system.json b/system.json index 194684d0..d6f6fd30 100644 --- a/system.json +++ b/system.json @@ -1,8 +1,8 @@ { "id": "foundryvtt-reve-de-dragon", "title": "Rêve de Dragon", - "version": "12.0.20", - "download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-12.0.20.zip", + "version": "12.0.21", + "download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-12.0.21.zip", "manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/v11/system.json", "changelog": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/branch/v11/changelog.md", "compatibility": { diff --git a/templates/actor/export-scriptarium/actor-encart-sheet.hbs b/templates/actor/export-scriptarium/actor-encart-sheet.hbs index 1368d560..b98f27e9 100644 --- a/templates/actor/export-scriptarium/actor-encart-sheet.hbs +++ b/templates/actor/export-scriptarium/actor-encart-sheet.hbs @@ -89,11 +89,12 @@
{{>"systems/foundryvtt-reve-de-dragon/templates/actor/export-scriptarium/competences.hbs" competences=competences}}
+ {{#if system.attributs.hautrevant.value}}
{{>"systems/foundryvtt-reve-de-dragon/templates/actor/export-scriptarium/competences.hbs" competences=draconic }}
-
+
{{>"systems/foundryvtt-reve-de-dragon/templates/actor/export-scriptarium/sort.hbs" voie=export.sort_voie_0.value description=export.sort_description_0.value bonus=export.sort_bonus_0.value}} {{>"systems/foundryvtt-reve-de-dragon/templates/actor/export-scriptarium/sort.hbs" voie=export.sort_voie_1.value description=export.sort_description_1.value bonus=export.sort_bonus_1.value}} @@ -128,5 +129,6 @@
 
 
+ {{/if}} \ No newline at end of file diff --git a/templates/dialog-roll-alchimie.html b/templates/dialog-roll-alchimie.html index 91733581..e313e218 100644 --- a/templates/dialog-roll-alchimie.html +++ b/templates/dialog-roll-alchimie.html @@ -1,5 +1,5 @@
-

Fabrication: {{recette.name}}

+

Fabrication: {{recette.name}} par {{alias}}

diff --git a/templates/dialog-roll-carac.html b/templates/dialog-roll-carac.html index 700b511a..a96d3d01 100644 --- a/templates/dialog-roll-carac.html +++ b/templates/dialog-roll-carac.html @@ -1,6 +1,5 @@

-
diff --git a/templates/dialog-roll-chant.html b/templates/dialog-roll-chant.html index 9586a507..54fb11a8 100644 --- a/templates/dialog-roll-chant.html +++ b/templates/dialog-roll-chant.html @@ -1,5 +1,5 @@ -

Chanter: {{oeuvre.name}}

+

{{alias}} chante {{oeuvre.name}}

diff --git a/templates/dialog-roll-danse.html b/templates/dialog-roll-danse.html index 7a9efa87..796be480 100644 --- a/templates/dialog-roll-danse.html +++ b/templates/dialog-roll-danse.html @@ -1,5 +1,5 @@ -

Danser: {{oeuvre.name}}

+

{{alias}} danse {{oeuvre.name}}

diff --git a/templates/dialog-roll-jeu.html b/templates/dialog-roll-jeu.html index 80a59b3d..2d1f1ca6 100644 --- a/templates/dialog-roll-jeu.html +++ b/templates/dialog-roll-jeu.html @@ -1,5 +1,5 @@ -

Jouer à : {{oeuvre.name}}

+

{{alias}} jouer à {{oeuvre.name}}

diff --git a/templates/dialog-roll-maitrise-tmr.html b/templates/dialog-roll-maitrise-tmr.html index 537e05eb..ab82b528 100644 --- a/templates/dialog-roll-maitrise-tmr.html +++ b/templates/dialog-roll-maitrise-tmr.html @@ -1,5 +1,5 @@ -

Maîtrise {{#if isTMRCache}} +

{{alias}} maîtrise {{#if isTMRCache}} {{tmr.type}} {{else}} {{tmr.label}} ({{tmr.coord}}) diff --git a/templates/dialog-roll-meditation.html b/templates/dialog-roll-meditation.html index 54a9ef25..0b4a77a0 100644 --- a/templates/dialog-roll-meditation.html +++ b/templates/dialog-roll-meditation.html @@ -1,5 +1,5 @@ -

{{meditation.name}}

+

{{alias}} effectue une {{meditation.name}}

diff --git a/templates/dialog-roll-musique.html b/templates/dialog-roll-musique.html index 09d1e3ad..04bc6ede 100644 --- a/templates/dialog-roll-musique.html +++ b/templates/dialog-roll-musique.html @@ -1,5 +1,5 @@ -

Interpréter la mélodie: {{oeuvre.name}}

+

{{alias}} interpréte la mélodie {{oeuvre.name}}

diff --git a/templates/dialog-roll-oeuvre.html b/templates/dialog-roll-oeuvre.html index 9b14c041..846579f0 100644 --- a/templates/dialog-roll-oeuvre.html +++ b/templates/dialog-roll-oeuvre.html @@ -1,5 +1,5 @@ -

Interpréter une Œuvre: {{oeuvre.name}}

+

{{alias}} interpréte une Œuvre: {{oeuvre.name}}

diff --git a/templates/dialog-roll-recettecuisine.html b/templates/dialog-roll-recettecuisine.html index 158b6669..13b2e470 100644 --- a/templates/dialog-roll-recettecuisine.html +++ b/templates/dialog-roll-recettecuisine.html @@ -1,5 +1,5 @@ -

Cuisiner: {{oeuvre.name}}

+

{{alias}} cuisine {{oeuvre.name}}

diff --git a/templates/dialog-roll-reve-de-dragon.html b/templates/dialog-roll-reve-de-dragon.html index 48cfd468..020337fd 100644 --- a/templates/dialog-roll-reve-de-dragon.html +++ b/templates/dialog-roll-reve-de-dragon.html @@ -1,5 +1,5 @@ -

{{rencontre.name}} de force {{rencontre.system.force}}!

+

{{alias}} rencontre: {{rencontre.name}} de force {{rencontre.system.force}}!

diff --git a/templates/dialog-roll-signedraconique.html b/templates/dialog-roll-signedraconique.html index aceae80f..63ede600 100644 --- a/templates/dialog-roll-signedraconique.html +++ b/templates/dialog-roll-signedraconique.html @@ -1,9 +1,9 @@ -

Lire le signe draconique +

{{alias}} lit le signe draconique diff --git a/templates/dialog-roll-sort.html b/templates/dialog-roll-sort.html index c9d2eef0..f89fa0f4 100644 --- a/templates/dialog-roll-sort.html +++ b/templates/dialog-roll-sort.html @@ -1,7 +1,7 @@
-

Lancer le {{#if sort.system.isrituel}}rituel{{else}}sort{{/if}}

+

{{alias}} lance le {{#if sort.system.isrituel}}rituel{{else}}sort{{/if}}

+ {{else}} {{/if}} - + {{/each}}