From c595b24aa02d73fc3cd95b9f0bdcd08b8b556fdb Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Fri, 15 Nov 2024 00:01:55 +0100 Subject: [PATCH] Utilisation du token.name au lieu d'actor.name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pour permettre de masquer les informations sur les PNJs secondaires, ou de dévoiler le nom de l'acteur --- module/actor/base-actor-reve.js | 10 ++++---- module/actor/base-actor-sang.js | 8 +++--- module/actor/base-actor.js | 15 ++++++++--- module/actor/commerce-sheet.js | 2 +- module/dialog-create-signedraconique.js | 2 +- module/rdd-combat.js | 29 +++++++++++----------- module/rdd-roll.js | 13 +++++----- module/rdd-tmr-dialog.js | 8 +++--- templates/dialog-roll-alchimie.html | 2 +- templates/dialog-roll-carac.html | 1 - templates/dialog-roll-chant.html | 2 +- templates/dialog-roll-danse.html | 2 +- templates/dialog-roll-jeu.html | 2 +- templates/dialog-roll-maitrise-tmr.html | 2 +- templates/dialog-roll-meditation.html | 2 +- templates/dialog-roll-musique.html | 2 +- templates/dialog-roll-oeuvre.html | 2 +- templates/dialog-roll-recettecuisine.html | 2 +- templates/dialog-roll-reve-de-dragon.html | 2 +- templates/dialog-roll-signedraconique.html | 4 +-- templates/dialog-roll-sort.html | 2 +- 21 files changed, 62 insertions(+), 52 deletions(-) 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/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-tmr-dialog.js b/module/rdd-tmr-dialog.js index a80eaba3..fd8eef5b 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,9 @@ 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/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}}