From 7198eb621d345dda6c107b24f803f6fe4240700d Mon Sep 17 00:00:00 2001 From: sladecraven Date: Sun, 11 Sep 2022 16:11:13 +0200 Subject: [PATCH] Fix entite --- module/actor.js | 8 ++-- module/rdd-combat.js | 74 +++++++++++++++++----------------- module/rdd-resolution-table.js | 1 + system.json | 4 +- 4 files changed, 45 insertions(+), 42 deletions(-) diff --git a/module/actor.js b/module/actor.js index 31724a64..5b1dbe3d 100644 --- a/module/actor.js +++ b/module/actor.js @@ -3582,14 +3582,16 @@ export class RdDActor extends Actor { /* -------------------------------------------- */ isEntite(typeentite = [] ) { - return this.data.type == 'entite' && (typeentite.length == 0 || typeentite.includes(this.data.data.typeentite)); + return this.data.type == 'entite' && (typeentite.length == 0 || typeentite.includes(this.data.data.definition.typeentite)); } /* -------------------------------------------- */ isEntiteAccordee(attaquant) { - if (!this.isEntite([ENTITE_INCARNE])) - { return true; } + if (!this.isEntite([ENTITE_INCARNE])) { + return true; + } let resonnance = Misc.templateData(this).sante.resonnance; + console.log("RESONN", resonnance) return (resonnance.actors.find(it => it == attaquant.id)); } diff --git a/module/rdd-combat.js b/module/rdd-combat.js index 0cc4a587..816949fa 100644 --- a/module/rdd-combat.js +++ b/module/rdd-combat.js @@ -100,14 +100,14 @@ export class RdDCombatManager extends Combat { const carac = combatant.actor.data.data.carac[competence.data.defaut_carac].value; const niveau = competence.data.niveau; const bonusEcaille = (armeCombat?.data.magique) ? armeCombat.data.ecaille_efficacite : 0; - rollFormula = RdDCombatManager.formuleInitiative(2, carac, niveau, bonusEcaille); + rollFormula = RdDCombatManager.formuleInitiative(2, carac, niveau, bonusEcaille); } } } //console.log("Combatat", c); const roll = combatant.getInitiativeRoll(rollFormula); - if ( !roll.total) { - roll.evaluate( {async: false}); + if (!roll.total) { + roll.evaluate({ async: false }); } if (roll.total <= 0) roll.total = 0.00; console.log("Compute init for", rollFormula, roll.total, combatant); @@ -187,7 +187,7 @@ export class RdDCombatManager extends Combat { action.data.dommagesReels = Number(tableauDegats[0]); arme2main.data.dommagesReels = Number(tableauDegats[1]); } - else{ + else { ui.notifications.info("Les dommages de l'arme à 1/2 mains " + action.name + " ne sont pas corrects (ie sous la forme X/Y)"); } } @@ -197,24 +197,23 @@ export class RdDCombatManager extends Combat { } static listActionsPossessions(actor) { - return RdDCombatManager._indexActions(actor.getPossessions().map(p => - { - return { - name: p.name, - action: 'conjurer', - data: { - competence: p.name, - possessionid: p.data.data.possessionid, - } + return RdDCombatManager._indexActions(actor.getPossessions().map(p => { + return { + name: p.name, + action: 'conjurer', + data: { + competence: p.name, + possessionid: p.data.data.possessionid, } - })); + } + })); } /* -------------------------------------------- */ static listActionsCombat(combatant) { const actor = combatant.actor; let actions = RdDCombatManager.listActionsPossessions(actor); - if (actions.length>0) { + if (actions.length > 0) { return actions; } let items = actor.data.items; @@ -329,19 +328,19 @@ export class RdDCombatManager extends Combat { } else { compData = Misc.data(RdDItemCompetence.findCompetence(combatant.actor.data.items, action.data.competence)); compNiveau = compData.data.niveau; - initInfo = action.name + " / " + action.data.competence; - - if (combatant.actor.data.type == 'creature' || combatant.actor.data.type == 'entite') { - caracForInit = compData.data.carac_value; - if (compData.data.categorie == "lancer") { - initOffset = 7; - } - else { - initOffset = 5; - } - } else { - caracForInit = Misc.data(combatant.actor).data.carac[compData.data.defaut_carac].value; - initOffset = RdDCombatManager._baseInitOffset(compData.data.categorie, action); + initInfo = action.name + " / " + action.data.competence; + + if (combatant.actor.data.type == 'creature' || combatant.actor.data.type == 'entite') { + caracForInit = compData.data.carac_value; + if (compData.data.categorie == "lancer") { + initOffset = 7; + } + else { + initOffset = 5; + } + } else { + caracForInit = Misc.data(combatant.actor).data.carac[compData.data.defaut_carac].value; + initOffset = RdDCombatManager._baseInitOffset(compData.data.categorie, action); } } @@ -372,7 +371,7 @@ export class RdDCombatManager extends Combat { static displayInitiativeMenu(html, combatantId) { console.log("Combatant ; ", combatantId); const combatant = game.combat.combatants.get(combatantId); - if (! (combatant?.actor) ) { + if (!(combatant?.actor)) { ui.notifications.warn(`Le combatant ${combatant.name ?? combatantId} n'est pas associé à un acteur, impossible de déterminer ses actions de combat!`) return; } @@ -457,7 +456,7 @@ export class RdDCombat { else { const defender = target?.actor; const defenderTokenId = target?.data._id; - if ( defender.type == 'entite' && defender.data.data.definition.typeentite == ENTITE_NONINCARNE) { + if (defender.type == 'entite' && defender.data.data.definition.typeentite == ENTITE_NONINCARNE) { ui.notifications.warn("Vous ne pouvez pas cibler une entité non incarnée !!!!"); } else { return this.create(attacker, defender, defenderTokenId, target) @@ -567,7 +566,7 @@ export class RdDCombat { async onEvent(button, event) { const chatMessage = ChatUtility.getChatMessage(event); const defenderRoll = ChatUtility.getMessageData(chatMessage, 'defender-roll'); - const attackerRoll = defenderRoll?.attackerRoll ?? ChatUtility.getMessageData(chatMessage, 'attacker-roll') ; + const attackerRoll = defenderRoll?.attackerRoll ?? ChatUtility.getMessageData(chatMessage, 'attacker-roll'); console.log('RdDCombat', attackerRoll, defenderRoll); const defenderTokenId = event.currentTarget.attributes['data-defenderTokenId']?.value; @@ -760,7 +759,7 @@ export class RdDCombat { /* -------------------------------------------- */ async _onAttaqueParticuliere(rollData) { - + const isMeleeDiffNegative = (rollData.competence.type == 'competencecreature' || rollData.selectedCarac.label == "Mêlée") && rollData.diffLibre < 0; // force toujours, sauf empoignade // finesse seulement en mélée, pour l'empoignade, ou si la difficulté libre est de -1 minimum @@ -778,7 +777,7 @@ export class RdDCombat { else if (!isForce && !isFinesse && isRapide) { return await this.choixParticuliere(rollData, "rapidite"); } - + const choixParticuliere = await ChatMessage.create({ alias: this.attacker.name, whisper: ChatUtility.getWhisperRecipientsAndGMs(this.attacker.name), @@ -817,7 +816,7 @@ export class RdDCombat { } /* -------------------------------------------- */ - isPossession( attackerRoll) { + isPossession(attackerRoll) { return attackerRoll.selectedCarac.label.toLowerCase() == 'possession'; } @@ -962,9 +961,8 @@ export class RdDCombat { const arme = this.defender.getArmeParade(armeParadeId); console.log("RdDCombat.parade >>>", attackerRoll, armeParadeId, arme); const competence = Misc.templateData(arme)?.competence; - if (competence == undefined) - { - console.error("Pas de compétence de parade associée à ", arme) ; + if (competence == undefined) { + console.error("Pas de compétence de parade associée à ", arme); return; } @@ -1247,6 +1245,8 @@ export class RdDCombat { /* -------------------------------------------- */ /* retourne true si on peut continuer, false si on ne peut pas continuer */ async accorderEntite(when = 'avant-encaissement') { + console.log("TETETET", game.settings.get(SYSTEM_RDD, "accorder-entite-cauchemar"), this.defender.isEntite([ENTITE_INCARNE]), this.defender.isEntiteAccordee(this.attacker)) + if (when != game.settings.get(SYSTEM_RDD, "accorder-entite-cauchemar") || this.defender == undefined || !this.defender.isEntite([ENTITE_INCARNE]) diff --git a/module/rdd-resolution-table.js b/module/rdd-resolution-table.js index 6db89650..fbfbdfb8 100644 --- a/module/rdd-resolution-table.js +++ b/module/rdd-resolution-table.js @@ -158,6 +158,7 @@ export class RdDResolutionTable { if (difficulte < -10) { return duplicate(levelDown.find(levelData => levelData.level == difficulte)); } + console.log("DATA :", caracValue, difficulte) return duplicate(RdDResolutionTable.resolutionTable[caracValue][difficulte + 10]); } diff --git a/system.json b/system.json index 273466e5..01b38538 100644 --- a/system.json +++ b/system.json @@ -29,7 +29,7 @@ "url": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/", "license": "LICENSE.txt", "flags": {}, - "version": "1.5.87", + "version": "1.5.88", "minimumCoreVersion": "0.8.0", "compatibleCoreVersion": "9", "scripts": [], @@ -500,7 +500,7 @@ "dependencies": [], "socket": true, "manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/v1.5/system.json", - "download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-1.5.87.zip", + "download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-1.5.88.zip", "protected": false, "gridDistance": 1, "gridUnits": "m",