Roll V2 sur compétences&combat

Corrections associées
Maintenant, active en mode rollV2
This commit is contained in:
2025-10-03 22:34:07 +02:00
parent 52065fd6f6
commit 47c4478303
12 changed files with 118 additions and 70 deletions

View File

@@ -4,6 +4,7 @@ import { BASE_CORPS_A_CORPS } from "./base-items.js";
import { Grammar } from "../grammar.js";
import { RdDInitiative } from "../initiative.mjs";
import { MappingCreatureArme } from "./mapping-creature-arme.mjs";
import { Misc } from "../misc.js";
const nomCategorieParade = {
"sans-armes": "Sans arme",
@@ -27,6 +28,10 @@ export const ATTAQUE_TYPE = {
LANCER: '(lancer)'
}
export const CORPS_A_CORPS = 'Corps à corps'
export const PUGILAT = 'pugilat'
export const EMPOIGNADE = 'empoignade'
/* -------------------------------------------- */
export class RdDItemArme extends RdDItem {
@@ -63,7 +68,7 @@ export class RdDItemArme extends RdDItem {
case ITEM_TYPES.competencecreature:
return MappingCreatureArme.armeCreature(arme);
}
return RdDItemArme.corpsACorps();
return RdDItemArme.pugilat();
}
static getCompetenceArme(arme, maniement) {
@@ -77,6 +82,7 @@ export class RdDItemArme extends RdDItem {
case ATTAQUE_TYPE.DEUX_MAINS: return arme.competence2Mains()
case ATTAQUE_TYPE.TIR: case 'tir': return arme.system.tir
case ATTAQUE_TYPE.LANCER: case 'lancer': return arme.system.lancer;
case ATTAQUE_TYPE.CORPS_A_CORPS: return CORPS_A_CORPS
}
}
return undefined
@@ -248,12 +254,20 @@ export class RdDItemArme extends RdDItem {
return this.system.resistance > 0 || (this.system.tir != '' && this.system.portee_courte > 0)
}
static corpsACorps(actor) {
let competence = actor?.getCompetenceCorpsACorps() ?? BASE_CORPS_A_CORPS
let melee = actor ? actor.system.carac['melee'].value : 0
static pugilat(actor) {
return RdDItemArme.$corpsACorps(actor, 'Pugilat', PUGILAT)
}
static empoignade(actor) {
return RdDItemArme.$corpsACorps(actor, 'Empoignade', EMPOIGNADE)
}
static $corpsACorps(actor, name, cac, system) {
const competence = actor?.getCompetenceCorpsACorps() ?? BASE_CORPS_A_CORPS
const melee = actor ? actor.system.carac['melee'].value : 0
return new RdDItemArme({
_id: competence.id,
name: 'Corps à corps',
_id: Misc.fakeId(cac),
name: name,
type: ITEM_TYPES.arme,
img: competence.img,
system: {
@@ -263,29 +277,15 @@ export class RdDItemArme extends RdDItem {
force: 0,
dommages: "0",
dommagesReels: 0,
mortalite: 'non-mortel',
competence: 'Corps à corps',
mortalite: cac == EMPOIGNADE ? EMPOIGNADE : 'non-mortel',
competence: CORPS_A_CORPS,
resistance: 1,
baseInit: 4,
cac: 'pugilat',
baseInit: cac == EMPOIGNADE ? 3 : 4,
cac: cac,
deuxmains: true,
categorie_parade: 'sans-armes'
}
})
}
static pugilat(actor) {
const pugilat = RdDItemArme.corpsACorps(actor)
pugilat.name = 'Pugilat'
return pugilat
}
static empoignade(actor) {
const empoignade = RdDItemArme.corpsACorps(actor)
empoignade.name = 'Empoignade'
empoignade.system.cac = 'empoignade'
empoignade.system.baseInit = 3
empoignade.system.mortalite = 'empoignade'
return empoignade
}
}