diff --git a/module/actor-sheet.js b/module/actor-sheet.js
index fbad5d0b..e2f6c4fe 100644
--- a/module/actor-sheet.js
+++ b/module/actor-sheet.js
@@ -20,7 +20,8 @@ export class RdDActorSheet extends ActorSheet {
tabs: [{navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "carac"}],
dragDrop: [{dragSelector: ".item-list .item", dropSelector: null}],
editCaracComp: false,
- cacherCompetencesNiveauBase: false,
+ montrerCompetencesNiveauBase: false,
+ montrerArchetype: false
});
}
@@ -28,17 +29,13 @@ export class RdDActorSheet extends ActorSheet {
getData() {
let data = super.getData();
- // Gestion du lock/unlock des zones éditables (carac+compétences)
data.data.editCaracComp = this.options.editCaracComp;
- data.data.lockUnlockText = (this.options.editCaracComp) ? "Bloquer" : "Débloquer";
- data.data.lockUnlockIcon = (this.options.editCaracComp) ? "unlocked.svg" : "locked.svg";
- // Gestion de l'affichage total/partiel des compétences
- data.data.cacherCompetencesNiveauBase = this.options.cacherCompetencesNiveauBase;
- data.data.showHideCompetenceText = (this.options.cacherCompetencesNiveauBase) ? "Montrer tout" : "Filtrer" ;
- data.data.showHideCompetenceIcon = (this.options.cacherCompetencesNiveauBase) ? "no-filter.svg" : "filter.svg";
+ data.data.montrerCompetencesNiveauBase = this.options.montrerCompetencesNiveauBase;
+ data.data.montrerArchetype = this.options.montrerArchetype;
let compCategorieNiveau = RdDUtility.getLevelCategory(); // recup catégorie
data.itemsByType = RdDUtility.buildItemsClassification(data.items);
+
// Competence per category
data.competenceByCategory = {};
let competenceXPTotal = 0;
@@ -54,7 +51,7 @@ export class RdDActorSheet extends ActorSheet {
if (!RdDUtility.isTronc( item.name ) ) // Ignorer les compétences 'troncs' à ce stade
competenceXPTotal += RdDUtility.computeCompetenceXPCost(item);
item.data.afficherCompetence = true;
- if ( data.data.cacherCompetencesNiveauBase && (Number(item.data.niveau) == Number(compCategorieNiveau[item.data.categorie]) ) ) {
+ if ( data.data.montrerCompetencesNiveauBase && (Number(item.data.niveau) == Number(compCategorieNiveau[item.data.categorie]) ) ) {
item.data.afficherCompetence = false;
}
list.push(item);
@@ -170,31 +167,6 @@ export class RdDActorSheet extends ActorSheet {
d.render(true);
}
- /* -------------------------------------------- */
- afficheResumeArchetype() {
- let levelCategory = RdDUtility.getLevelCategory();
- let labelCategory = RdDUtility.getLabelCategory();
- let contentHTML = "";
- for (let compCategory in this.competenceByCategory) {
- console.log(">>>>", compCategory);
- contentHTML += "
" + labelCategory[compCategory] + "";
- for (let comp of this.competenceByCategory[compCategory]) {
- if ( !comp.data.niveau_archetype ) comp.data.niveau_archetype = levelCategory[compCategory];
- contentHTML += "
" + comp.name + " : " + comp.data.niveau_archetype;
- }
- }
- let dialogData = {
- content: contentHTML,
- buttons: {
- one: {
- icon: '',
- label: "Fermer"
- }
- }
- }
- new Dialog( dialogData ).render(true);
- }
-
/* -------------------------------------------- */
async createEmptyTache( ) {
await this.actor.createOwnedItem( { name: 'Nouvelle tache', type: 'tache'}, { renderSheet: true } );
@@ -419,6 +391,11 @@ export class RdDActorSheet extends ActorSheet {
let compName = event.currentTarget.attributes.compname.value;
this.actor.updateCompetenceXP( 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) );
+ } );
}
// Gestion du bouton lock/unlock
@@ -426,8 +403,12 @@ export class RdDActorSheet extends ActorSheet {
this.options.editCaracComp = !this.options.editCaracComp;
this.render(true);
});
- html.find('.show-hide-competences').click((event) => {
- this.options.cacherCompetencesNiveauBase = !this.options.cacherCompetencesNiveauBase;
+ html.find('#show-hide-competences').click((event) => {
+ this.options.montrerCompetencesNiveauBase = !this.options.montrerCompetencesNiveauBase;
+ this.render(true);
+ });
+ html.find('#show-hide-archetype').click((event) => {
+ this.options.montrerArchetype = !this.options.montrerArchetype;
this.render(true);
});
@@ -458,12 +439,6 @@ export class RdDActorSheet extends ActorSheet {
html.find('#ethylisme').change((event) => {
this.actor.setEthylisme(parseInt(event.target.value) );
} );
-
- // Dialog d'archetype
- html.find("#affiche-archetype").click((event) => {
- this.afficheResumeArchetype()
- } );
-
html.find('#stress-test').click((event) => {
this.actor.stressTest();
this.render(true);
diff --git a/module/actor.js b/module/actor.js
index 6b2ec179..5d08602a 100644
--- a/module/actor.js
+++ b/module/actor.js
@@ -611,6 +611,18 @@ export class RdDActor extends Actor {
console.log("Competence not found", compName);
}
}
+
+ /* -------------------------------------------- */
+ async updateCompetenceArchetype( compName, compValue )
+ {
+ let comp = this.getCompetence(compName);
+ if ( comp ) {
+ const update = {_id: comp._id, 'data.niveau_archetype': compValue };
+ const updated = await this.updateEmbeddedEntity("OwnedItem", update); // Updates one EmbeddedEntity
+ } else {
+ console.log("Competence not found", compName);
+ }
+ }
/* -------------------------------------------- */
async updateCompteurValue( fieldName, fieldValue )
diff --git a/templates/actor-sheet.html b/templates/actor-sheet.html
index 8eb79477..31d24de7 100644
--- a/templates/actor-sheet.html
+++ b/templates/actor-sheet.html
@@ -98,7 +98,9 @@