Toujours lutter sur les data
This commit is contained in:
parent
ebf4e08766
commit
fcec20ed2e
@ -27,23 +27,15 @@ export class RdDActorCreatureSheet extends RdDActorSheet {
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getData() {
|
||||
let sheetData = super.getData();
|
||||
async getData() {
|
||||
let sheetData = await super.getData();
|
||||
console.log("Creature : ", sheetData);
|
||||
|
||||
sheetData.itemsByType = Misc.classify(sheetData.items);
|
||||
sheetData.calc = {
|
||||
caracTotal: RdDCarac.computeTotal(sheetData.data.data.carac),
|
||||
resumeBlessures: sheetData.actor.computeResumeBlessure(sheetData.data.data.blessures),
|
||||
}
|
||||
// Compute current carac sum
|
||||
sheetData.data.data.carac.taille.isTaille = true; // To avoid button link;
|
||||
|
||||
|
||||
sheetData.data.data.competencecreature = sheetData.itemsByType["competencecreature"];
|
||||
|
||||
this.actor.computeEncombrementTotalEtMalusArmure();
|
||||
RdDUtility.filterItemsPerTypeForSheet(sheetData);
|
||||
RdDUtility.buildArbreDeConteneur(this, sheetData);
|
||||
|
||||
console.log("Creature : ", this.objetVersConteneur, sheetData);
|
||||
|
@ -23,6 +23,7 @@ export class RdDActorEntiteSheet extends ActorSheet {
|
||||
/* -------------------------------------------- */
|
||||
getData() {
|
||||
let sheetData = super.getData();
|
||||
sheetData.items = Misc.classify(sheetData.items);
|
||||
|
||||
sheetData.data.competencecreature = sheetData.itemsByType["competencecreature"];
|
||||
|
||||
|
@ -36,27 +36,28 @@ export class RdDActorSheet extends ActorSheet {
|
||||
// Partie commune
|
||||
let sheetData = await super.getData();
|
||||
|
||||
sheetData.options = this.options;
|
||||
sheetData.itemsByType = Misc.classify(sheetData.items);
|
||||
sheetData.options.isGM = game.user.isGM;
|
||||
sheetData.items = Misc.classify(sheetData.items);
|
||||
RdDUtility.filterItemsPerTypeForSheet(sheetData);
|
||||
|
||||
const carac = sheetData.data.data.carac;
|
||||
sheetData.options.isGM = game.user.isGM;
|
||||
sheetData.carac = sheetData.data.data.carac
|
||||
// la taille est la taille: on ne peut pas l'utiliser pour un jet
|
||||
carac.taille.isTaille = true;
|
||||
sheetData.carac.taille.isTaille = true;
|
||||
|
||||
sheetData.competences = (sheetData.items.competence??[]).concat(sheetData.items.competencecreature??[]);
|
||||
|
||||
if (sheetData.actor.type == 'creature') return sheetData; // Shortcut
|
||||
|
||||
/* -- partie spécifique aux personnages -- */
|
||||
|
||||
const competences = sheetData.itemsByType.competence;
|
||||
const competences = sheetData.competences;
|
||||
// toujours avoir une liste d'armes (pour mettre esquive et corps à corps)
|
||||
sheetData.itemsByType.arme = sheetData.itemsByType.arme ?? [];
|
||||
sheetData.items.arme = sheetData.items.arme ?? [];
|
||||
sheetData.competenceByCategory = Misc.classify(competences, comp => comp.data.categorie);
|
||||
|
||||
sheetData.calc = {
|
||||
comptageArchetype: RdDItemCompetence.computeResumeArchetype(competences),
|
||||
competenceXPTotal: RdDItemCompetence.computeTotalXP(competences),
|
||||
caracTotal: RdDCarac.computeTotal(carac, sheetData.data.data.beaute),
|
||||
caracTotal: RdDCarac.computeTotal(sheetData.carac, sheetData.data.data.beaute),
|
||||
// Mise à jour de l'encombrement total et du prix de l'équipement
|
||||
encTotal: await sheetData.actor.computeEncombrementTotalEtMalusArmure(),
|
||||
prixTotalEquipement: await sheetData.actor.computePrixTotalEquipement(),
|
||||
@ -71,23 +72,20 @@ export class RdDActorSheet extends ActorSheet {
|
||||
|
||||
competences.forEach(it => it.visible = this.isCompetenceAffichable(it));
|
||||
RdDItemCompetence.setLevelUp(competences);
|
||||
RdDCarac.setLevelUp(carac);
|
||||
RdDCarac.setLevelUp(sheetData.carac);
|
||||
|
||||
sheetData.armes = duplicate(sheetData.itemsByType.arme);
|
||||
sheetData.armes = duplicate(sheetData.items.arme);
|
||||
RdDItemArme.computeNiveauArmes(sheetData.armes, competences);
|
||||
RdDItemArme.ajoutCorpsACorps(sheetData.armes, competences, carac);
|
||||
RdDItemArme.ajoutCorpsACorps(sheetData.armes, competences, sheetData.carac);
|
||||
sheetData.esquive = RdDItemCompetence.getEsquive(competences);
|
||||
sheetData.armes = RdDCombatManager.finalizeArmeList(sheetData.armes, competences, carac);
|
||||
sheetData.armes = RdDCombatManager.finalizeArmeList(sheetData.armes, competences, sheetData.carac);
|
||||
|
||||
sheetData.data.data.compteurs.chance.isChance = true;
|
||||
|
||||
|
||||
RdDUtility.filterItemsPerTypeForSheet(sheetData);
|
||||
|
||||
sheetData.tmr = {
|
||||
sortsReserve: sheetData.data.data.reve.reserve.list,
|
||||
rencontres: sheetData.data.data.reve.rencontre.list,
|
||||
caseSpeciales: sheetData.itemsByType.casetmr
|
||||
caseSpeciales: sheetData.items.casetmr
|
||||
}
|
||||
|
||||
RdDUtility.buildArbreDeConteneur(this, sheetData);
|
||||
@ -124,13 +122,13 @@ export class RdDActorSheet extends ActorSheet {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async createEmptyTache() {
|
||||
await this.actor.createEmbeddedDocuments('Item', [{ name: 'Nouvelle tache', type: 'tache' }], { renderSheet: true });
|
||||
await this.object.createEmbeddedDocuments('Item', [{ name: 'Nouvelle tache', type: 'tache' }], { renderSheet: true });
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async creerObjet() {
|
||||
let itemType = $("#creer-equipement").val();
|
||||
await this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType}`, type: itemType }], { renderSheet: true });
|
||||
await this.object.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType}`, type: itemType }], { renderSheet: true });
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -167,20 +165,31 @@ export class RdDActorSheet extends ActorSheet {
|
||||
this.options.showCompNiveauBase = !this.options.showCompNiveauBase;
|
||||
this.render(true);
|
||||
});
|
||||
html.find('.show-hide-archetype').click((event) => {
|
||||
this.options.montrerArchetype = !this.options.montrerArchetype;
|
||||
this.render(true);
|
||||
});
|
||||
|
||||
// Everything below here is only needed if the sheet is editable
|
||||
if (!this.options.editable) return;
|
||||
|
||||
// Gestion du bouton lock/unlock
|
||||
html.find('.lock-unlock-sheet').click((event) => {
|
||||
this.options.editCaracComp = !this.options.editCaracComp;
|
||||
this.render(true);
|
||||
});
|
||||
|
||||
|
||||
html.find('.item-edit').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
const item = this.actor.items.get(li.data("item-id"));
|
||||
const item = this.object.items.get(li.data("item-id"));
|
||||
item.sheet.render(true);
|
||||
});
|
||||
// Update Inventory Item
|
||||
html.find('.rencontre-delete').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
const rencontreKey = li.data("item-id");
|
||||
this.actor.deleteTMRRencontre(rencontreKey);
|
||||
this.object.deleteTMRRencontre(rencontreKey);
|
||||
});
|
||||
|
||||
// Delete Inventory Item
|
||||
@ -194,12 +203,12 @@ export class RdDActorSheet extends ActorSheet {
|
||||
});
|
||||
|
||||
html.find('.encaisser-direct').click(ev => {
|
||||
this.actor.encaisser();
|
||||
this.object.encaisser();
|
||||
});
|
||||
|
||||
html.find('.remise-a-neuf').click(ev => {
|
||||
if (game.user.isGM) {
|
||||
this.actor.remiseANeuf();
|
||||
this.object.remiseANeuf();
|
||||
ev.preventDefault();
|
||||
}
|
||||
});
|
||||
@ -210,7 +219,7 @@ export class RdDActorSheet extends ActorSheet {
|
||||
this.selectObjetType();
|
||||
});
|
||||
html.find('#nettoyer-conteneurs').click(ev => {
|
||||
this.actor.nettoyerConteneurs();
|
||||
this.object.nettoyerConteneurs();
|
||||
});
|
||||
|
||||
// Blessure control
|
||||
@ -220,7 +229,7 @@ export class RdDActorSheet extends ActorSheet {
|
||||
let index = li.data('blessure-index');
|
||||
let active = $(ev.currentTarget).data('blessure-active');
|
||||
//console.log(btype, index, active);
|
||||
this.actor.manageBlessureFromSheet(btype, index, active).then(this.render(true));
|
||||
this.object.manageBlessureFromSheet(btype, index, active).then(this.render(true));
|
||||
});
|
||||
|
||||
// Blessure data
|
||||
@ -233,78 +242,77 @@ export class RdDActorSheet extends ActorSheet {
|
||||
let jours = li.find('input[name=jours]').val();
|
||||
let loc = li.find('input[name=localisation]').val();
|
||||
//console.log(btype, index, psoins, pcomplets, jours, loc);
|
||||
this.actor.setDataBlessureFromSheet(btype, index, psoins, pcomplets, jours, loc).then(this.render(true));
|
||||
this.object.setDataBlessureFromSheet(btype, index, psoins, pcomplets, jours, loc).then(this.render(true));
|
||||
});
|
||||
|
||||
// Equip Inventory Item
|
||||
html.find('.item-equip').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
this.actor.equiperObjet(li.data("item-id"));
|
||||
this.render(true);
|
||||
this.object.equiperObjet(li.data("item-id"));
|
||||
});
|
||||
|
||||
// Roll Carac
|
||||
html.find('.carac-label a').click((event) => {
|
||||
let caracName = event.currentTarget.attributes.name.value;
|
||||
this.actor.rollCarac(caracName.toLowerCase());
|
||||
this.object.rollCarac(caracName.toLowerCase());
|
||||
});
|
||||
|
||||
html.find('.chance-actuelle').click((event) => {
|
||||
this.actor.rollCarac('chance-actuelle');
|
||||
this.object.rollCarac('chance-actuelle');
|
||||
});
|
||||
|
||||
html.find('.chance-appel').click((event) => {
|
||||
this.actor.rollAppelChance();
|
||||
this.object.rollAppelChance();
|
||||
});
|
||||
|
||||
html.find('.jet-astrologie').click((event) => {
|
||||
this.actor.astrologieNombresAstraux();
|
||||
this.object.astrologieNombresAstraux();
|
||||
});
|
||||
|
||||
// Roll Skill
|
||||
html.find('.competence-label a').click((event) => {
|
||||
let compName = event.currentTarget.text;
|
||||
this.actor.rollCompetence(compName);
|
||||
this.object.rollCompetence(compName);
|
||||
});
|
||||
html.find('.tache-label a').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
let tacheId = li.data('item-id');
|
||||
this.actor.rollTache(tacheId);
|
||||
this.object.rollTache(tacheId);
|
||||
});
|
||||
html.find('.meditation-label a').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
let meditationId = li.data('item-id');
|
||||
this.actor.rollMeditation(meditationId);
|
||||
this.object.rollMeditation(meditationId);
|
||||
});
|
||||
html.find('.chant-label a').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
let chantId = li.data('item-id');
|
||||
this.actor.rollChant(chantId);
|
||||
this.object.rollChant(chantId);
|
||||
});
|
||||
html.find('.danse-label a').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
let danseId = li.data('item-id');
|
||||
this.actor.rollDanse(danseId);
|
||||
this.object.rollDanse(danseId);
|
||||
});
|
||||
html.find('.musique-label a').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
let musiqueId = li.data('item-id');
|
||||
this.actor.rollMusique(musiqueId);
|
||||
this.object.rollMusique(musiqueId);
|
||||
});
|
||||
html.find('.oeuvre-label a').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
let oeuvreId = li.data('item-id');
|
||||
this.actor.rollOeuvre(oeuvreId);
|
||||
this.object.rollOeuvre(oeuvreId);
|
||||
});
|
||||
html.find('.jeu-label a').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
let jeuId = li.data('item-id');
|
||||
this.actor.rollJeu(jeuId);
|
||||
this.object.rollJeu(jeuId);
|
||||
});
|
||||
html.find('.recettecuisine-label a').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
let recetteId = li.data('item-id');
|
||||
this.actor.rollRecetteCuisine(recetteId);
|
||||
this.object.rollRecetteCuisine(recetteId);
|
||||
});
|
||||
html.find('.subacteur-label a').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
@ -317,18 +325,18 @@ export class RdDActorSheet extends ActorSheet {
|
||||
|
||||
// Points de reve actuel
|
||||
html.find('.ptreve-actuel a').click((event) => {
|
||||
this.actor.rollCarac('reve-actuel');
|
||||
this.object.rollCarac('reve-actuel');
|
||||
});
|
||||
|
||||
// Roll Weapon1
|
||||
html.find('.arme-label a').click((event) => {
|
||||
let armeName = event.currentTarget.text;
|
||||
let competenceName = event.currentTarget.attributes['data-competence-name'].value;
|
||||
this.actor.rollArme(competenceName, armeName);
|
||||
this.object.rollArme(competenceName, armeName);
|
||||
});
|
||||
// Initiative pour l'arme
|
||||
html.find('.arme-initiative a').click((event) => {
|
||||
let combatant = game.combat.data.combatants.find(c => c.actor.data._id == this.actor.data._id);
|
||||
let combatant = game.combat.data.combatants.find(c => c.actor.data._id == this.object.data._id);
|
||||
if (combatant) {
|
||||
let armeName = event.currentTarget.attributes['data-arme-name'].value;
|
||||
let arme = this.armesList.find(a => a.name == armeName);
|
||||
@ -339,44 +347,44 @@ export class RdDActorSheet extends ActorSheet {
|
||||
});
|
||||
// Display TMR, visuualisation
|
||||
html.find('.visu-tmr').click((event) => {
|
||||
this.actor.displayTMR("visu");
|
||||
this.object.displayTMR("visu");
|
||||
});
|
||||
|
||||
// Display TMR, normal
|
||||
html.find('.monte-tmr').click((event) => {
|
||||
this.actor.displayTMR("normal");
|
||||
this.object.displayTMR("normal");
|
||||
});
|
||||
|
||||
// Display TMR, fast
|
||||
html.find('.monte-tmr-rapide').click((event) => {
|
||||
this.actor.displayTMR("rapide");
|
||||
this.object.displayTMR("rapide");
|
||||
});
|
||||
|
||||
html.find('.dormir-une-heure').click((event) => {
|
||||
this.actor.dormir(1);
|
||||
this.object.dormir(1);
|
||||
});
|
||||
html.find('.dormir-chateau-dormant').click((event) => {
|
||||
this.actor.dormirChateauDormant();
|
||||
this.object.dormirChateauDormant();
|
||||
});
|
||||
html.find('.enlever-tous-effets').click((event) => {
|
||||
this.actor.enleverTousLesEffets();
|
||||
this.object.enleverTousLesEffets();
|
||||
});
|
||||
// Display info about queue
|
||||
html.find('.queuesouffle-label a').click((event) => {
|
||||
let myID = event.currentTarget.attributes['data-item-id'].value;
|
||||
const item = this.actor.items.get(myID);
|
||||
const item = this.object.items.get(myID);
|
||||
item.sheet.render(true);
|
||||
});
|
||||
// Info sort
|
||||
html.find('.sort-label a').click((event) => {
|
||||
let myID = event.currentTarget.attributes['data-id'].value;
|
||||
const item = this.actor.items.get(myID);
|
||||
const item = this.object.items.get(myID);
|
||||
item.sheet.render(true);
|
||||
});
|
||||
// Info sort
|
||||
html.find('.case-label a').click((event) => {
|
||||
let myID = event.currentTarget.attributes['data-id'].value;
|
||||
const item = this.actor.items.get(myID);
|
||||
const item = this.object.items.get(myID);
|
||||
item.sheet.render(true);
|
||||
});
|
||||
|
||||
@ -384,152 +392,123 @@ export class RdDActorSheet extends ActorSheet {
|
||||
html.find('.conteneur-name a').click((event) => {
|
||||
let myID = event.currentTarget.attributes['data-item-id'].value;
|
||||
RdDUtility.toggleAfficheContenu(myID);
|
||||
this.render(true);
|
||||
});
|
||||
|
||||
if (this.options.editCaracComp) {
|
||||
// On carac change
|
||||
html.find('.carac-value').change((event) => {
|
||||
let caracName = event.currentTarget.name.replace(".value", "").replace("data.carac.", "");
|
||||
this.actor.updateCarac(caracName, parseInt(event.target.value));
|
||||
this.object.updateCarac(caracName, parseInt(event.target.value));
|
||||
});
|
||||
html.find('.carac-xp').change((event) => {
|
||||
let caracName = event.currentTarget.name.replace(".xp", "").replace("data.carac.", "");
|
||||
this.actor.updateCaracXP(caracName, parseInt(event.target.value));
|
||||
this.object.updateCaracXP(caracName, parseInt(event.target.value));
|
||||
});
|
||||
// On competence change
|
||||
html.find('.competence-value').change((event) => {
|
||||
let compName = event.currentTarget.attributes.compname.value;
|
||||
//console.log("Competence changed :", compName);
|
||||
this.actor.updateCompetence(compName, parseInt(event.target.value));
|
||||
this.object.updateCompetence(compName, parseInt(event.target.value));
|
||||
});
|
||||
// On competence xp change
|
||||
html.find('.competence-xp').change((event) => {
|
||||
let compName = event.currentTarget.attributes.compname.value;
|
||||
this.actor.updateCompetenceXP(compName, parseInt(event.target.value));
|
||||
this.object.updateCompetenceXP(compName, parseInt(event.target.value));
|
||||
});
|
||||
// On competence xp change
|
||||
html.find('.competence-xp-sort').change((event) => {
|
||||
let compName = event.currentTarget.attributes.compname.value;
|
||||
this.actor.updateCompetenceXPSort(compName, parseInt(event.target.value));
|
||||
this.object.updateCompetenceXPSort(compName, parseInt(event.target.value));
|
||||
});
|
||||
// On competence archetype change
|
||||
html.find('.competence-archetype').change((event) => {
|
||||
let compName = event.currentTarget.attributes.compname.value;
|
||||
this.actor.updateCompetenceArchetype(compName, parseInt(event.target.value));
|
||||
this.object.updateCompetenceArchetype(compName, parseInt(event.target.value));
|
||||
});
|
||||
}
|
||||
|
||||
// Gestion du bouton lock/unlock
|
||||
html.find('.lock-unlock-sheet').click((event) => {
|
||||
this.options.editCaracComp = !this.options.editCaracComp;
|
||||
this.render(true);
|
||||
});
|
||||
html.find('.show-hide-archetype').click((event) => {
|
||||
this.options.montrerArchetype = !this.options.montrerArchetype;
|
||||
this.render(true);
|
||||
});
|
||||
|
||||
// On pts de reve change
|
||||
html.find('.pointsreve-value').change((event) => {
|
||||
this.actor.update({ "data.reve.reve.value": parseInt(event.currentTarget.value) });
|
||||
this.object.update({ "data.reve.reve.value": parseInt(event.currentTarget.value) });
|
||||
});
|
||||
|
||||
// On seuil de reve change
|
||||
html.find('.seuil-reve-value').change((event) => {
|
||||
console.log("seuil-reve-value", event.currentTarget)
|
||||
this.actor.setPointsDeSeuil(parseInt(event.currentTarget.value));
|
||||
this.object.setPointsDeSeuil(parseInt(event.currentTarget.value));
|
||||
});
|
||||
|
||||
html.find('.attribut-protection-edit').change((event) => {
|
||||
this.actor.updateAttribut(event.currentTarget.attributes.name.value, parseInt(event.target.value));
|
||||
this.object.updateAttribut(event.currentTarget.attributes.name.value, parseInt(event.target.value));
|
||||
});
|
||||
|
||||
// On stress change
|
||||
html.find('.compteur-edit').change((event) => {
|
||||
let fieldName = event.currentTarget.attributes.name.value;
|
||||
this.actor.updateCompteur(fieldName, parseInt(event.target.value));
|
||||
this.object.updateCompteur(fieldName, parseInt(event.target.value));
|
||||
});
|
||||
|
||||
html.find('.ethylisme').change((event) => {
|
||||
this.actor.setEthylisme(parseInt(event.target.value));
|
||||
this.object.setEthylisme(parseInt(event.target.value));
|
||||
});
|
||||
html.find('.stress-test').click((event) => {
|
||||
this.actor.transformerStress();
|
||||
this.render(true);
|
||||
this.object.transformerStress();
|
||||
});
|
||||
html.find('.moral-malheureux').click((event) => {
|
||||
this.actor.jetDeMoral('malheureuse');
|
||||
this.render(true);
|
||||
});
|
||||
this.object.jetDeMoral('malheureuse');
|
||||
});
|
||||
html.find('.moral-neutre').click((event) => {
|
||||
this.actor.jetDeMoral('neutre');
|
||||
this.render(true);
|
||||
this.object.jetDeMoral('neutre');
|
||||
});
|
||||
html.find('.moral-heureux').click((event) => {
|
||||
this.actor.jetDeMoral('heureuse');
|
||||
this.render(true);
|
||||
this.object.jetDeMoral('heureuse');
|
||||
});
|
||||
html.find('.ethylisme-test').click((event) => {
|
||||
this.actor.ethylismeTest();
|
||||
this.render(true);
|
||||
this.object.ethylismeTest();
|
||||
});
|
||||
|
||||
html.find('.jet-vie').click((event) => {
|
||||
this.actor.jetVie();
|
||||
this.render(true);
|
||||
this.object.jetVie();
|
||||
});
|
||||
html.find('.jet-endurance').click((event) => {
|
||||
this.actor.jetEndurance();
|
||||
this.render(true);
|
||||
this.object.jetEndurance();
|
||||
});
|
||||
|
||||
html.find('.monnaie-plus').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
this.actor.monnaieIncDec(li.data("item-id"), 1);
|
||||
this.render(true);
|
||||
this.object.monnaieIncDec(li.data("item-id"), 1);
|
||||
});
|
||||
html.find('.monnaie-moins').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
this.actor.monnaieIncDec(li.data("item-id"), -1);
|
||||
this.render(true);
|
||||
this.object.monnaieIncDec(li.data("item-id"), -1);
|
||||
});
|
||||
|
||||
html.find('.vie-plus').click((event) => {
|
||||
this.actor.santeIncDec("vie", 1);
|
||||
this.render(true);
|
||||
this.object.santeIncDec("vie", 1);
|
||||
});
|
||||
html.find('.vie-moins').click((event) => {
|
||||
this.actor.santeIncDec("vie", -1);
|
||||
this.render(true);
|
||||
this.object.santeIncDec("vie", -1);
|
||||
});
|
||||
html.find('.endurance-plus').click((event) => {
|
||||
this.actor.santeIncDec("endurance", 1);
|
||||
this.render(true);
|
||||
this.object.santeIncDec("endurance", 1);
|
||||
});
|
||||
html.find('.endurance-moins').click((event) => {
|
||||
this.actor.santeIncDec("endurance", -1);
|
||||
this.render(true);
|
||||
this.object.santeIncDec("endurance", -1);
|
||||
});
|
||||
html.find('.data-sante-sonne').click((event) => {
|
||||
this.actor.setSonne(event.currentTarget.checked);
|
||||
this.render(true);
|
||||
this.object.setSonne(event.currentTarget.checked);
|
||||
});
|
||||
html.find('.ptreve-actuel-plus').click((event) => {
|
||||
this.actor.reveActuelIncDec(1);
|
||||
this.render(true);
|
||||
this.object.reveActuelIncDec(1);
|
||||
});
|
||||
html.find('.ptreve-actuel-moins').click((event) => {
|
||||
this.actor.reveActuelIncDec(-1);
|
||||
this.render(true);
|
||||
this.object.reveActuelIncDec(-1);
|
||||
});
|
||||
html.find('.fatigue-plus').click((event) => {
|
||||
this.actor.santeIncDec("fatigue", 1);
|
||||
this.render(true);
|
||||
this.object.santeIncDec("fatigue", 1);
|
||||
});
|
||||
html.find('.fatigue-moins').click((event) => {
|
||||
this.actor.santeIncDec("fatigue", -1);
|
||||
this.render(true);
|
||||
this.object.santeIncDec("fatigue", -1);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -25,8 +25,8 @@ export class RdDActorVehiculeSheet extends ActorSheet {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getData() {
|
||||
let sheetData = super.getData();
|
||||
async getData() {
|
||||
let sheetData = await super.getData();
|
||||
sheetData.options = {
|
||||
isGM: game.user.isGM
|
||||
};
|
||||
@ -36,13 +36,11 @@ export class RdDActorVehiculeSheet extends ActorSheet {
|
||||
RdDUtility.filterItemsPerTypeForSheet(sheetData);
|
||||
RdDUtility.buildArbreDeConteneur(this, sheetData);
|
||||
|
||||
this.actor.computeEncombrementTotalEtMalusArmure();
|
||||
sheetData.calc = {
|
||||
surEncombrementMessage: (this.encTotal > sheetData.capacite_encombrement) ? "Sur-Encombrement!" : ""
|
||||
surEncombrementMessage: (this.encTotal > sheetData.capacite_encombrement) ? "Sur-Encombrement!" : "",
|
||||
encTotal: await sheetData.actor.computeEncombrementTotalEtMalusArmure()
|
||||
}
|
||||
|
||||
console.log("DATA", sheetData);
|
||||
|
||||
return sheetData;
|
||||
}
|
||||
|
||||
|
@ -253,10 +253,6 @@ export class RdDActor extends Actor {
|
||||
return Misc.toInt(this.data.data.compteurs.surenc?.value);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
loadCompendiumNames() {
|
||||
return this.data.items.filter((item) => item.data.type == 'competence');
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getCompetence(name) {
|
||||
return RdDItemCompetence.findCompetence(this.data.items, name);
|
||||
}
|
||||
@ -964,19 +960,19 @@ export class RdDActor extends Actor {
|
||||
let malusArmureData = (this.data.data.attributs && this.data.data.attributs.malusarmure) ? duplicate(this.data.data.attributs.malusarmure) : {};
|
||||
let newMalusArmure = 0;
|
||||
for (const item of this.data.items) {
|
||||
if (item.type == 'armure' && item.data.equipe) { // Armure équipée, intégration du malus armure total
|
||||
newMalusArmure += item.data.malus;
|
||||
if (item.type == 'armure' && item.data.data.equipe) { // Armure équipée, intégration du malus armure total
|
||||
newMalusArmure += item.data.data.malus;
|
||||
}
|
||||
// Calcul encombrement
|
||||
if (item.data && item.data.encombrement != undefined) {
|
||||
if (!Number(item.data.encombrement)) item.data.encombrement = 0; // Auto-fix
|
||||
if (item.data.quantite == undefined) item.data.quantite = 1; // Auto-fix
|
||||
if (item.data.quantite < 0) item.data.quantite = 0; // Auto-fix
|
||||
item.data.encTotal = Number(item.data.encombrement) * Number(item.data.quantite);
|
||||
//console.log("Enc:", item.name, item.data.encombrement, item.data.quantite, item.data.encTotal);
|
||||
encTotal += item.data.encTotal;
|
||||
} else {
|
||||
item.data.encTotal = 0; // Force default enc
|
||||
if (item.data && item.data.data.encombrement != undefined) {
|
||||
if (!Number(item.data.data.encombrement)) item.data.data.encombrement = 0; // Auto-fix
|
||||
item.data.data.quantite = item.data.data.quantite ??1; // Auto-fix
|
||||
if (item.data.data.quantite < 0) item.data.data.quantite = 0; // Auto-fix
|
||||
item.data.data.encTotal = Number(item.data.data.encombrement) * Number(item.data.data.quantite);
|
||||
//console.log("Enc:", item.name, item.data.data.encombrement, item.data.data.quantite, item.data.data.encTotal);
|
||||
encTotal += item.data.data.encTotal;
|
||||
// } else {
|
||||
// item.data.data.encTotal = 0; // Force default enc
|
||||
}
|
||||
}
|
||||
// Mise à jour valeur totale et états
|
||||
@ -996,11 +992,11 @@ export class RdDActor extends Actor {
|
||||
|
||||
// prix total de l'équipement est la somme du cout de chaque équipement multiplié par sa quantité.
|
||||
for (const item of this.data.items) {
|
||||
if (item.data.data && item.data.cout != undefined) {
|
||||
if (!Number(item.data.cout)) item.data.cout = 0; // Auto-fix
|
||||
if (item.data.quantite == undefined) item.data.quantite = 1; // Auto-fix
|
||||
if (item.data.cout < 0) item.data.cout = 0; // Auto-fix
|
||||
prixTotalEquipement += Number(item.data.cout) * Number(item.data.quantite);
|
||||
if (item.data.data && item.data.data.cout != undefined) {
|
||||
if (!Number(item.data.data.cout)) item.data.data.cout = 0; // Auto-fix
|
||||
if (item.data.data.quantite == undefined) item.data.data.quantite = 1; // Auto-fix
|
||||
if (item.data.data.cout < 0) item.data.data.cout = 0; // Auto-fix
|
||||
prixTotalEquipement += Number(item.data.data.cout) * Number(item.data.data.quantite);
|
||||
}
|
||||
}
|
||||
// Mise à jour valeur totale de l'équipement
|
||||
@ -1717,7 +1713,7 @@ export class RdDActor extends Actor {
|
||||
let bestDraconic = this.getBestDraconic();
|
||||
for (let sort of sortList) {
|
||||
let voie = sort.data.draconic.toLowerCase();
|
||||
let draconic = draconicList.find(item => item.data.categorie == 'draconic' && item.name.toLowerCase().includes(voie));
|
||||
let draconic = draconicList.find(item => item.data.data.categorie == 'draconic' && item.name.toLowerCase().includes(voie));
|
||||
if (sort.name.toLowerCase().includes('aura')) {
|
||||
draconic = bestDraconic;
|
||||
}
|
||||
@ -1961,13 +1957,13 @@ export class RdDActor extends Actor {
|
||||
data: {
|
||||
carac: 'intellect',
|
||||
competence: 'Ecriture',
|
||||
difficulte: item.data.difficulte,
|
||||
difficulte: item.data.data.difficulte,
|
||||
periodicite: "60 minutes",
|
||||
fatigue: 2,
|
||||
points_de_tache: item.data.points_de_tache,
|
||||
points_de_tache: item.data.data.points_de_tache,
|
||||
points_de_tache_courant: 0,
|
||||
description: "Lecture du livre " + item.name +
|
||||
" - XP : " + item.data.xp + " - Compétences : " + item.data.competence
|
||||
" - XP : " + item.data.data.xp + " - Compétences : " + item.data.data.competence
|
||||
}
|
||||
}
|
||||
await this.createEmbeddedDocuments('Item', [tache], { renderSheet: true });
|
||||
@ -2307,7 +2303,7 @@ export class RdDActor extends Actor {
|
||||
);
|
||||
|
||||
// Suppression des anciens nombres astraux
|
||||
let toDelete = this.data.items.filter((item) => item.data.jourindex < game.system.rdd.calendrier.getCurrentDayIndex());
|
||||
let toDelete = this.data.items.filter((item) => item.data.data.jourindex < game.system.rdd.calendrier.getCurrentDayIndex());
|
||||
await this.deleteEmbeddedDocuments('Item', toDelete.map(i => i._id));
|
||||
|
||||
// Affichage Dialog
|
||||
@ -2366,7 +2362,7 @@ export class RdDActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getDraconicList() {
|
||||
return this.data.items.filter(item => item.data.categorie == 'draconic')
|
||||
return this.data.items.filter(item => item.data.data.categorie == 'draconic')
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -2450,10 +2446,10 @@ export class RdDActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
verifierForceMin(item) {
|
||||
if (item.data.type == 'arme' && item.data.force > this.data.data.carac.force.value) {
|
||||
if (item.data.type == 'arme' && item.data.data.force > this.data.data.carac.force.value) {
|
||||
ChatMessage.create({
|
||||
content: `<strong>${this.name} s'est équipé(e) de l'arme ${item.name}, mais n'a pas une force suffisante pour l'utiliser normalement </strong>
|
||||
(${item.data.force} nécessaire pour une Force de ${this.data.data.carac.force.value})`
|
||||
(${item.data.data.force} nécessaire pour une Force de ${this.data.data.carac.force.value})`
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -2462,11 +2458,11 @@ export class RdDActor extends Actor {
|
||||
async equiperObjet(itemID) {
|
||||
let item = this.items.get(itemID);
|
||||
if (item && item.data.data) {
|
||||
let update = { _id: item._id, "data.equipe": !item.data.equipe };
|
||||
let update = { _id: item._id, "data.equipe": !item.data.data.equipe };
|
||||
await this.updateEmbeddedDocuments('Item', [update]);
|
||||
this.computeEncombrementTotalEtMalusArmure(); // Mise à jour encombrement
|
||||
await this.computeEncombrementTotalEtMalusArmure(); // Mise à jour encombrement
|
||||
this.computePrixTotalEquipement(); // Mis à jour du prix total de l'équipement
|
||||
if (item.data.equipe)
|
||||
if (item.data.data.equipe)
|
||||
this.verifierForceMin(item.data.data);
|
||||
}
|
||||
}
|
||||
@ -2478,7 +2474,7 @@ export class RdDActor extends Actor {
|
||||
let protection = 0;
|
||||
const armures = this.data.items.filter(it => it.type == "armure" && it.data.equipe);
|
||||
for (const item of armures) {
|
||||
protection += new Roll(item.data.protection.toString()).roll().total;
|
||||
protection += new Roll(item.data.data.protection.toString()).roll().total;
|
||||
if (dmg > 0) {
|
||||
this._deteriorerArmure(item, dmg);
|
||||
dmg = 0;
|
||||
@ -2779,25 +2775,25 @@ export class RdDActor extends Actor {
|
||||
let nbEtain = deniers - (nbBronze * 10);
|
||||
|
||||
// console.log("ARGENT", nbOr, nbArgent, nbBronze, nbEtain);
|
||||
let piece = this.data.items.find(item => item.type == 'monnaie' && item.data.valeur_deniers == 1000);
|
||||
let piece = this.data.items.find(item => item.type == 'monnaie' && item.data.data.valeur_deniers == 1000);
|
||||
if (piece) {
|
||||
let update = { _id: piece._id, 'data.quantite': nbOr };
|
||||
const updated = await this.updateEmbeddedEntity("OwnedItem", update);
|
||||
}
|
||||
|
||||
piece = this.data.items.find(item => item.type == 'monnaie' && item.data.valeur_deniers == 100);
|
||||
piece = this.data.items.find(item => item.type == 'monnaie' && item.data.data.valeur_deniers == 100);
|
||||
if (piece) {
|
||||
let update = { _id: piece._id, 'data.quantite': nbArgent };
|
||||
const updated = await this.updateEmbeddedEntity("OwnedItem", update);
|
||||
}
|
||||
|
||||
piece = this.data.items.find(item => item.type == 'monnaie' && item.data.valeur_deniers == 10);
|
||||
piece = this.data.items.find(item => item.type == 'monnaie' && item.data.data.valeur_deniers == 10);
|
||||
if (piece) {
|
||||
let update = { _id: piece._id, 'data.quantite': nbBronze };
|
||||
const updated = await this.updateEmbeddedEntity("OwnedItem", update);
|
||||
}
|
||||
|
||||
piece = this.data.items.find(item => item.type == 'monnaie' && item.data.valeur_deniers == 1);
|
||||
piece = this.data.items.find(item => item.type == 'monnaie' && item.data.data.valeur_deniers == 1);
|
||||
if (piece) {
|
||||
let update = { _id: piece._id, 'data.quantite': nbEtain };
|
||||
const updated = await this.updateEmbeddedEntity("OwnedItem", update);
|
||||
|
@ -18,7 +18,7 @@ const nomCategorieParade = {
|
||||
export class RdDItemArme extends Item {
|
||||
|
||||
static isArme(item) {
|
||||
return (item.data.type == 'competencecreature' && item.data.iscombat) || item.data.type == 'arme';
|
||||
return (item.data.type == 'competencecreature' && item.data.data.iscombat) || item.data.type == 'arme';
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -51,20 +51,20 @@ export class RdDItemArme extends Item {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static getCategorieParade(arme) {
|
||||
if (arme.data.categorie_parade) {
|
||||
return arme.data.categorie_parade;
|
||||
if (arme.data.data.categorie_parade) {
|
||||
return arme.data.data.categorie_parade;
|
||||
}
|
||||
// pour compatibilité avec des personnages existants
|
||||
if (arme.type == 'competencecreature' || arme.data.categorie == 'creature' ) {
|
||||
return arme.data.categorie_parade || (arme.data.isparade ? 'sans-armes' : '');
|
||||
if (arme.type == 'competencecreature' || arme.data.data.categorie == 'creature' ) {
|
||||
return arme.data.data.categorie_parade || (arme.data.data.isparade ? 'sans-armes' : '');
|
||||
}
|
||||
if (!arme.type.match(/arme|competencecreature/)) {
|
||||
return '';
|
||||
}
|
||||
if (arme.data.competence == undefined) {
|
||||
if (arme.data.data.competence == undefined) {
|
||||
return 'competencecreature';
|
||||
}
|
||||
let compname = arme.data.competence.toLowerCase();
|
||||
let compname = arme.data.data.competence.toLowerCase();
|
||||
if (compname.match(/^(dague de jet|javelot|fouet|arc|arbalête|fronde|hache de jet|fléau)$/)) return '';
|
||||
|
||||
if (compname.match('hache')) return 'haches';
|
||||
@ -122,20 +122,20 @@ export class RdDItemArme extends Item {
|
||||
/* -------------------------------------------- */
|
||||
static armeUneOuDeuxMains(arme, aUneMain) {
|
||||
if (arme) {
|
||||
arme.data.unemain = arme.data.unemain || !arme.data.deuxmains;
|
||||
const uneOuDeuxMains = arme.data.unemain && arme.data.deuxmains;
|
||||
const containsSlash = !Number.isInteger(arme.data.dommages) && arme.data.dommages.includes("/");
|
||||
arme.data.data.unemain = arme.data.data.unemain || !arme.data.data.deuxmains;
|
||||
const uneOuDeuxMains = arme.data.data.unemain && arme.data.data.deuxmains;
|
||||
const containsSlash = !Number.isInteger(arme.data.data.dommages) && arme.data.data.dommages.includes("/");
|
||||
if (containsSlash) { // Sanity check
|
||||
arme = duplicate(arme);
|
||||
|
||||
const tableauDegats = arme.data.dommages.split("/");
|
||||
const tableauDegats = arme.data.data.dommages.split("/");
|
||||
if (aUneMain)
|
||||
arme.data.dommagesReels = Number(tableauDegats[0]);
|
||||
arme.data.data.dommagesReels = Number(tableauDegats[0]);
|
||||
else // 2 mains
|
||||
arme.data.dommagesReels = Number(tableauDegats[1]);
|
||||
arme.data.data.dommagesReels = Number(tableauDegats[1]);
|
||||
}
|
||||
else {
|
||||
arme.data.dommagesReels = Number(arme.data.dommages);
|
||||
arme.data.data.dommagesReels = Number(arme.data.data.dommages);
|
||||
}
|
||||
|
||||
if (uneOuDeuxMains != containsSlash) {
|
||||
@ -146,12 +146,13 @@ export class RdDItemArme extends Item {
|
||||
}
|
||||
|
||||
static isArmeUtilisable(item) {
|
||||
return item.data.type == 'arme' && (item.data.resistance > 0 || item.data.portee_courte>0);
|
||||
return item.data.type == 'arme' && (item.data.data.resistance > 0 || item.data.data.portee_courte>0);
|
||||
}
|
||||
|
||||
static mainsNues(actorData={}) {
|
||||
const mainsNues = {
|
||||
name: 'Mains nues',
|
||||
img: "systems/foundryvtt-reve-de-dragon/icons/competence_corps_a_corps.webp",
|
||||
data: {
|
||||
equipe: true,
|
||||
rapide: true,
|
||||
@ -183,8 +184,8 @@ export class RdDItemArme extends Item {
|
||||
}
|
||||
}
|
||||
|
||||
static computeNiveauArme(arme, competences) {
|
||||
const compName = arme.data.competence;
|
||||
static computeNiveauArme(armeData, competences) {
|
||||
const compName = armeData.data.competence;
|
||||
const compArme = competences.find(it => it.name == compName);
|
||||
return compArme?.data.niveau ?? -8;
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ const competence_xp_cumul = _buildCumulXP();
|
||||
|
||||
export class RdDItemCompetence extends Item {
|
||||
|
||||
static compendium(actorType){
|
||||
static compendium(actorType) {
|
||||
return compendiumCompetences[actorType] ?? '';
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
@ -89,7 +89,7 @@ export class RdDItemCompetence extends Item {
|
||||
return competenceTroncs.map(
|
||||
list => list.map(name => RdDItemCompetence.findCompetence(competences, name))
|
||||
// calcul du coût xp jusqu'au niveau 0 maximum
|
||||
.map(it => RdDItemCompetence.computeDeltaXP(it.data.base, Math.min(it.data.niveau, 0)))
|
||||
.map(it => RdDItemCompetence.computeDeltaXP(it?.data.base ?? -11, Math.min(it?.data.niveau ?? -11, 0)))
|
||||
.sort((a, b) => b - a) // tri descendant
|
||||
.splice(0, 1) // ignorer le coût xp le plus élevé
|
||||
.reduce((a, b) => a + b, 0)
|
||||
|
@ -50,14 +50,14 @@ export class RdDItemSheet extends ItemSheet {
|
||||
let sheetData = super.getData();
|
||||
|
||||
sheetData.categorieCompetences = RdDUtility.getCategorieCompetences();
|
||||
if ( sheetData.item.data.type == 'tache' || sheetData.item.data.type == 'livre' || sheetData.item.data.type == 'meditation' || sheetData.item.data.type == 'oeuvre') {
|
||||
if ( sheetData.data.type == 'tache' || sheetData.data.type == 'livre' || sheetData.data.type == 'meditation' || sheetData.data.type == 'oeuvre') {
|
||||
sheetData.caracList = duplicate(game.system.model.Actor.personnage.carac);
|
||||
sheetData.competences = await RdDUtility.loadCompendiumNames( 'foundryvtt-reve-de-dragon.competences' );
|
||||
sheetData.competences = await RdDUtility.loadCompendium( 'foundryvtt-reve-de-dragon.competences' );
|
||||
}
|
||||
if (sheetData.item.data.type == 'arme') {
|
||||
if (sheetData.data.type == 'arme') {
|
||||
sheetData.competences = await RdDUtility.loadCompendium( 'foundryvtt-reve-de-dragon.competences', it => RdDItemCompetence.isCompetenceArme(it));
|
||||
}
|
||||
if ( sheetData.item.data.type == 'recettealchimique' ) {
|
||||
if ( sheetData.data.type == 'recettealchimique' ) {
|
||||
RdDAlchimie.processManipulation(sheetData.item, this.actor && this.actor.id );
|
||||
}
|
||||
if ( this.actor ) {
|
||||
|
@ -40,21 +40,22 @@ export class Misc {
|
||||
}
|
||||
|
||||
static classify(items, classifier = item => item.type, transform = it => it) {
|
||||
let itemsBy = {};
|
||||
Misc.classifyInto(itemsBy, items, classifier, transform);
|
||||
return itemsBy;
|
||||
return Misc.classifyInto({}, items, classifier, transform);
|
||||
}
|
||||
|
||||
static classifyInto(itemsBy, items, classifier = item => item.type, transform = it => it) {
|
||||
for (const item of items) {
|
||||
const classification = classifier(item);
|
||||
let list = itemsBy[classification];
|
||||
if (!list) {
|
||||
list = [];
|
||||
itemsBy[classification] = list;
|
||||
if (items) {
|
||||
for (const item of items) {
|
||||
const classification = classifier(item);
|
||||
let list = itemsBy[classification];
|
||||
if (!list) {
|
||||
list = [];
|
||||
itemsBy[classification] = list;
|
||||
}
|
||||
list.push(transform(item));
|
||||
}
|
||||
list.push(transform(item));
|
||||
}
|
||||
return itemsBy;
|
||||
}
|
||||
|
||||
static rollOneOf(array) {
|
||||
|
@ -46,12 +46,12 @@ export class RdDAstrologieJoueur extends Dialog {
|
||||
let itemNombres = actor.data.items.filter( (item) => item.data.type == 'nombreastral');
|
||||
let itemFiltered = {};
|
||||
for ( let item of itemNombres) {
|
||||
if ( itemFiltered[item.data.jourindex] ) {
|
||||
itemFiltered[item.data.jourindex].listValues.push(item.data.value);
|
||||
if ( itemFiltered[item.data.data.jourindex] ) {
|
||||
itemFiltered[item.data.data.jourindex].listValues.push(item.data.data.value);
|
||||
} else {
|
||||
itemFiltered[item.data.jourindex] = {
|
||||
listValues: [ item.data.value ],
|
||||
jourlabel: item.data.jourlabel
|
||||
itemFiltered[item.data.data.jourindex] = {
|
||||
listValues: [ item.data.data.value ],
|
||||
jourlabel: item.data.data.jourlabel
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -58,15 +58,16 @@ export class RdDCalendrier extends Application {
|
||||
}
|
||||
// nombre astral
|
||||
if ( game.user.isGM) {
|
||||
this.listeNombreAstral = this._loadListNombreAstral();
|
||||
this.listeNombreAstral = this._loadListeNombreAstral();
|
||||
this.rebuildListeNombreAstral(); // Ensure always up-to-date
|
||||
}
|
||||
console.log(this.calendrier, this.calendrierPos, this.listeNombreAstral);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
_loadListNombreAstral() {
|
||||
return Object.values(game.settings.get("foundryvtt-reve-de-dragon", "liste-nombre-astral"));
|
||||
_loadListeNombreAstral() {
|
||||
const settingListeNombreAstral = game.settings.get("foundryvtt-reve-de-dragon", "liste-nombre-astral");
|
||||
return Object.values(settingListeNombreAstral);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -124,7 +125,7 @@ export class RdDCalendrier extends Application {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getNombreAstral( indexDate ) {
|
||||
const liste = this.listeNombreAstral ?? this._loadListNombreAstral();
|
||||
const liste = this.listeNombreAstral ?? this._loadListeNombreAstral();
|
||||
let astralData = liste.find( (nombreAstral, i) => nombreAstral.index == indexDate );
|
||||
if (! astralData?.nombreAstral ) {
|
||||
this.rebuildListeNombreAstral();
|
||||
@ -145,6 +146,7 @@ export class RdDCalendrier extends Application {
|
||||
}
|
||||
}
|
||||
}
|
||||
this.listeNombreAstral = newList;
|
||||
game.settings.set("foundryvtt-reve-de-dragon", "liste-nombre-astral", this.listeNombreAstral );
|
||||
}
|
||||
|
||||
|
@ -141,6 +141,7 @@ export class RdDCombatManager extends Combat {
|
||||
if (arme.data.equipe) {
|
||||
armesEquipe.push(arme);
|
||||
let comp = competences.find(c => c.name == arme.data.competence);
|
||||
arme.data.niveau = comp.data.niveau;
|
||||
arme.data.initiative = RdDCombatManager.calculInitiative(arme.data.niveau, carac[comp.data.defaut_carac].value);
|
||||
// Dupliquer les armes pouvant être à 1 main et 2 mains en patchant la compétence
|
||||
if (arme.data.unemain && !arme.data.deuxmains) {
|
||||
|
@ -36,15 +36,15 @@ export class RddCompendiumOrganiser {
|
||||
Hooks.on('renderCompendium', async (pack, html, data) => RddCompendiumOrganiser.onRenderCompendium(pack, html, data))
|
||||
}
|
||||
|
||||
static async onRenderCompendium(pack, html, data) {
|
||||
console.log('onRenderCompendium', pack, html, data);
|
||||
static async onRenderCompendium(compendium, html, data) {
|
||||
console.log('onRenderCompendium', compendium, html, data);
|
||||
let pack = compendium.collection
|
||||
if (pack.metadata.system === 'foundryvtt-reve-de-dragon') {
|
||||
const content = await pack.getContent();
|
||||
|
||||
|
||||
html.find('.directory-item').each((i, element) => {
|
||||
let entity = content.find(it => it._id === element.dataset.entryId);
|
||||
|
||||
if (entity?.entity === 'Actor' || entity?.entity === 'Item') {
|
||||
let entity = pack.get(element.dataset.documentId);
|
||||
if (entity?.entity === 'Item') {
|
||||
const typeName = typeDisplayName[entity.data.type] ?? Misc.upperFirst(entity.data.type);
|
||||
RddCompendiumOrganiser.insertEntityType(element, typeName);
|
||||
}
|
||||
|
@ -142,8 +142,8 @@ export class RdDRoll extends Dialog {
|
||||
// Update html, according to data
|
||||
if (rollData.competence) {
|
||||
// Set the default carac from the competence item
|
||||
rollData.selectedCarac = rollData.carac[rollData.competence.data.data.defaut_carac];
|
||||
$("#carac").val(rollData.competence.data.data.defaut_carac);
|
||||
rollData.selectedCarac = rollData.carac[rollData.competence.data.defaut_carac];
|
||||
$("#carac").val(rollData.competence.data.defaut_carac);
|
||||
}
|
||||
if (rollData.selectedSort) {
|
||||
$("#draconic").val(rollData.selectedSort.data.listIndex); // Uniquement a la selection du sort, pour permettre de changer
|
||||
@ -296,10 +296,10 @@ export class RdDRoll extends Dialog {
|
||||
/* -------------------------------------------- */
|
||||
_computeDiffCompetence(rollData) {
|
||||
if (rollData.competence) {
|
||||
return Misc.toInt(rollData.competence.data.data.niveau);
|
||||
return Misc.toInt(rollData.competence.data.niveau);
|
||||
}
|
||||
if (rollData.draconicList) {
|
||||
return Misc.toInt(rollData.competence.data.data.niveau);
|
||||
return Misc.toInt(rollData.competence.data.niveau);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -336,7 +336,7 @@ export class RdDRoll extends Dialog {
|
||||
return compName + " - " + rollData.selectedSort.name;
|
||||
}
|
||||
// If a weapon is there, add it in the title
|
||||
const niveau = Misc.toSignedString(rollData.competence.data.data.niveau);
|
||||
const niveau = Misc.toSignedString(rollData.competence.data.niveau);
|
||||
if (compName == carac) {
|
||||
// cas des créatures
|
||||
return carac + " " + niveau
|
||||
|
@ -294,38 +294,39 @@ export class RdDUtility {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static filterItemsPerTypeForSheet(sheetData) {
|
||||
sheetData.data.materiel = this.checkNull(sheetData.itemsByType['objet']);
|
||||
sheetData.data.conteneurs = this.checkNull(sheetData.itemsByType['conteneur']);
|
||||
sheetData.data.armes = this.checkNull(sheetData.itemsByType['arme']);
|
||||
sheetData.data.armures = this.checkNull(sheetData.itemsByType['armure']);
|
||||
sheetData.data.livres = this.checkNull(sheetData.itemsByType['livre']);
|
||||
sheetData.data.potions = this.checkNull(sheetData.itemsByType['potion']);
|
||||
sheetData.data.ingredients = this.checkNull(sheetData.itemsByType['ingredient']);
|
||||
sheetData.data.munitions = this.checkNull(sheetData.itemsByType['munition']);
|
||||
sheetData.data.herbes = this.checkNull(sheetData.itemsByType['herbe']);
|
||||
sheetData.data.sorts = this.checkNull(sheetData.itemsByType['sort']);
|
||||
sheetData.data.queues = this.checkNull(sheetData.itemsByType['queue']);
|
||||
sheetData.data.souffles = this.checkNull(sheetData.itemsByType['souffle']);
|
||||
sheetData.data.ombres = this.checkNull(sheetData.itemsByType['ombre']);
|
||||
sheetData.data.tetes = this.checkNull(sheetData.itemsByType['tete']);
|
||||
sheetData.data.taches = this.checkNull(sheetData.itemsByType['tache']);
|
||||
sheetData.data.monnaie = this.checkNull(sheetData.itemsByType['monnaie']);
|
||||
sheetData.data.meditations = this.checkNull(sheetData.itemsByType['meditation']);
|
||||
sheetData.data.chants = this.checkNull(sheetData.itemsByType['chant']);
|
||||
sheetData.data.danses = this.checkNull(sheetData.itemsByType['danse']);
|
||||
sheetData.data.musiques = this.checkNull(sheetData.itemsByType['musique']);
|
||||
sheetData.data.oeuvres = this.checkNull(sheetData.itemsByType['oeuvre']);
|
||||
sheetData.data.jeux = this.checkNull(sheetData.itemsByType['jeu']);
|
||||
sheetData.data.recettescuisine = this.checkNull(sheetData.itemsByType['recettecuisine']);
|
||||
sheetData.data.recettesAlchimiques = this.checkNull(sheetData.itemsByType['recettealchimique']);
|
||||
sheetData.data.objets = sheetData.data.conteneurs.concat(sheetData.data.materiel)
|
||||
.concat(sheetData.data.armes)
|
||||
.concat(sheetData.data.armures)
|
||||
.concat(sheetData.data.munitions)
|
||||
.concat(sheetData.data.livres)
|
||||
.concat(sheetData.data.potions)
|
||||
.concat(sheetData.data.herbes)
|
||||
.concat(sheetData.data.ingredients);
|
||||
|
||||
sheetData.items.materiel = this.checkNull(sheetData.items['objet']);
|
||||
sheetData.items.conteneurs = this.checkNull(sheetData.items['conteneur']);
|
||||
sheetData.items.armes = this.checkNull(sheetData.items['arme']);
|
||||
sheetData.items.armures = this.checkNull(sheetData.items['armure']);
|
||||
sheetData.items.livres = this.checkNull(sheetData.items['livre']);
|
||||
sheetData.items.potions = this.checkNull(sheetData.items['potion']);
|
||||
sheetData.items.ingredients = this.checkNull(sheetData.items['ingredient']);
|
||||
sheetData.items.munitions = this.checkNull(sheetData.items['munition']);
|
||||
sheetData.items.herbes = this.checkNull(sheetData.items['herbe']);
|
||||
sheetData.items.sorts = this.checkNull(sheetData.items['sort']);
|
||||
sheetData.items.queues = this.checkNull(sheetData.items['queue']);
|
||||
sheetData.items.souffles = this.checkNull(sheetData.items['souffle']);
|
||||
sheetData.items.ombres = this.checkNull(sheetData.items['ombre']);
|
||||
sheetData.items.tetes = this.checkNull(sheetData.items['tete']);
|
||||
sheetData.items.taches = this.checkNull(sheetData.items['tache']);
|
||||
sheetData.items.monnaie = this.checkNull(sheetData.items['monnaie']);
|
||||
sheetData.items.meditations = this.checkNull(sheetData.items['meditation']);
|
||||
sheetData.items.chants = this.checkNull(sheetData.items['chant']);
|
||||
sheetData.items.danses = this.checkNull(sheetData.items['danse']);
|
||||
sheetData.items.musiques = this.checkNull(sheetData.items['musique']);
|
||||
sheetData.items.oeuvres = this.checkNull(sheetData.items['oeuvre']);
|
||||
sheetData.items.jeux = this.checkNull(sheetData.items['jeu']);
|
||||
sheetData.items.recettescuisine = this.checkNull(sheetData.items['recettecuisine']);
|
||||
sheetData.items.recettesAlchimiques = this.checkNull(sheetData.items['recettealchimique']);
|
||||
sheetData.items.objets = sheetData.items.conteneurs.concat(sheetData.items.materiel)
|
||||
.concat(sheetData.items.armes)
|
||||
.concat(sheetData.items.armures)
|
||||
.concat(sheetData.items.munitions)
|
||||
.concat(sheetData.items.livres)
|
||||
.concat(sheetData.items.potions)
|
||||
.concat(sheetData.items.herbes)
|
||||
.concat(sheetData.items.ingredients);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -359,13 +360,13 @@ export class RdDUtility {
|
||||
static buildArbreDeConteneur(actorSheet, sheetData) {
|
||||
actorSheet.objetVersConteneur = {}; // Table de hash locale pour recupération rapide du conteneur parent (si existant)
|
||||
// Attribution des objets aux conteneurs
|
||||
for (let conteneur of sheetData.data.conteneurs) {
|
||||
for (let conteneur of sheetData.items.conteneurs) {
|
||||
conteneur.subItems = [];
|
||||
if (!conteneur.data.encTotal) conteneur.data.encTotal = 0;
|
||||
//conteneur.data.encTotal = ; Deja calculé
|
||||
if (conteneur.data.contenu) {
|
||||
for (let id of conteneur.data.contenu) {
|
||||
let objet = sheetData.data.objets.find(objet => (id == objet._id));
|
||||
let objet = sheetData.items.objets.find(objet => (id == objet._id));
|
||||
if (objet) {
|
||||
if (!objet.data.encombrement) objet.data.encombrement = 0; // Auto-fix
|
||||
objet.estContenu = true; // Permet de filtrer ce qifui est porté dans le template
|
||||
@ -377,8 +378,8 @@ export class RdDUtility {
|
||||
}
|
||||
}
|
||||
// Construit la liste des conteneurs de niveau 1 (c'est à dire non contenu eux-même dans un conteneur)
|
||||
let newConteneurs = sheetData.data.conteneurs.filter(function (conteneur, index, arr) { return !conteneur.estContenu });
|
||||
sheetData.data.conteneurs = newConteneurs;
|
||||
let newConteneurs = sheetData.items.conteneurs.filter(function (conteneur, index, arr) { return !conteneur.estContenu });
|
||||
sheetData.items.conteneurs = newConteneurs;
|
||||
//console.log(newConteneurs);
|
||||
}
|
||||
|
||||
@ -601,27 +602,16 @@ export class RdDUtility {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async loadCompendiumNames(compendium) {
|
||||
static async loadCompendiumData(compendium) {
|
||||
const pack = game.packs.get(compendium);
|
||||
let competences;
|
||||
await pack.getIndex().then(index => competences = index);
|
||||
let competences = pack.index;
|
||||
return competences;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async loadCompendium(compendium, filter = item => true) {
|
||||
let compendiumItems = await RdDUtility.loadCompendiumNames(compendium);
|
||||
const pack = game.packs.get(compendium);
|
||||
let list = [];
|
||||
for (let compendiumItem of compendiumItems) {
|
||||
await pack.getDocument(compendiumItem._id).then(it => {
|
||||
const item = it.data;
|
||||
if (filter(item)) {
|
||||
list.push(item);
|
||||
}
|
||||
});
|
||||
};
|
||||
return list;
|
||||
let compendiumData = await RdDUtility.loadCompendiumData(compendium);
|
||||
return compendiumData.filter(filter);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -20,7 +20,9 @@ export const referenceAjustements = {
|
||||
competence: {
|
||||
isUsed: (rollData, actor) => rollData.competence,
|
||||
getLabel: (rollData, actor) => rollData.competence?.name,
|
||||
getValue: (rollData, actor) => rollData.competence?.data?.data.niveau,
|
||||
getValue: (rollData, actor) => {
|
||||
return rollData.competence?.data.niveau;
|
||||
},
|
||||
},
|
||||
meditation: {
|
||||
isUsed: (rollData, actor) => rollData.meditation,
|
||||
|
@ -54,12 +54,12 @@
|
||||
<div class="grid grid-2col">
|
||||
<div class="flex-group-left flexcol">
|
||||
<ol class="carac-list alterne-list">
|
||||
{{#each data.carac as |carac key|}}
|
||||
{{#each carac as |carac key|}}
|
||||
<li class="competence flexrow list-item" data-attribute="{{key}}">
|
||||
{{#if carac.isTaille}}
|
||||
<span class="carac-label flexrow" name="data.carac.{{key}}.label">{{carac.label}}</span>
|
||||
<span class="carac-label flexrow">{{carac.label}}</span>
|
||||
{{else}}
|
||||
<span class="carac-label flexrow" name="data.carac.{{key}}.label"><a
|
||||
<span class="carac-label flexrow"><a
|
||||
name={{key}}>{{carac.label}}</a></span>
|
||||
{{/if}}
|
||||
<input class="competence-value flexrow" type="text" name="data.carac.{{key}}.value"
|
||||
@ -114,18 +114,16 @@
|
||||
<div class="flexcol">
|
||||
<div class="flex-group-left flexcol competence-column">
|
||||
<ol class="item-list alterne-list">
|
||||
{{#each data.competencecreature as |comp key|}}
|
||||
{{#each competences as |comp key|}}
|
||||
<li class="item flexrow list-item" data-item-id="{{comp._id}}">
|
||||
<img class="sheet-competence-img" src="{{comp.img}}" />
|
||||
<span class="competence-label"><a>{{comp.name}}</a></span>
|
||||
<input class="competence-value creature-carac" type="text"
|
||||
name="data.competencecreature[{{key}}].data.carac_value" compname="{{comp.name}}"
|
||||
<input class="competence-value creature-carac" type="text" compname="{{comp.name}}"
|
||||
value="{{comp.data.carac_value}}" data-dtype="number" />
|
||||
<input class="competence-value creature-niveau" type="text"
|
||||
compname="{{comp.name}}"
|
||||
value="{{numberFormat comp.data.niveau decimals=0 sign=true}}" data-dtype="number" />
|
||||
<input class="competence-value creature-dommages" type="text"
|
||||
name="data.competencecreature[{{key}}]].data.dommages" compname="{{comp.name}}"
|
||||
<input class="competence-value creature-dommages" type="text" compname="{{comp.name}}"
|
||||
value="{{numberFormat comp.data.dommages decimals=0 sign=true}}" data-dtype="number" />
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
|
@ -72,18 +72,16 @@
|
||||
<div class="flexcol">
|
||||
<div class="flex-group-left flexcol competence-column">
|
||||
<ol class="item-list alterne-list">
|
||||
{{#each data.competencecreature as |comp key|}}
|
||||
{{#each competences as |comp key|}}
|
||||
<li class="item flexrow list-item" data-item-id="{{comp._id}}">
|
||||
<img class="sheet-competence-img" src="{{comp.img}}" />
|
||||
<span class="competence-label"><a>{{comp.name}}</a></span>
|
||||
<input class="competence-value creature-carac" type="text"
|
||||
name="data.competencecreature[{{key}}].data.carac_value" compname="{{comp.name}}"
|
||||
<input class="competence-value creature-carac" type="text" compname="{{comp.name}}"
|
||||
value="{{comp.data.carac_value}}" data-dtype="number" />
|
||||
<input class="competence-value creature-niveau" type="text"
|
||||
compname="{{comp.name}}"
|
||||
value="{{numberFormat comp.data.niveau decimals=0 sign=true}}" data-dtype="number" />
|
||||
<input class="competence-value creature-dommages" type="text"
|
||||
name="data.competencecreature[{{key}}].data.dommages" compname="{{comp.name}}"
|
||||
<input class="competence-value creature-dommages" type="text" compname="{{comp.name}}"
|
||||
value="{{numberFormat comp.data.dommages decimals=0 sign=true}}" data-dtype="number" />
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
|
@ -1,229 +0,0 @@
|
||||
{{log "handlebar" this}}
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
|
||||
{{!-- Sheet Header --}}
|
||||
<header class="sheet-header">
|
||||
<img class="profile-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" />
|
||||
<div class="header-fields">
|
||||
<div class="flexrow">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{actor.name}}" placeholder="Name" /></h1>
|
||||
</div>
|
||||
<div class="flexrow flex-group-center flex-actions-bar">
|
||||
<div>
|
||||
<span class="encaisser-direct"><a title="Encaisser des dommages"><img class="button-img" src="icons/svg/bones.svg" alt="Encaisser des dommages"/></a></span>
|
||||
<span class="gm-only remise-a-neuf"><a title="Remise à neuf"><img class="button-img" src="icons/svg/regen.svg" alt="Remise à neuf"/></a></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
<div class="flexrow">
|
||||
<span>{{calc.blessures.resume}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{{!-- Sheet Tab Navigation --}}
|
||||
<nav class="sheet-tabs tabs" data-group="primary">
|
||||
<a class="item" data-tab="carac">Caractéristiques</a>
|
||||
<a class="item" data-tab="competences">Compétences</a>
|
||||
<a class="item" data-tab="blessures">Blessures</a>
|
||||
<a class="item" data-tab="items">Équipement</a>
|
||||
<a class="item" data-tab="description">Description</a>
|
||||
</nav>
|
||||
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
|
||||
{{!-- Carac Tab --}}
|
||||
<div class="tab items" data-group="primary" data-tab="carac">
|
||||
<div class="grid grid-2col">
|
||||
<div class="flex-group-left flexcol">
|
||||
<ol class="carac-list alterne-list">
|
||||
{{#each data.carac as |carac key|}}
|
||||
<li class="competence flexrow list-item" data-attribute="{{key}}">
|
||||
{{#if carac.isTaille}}
|
||||
<span class="carac-label flexrow">{{carac.label}}</span>
|
||||
{{else}}
|
||||
<span class="carac-label flexrow"><a name={{key}}>{{carac.label}}</a></span>
|
||||
{{/if}}
|
||||
<input class="competence-value flexrow" type="text" value="{{carac.value}}" data-dtype="{{carac.type}}" />
|
||||
</li>
|
||||
{{/each}}
|
||||
<li class="competence flexrow list-item">
|
||||
<span class="carac-label flexrow" name="carac-total">Total Caractéristiques</span>
|
||||
<span class="competence-value flexrow" name="carac-total-value">{{calc.caracTotal}}</span>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="flex-group-left flexcol">
|
||||
<ol class="carac-list alterne-list">
|
||||
{{#each data.attributs as |attr key|}}
|
||||
<li class="competence flexrow list-item" data-attribute="{{key}}">
|
||||
<span class="carac-label flexrow" name="data.attributs.{{key}}.label">{{attr.label}} : </span>
|
||||
<span><input class="attribut-value flexrow" type="text" name="data.attributs.{{key}}.value"
|
||||
value="{{attr.value}}" data-dtype="{{attr.type}}" /></span>
|
||||
</li>
|
||||
{{/each}}
|
||||
<li class="competence flexrow list-item" data-attribute="vie">
|
||||
<span class="competence-label flexrow" name="data.sante.vie.label">Vie : </span>
|
||||
<span><input class="sante-value flexrow" type="text" name="data.sante.vie.value"
|
||||
value="{{data.sante.vie.value}}" data-dtype="Number" /></span><span>/ </span>
|
||||
<span><input class="sante-value flexrow" type="text" name="data.sante.vie.max"
|
||||
value="{{data.sante.vie.max}}" data-dtype="Number" /></span>
|
||||
</li>
|
||||
<li class="competence flexrow list-item" data-attribute="endurance">
|
||||
<span class="competence-label flexrow" name="data.sante.endurance.label">Endurance : </span>
|
||||
<span><input class="sante-value flexrow" type="text" name="data.sante.endurance.value"
|
||||
value="{{data.sante.endurance.value}}" data-dtype="Number" /></span><span>/ </span>
|
||||
<span><input class="sante-value flexrow" type="text" name="data.sante.endurance.max"
|
||||
value="{{data.sante.endurance.max}}" data-dtype="Number" /></span>
|
||||
</li>
|
||||
<li class="competence flexrow list-item" data-attribute="sonne">
|
||||
<span class="competence-label flexrow" name="data.sante.sonne.label">Sonné : </span>
|
||||
<input class="resource-content" type="checkbox" name="data.sante.sonne.value"
|
||||
value="{{data.sante.sonne.value}}" {{#if data.sante.sonne.value}}checked{{/if}} />
|
||||
<img class="button-effect-img" {{#if data.sante.sonne.value}}style="opacity: 1;"{{else}}style="opacity: 0;"{{/if}} src="icons/svg/stoned.svg" height="16" width="16"/>
|
||||
</li>
|
||||
<li class="competence flexrow list-item" data-attribute="etat">
|
||||
<span class="competence-label flexrow" name="data.compteurs.etat.label">Etat Général : </span>
|
||||
<span>{{data.compteurs.etat.value}}</span>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{!-- Compétences Tab --}}
|
||||
<div class="tab competences" data-group="primary" data-tab="competences">
|
||||
<div class="flexcol">
|
||||
<div class="flex-group-left flexcol competence-column">
|
||||
<ol class="item-list alterne-list">
|
||||
{{#each data.competencecreature as |comp key|}}
|
||||
<li class="item flexrow list-item" data-item-id="{{comp._id}}">
|
||||
<img class="sheet-competence-img" src="{{comp.img}}" />
|
||||
<span class="competence-label"><a>{{comp.name}}</a></span>
|
||||
<input class="competence-value creature-carac" type="text"
|
||||
name="data.competencecreature[{{key}}].data.carac_value" compname="{{comp.name}}"
|
||||
value="{{comp.data.carac_value}}" data-dtype="number" />
|
||||
<input class="competence-value creature-niveau" type="text"
|
||||
compname="{{comp.name}}"
|
||||
value="{{numberFormat comp.data.niveau decimals=0 sign=true}}" data-dtype="number" />
|
||||
<input class="competence-value creature-dommages" type="text"
|
||||
name="data.competencecreature[{{key}}].data.dommages" compname="{{comp.name}}"
|
||||
value="{{numberFormat comp.data.dommages decimals=0 sign=true}}" data-dtype="number" />
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{!-- blessures Tab --}}
|
||||
<div class="tab blessures" data-group="primary" data-tab="blessures" style="height:200px">
|
||||
<span class="blessures-title">Blessures Légeres :</span>
|
||||
<div class="blessure-data">
|
||||
{{#each data.blessures.legeres.liste as |bless key|}}
|
||||
<li class="item flexrow blessure-data" data-blessure-type="legere" data-attribute={{key}}
|
||||
data-blessure-index="{{key}}">
|
||||
<a class="item-control blessure-control" title="Blessure Légère"
|
||||
data-blessure-active="{{bless.active}}">{{#if bless.active}}<i class="fas fa-circle"></i>{{else}}<i
|
||||
class="fas fa-genderless"></i>{{/if}}</a>
|
||||
Premiers soins <input class="blessures-soins" type="text" name='premiers_soins' data-dtype="number"
|
||||
value="{{this.premiers_soins}}" /> -
|
||||
Soins complets <input class="blessures-soins" type="text" name='soins_complets' data-dtype="number"
|
||||
value="{{this.soins_complets}}" /> -
|
||||
Jours <input class="blessures-soins" type="text" name='jours' data-dtype="number" value="{{this.jours}}" />
|
||||
-
|
||||
Loc. <input class="blessures-soins" type="text" name='localisation' data-dtype="String"
|
||||
value="{{this.loc}}" />
|
||||
</li>
|
||||
{{/each}}
|
||||
</div>
|
||||
<span class="blessures-title">Blessures Graves :</span>
|
||||
<div>
|
||||
{{#each data.blessures.graves.liste as |bless key|}}
|
||||
<li class="item flexrow" data-blessure-type="grave" data-attribute={{key}} data-blessure-index="{{key}}">
|
||||
<a class="item-control blessure-control" title="Blessure Grave"
|
||||
data-blessure-active="{{bless.active}}">{{#if bless.active}}<i class="fas fa-circle"></i>{{else}}<i
|
||||
class="fas fa-genderless"></i>{{/if}}</a>
|
||||
Premiers soins <input class="blessures-soins" type="text" name="premiers_soins" data-dtype="number"
|
||||
value="{{bless.premiers_soins}}" /> -
|
||||
Soins complets <input class="blessures-soins" type="text" name="soins_complets" data-dtype="number"
|
||||
value="{{bless.soins_complets}}" /> -
|
||||
Jours <input class="blessures-soins" type="text" name="jours" data-dtype="number" value="{{bless.jours}}" />
|
||||
-
|
||||
Loc. <input class="blessures-soins" type="text" name="localisation" data-dtype="String"
|
||||
value="{{bless.loc}}" />
|
||||
</li>
|
||||
{{/each}}
|
||||
</div>
|
||||
<span class="blessures-title">Blessure Critique :</span>
|
||||
<div>
|
||||
{{#each data.blessures.critiques.liste as |bless key|}}
|
||||
<li class="item flexrow" data-blessure-type="critique" data-attribute={{key}} data-blessure-index="{{key}}">
|
||||
<a class="item-control blessure-control" title="Blessure Critique"
|
||||
data-blessure-active="{{bless.active}}">{{#if bless.active}}<i class="fas fa-circle"></i>{{else}}<i
|
||||
class="fas fa-genderless"></i>{{/if}}</a>
|
||||
Premiers soins <input class="blessures-soins" type="text" name="premiers_soins" data-dtype="number"
|
||||
value="{{bless.premiers_soins}}" /> -
|
||||
Soins complets <input class="blessures-soins" type="text" name="soins_complets" data-dtype="number"
|
||||
value="{{bless.soins_complets}}" /> -
|
||||
Jours <input class="blessures-soins" type="text" name="jours" data-dtype="number" value="{{bless.jours}}" />
|
||||
-
|
||||
Loc. <input class="blessures-soins" type="text" name="localisation" data-dtype="String"
|
||||
value="{{bless.loc}}" />
|
||||
</li>
|
||||
</li>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{!-- Equipment Tab --}}
|
||||
<div class="tab items" data-group="primary" data-tab="items">
|
||||
<span cass=item-name>Encombrement total/max : {{numberFormat calc.encTotal decimals=1}} / {{data.attributs.encombrement.value}}</span>
|
||||
<ol class="item-list alterne-list">
|
||||
<li class="competence-header flexrow">
|
||||
<span class="competence-title competence-label">Nom</span>
|
||||
<span class="competence-title competence-label">Q.</span>
|
||||
<span class="competence-title competence-value">Enc.</span>
|
||||
<span class="competence-title competence-value">Equiper</span>
|
||||
<span class="competence-title competence-value">Editer/Suppr.</span>
|
||||
</li>
|
||||
{{#each data.objets as |item id|}}
|
||||
{{#unless item.estContenu}}
|
||||
{{#if (ne item.data.type 'conteneur')}}
|
||||
<li class="item flexrow list-item" data-item-id="{{item._id}}">
|
||||
<img class="sheet-competence-img" src="{{item.img}}" title="{{item.name}}"/>
|
||||
<span class="item-name">{{item.name}}</span>
|
||||
<span class="item-quantite">{{item.data.data.quantite}}</span>
|
||||
<span class="item-quantite">{{numberFormat item.data.data.encTotal decimals=2}}</span>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-equip" title="Equiper">{{#if item.data.data.equipe}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||
<a class="item-control item-edit" title="Editer"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
{{/each}}
|
||||
{{#each data.conteneurs as |conteneur id|}}
|
||||
{{buildConteneur this}}
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
{{!-- Biography Tab --}}
|
||||
<div class="tab description" data-group="primary" data-tab="description">
|
||||
<div class="form-group editor">
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/editor-notes-mj.html"}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
@ -113,30 +113,30 @@
|
||||
src="systems/foundryvtt-reve-de-dragon/icons/{{#if @root.options.editCaracComp}}unlocked.svg{{else}}locked.svg{{/if}}" alt="blocker/débloquer"
|
||||
>{{#if @root.options.editCaracComp}}Verrouiller{{else}}Déverrouiller{{/if}}</a></span>
|
||||
<ul class="carac-list alterne-list">
|
||||
{{#each data.data.carac as |carac key|}}
|
||||
{{#each carac as |carac key|}}
|
||||
{{#if carac.isLevelUp}}
|
||||
<li class="competence flexrow xp-level-up" data-attribute="{{key}}">
|
||||
{{else}}
|
||||
<li class="competence flexrow list-item" data-attribute="{{key}}">
|
||||
{{/if}}
|
||||
{{#if carac.isTaille}}
|
||||
<span class="carac-label flexrow" name="data.carac.{{key}}.label">{{carac.label}}</span>
|
||||
<span class="carac-label flexrow" >{{carac.label}}</span>
|
||||
<input class="carac-value flexrow" type="text" name="data.carac.{{key}}.value" value="{{carac.value}}" data-dtype="{{carac.type}}" {{#unless @root.options.editCaracComp}}disabled{{/unless}} />
|
||||
<label class="carac-xp flexrow"/>
|
||||
{{else}}
|
||||
{{#if carac.derivee}}
|
||||
<span class="carac-label flexrow" name="data.carac.{{key}}.label"> <a name={{key}}>{{carac.label}}</a></span>
|
||||
<span class="carac-label flexrow" > <a name={{key}}>{{carac.label}}</a></span>
|
||||
<label class="carac-value flexrow">{{carac.value}}</label>
|
||||
<label class="carac-xp flexrow"/>
|
||||
{{else}}
|
||||
{{#if carac.isLevelUp}}
|
||||
<span class="carac-label flexrow tooltip tooltip-nobottom" name="data.carac.{{key}}.label">
|
||||
<span class="carac-label flexrow tooltip tooltip-nobottom" >
|
||||
<span class="tooltiptext ttt-xp">
|
||||
Vous pouvez dépenser {{carac.xpNext}} points d'Experience pour augmenter de 1 votre caractéristique {{carac.label}}
|
||||
</span>
|
||||
<a name={{key}}>{{carac.label}}</a></span>
|
||||
{{else}}
|
||||
<span class="carac-label flexrow tooltip tooltip-nobottom" name="data.carac.{{key}}.label"><a name={{key}}>{{carac.label}}</a></span>
|
||||
<span class="carac-label flexrow tooltip tooltip-nobottom" ><a name={{key}}>{{carac.label}}</a></span>
|
||||
{{/if}}
|
||||
<input class="carac-value flexrow" type="text" name="data.carac.{{key}}.value" value="{{carac.value}}" data-dtype="{{carac.type}}" {{#unless @root.options.editCaracComp}}disabled{{/unless}} />
|
||||
<input class="carac-xp flexrow" type="text" name="data.carac.{{key}}.xp" value="{{carac.xp}}" data-dtype="number" {{#unless @root.options.editCaracComp}}disabled{{/unless}} />
|
||||
@ -662,7 +662,7 @@
|
||||
<div class="tab connaissances" data-group="primary" data-tab="connaissances">
|
||||
<h3>Oeuvres diverses :</h3>
|
||||
<ul class="item-list alterne-list">
|
||||
{{#each data.chants as |chant id|}}
|
||||
{{#each items.chants as |chant id|}}
|
||||
<li class="item flexrow list-item" data-item-id="{{chant._id}}"><span>Chant</span><span class="competence-title chant-label"><a>{{chant.name}} (niveau {{chant.data.niveau}})</a></span>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
@ -670,7 +670,7 @@
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
{{#each data.musiques as |musique id|}}
|
||||
{{#each items.musiques as |musique id|}}
|
||||
<li class="item flexrow list-item" data-item-id="{{musique._id}}"><span>Musique</span><span class="competence-title musique-label"><a>{{musique.name}} (niveau {{musique.data.niveau}})</a></span>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
@ -678,7 +678,7 @@
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
{{#each data.danses as |danse id|}}
|
||||
{{#each items.danses as |danse id|}}
|
||||
<li class="item flexrow list-item" data-item-id="{{danse._id}}"><span>Danse</span><span class="competence-title danse-label"><a>{{danse.name}} (niveau {{danse.data.niveau}})</a></span>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
@ -686,7 +686,7 @@
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
{{#each data.oeuvres as |oeuvre id|}}
|
||||
{{#each items.oeuvres as |oeuvre id|}}
|
||||
<li class="item flexrow list-item" data-item-id="{{oeuvre._id}}"><span>{{upperFirst oeuvre.data.competence}}</span><span class="competence-title oeuvre-label"><a>{{oeuvre.name}} (niveau {{oeuvre.data.niveau}})</a></span>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
@ -694,7 +694,7 @@
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
{{#each data.recettescuisine as |recette id|}}
|
||||
{{#each items.recettescuisine as |recette id|}}
|
||||
<li class="item flexrow list-item" data-item-id="{{recette._id}}"><span>Recette de cuisine</span><span class="competence-title recettecuisine-label"><a>{{recette.name}} (niveau {{recette.data.niveau}})</a></span>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
@ -705,7 +705,7 @@
|
||||
</ul>
|
||||
<h3>Jeux :</h3>
|
||||
<ul class="item-list alterne-list">
|
||||
{{#each data.jeux as |jeu id|}}
|
||||
{{#each items.jeux as |jeu id|}}
|
||||
<li class="item flexrow list-item" data-item-id="{{jeu._id}}"><span class="competence-title jeu-label"><a>{{jeu.name}} (base {{jeu.data.base}})</a></span>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
@ -716,7 +716,7 @@
|
||||
</ul>
|
||||
<h3>Recettes Alchimiques</h3>
|
||||
<ul class="item-list alterne-list">
|
||||
{{#each data.recettesAlchimiques as |recette id|}}
|
||||
{{#each items.recettesAlchimiques as |recette id|}}
|
||||
<li class="item flexrow list-item" data-item-id="{{recette._id}}"><span class="competence-title recette-label item-edit"><a>{{recette.name}}</a></span>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
@ -727,7 +727,7 @@
|
||||
</ul>
|
||||
<h3>Tâches</h3><a id='creer-tache'>Créer une nouvelle Tâche</a>
|
||||
<ul class="item-list alterne-list">
|
||||
{{#each data.taches as |tache id|}}
|
||||
{{#each items.taches as |tache id|}}
|
||||
<li class="item flexrow list-item" data-item-id="{{tache._id}}"><span class="competence-title tache-label"><a>{{tache.name}} ({{tache.data.points_de_tache_courant}}/{{tache.data.points_de_tache}})</a></span>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
@ -783,7 +783,7 @@
|
||||
<div>
|
||||
<h3>Sorts:</h3>
|
||||
<ul class="item-list">
|
||||
{{#each data.sorts as |mysort key|}}
|
||||
{{#each items.sorts as |mysort key|}}
|
||||
<li class="item flexrow" data-item-id="{{mysort._id}}" data-attribute="{{key}}">
|
||||
<span class="sort-label"> <a data-id="{{mysort._id}}">{{mysort.name}}</a></span>
|
||||
<span>{{mysort.data.draconic}} / {{mysort.data.difficulte}}</span>
|
||||
@ -809,7 +809,7 @@
|
||||
<div>
|
||||
<h3>Méditations:</h3>
|
||||
<ul class="item-list">
|
||||
{{#each data.meditations as |meditation key|}}
|
||||
{{#each items.meditations as |meditation key|}}
|
||||
<li class="item flexrow" data-item-id="{{meditation._id}}" data-attribute="{{key}}">
|
||||
<span class="meditation-label"><a data-id="{{meditation._id}}">{{meditation.name}} - {{meditation.data.competence}}</a></span>
|
||||
<div class="item-controls">
|
||||
@ -853,7 +853,7 @@
|
||||
<hr>
|
||||
<h3>Queues:</h3>
|
||||
<ul class="flex-group-left">
|
||||
{{#each data.queues as |queue key|}}
|
||||
{{#each items.queues as |queue key|}}
|
||||
<li class="item flexrow" data-attribute={{key}} data-item-id="{{queue._id}}">
|
||||
<span class="queuesouffle-label"> <a data-item-id="{{queue._id}}">{{queue.name}}</a></span>
|
||||
<div class="item-controls">
|
||||
@ -864,7 +864,7 @@
|
||||
</ul>
|
||||
<h3>Souffles:</h3>
|
||||
<ul class="item-list">
|
||||
{{#each data.souffles as |souffle key|}}
|
||||
{{#each items.souffles as |souffle key|}}
|
||||
<li class="item flexrow" data-attribute={{key}} data-item-id="{{souffle._id}}">
|
||||
<span class="queuesouffle-label"> <a data-item-id="{{souffle._id}}">{{souffle.name}}</a></span>
|
||||
<div class="item-controls">
|
||||
@ -875,7 +875,7 @@
|
||||
</ul>
|
||||
<h3>Tetes:</h3>
|
||||
<ul class="item-list">
|
||||
{{#each data.tetes as |tete key|}}
|
||||
{{#each items.tetes as |tete key|}}
|
||||
<li class="item flexrow" data-attribute={{key}} data-item-id="{{tete._id}}">
|
||||
<span class="queuesouffle-label"> <a data-item-id="{{tete._id}}">{{tete.name}}</a></span>
|
||||
<div class="item-controls">
|
||||
@ -886,7 +886,7 @@
|
||||
</ul>
|
||||
<h3>Ombres de Thanatos:</h3>
|
||||
<ul class="item-list">
|
||||
{{#each data.ombres as |ombre key|}}
|
||||
{{#each items.ombres as |ombre key|}}
|
||||
<li class="item flexrow" data-attribute={{key}} data-item-id="{{ombre._id}}">
|
||||
<span class="queuesouffle-label"> <a data-item-id="{{ombre._id}}">{{ombre.name}}</a></span>
|
||||
<div class="item-controls">
|
||||
@ -902,7 +902,7 @@
|
||||
<div class="tab items" data-group="primary" data-tab="items">
|
||||
<span class="item-name"><h4>Argent et Monnaies</h4></span>
|
||||
<ul class="item-list alterne-list">
|
||||
{{#each data.monnaie as |piece id|}}
|
||||
{{#each items.monnaie as |piece id|}}
|
||||
<li class="item flexrow list-item" data-item-id="{{piece._id}}">
|
||||
<img class="sheet-competence-img" src="{{piece.img}}" title="{{piece.name}}"/>
|
||||
<span class="competence-title competence-label">{{piece.name}}</span>
|
||||
@ -935,16 +935,16 @@
|
||||
<span class="competence-title generic-label">Enc.</span>
|
||||
<span class="competence-title generic-label">Equiper/Editer/Suppr.</span>
|
||||
</li>
|
||||
{{#each data.objets as |item id|}}
|
||||
{{#each items.objets as |item id|}}
|
||||
{{#unless item.estContenu}}
|
||||
{{#if (ne item.data.type 'conteneur')}}
|
||||
<li class="item flexrow list-item" data-item-id="{{item._id}}">
|
||||
<img class="sheet-competence-img" src="{{item.img}}" title="{{item.name}}"/>
|
||||
<span class="item-name">{{item.name}}</span>
|
||||
<span class="item-quantite">{{item.data.data.quantite}}</span>
|
||||
<span class="item-quantite">{{numberFormat item.data.data.encTotal decimals=2}}</span>
|
||||
<span class="item-quantite">{{item.data.quantite}}</span>
|
||||
<span class="item-quantite">{{numberFormat item.data.encTotal decimals=2}}</span>
|
||||
<span class="item-controls">
|
||||
<a class="item-control item-equip" title="Equiper">{{#if item.data.data.equipe}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||
<a class="item-control item-equip" title="Equiper">{{#if item.data.equipe}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||
<a class="item-control item-edit" title="Editer"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
|
||||
</span>
|
||||
@ -952,7 +952,7 @@
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
{{/each}}
|
||||
{{#each data.conteneurs as |conteneur id|}}
|
||||
{{#each items.conteneurs as |conteneur id|}}
|
||||
{{buildConteneur this}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
|
@ -1,4 +1,4 @@
|
||||
{{log "handlebar" this}}
|
||||
{{log "handlebar: actor-vehicule-sheet" this}}
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
|
||||
{{!-- Sheet Header --}}
|
||||
@ -28,39 +28,39 @@
|
||||
<ol class="carac-list alterne-list">
|
||||
<li class="competence flexrow list-item" data-attribute="{{key}}">
|
||||
<span class="carac-label flexrow" name="categorie">Catégorie</span>
|
||||
<select name="data.categorie" id="categorie" data-dtype="String">
|
||||
{{#select data.categorie}}
|
||||
<select name="data.data.categorie" id="categorie" data-dtype="String">
|
||||
{{#select data.data.categorie}}
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/enum-categorie-vehicule.html"}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="competence flexrow list-item" data-attribute="{{key}}">
|
||||
<span class="carac-label flexrow" name="categorie">Résistance</span>
|
||||
<input class="competence-value flexrow" type="text" name="data.resistance" value="{{data.resistance}}" data-dtype="Number" />
|
||||
<input class="competence-value flexrow" type="text" name="data.resistance" value="{{data.data.resistance}}" data-dtype="Number" />
|
||||
</li>
|
||||
<li class="competence flexrow list-item" data-attribute="{{key}}">
|
||||
<span class="carac-label flexrow" name="categorie">Structure</span>
|
||||
<input class="competence-value flexrow" type="text" name="data.structure" value="{{data.structure}}" data-dtype="Number" />
|
||||
<input class="competence-value flexrow" type="text" name="data.structure" value="{{data.data.structure}}" data-dtype="Number" />
|
||||
</li>
|
||||
<li class="competence flexrow list-item" data-attribute="{{key}}">
|
||||
<span class="carac-label flexrow" name="categorie">Vitesse</span>
|
||||
<input class="competence-value flexrow" type="text" name="data.vitesse" value="{{data.vitesse}}" data-dtype="String" />
|
||||
<input class="competence-value flexrow" type="text" name="data.vitesse" value="{{data.data.vitesse}}" data-dtype="String" />
|
||||
</li>
|
||||
<li class="competence flexrow list-item" data-attribute="{{key}}">
|
||||
<span class="carac-label flexrow" name="categorie">Bonus</span>
|
||||
<input class="competence-value flexrow" type="text" name="data.bonus" value="{{data.bonus}}" data-dtype="String" />
|
||||
<input class="competence-value flexrow" type="text" name="data.bonus" value="{{data.data.bonus}}" data-dtype="String" />
|
||||
</li>
|
||||
<li class="competence flexrow list-item" data-attribute="{{key}}">
|
||||
<span class="carac-label flexrow" name="categorie">Manoeuvrabilité</span>
|
||||
<input class="competence-value flexrow" type="text" name="data.manoeuvrabilite" value="{{data.manoeuvrabilite}}" data-dtype="String" />
|
||||
<input class="competence-value flexrow" type="text" name="data.manoeuvrabilite" value="{{data.data.manoeuvrabilite}}" data-dtype="String" />
|
||||
</li>
|
||||
<li class="competence flexrow list-item" data-attribute="{{key}}">
|
||||
<span class="carac-label flexrow" name="categorie">Equipage</span>
|
||||
<input class="competence-value flexrow" type="text" name="data.equipage" value="{{data.equipage}}" data-dtype="Number" />
|
||||
<input class="competence-value flexrow" type="text" name="data.equipage" value="{{data.data.equipage}}" data-dtype="Number" />
|
||||
</li>
|
||||
<li class="competence flexrow list-item" data-attribute="{{key}}">
|
||||
<span class="carac-label flexrow" name="categorie">Capacité d'Encombrement</span>
|
||||
<input class="competence-value flexrow" type="text" name="data.capacite_encombrement" value="{{data.capacite_encombrement}}" data-dtype="Number" />
|
||||
<input class="competence-value flexrow" type="text" name="data.capacite_encombrement" value="{{data.data.capacite_encombrement}}" data-dtype="Number" />
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
@ -69,7 +69,7 @@
|
||||
|
||||
{{!-- Equipment Tab --}}
|
||||
<div class="tab items" data-group="primary" data-tab="items">
|
||||
<span class="item-name">Encombrement total/max : {{numberFormat calc.encTotal decimals=1}} / {{data.capacite_encombrement}} <b>{{calc.surEncombrementMessage}}</b></span> -
|
||||
<span class="item-name">Encombrement total/max : {{numberFormat calc.encTotal decimals=1}} / {{data.data.capacite_encombrement}} <b>{{calc.surEncombrementMessage}}</b></span> -
|
||||
<span class="item-name"><a id="creer-un-objet">Créer un objet</a></span>
|
||||
{{#if options.isGM}}
|
||||
<span class="item-name"> - <a id="nettoyer-conteneurs">Vider tout les conteneurs</a></span>
|
||||
@ -82,7 +82,7 @@
|
||||
<span class="competence-title competence-value">Equiper</span>
|
||||
<span class="competence-title competence-value">Editer/Suppr.</span>
|
||||
</li>
|
||||
{{#each data.objets as |item id|}}
|
||||
{{#each items.objets as |item id|}}
|
||||
{{#unless item.estContenu}}
|
||||
{{#if (ne item.data.type 'conteneur')}}
|
||||
<li class="item flexrow list-item" data-item-id="{{item._id}}">
|
||||
@ -99,7 +99,7 @@
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
{{/each}}
|
||||
{{#each data.conteneurs as |conteneur id|}}
|
||||
{{#each items.conteneurs as |conteneur id|}}
|
||||
{{buildConteneur this}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
@ -109,7 +109,7 @@
|
||||
{{!-- Biography Tab --}}
|
||||
<div class="tab description" data-group="primary" data-tab="description">
|
||||
<div class="form-group editor">
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor content=data.data.description target="data.data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/editor-notes-mj.html"}}
|
||||
</div>
|
||||
|
@ -1,4 +1,3 @@
|
||||
{{log "handlebar" this}}
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<div class="header-fields">
|
||||
|
@ -1,6 +1,6 @@
|
||||
{{#if options.isGM}}
|
||||
<h3>Notes du MJ : </h3>
|
||||
<div class="form-group editor">
|
||||
{{editor content=data.notesmj target="data.notesmj" button=true owner=owner editable=editable}}
|
||||
{{editor content=data.data.notesmj target="data.data.notesmj" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
@ -12,7 +12,7 @@
|
||||
<div class="form-group">
|
||||
<label for="categorie">Compétence associée</label>
|
||||
<select name="data.competence" id="competence" data-dtype="String">
|
||||
{{#select item.data.data.data.competence}}
|
||||
{{#select item.data.data.competence}}
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/enum-competence.html"}}
|
||||
{{/select}}
|
||||
</select>
|
||||
|
@ -16,7 +16,7 @@
|
||||
<div class="form-group">
|
||||
<label for="niveau">Mode spécifique</label>
|
||||
<select name="data.specific" id="specific" data-dtype="String">
|
||||
{{#select item.data.data.data.specific}}
|
||||
{{#select item.data.data.specific}}
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/casetmr-specific-list.html"}}
|
||||
{{/select}}
|
||||
</select>
|
||||
|
@ -18,7 +18,7 @@
|
||||
<div class="form-group">
|
||||
<label for="categorie">Catégorie </label>
|
||||
<select name="data.categorie" id="categorie" data-dtype="String">
|
||||
{{#select item.data.data.data.categorie}}
|
||||
{{#select item.data.data.categorie}}
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/enum-categorie-competence.html"}}
|
||||
{{/select}}
|
||||
</select>
|
||||
@ -34,7 +34,7 @@
|
||||
<div class="form-group">
|
||||
<label for="base">Niveau de base </label>
|
||||
<select name="data.base" id="base" data-dtype="Number">
|
||||
{{#select item.data.data.data.base}}
|
||||
{{#select item.data.data.base}}
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/competence-base.html"}}
|
||||
{{/select}}
|
||||
</select>
|
||||
@ -42,7 +42,7 @@
|
||||
<div class="form-group">
|
||||
<label for="defaut_carac">Caractéristique par défaut </label>
|
||||
<select name="data.defaut_carac" id="defaut_carac" data-dtype="String">
|
||||
{{#select item.data.data.data.defaut_carac}}
|
||||
{{#select item.data.data.defaut_carac}}
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/competence-carac-defaut.html"}}
|
||||
{{/select}}
|
||||
</select>
|
||||
|
@ -12,7 +12,7 @@
|
||||
<div class="form-group">
|
||||
<label class="alchimie-title" for="xp">Type</label>
|
||||
<select name="data.type" data-dtype="String">
|
||||
{{#select item.data.data.data.type}}
|
||||
{{#select item.data.data.type}}
|
||||
<option value="recreative">Récréative</option>
|
||||
<option value="soliste">Soliste</option>
|
||||
{{/select}}
|
||||
|
@ -12,7 +12,7 @@
|
||||
<div class="form-group">
|
||||
<label class="alchimie-title" for="xp">Type</label>
|
||||
<select name="data.type" data-dtype="String">
|
||||
{{#select item.data.data.data.type}}
|
||||
{{#select item.data.data.type}}
|
||||
<option value="adressehasard">Adresse/Hasard</option>
|
||||
<option value="de">Dés</option>
|
||||
<option value="carte">Cartes</option>
|
||||
|
@ -16,7 +16,7 @@
|
||||
<div class="form-group">
|
||||
<label for="xp">Compétence</label>
|
||||
<select name="data.competence" id="competenceselect" data-dtype="String">
|
||||
{{#select item.data.data.data.competence}}
|
||||
{{#select item.data.data.competence}}
|
||||
{{#each competences as |competence key|}}
|
||||
<option value="{{competence.name}}">{{competence.name}}</option>
|
||||
{{/each}}
|
||||
|
@ -12,7 +12,7 @@
|
||||
<div class="form-group">
|
||||
<label for="xp">Compétence</label>
|
||||
<select name="data.competence" id="competenceselect" data-dtype="String">
|
||||
{{#select item.data.data.data.competence}}
|
||||
{{#select item.data.data.competence}}
|
||||
{{#each competences as |competence key|}}
|
||||
<option value="{{competence.name}}">{{competence.name}}</option>
|
||||
{{/each}}
|
||||
@ -30,7 +30,7 @@
|
||||
<div class="form-group">
|
||||
<label for="xp">Heure</label>
|
||||
<select name="data.heure" id="heure" data-dtype="String">
|
||||
{{#select item.data.data.data.heure}}
|
||||
{{#select item.data.data.heure}}
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/heures-select-option.html"}}
|
||||
{{/select}}
|
||||
</select>
|
||||
@ -50,7 +50,7 @@
|
||||
<div class="form-group">
|
||||
<label for="xp">Case TMR</label>
|
||||
<select name="data.tmr" id="tmr" data-dtype="String">
|
||||
{{#select item.data.data.data.tmr}}
|
||||
{{#select item.data.data.tmr}}
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/sort-tmr.html"}}
|
||||
{{/select}}
|
||||
</select>
|
||||
@ -59,7 +59,7 @@
|
||||
<label for="xp">Malus</label>
|
||||
{{#if isGM}}
|
||||
<select name="data.malus" id="malus" data-dtype="Number">
|
||||
{{#select item.data.data.data.malus}}
|
||||
{{#select item.data.data.malus}}
|
||||
<option value="0">0</option>
|
||||
<option value="-1">-1</option>
|
||||
<option value="-2">-2</option>
|
||||
|
@ -12,7 +12,7 @@
|
||||
<div class="form-group">
|
||||
<label>Caractéristique</label>
|
||||
<select name="data.default_carac" id="default_carac" data-dtype="String">
|
||||
{{#select item.data.data.data.default_carac}}
|
||||
{{#select item.data.data.default_carac}}
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/competence-carac-defaut.html"}}
|
||||
{{/select}}
|
||||
</select>
|
||||
@ -20,7 +20,7 @@
|
||||
<div class="form-group">
|
||||
<label>Compétence</label>
|
||||
<select name="data.competence" id="competenceselect" data-dtype="String">
|
||||
{{#select item.data.data.data.competence}}
|
||||
{{#select item.data.data.competence}}
|
||||
{{#each competences as |competence key|}}
|
||||
<option value="{{competence.name}}">{{competence.name}}</option>
|
||||
{{/each}}
|
||||
|
@ -12,7 +12,7 @@
|
||||
<div class="form-group">
|
||||
<label for="categorie">Draconic </label>
|
||||
<select name="data.draconic" id="draconic" data-dtype="String">
|
||||
{{#select item.data.data.data.draconic}}
|
||||
{{#select item.data.data.draconic}}
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/sort-draconic.html"}}
|
||||
{{/select}}
|
||||
</select>
|
||||
@ -20,7 +20,7 @@
|
||||
<div class="form-group">
|
||||
<label for="xp">Case TMR </label>
|
||||
<select name="data.caseTMR" id="caseTMR" data-dtype="String">
|
||||
{{#select item.data.data.data.caseTMR}}
|
||||
{{#select item.data.data.caseTMR}}
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/sort-tmr.html"}}
|
||||
<option value="special">Case spéciale TMR (saisie ci-dessous)</option>
|
||||
{{/select}}
|
||||
|
@ -12,7 +12,7 @@
|
||||
<div class="form-group">
|
||||
<label for="xp">Caractéristique</label>
|
||||
<select name="data.carac" id="caracselect" data-dtype="String">
|
||||
{{#select item.data.data.data.carac}}
|
||||
{{#select item.data.data.carac}}
|
||||
{{#each caracList as |carac key|}}
|
||||
<option value="{{key}}">{{carac.label}}</option>
|
||||
{{/each}}
|
||||
@ -22,7 +22,7 @@
|
||||
<div class="form-group">
|
||||
<label for="xp">Compétence</label>
|
||||
<select name="data.competence" id="competenceselect" data-dtype="String">
|
||||
{{#select item.data.data.data.competence}}
|
||||
{{#select item.data.data.competence}}
|
||||
{{#each competences as |competence key|}}
|
||||
<option value="{{competence.name}}">{{competence.name}}</option>
|
||||
{{/each}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user