Merge branch 'stabilisation-v1.2' into 'v1.2'

Stabilisation v1.2

See merge request LeRatierBretonnien/foundryvtt-reve-de-dragon!123
This commit is contained in:
Leratier Bretonnien 2021-01-22 09:08:47 +00:00
commit e5a019afd3
6 changed files with 40 additions and 45 deletions

View File

@ -2514,7 +2514,7 @@ export class RdDActor extends Actor {
let competence = this.data.items.find(item => item.type == 'competence' && item.name.toLowerCase() == "alchimie"); let competence = this.data.items.find(item => item.type == 'competence' && item.name.toLowerCase() == "alchimie");
let diffAlchimie = RdDAlchimie.getDifficulte(alchimieData); let diffAlchimie = RdDAlchimie.getDifficulte(alchimieData);
let rollData = { let rollData = {
recetteName: recette.name, recette: recette,
competence: competence, competence: competence,
diffLibre: diffAlchimie // Per default at startup diffLibre: diffAlchimie // Per default at startup
} }
@ -2550,39 +2550,28 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
buildVehiculesList() { buildVehiculesList() {
if ( !this.data.data.subacteurs) return []; return this._buildActorLinksList(
let myArray = []; this.data.data.subacteurs?.vehicules??[],
for (let vehiculeLink of this.data.data.subacteurs.vehicules) { vehicle => {return { id: vehicle.id, name: vehicle.data.name, categorie: vehicle.data.data.categorie,
let vehicule = game.actors.get( vehiculeLink.id ); structure: vehicle.data.data.structure, img: vehicle.data.img } ;});
myArray.push( { id: vehiculeLink.id, name: vehicule.data.name, categorie: vehicule.data.data.categorie,
structure: vehicule.data.data.structure, img: vehicule.data.img } );
}
return myArray;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
buildSuivantsList() { buildSuivantsList() {
if ( !this.data.data.subacteurs) return []; return this._buildActorLinksList(this.data.data.subacteurs?.suivants ?? []);
let myArray = [];
for (let suivantLink of this.data.data.subacteurs.suivants) {
let suivant = game.actors.get( suivantLink.id );
myArray.push( { id: suivantLink.id, name: suivant.data.name, img: suivant.data.img } );
}
return myArray;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
buildMonturesList() { buildMonturesList() {
if ( !this.data.data.subacteurs) return []; return this._buildActorLinksList(this.data.data.subacteurs?.montures ?? []);
let myArray = [];
for (let montureLink of this.data.data.subacteurs.montures) {
let monture = game.actors.get( montureLink.id );
myArray.push( { id: montureLink.id, name: monture.data.name, img: monture.data.img } );
}
return myArray;
} }
_buildActorLinksList(links, actorTransformation=it => { return { id: it.id, name: it.data.name, img: it.data.img }; }) {
return links.map(link => game.actors.get(link.id))
.filter(it => it != null)
.map(actorTransformation);
}
/* -------------------------------------------- */ /* -------------------------------------------- */
async pushSubacteur( actor, dataArray, dataPath, dataName ) { async pushSubacteur( actor, dataArray, dataPath, dataName ) {
let alreadyPresent = dataArray.find( attached => attached.id == actor.data._id); let alreadyPresent = dataArray.find( attached => attached.id == actor.data._id);

View File

@ -225,7 +225,8 @@ export class RdDCommands {
/* -------------------------------------------- */ /* -------------------------------------------- */
async rollDeDraconique(msg) { async rollDeDraconique(msg) {
let ddr = new DeDraconique().evaluate(); let ddr = new DeDraconique().evaluate();
await RdDDice.show(ddr, rollMode); ddr.showDice = true;
await RdDDice.show(ddr);
RdDCommands._chatAnswer(msg, `Lancer d'un Dé draconique: ${ddr.total}`); RdDCommands._chatAnswer(msg, `Lancer d'un Dé draconique: ${ddr.total}`);
} }

View File

@ -220,7 +220,6 @@ Hooks.once("init", async function () {
RdDCombat.init(); RdDCombat.init();
RdDTokenHud.init(); RdDTokenHud.init();
RdDActor.init(); RdDActor.init();
StatusEffects.init();
}); });
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -233,13 +232,16 @@ function messageDeBienvenue() {
<br>Vous trouverez quelques informations pour démarrer dans ce document : @Compendium[foundryvtt-reve-de-dragon.rappel-des-regles.7uGrUHGdPu0EmIu2]{Documentation MJ/Joueurs} <br>Vous trouverez quelques informations pour démarrer dans ce document : @Compendium[foundryvtt-reve-de-dragon.rappel-des-regles.7uGrUHGdPu0EmIu2]{Documentation MJ/Joueurs}
<br>La commande <code>/aide</code> dans le chat permet de voir les commandes spécifiques à Rêve de Dragon.</div> <br>La commande <code>/aide</code> dans le chat permet de voir les commandes spécifiques à Rêve de Dragon.</div>
` }); ` });
} }
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
/* Foundry VTT Initialization */ /* Foundry VTT Initialization */
/* -------------------------------------------- */ /* -------------------------------------------- */
Hooks.once("ready", function () { Hooks.once("ready", function () {
StatusEffects.onReady();
/* -------------------------------------------- */ /* -------------------------------------------- */
/* Affiche/Init le calendrier */ /* Affiche/Init le calendrier */
let calendrier = new RdDCalendrier(); let calendrier = new RdDCalendrier();

View File

@ -8,7 +8,7 @@ const statusDemiSurprise = new Set(['sonne', 'prone', 'restrain']);
const statusSurpriseTotale = new Set(['unconscious', 'blind']); const statusSurpriseTotale = new Set(['unconscious', 'blind']);
export class StatusEffects { export class StatusEffects {
static init() { static onReady() {
StatusEffects.setCoreStatusId([demiReveStatusEffect]); StatusEffects.setCoreStatusId([demiReveStatusEffect]);
StatusEffects.setCoreStatusId(rddStatusEffects); StatusEffects.setCoreStatusId(rddStatusEffects);
StatusEffects.setMandatoryRdd(); StatusEffects.setMandatoryRdd();

View File

@ -1,3 +1,4 @@
<img class="chat-icon" src="systems/foundryvtt-reve-de-dragon/icons/competence_alchimie.png" alt="préparation alchimique" height="32" width="32" />
<h4> <h4>
{{alias}} essaye de réaliser sa recette Alchimique : {{recette.name}} {{alias}} essaye de réaliser sa recette Alchimique : {{recette.name}}
</h4> </h4>
@ -5,8 +6,8 @@
<hr> <hr>
<div> <div>
{{#if rolled.isSuccess}} {{#if rolled.isSuccess}}
{{alias}} a réussi son opération alchimiue ! Il/Elle peut passer à l'étape suivante de sa recette. {{alias}} a réussi son opération alchimique ! Il/Elle peut passer à l'étape suivante de sa recette.
{{else}} {{else}}
{{alias}} a raté son opération Alchimique ! Sa recette est un echec. {{alias}} a raté son opération alchimique ! Sa recette est un echec.
{{/if}} {{/if}}
</div> </div>

View File

@ -19,24 +19,26 @@
{{#unless (eq armure 0)}}, l'armure a protègé de {{armure}} {{#unless (eq penetration 0)}}(pénétration de {{penetration}}) {{#unless (eq armure 0)}}, l'armure a protègé de {{armure}} {{#unless (eq penetration 0)}}(pénétration de {{penetration}})
{{/unless}} {{/unless}}
{{/unless}}, total: <span class="rdd-roll-echec">{{total}}</span> {{/unless}}, total: <span class="rdd-roll-echec">{{total}}</span>
<br> <br>
{{alias}} subit {{alias}} subit
{{#if (gt eraflures 0)}}une contusion {{#if (eq dmg.mortalite 'cauchemar')}}le coup
{{else if (gt eraflures 0)}}une contusion
{{else if (gt legeres 0)}}une blessure légère {{else if (gt legeres 0)}}une blessure légère
{{else if (gt graves 0)}}une blessure grave {{else if (gt graves 0)}}une blessure grave
{{else if (gt critiques 0)}}une blessure critique {{else if (gt critiques 0)}}une blessure critique
{{else}}Rien du tout {{else}}Rien du tout
{{/if}} {{/if}}
({{dmg.loc.label}}) ({{dmg.loc.label}})
{{#if (gt endurance 0)}} {{#if (gt endurance 0)}}
{{#if hasPlayerOwner}}, a perdu {{endurance}} points d'endurance {{#if hasPlayerOwner}}, a perdu {{endurance}} points d'endurance
{{#if (ne vie 0)}}, <span class="rdd-roll-echec">{{vie}} points de vie</span>{{/if}} {{#if (ne vie 0)}}, <span class="rdd-roll-echec">{{vie}} points de vie</span>{{/if}}
{{/if}} {{/if}}
{{#if (gt endurance 1)}} {{#if (ne dmg.mortalite 'cauchemar')}}
et {{#if sonne}}est <strong>sonné</strong><img class="chat-icon" src="icons/svg/stoned.svg" alt="charge" height="16" width="16" /> jusqu'à la fin du prochain round{{else}}n'est pas sonné{{/if}} {{#if (gt endurance 1)}}et
({{jetEndurance}} / {{resteEndurance}})! {{#if sonne}}est <strong>sonné</strong><img class="chat-icon" src="icons/svg/stoned.svg" alt="charge" height="16" width="16" /> jusqu'à la fin du prochain round{{else}}n'est pas sonné{{/if}}
{{/if}} ({{jetEndurance}} / {{resteEndurance}})!
{{/if}}
{{/if}}
{{/if}} {{/if}}
</div> </div>
{{/if}} {{/if}}