Préparation roll-dialog attaques

Les attaques ne sont plus des armes modifiées
This commit is contained in:
2025-09-18 01:56:42 +02:00
parent 74c1f33427
commit 652c435833
17 changed files with 239 additions and 201 deletions

View File

@@ -30,20 +30,8 @@ export class RdDItemArme extends RdDItem {
//return "systems/foundryvtt-reve-de-dragon/icons/armes_armure/epee_sord.webp";
}
/* -------------------------------------------- */
static isArme(item) {
return item.type == ITEM_TYPES.arme || RdDItemCompetenceCreature.getCategorieAttaque(item);
}
static getArme(arme) {
switch (arme ? arme.type : '') {
case ITEM_TYPES.arme: return arme;
@@ -60,10 +48,10 @@ export class RdDItemArme extends RdDItem {
case ITEM_TYPES.arme:
switch (maniement) {
case 'competence': return arme.system.competence;
case 'unemain': return RdDItemArme.competence1Mains(arme);
case 'deuxmains': return RdDItemArme.competence2Mains(arme);
case 'tir': return arme.system.tir;
case 'lancer': return arme.system.lancer;
case '(1 main)': return arme.competence1Mains()
case '(2 mains)': return arme.competence2Mains()
case '(tir)': case 'tir': return arme.system.tir
case '(lancer)': case 'lancer': return arme.system.lancer;
}
}
return undefined
@@ -204,7 +192,7 @@ export class RdDItemArme extends RdDItem {
return Number(arme.system.dommages)
}
const tableauDegats = arme.system.dommages.split("/");
return Number(tableauDegats[maniement == 'unemain' ? 0 : 1])
return Number(tableauDegats[maniement == '(1 main)' ? 0 : 1])
}
return Number(arme.system.dommages);
}
@@ -213,17 +201,17 @@ export class RdDItemArme extends RdDItem {
static armeUneOuDeuxMains(arme, aUneMain) {
if (arme && !arme.system.cac) {
arme = foundry.utils.duplicate(arme);
arme.system.dommagesReels = RdDItemArme.dommagesReels(arme, aUneMain ? 'unemain' : 'deuxmains')
arme.system.dommagesReels = RdDItemArme.dommagesReels(arme, aUneMain ? '(1 main)' : '(2 mains)')
}
return arme;
}
static competence1Mains(arme) {
return arme.system.competence.replace(" 2 mains", " 1 main");
competence1Mains() {
return this.system.competence.replace(" 2 mains", " 1 main");
}
static competence2Mains(arme) {
return arme.system.competence.replace(" 1 main", " 2 mains");
competence2Mains() {
return this.system.competence.replace(" 1 main", " 2 mains");
}
static isUtilisable(arme) {
@@ -236,10 +224,8 @@ export class RdDItemArme extends RdDItem {
static isAttaque(arme) {
switch (arme.type) {
case ITEM_TYPES.arme:
return arme.system.equipe && (arme.system.resistance > 0 || arme.system.portee_courte > 0)
case ITEM_TYPES.competencecreature:
return arme.system.iscombat && RdDItemCompetenceCreature.isAttaque(item)
case ITEM_TYPES.arme: return arme.system.equipe && (arme.system.resistance > 0 || arme.system.portee_courte > 0)
case ITEM_TYPES.competencecreature: return arme.system.iscombat && RdDItemCompetenceCreature.isAttaque(item)
}
return false
}
@@ -247,7 +233,7 @@ export class RdDItemArme extends RdDItem {
static isParade(arme) {
switch (arme.type) {
case ITEM_TYPES.arme:
return arme.system.equipe && arme.system.resistance > 0 && true/* TODO: regarder la categorie d'arme?*/
return arme.system.resistance > 0 && true/* TODO: regarder la categorie d'arme?*/
case ITEM_TYPES.competencecreature:
return arme.system.iscombat && RdDItemCompetenceCreature.isParade(arme)
}
@@ -258,7 +244,7 @@ export class RdDItemArme extends RdDItem {
static corpsACorps(actor) {
let competence = actor?.getCompetenceCorpsACorps() ?? BASE_CORPS_A_CORPS
let melee = actor ? actor.system.carac['melee'].value : 0
return {
return new RdDItemArme({
_id: competence.id,
name: 'Corps à corps',
type: ITEM_TYPES.arme,
@@ -278,7 +264,7 @@ export class RdDItemArme extends RdDItem {
deuxmains: true,
categorie_parade: 'sans-armes'
}
}
})
}
static mainsNues(actor) {