forked from public/foundryvtt-reve-de-dragon
		
	Ajout arme morsure au chafouin
retravail sur les competences; - standardiser les noms de fichiers de templates - méthodes classify pour construire une multimap par type - méthodes pour charger les entrées du compendium - méthodes spécifiques au compétences déplacées
This commit is contained in:
		| @@ -7,22 +7,23 @@ import { RdDUtility } from "./rdd-utility.js"; | ||||
| import { HtmlUtility } from "./html-utility.js"; | ||||
| import { RdDItem } from "./item.js"; | ||||
| import { RdDItemArme } from "./item-arme.js"; | ||||
|   | ||||
| import { RdDItemCompetence } from "./item-competence.js"; | ||||
|  | ||||
| /* -------------------------------------------- */ | ||||
| export class RdDActorSheet extends ActorSheet { | ||||
|  | ||||
|   /** @override */ | ||||
| 	static get defaultOptions() { | ||||
|   static get defaultOptions() { | ||||
|     RdDUtility.initAfficheContenu(); | ||||
| 	  return mergeObject(super.defaultOptions, { | ||||
|   	  classes: ["rdd", "sheet", "actor"], | ||||
|   	  template: "systems/foundryvtt-reve-de-dragon/templates/actor-sheet.html", | ||||
|     return mergeObject(super.defaultOptions, { | ||||
|       classes: ["rdd", "sheet", "actor"], | ||||
|       template: "systems/foundryvtt-reve-de-dragon/templates/actor-sheet.html", | ||||
|       width: 640, | ||||
|       //height: 720, | ||||
|       tabs: [{navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "carac"}], | ||||
|       dragDrop: [{dragSelector: ".item-list .item", dropSelector: null}], | ||||
|       tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "carac" }], | ||||
|       dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }], | ||||
|       editCaracComp: false, | ||||
|       montrerCompetencesNiveauBase: false, | ||||
|       showCompNiveauBase: false, | ||||
|       montrerArchetype: false | ||||
|     }); | ||||
|   } | ||||
| @@ -32,79 +33,67 @@ export class RdDActorSheet extends ActorSheet { | ||||
|     let data = super.getData(); | ||||
|     if ( data.actor.type == 'creature' || data.actor.type == 'humanoide') return data; // Shortcut | ||||
|  | ||||
|     data.data.editCaracComp  = this.options.editCaracComp; | ||||
|     data.data.montrerCompetencesNiveauBase  = this.options.montrerCompetencesNiveauBase; | ||||
|     data.data.editCaracComp = this.options.editCaracComp; | ||||
|     data.data.showCompNiveauBase = this.options.showCompNiveauBase; | ||||
|     data.data.montrerArchetype = this.options.montrerArchetype; | ||||
|      | ||||
|     let compCategorieNiveau = RdDUtility.getLevelCategory(); // recup catégorie | ||||
|  | ||||
|     data.itemsByType = RdDItem.buildItemsClassification(data.items); | ||||
|  | ||||
|     // Competence per category | ||||
|     data.competenceByCategory = {}; | ||||
|     let competenceXPTotal = 0; | ||||
|     if (data.itemsByType.competence) {  | ||||
|       for (const item of data.itemsByType.competence) { | ||||
|         this.actor.checkCompetenceXP( item.name ); // Petite vérification experience | ||||
|         //console.log("Push...", item, item.data.categorie); | ||||
|         let list = data.competenceByCategory[item.data.categorie]; | ||||
|         if (!list) { | ||||
|           list = []; | ||||
|           data.competenceByCategory[item.data.categorie] = list; | ||||
|         } | ||||
|         if (!RdDUtility.isTronc( item.name ) ) // Ignorer les compétences 'troncs' à ce stade | ||||
|           competenceXPTotal += RdDUtility.computeCompetenceXPCost(item); | ||||
|         item.data.afficherCompetence = true; | ||||
|         if ( data.data.montrerCompetencesNiveauBase && (Number(item.data.niveau) == Number(compCategorieNiveau[item.data.categorie]) ) ) { | ||||
|           item.data.afficherCompetence = false; | ||||
|         } | ||||
|         list.push(item); | ||||
|       } | ||||
|     } | ||||
|     this.competenceByCategory = duplicate(data.competenceByCategory); // Sauvegarde locale | ||||
|     competenceXPTotal += RdDUtility.computeCompetenceTroncXP(data.itemsByType.competence); | ||||
|     data.competenceByCategory = RdDItem.classify( | ||||
|       data.itemsByType.competence, | ||||
|       item => item.data.categorie, | ||||
|       item => { | ||||
|         this.actor.checkCompetenceXP(item.name); // Petite vérification experience | ||||
|         item.data.showCompetence = !data.data.showCompNiveauBase || (Number(item.data.niveau) != Number(RdDUtility.getLevelCategory(item.data.categorie))); | ||||
|         // Ignorer les compétences 'troncs' à ce stade | ||||
|         competenceXPTotal += RdDItemCompetence.isTronc(item.name) ? 0 : RdDItemCompetence.computeCompetenceXPCost(item); | ||||
|         return item; | ||||
|       }); | ||||
|     competenceXPTotal += RdDItemCompetence.computeCompetenceTroncXP(data.itemsByType.competence); | ||||
|     data.data.competenceXPTotal = competenceXPTotal; | ||||
|     //console.log("XP competence : ", competenceXPTotal); | ||||
|  | ||||
|     // Compute current carac sum | ||||
|     let sum = 0; | ||||
|     for (let caracName in data.data.carac) {  | ||||
|       let carac  = data.data.carac[caracName]; | ||||
|       if (!carac.derivee) {  | ||||
|         sum += parseInt(carac.value); | ||||
|       }  | ||||
|     for (let caracName in data.data.carac) { | ||||
|       let currentCarac = data.data.carac[caracName]; | ||||
|       if (!currentCarac.derivee) { | ||||
|         sum += parseInt(currentCarac.value); | ||||
|       } | ||||
|     } | ||||
|     data.data.caracSum = sum; | ||||
|  | ||||
|     // Force empty arme, at least for Esquive | ||||
|     if (data.itemsByType.arme == undefined ) data.itemsByType.arme = []; | ||||
|     for (const arme of data.itemsByType.arme) {       | ||||
|     if (data.itemsByType.arme == undefined) data.itemsByType.arme = []; | ||||
|     for (const arme of data.itemsByType.arme) { | ||||
|       arme.data.niveau = 0; // Per default, TODO to be fixed | ||||
|       for ( const melee of data.competenceByCategory.melee ) { | ||||
|         if (melee.name == arme.data.competence )  | ||||
|       for (const melee of data.competenceByCategory.melee) { | ||||
|         if (melee.name == arme.data.competence) | ||||
|           arme.data.niveau = melee.data.niveau | ||||
|       } | ||||
|       for ( const tir of data.competenceByCategory.tir ) { | ||||
|         if (tir.name == arme.data.competence )  | ||||
|       for (const tir of data.competenceByCategory.tir) { | ||||
|         if (tir.name == arme.data.competence) | ||||
|           arme.data.niveau = tir.data.niveau | ||||
|       } | ||||
|       for ( const lancer of data.competenceByCategory.lancer ) { | ||||
|         if (lancer.name == arme.data.competence )  | ||||
|       for (const lancer of data.competenceByCategory.lancer) { | ||||
|         if (lancer.name == arme.data.competence) | ||||
|           arme.data.niveau = lancer.data.niveau | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     // To avoid armour and so on... | ||||
|     data.data.combat = duplicate( RdDUtility.checkNull(data.itemsByType['arme'])); | ||||
|     data.data.combat = RdDUtility._finalizeArmeList( data.data.combat, data.itemsByType.competence, data.data.carac ); | ||||
|     data.data.combat = duplicate(RdDUtility.checkNull(data.itemsByType['arme'])); | ||||
|     data.data.combat = RdDUtility._finalizeArmeList(data.data.combat, data.itemsByType.competence, data.data.carac); | ||||
|  | ||||
|     if (data.competenceByCategory && data.competenceByCategory.melee) {  | ||||
|     if (data.competenceByCategory && data.competenceByCategory.melee) { | ||||
|       //Specific case for Esquive and Corps à Corps | ||||
|       for ( const melee of data.competenceByCategory.melee ) { | ||||
|       for (const melee of data.competenceByCategory.melee) { | ||||
|         if (melee.name == "Esquive") | ||||
|           data.data.combat.push( { name: "Esquive", data: { niveau: melee.data.niveau, description: "", force: 6, initiative: "", competence: "Esquive", dommages: 0} } ); | ||||
|           data.data.combat.push({ name: "Esquive", data: { niveau: melee.data.niveau, description: "", force: 6, initiative: "", competence: "Esquive", dommages: 0 } }); | ||||
|         if (melee.name == "Corps à corps") { | ||||
|           let cc_init = RdDUtility.calculInitiative(melee.data.niveau, data.data.carac['melee'].value); | ||||
|           data.data.combat.push( RdDItemArme.mainsNues({ niveau: melee.data.niveau, initiative: cc_init }) ); | ||||
|           data.data.combat.push(RdDItemArme.mainsNues({ niveau: melee.data.niveau, initiative: cc_init })); | ||||
|         } | ||||
|       } | ||||
|     } | ||||
| @@ -113,7 +102,7 @@ export class RdDActorSheet extends ActorSheet { | ||||
|     data.data.carac.taille.isTaille = true; // To avoid button link; | ||||
|     data.data.compteurs.chance.isChance = true; | ||||
|     data.data.blessures.resume = this.actor.computeResumeBlessure(data.data.blessures); | ||||
|      | ||||
|  | ||||
|     // Mise à jour de l'encombrement total | ||||
|     this.actor.computeEncombrementTotalEtMalusArmure(); | ||||
|     // Common data | ||||
| @@ -122,23 +111,22 @@ export class RdDActorSheet extends ActorSheet { | ||||
|     data.data.isGM = game.user.isGM; | ||||
|     data.ajustementsConditions = CONFIG.RDD.ajustementsConditions; | ||||
|     data.difficultesLibres = CONFIG.RDD.difficultesLibres; | ||||
|          | ||||
|  | ||||
|     // low is normal, this the base used to compute the grid. | ||||
|     data.data.fatigue = { | ||||
|        malus: RdDUtility.calculMalusFatigue(data.data.sante.fatigue.value, data.data.sante.endurance.max), | ||||
|        html: "<table class='table-fatigue'>" + RdDUtility.makeHTMLfatigueMatrix( data.data.sante.fatigue.value,  data.data.sante.endurance.max ).html() + "</table>" | ||||
|       } | ||||
|      | ||||
|     RdDUtility.filterItemsPerTypeForSheet(data ); | ||||
|     data.data.sortReserve   = data.data.reve.reserve.list;  | ||||
|       malus: RdDUtility.calculMalusFatigue(data.data.sante.fatigue.value, data.data.sante.endurance.max), | ||||
|       html: "<table class='table-fatigue'>" + RdDUtility.makeHTMLfatigueMatrix(data.data.sante.fatigue.value, data.data.sante.endurance.max).html() + "</table>" | ||||
|     } | ||||
|  | ||||
|     RdDUtility.filterItemsPerTypeForSheet(data); | ||||
|     data.data.sortReserve = data.data.reve.reserve.list; | ||||
|     data.data.caseSpeciales = data.itemsByType['casetmr']; | ||||
|     RdDUtility.buildArbreDeConteneur( this, data ); | ||||
|     RdDUtility.buildArbreDeConteneur(this, data); | ||||
|     data.data.surEncombrementMessage = (data.data.compteurs.surenc.value < 0) ? "Sur-Encombrement!" : ""; | ||||
|  | ||||
|     return data; | ||||
|   } | ||||
|  | ||||
|    | ||||
|   /* -------------------------------------------- */ | ||||
|   async _onDrop(event) { | ||||
|     await RdDUtility.processItemDropEvent(this, event); | ||||
| @@ -187,43 +175,43 @@ export class RdDActorSheet extends ActorSheet { | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   async createEmptyTache( ) { | ||||
|     await this.actor.createOwnedItem( { name: 'Nouvelle tache', type: 'tache'}, { renderSheet: true } ); | ||||
|   async createEmptyTache() { | ||||
|     await this.actor.createOwnedItem({ name: 'Nouvelle tache', type: 'tache' }, { renderSheet: true }); | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   async creerObjet( ) { | ||||
|   async creerObjet() { | ||||
|     let itemType = $("#creer-equipement").val(); | ||||
|     await this.actor.createOwnedItem( { name: 'Nouveau '+itemType, type: itemType}, { renderSheet: true } ); | ||||
|     await this.actor.createOwnedItem({ name: 'Nouveau ' + itemType, type: itemType }, { renderSheet: true }); | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   async selectObjetType( ) { | ||||
|   async selectObjetType() { | ||||
|     let itemType = ["objet", "arme", "armure", "conteneur", "herbe", "ingredient", "livre", "potion", "munition", "monnaie"]; | ||||
|     let options = '<span class="competence-label">Selectionnez le type d\'équipement</span><select id="creer-equipement">'; | ||||
|     for( let typeName of itemType) { | ||||
|       options += '<option value="'+typeName+'">'+typeName+'</option>' | ||||
|     for (let typeName of itemType) { | ||||
|       options += '<option value="' + typeName + '">' + typeName + '</option>' | ||||
|     } | ||||
|     options += '</select>'; | ||||
|     let d = new Dialog( {  | ||||
|         title: "Créer un équipement", | ||||
|         content: options, | ||||
|         buttons: { | ||||
|           one: { | ||||
|     let d = new Dialog({ | ||||
|       title: "Créer un équipement", | ||||
|       content: options, | ||||
|       buttons: { | ||||
|         one: { | ||||
|           icon: '<i class="fas fa-check"></i>', | ||||
|           label: "Créer l'objet", | ||||
|           callback: () => this.creerObjet() | ||||
|           } | ||||
|         } | ||||
|         }); | ||||
|       } | ||||
|     }); | ||||
|     d.render(true); | ||||
|   } | ||||
|    | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   /** @override */ | ||||
| 	activateListeners(html) { | ||||
|   activateListeners(html) { | ||||
|     super.activateListeners(html); | ||||
|      | ||||
|  | ||||
|     HtmlUtility._showControlWhen($(".gm-only"), game.user.isGM); | ||||
|  | ||||
|     // Everything below here is only needed if the sheet is editable | ||||
| @@ -235,11 +223,11 @@ export class RdDActorSheet extends ActorSheet { | ||||
|       const item = this.actor.getOwnedItem(li.data("item-id")); | ||||
|       item.sheet.render(true); | ||||
|     }); | ||||
|      | ||||
|  | ||||
|     // Delete Inventory Item | ||||
|     html.find('.item-delete').click(ev => { | ||||
|       const li = $(ev.currentTarget).parents(".item"); | ||||
|       this.confirmerSuppression( li ); | ||||
|       this.confirmerSuppression(li); | ||||
|     }); | ||||
|  | ||||
|     html.find('#encaisser-direct').click(ev => { | ||||
| @@ -260,28 +248,28 @@ export class RdDActorSheet extends ActorSheet { | ||||
|     html.find('#nettoyer-conteneurs').click(ev => { | ||||
|       this.actor.nettoyerConteneurs(); | ||||
|     }); | ||||
|      | ||||
|  | ||||
|     // Blessure control | ||||
|     html.find('.blessure-control').click(ev => { | ||||
|       const li   = $(ev.currentTarget).parents(".item"); | ||||
|       let btype  = li.data("blessure-type"); | ||||
|       let index  = li.data('blessure-index'); | ||||
|       const li = $(ev.currentTarget).parents(".item"); | ||||
|       let btype = li.data("blessure-type"); | ||||
|       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.actor.manageBlessureFromSheet(btype, index, active).then(this.render(true)); | ||||
|     }); | ||||
|  | ||||
|     // Blessure data | ||||
|     html.find('.blessures-soins').change(ev => { | ||||
|       const li   = $(ev.currentTarget).parents(".item"); | ||||
|       let btype  = li.data('blessure-type'); | ||||
|       let index  = li.data('blessure-index'); | ||||
|       let psoins    = li.find('input[name=premiers_soins]').val(); | ||||
|       const li = $(ev.currentTarget).parents(".item"); | ||||
|       let btype = li.data('blessure-type'); | ||||
|       let index = li.data('blessure-index'); | ||||
|       let psoins = li.find('input[name=premiers_soins]').val(); | ||||
|       let pcomplets = li.find('input[name=soins_complets]').val(); | ||||
|       let jours     = li.find('input[name=jours]').val(); | ||||
|       let loc       = li.find('input[name=localisation]').val(); | ||||
|       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.actor.setDataBlessureFromSheet(btype, index, psoins, pcomplets, jours, loc).then(this.render(true)); | ||||
|     }); | ||||
|  | ||||
|     // Equip Inventory Item | ||||
| @@ -294,11 +282,11 @@ export class RdDActorSheet extends ActorSheet { | ||||
|     // Roll Carac | ||||
|     html.find('.carac-label a').click((event) => { | ||||
|       let caracName = event.currentTarget.attributes.name.value; | ||||
|       this.actor.rollCarac( caracName.toLowerCase() ); | ||||
|       this.actor.rollCarac(caracName.toLowerCase()); | ||||
|     }); | ||||
|  | ||||
|     html.find('#chance-actuelle').click((event) => { | ||||
|       this.actor.rollCarac( 'chance-actuelle' ); | ||||
|       this.actor.rollCarac('chance-actuelle'); | ||||
|     }); | ||||
|  | ||||
|     html.find('#chance-appel').click((event) => { | ||||
| @@ -308,26 +296,26 @@ export class RdDActorSheet extends ActorSheet { | ||||
|     html.find('#jet-astrologie').click((event) => { | ||||
|       this.actor.astrologieNombresAstraux(); | ||||
|     }); | ||||
|      | ||||
|  | ||||
|     // Roll Skill | ||||
|     html.find('.competence-label a').click((event) => { | ||||
|       let compName = event.currentTarget.text; | ||||
|       this.actor.rollCompetence( compName); | ||||
|       this.actor.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 ); | ||||
|       const li = $(event.currentTarget).parents(".item"); | ||||
|       let tacheId = li.data('item-id'); | ||||
|       this.actor.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 ); | ||||
|       const li = $(event.currentTarget).parents(".item"); | ||||
|       let meditationId = li.data('item-id'); | ||||
|       this.actor.rollMeditation(meditationId); | ||||
|     }); | ||||
|      | ||||
|  | ||||
|     // Points de reve actuel | ||||
|     html.find('.ptreve-actuel a').click((event) => { | ||||
|       this.actor.rollCarac( 'reve-actuel' ); | ||||
|       this.actor.rollCarac('reve-actuel'); | ||||
|     }); | ||||
|  | ||||
|     // Roll Weapon1 | ||||
| @@ -338,28 +326,28 @@ export class RdDActorSheet extends ActorSheet { | ||||
|     }); | ||||
|     // 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 ); | ||||
|       if ( combatant ) { | ||||
|       let combatant = game.combat.data.combatants.find(c => c.actor.data._id == this.actor.data._id); | ||||
|       if (combatant) { | ||||
|         let armeName = event.currentTarget.attributes['data-arme-name'].value; | ||||
|         let arme = this.armesList.find( a => a.name == armeName); | ||||
|         RdDUtility.rollInitiativeCompetence( combatant._id, arme); | ||||
|         let arme = this.armesList.find(a => a.name == armeName); | ||||
|         RdDUtility.rollInitiativeCompetence(combatant._id, arme); | ||||
|       } else { | ||||
|         ui.notifications.info("Impossible de lancer l'initiative sans être dans un combat."); | ||||
|       } | ||||
|     }); | ||||
|     // Display TMR, visuualisation | ||||
|     html.find('#visu-tmr').click((event) => { | ||||
|       this.actor.displayTMR( "visu"); | ||||
|       this.actor.displayTMR("visu"); | ||||
|     }); | ||||
|  | ||||
|     // Display TMR, normal | ||||
|     html.find('#monte-tmr').click((event) => { | ||||
|       this.actor.displayTMR( "normal" ); | ||||
|       this.actor.displayTMR("normal"); | ||||
|     }); | ||||
|      | ||||
|  | ||||
|     // Display TMR, fast  | ||||
|     html.find('#monte-tmr-rapide').click((event) => { | ||||
|       this.actor.displayTMR( "rapide" ); | ||||
|       this.actor.displayTMR("rapide"); | ||||
|     }); | ||||
|  | ||||
|     html.find('#dormir-une-heure').click((event) => { | ||||
| @@ -391,38 +379,38 @@ export class RdDActorSheet extends ActorSheet { | ||||
|     // Display info about queue | ||||
|     html.find('.conteneur-name a').click((event) => { | ||||
|       let myID = event.currentTarget.attributes['data-item-id'].value; | ||||
|       RdDUtility.toggleAfficheContenu( myID ); | ||||
|       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.", ""); | ||||
|         //console.log("Value changed :", event, caracName); | ||||
|         this.actor.updateCarac( caracName, parseInt(event.target.value) ); | ||||
|       } ); | ||||
|         this.actor.updateCarac(caracName, parseInt(event.target.value)); | ||||
|       }); | ||||
|       html.find('.carac-xp').change((event) => { | ||||
|         let caracName = event.currentTarget.name.replace(".xp", "").replace("data.carac.", ""); | ||||
|         //console.log("Value changed :", event, caracName); | ||||
|         this.actor.updateCaracXP( caracName, parseInt(event.target.value) ); | ||||
|       } ); | ||||
|         this.actor.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.actor.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.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) ); | ||||
|       } ); | ||||
|         this.actor.updateCompetenceArchetype(compName, parseInt(event.target.value)); | ||||
|       }); | ||||
|     } | ||||
|  | ||||
|     // Gestion du bouton lock/unlock | ||||
| @@ -431,41 +419,41 @@ export class RdDActorSheet extends ActorSheet { | ||||
|       this.render(true); | ||||
|     }); | ||||
|     html.find('#show-hide-competences').click((event) => { | ||||
|       this.options.montrerCompetencesNiveauBase = !this.options.montrerCompetencesNiveauBase; | ||||
|       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); | ||||
|     }); | ||||
|      | ||||
|  | ||||
|     // On pts de reve change | ||||
|     html.find('.pointsreve-value').change((event) => { | ||||
|       let reveValue = event.currentTarget.value; | ||||
|       let reve = duplicate( this.actor.data.data.reve.reve ); | ||||
|       let reve = duplicate(this.actor.data.data.reve.reve); | ||||
|       reve.value = reveValue; | ||||
|       this.actor.update( { "data.reve.reve": reve } ); | ||||
|     } ); | ||||
|    | ||||
|       this.actor.update({ "data.reve.reve": reve }); | ||||
|     }); | ||||
|  | ||||
|     // On seuil de reve change | ||||
|     html.find('.seuil-reve-value').change((event) => { | ||||
|       console.log("seuil-reve-value", event.currentTarget) | ||||
|       this.actor.setPointsDeSeuil(event.currentTarget.value); | ||||
|     } ); | ||||
|     }); | ||||
|  | ||||
|     html.find('#attribut-protection-edit').change((event) => { | ||||
|       this.actor.updateProtectionValue( event.currentTarget.attributes.name.value, parseInt(event.target.value) ); | ||||
|     } ); | ||||
|       this.actor.updateProtectionValue(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.updateCompteurValue( fieldName, parseInt(event.target.value) ); | ||||
|     } ); | ||||
|       this.actor.updateCompteurValue(fieldName, parseInt(event.target.value)); | ||||
|     }); | ||||
|  | ||||
|     html.find('#ethylisme').change((event) => { | ||||
|       this.actor.setEthylisme(parseInt(event.target.value) ); | ||||
|     } ); | ||||
|       this.actor.setEthylisme(parseInt(event.target.value)); | ||||
|     }); | ||||
|     html.find('#stress-test').click((event) => { | ||||
|       this.actor.stressTest(); | ||||
|       this.render(true); | ||||
| @@ -494,15 +482,15 @@ export class RdDActorSheet extends ActorSheet { | ||||
|  | ||||
|     html.find('.monnaie-plus').click((event) => { | ||||
|       const li = $(event.currentTarget).parents(".item"); | ||||
|       this.actor.monnaieIncDec( li.data("item-id"), 1 ); | ||||
|       this.actor.monnaieIncDec(li.data("item-id"), 1); | ||||
|       this.render(true); | ||||
|     }); | ||||
|     html.find('.monnaie-moins').click((event) => { | ||||
|       const li = $(event.currentTarget).parents(".item"); | ||||
|       this.actor.monnaieIncDec( li.data("item-id"), -1 ); | ||||
|       this.actor.monnaieIncDec(li.data("item-id"), -1); | ||||
|       this.render(true); | ||||
|     }); | ||||
|      | ||||
|  | ||||
|     html.find('#vie-plus').click((event) => { | ||||
|       this.actor.santeIncDec("vie", 1); | ||||
|       this.render(true); | ||||
| @@ -536,12 +524,12 @@ export class RdDActorSheet extends ActorSheet { | ||||
|       this.render(true); | ||||
|     }); | ||||
|   } | ||||
|    | ||||
|  | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|  | ||||
|   /** @override */ | ||||
|   setPosition(options={}) { | ||||
|   setPosition(options = {}) { | ||||
|     const position = super.setPosition(options); | ||||
|     const sheetBody = this.element.find(".sheet-body"); | ||||
|     const bodyHeight = position.height - 192; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user