Affichage de la cible dans la fenêtre d'attaque

This commit is contained in:
Vincent Vandemeulebrouck
2022-11-23 21:42:39 +01:00
parent 81aaf9e8d7
commit 7698147e97
5 changed files with 89 additions and 73 deletions

View File

@ -12,6 +12,7 @@ import { RdDRoll } from "./rdd-roll.js";
import { RdDRollTables } from "./rdd-rolltables.js";
import { ReglesOptionelles } from "./settings/regles-optionelles.js";
import { STATUSES } from "./settings/status-effects.js";
import { Targets } from "./targets.js";
/* -------------------------------------------- */
const premierRoundInit = [
@ -470,28 +471,6 @@ export class RdDCombat {
return true;
}
/* -------------------------------------------- */
static getTarget() {
const targets = game.user.targets;
switch (targets?.size ?? 0) {
case 1:
for (let t of targets) {
return t;
}
case 0:
ui.notifications.warn("Vous devez choisir une cible à attaquer!");
break;
default:
DialogSelectTarget.selectOneToken(t => console.info(`selecte target ${t}`));
ui.notifications.warn("Vous devez choisir une cible (et <strong>une seule</strong>) à attaquer!");
return;
}
}
static isTargetEntite(target) {
return target?.actor.type == 'entite' && target?.actor.system.definition.typeentite == ENTITE_NONINCARNE;
}
/* -------------------------------------------- */
static rddCombatTarget(target, attacker) {
const defender = target?.actor;
@ -506,7 +485,7 @@ export class RdDCombat {
let target = undefined
if (!defenderTokenId || !defender) {
console.warn(`RdDCombat.rddCombatForAttackerAndDefender: appel avec defenderTokenId ${defenderTokenId} incorrect, ou pas de defender correspondant`);
target = RdDCombat.getTarget()
target = Targets.getTarget()
if (!target) {
return;
}
@ -841,6 +820,7 @@ export class RdDCombat {
competence: competence,
surprise: this.attacker.getSurprise(true),
surpriseDefenseur: this.defender.getSurprise(true),
targetToken: Targets.extractTokenData(this.target),
essais: {}
};