Appv2 + DataModel migration completed

This commit is contained in:
2026-01-08 07:53:08 +01:00
parent 001f0cffa8
commit 0fd2130fb1
124 changed files with 5745 additions and 1195 deletions

View File

@@ -265,11 +265,14 @@ export class HawkmoonUtility {
/* -------------------------------------------- */
static getTarget() {
if (game.user.targets && game.user.targets.size == 1) {
console.log("getTarget - targets size:", game.user.targets?.size)
if (game.user.targets && game.user.targets.size >= 1) {
for (let target of game.user.targets) {
return target;
console.log("getTarget - Returning target:", target.id)
return target; // Prendre la première cible si plusieurs
}
}
console.log("getTarget - No target found")
return undefined;
}
@@ -443,11 +446,10 @@ export class HawkmoonUtility {
}
}
}
rollData.diceFormula += `+${rollData.bonusMalusContext}`
} else if (rollData.attr2) {
rollData.diceFormula += `+${rollData.attr.value}+${rollData.attr2.value}+${rollData.modificateur}+${rollData.bonusMalusContext}`
rollData.diceFormula += `+${rollData.attr.value}+${rollData.attr2.value}+${rollData.modificateur}`
} else {
rollData.diceFormula += `+${rollData.attr.value}*${rollData.multiplier}+${rollData.modificateur}+${rollData.bonusMalusContext}`
rollData.diceFormula += `+${rollData.attr.value}*${rollData.multiplier}+${rollData.modificateur}`
}
// Bonus arme naturelle en défense
@@ -651,9 +653,13 @@ export class HawkmoonUtility {
break;
}
chatOptions.alias = chatOptions.alias || name
// Ajouter le flag directement dans les options pour éviter les problèmes de timing
if (rollData) {
chatOptions.flags = { world: { "hawkmoon-roll": rollData } }
}
let msg = await ChatMessage.create(chatOptions)
console.log("=======>", rollData)
msg.setFlag("world", "hawkmoon-roll", rollData)
}
/* -------------------------------------------- */
@@ -664,8 +670,7 @@ export class HawkmoonUtility {
modificateursOptions: this.getModificateurOptions(),
pointAmeOptions: this.getPointAmeOptions(),
difficulte: 0,
modificateur: 0,
bonusMalusContext: 0,
modificateur: "0",
bonusArmeNaturelle: 0,
defenseurAveugle: false,
defenseurDeDos: false,
@@ -676,6 +681,8 @@ export class HawkmoonUtility {
tireurDeplacement: "immobile",
cibleCouvert: "aucun",
distanceTir: "porteemoyenne",
cibleDeplace: false,
cibleCaC: false,
attaqueCharge: false,
attaqueDesarme: false,
attaqueAmbidextre1: false,
@@ -690,10 +697,18 @@ export class HawkmoonUtility {
/* -------------------------------------------- */
static updateWithTarget(rollData) {
let target = HawkmoonUtility.getTarget()
console.log("updateWithTarget - Current target:", target)
console.log("updateWithTarget - Existing defenderTokenId:", rollData.defenderTokenId)
if (target) {
rollData.defenderTokenId = target.id
console.log("updateWithTarget - Set defenderTokenId to:", rollData.defenderTokenId)
}
// Utiliser la cible déjà enregistrée si aucune cible n'est actuellement sélectionnée
if (rollData.defenderTokenId) {
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
console.log("updateWithTarget - Defender actor:", defender.name)
rollData.armeDefense = defender.getBestDefenseValue()
console.log("updateWithTarget - armeDefense:", rollData.armeDefense)
rollData.armeAttaqueDefenseur = defender.getBestAttackValue()
rollData.targetVigueur = defender.getVigueur()
rollData.protectionDefenseur = defender.getProtection()
@@ -709,14 +724,23 @@ export class HawkmoonUtility {
rollData.difficulte = rollData.armeAttaqueDefenseur?.system?.totalOffensif || 0;
} else if (rollData.armeDefense) {
rollData.difficulte = rollData.armeDefense.system.totalDefensif
if (!rollData.desengager && !rollData.arme.system.armenaturelle && !rollData.arme.system.armefortune) {
console.log("updateWithTarget - Calculated difficulte from armeDefense:", rollData.difficulte)
if (rollData.arme && !rollData.desengager && !rollData.arme.system.armenaturelle && !rollData.arme.system.armefortune) {
if (rollData.armeDefense.system.armenaturelle || rollData.armeDefense.system.armefortune) {
rollData.bonusArmeNaturelle = 3
}
}
} else if (rollData.arme?.system.isDistance) {
// Pour les armes à distance, calculer la difficulté de base (protection + distance par défaut)
const distanceValues = { "porteecourte": 5, "porteemoyenne": 9, "porteelongue": 14 }
rollData.difficulte = rollData.protectionDefenseur + distanceValues[rollData.distanceTir || "porteemoyenne"]
console.log("updateWithTarget - Calculated difficulte for ranged:", rollData.difficulte, "= protection", rollData.protectionDefenseur, "+ distance", distanceValues[rollData.distanceTir || "porteemoyenne"])
} else {
console.log("updateWithTarget - No armeDefense found!")
ui.notifications.warn("Aucune arme de défense équipée, difficulté manuelle à positionner.")
}
} else {
console.log("updateWithTarget - No defenderTokenId, skipping target calculations")
}
}
@@ -807,7 +831,7 @@ export class HawkmoonUtility {
/* -------------------------------------------- */
static async confirmDelete(actorSheet, li) {
let itemId = li.data("item-id");
let itemId = li.dataset.itemId;
let msgTxt = "<p>Etes vous certain de vouloir supprimer cet item ?";
let buttons = {
delete: {
@@ -815,7 +839,7 @@ export class HawkmoonUtility {
label: "Oui !",
callback: () => {
actorSheet.actor.deleteEmbeddedDocuments("Item", [itemId]);
li.slideUp(200, () => actorSheet.render(false));
actorSheet.render(false);
}
},
cancel: {