simplification/organisation RdDActorSheet.getData

This commit is contained in:
Vincent Vandemeulebrouck
2021-03-18 23:55:26 +01:00
parent dcc450db63
commit 17d863482d
5 changed files with 58 additions and 57 deletions

View File

@ -1,4 +1,5 @@
import { RdDItemCompetenceCreature } from "./item-competencecreature.js"
import { RdDCombatManager } from "./rdd-combat.js";
const nomCategorieParade = {
"sans-armes": "Sans arme / armes naturelles",
@ -30,6 +31,17 @@ export class RdDItemArme extends Item {
return RdDItemArme.mainsNues();
}
static computeNiveauArmes(armes, competences) {
for (const arme of armes) {
arme.data.niveau = RdDItemArme.niveauCompetenceArme(arme, competences);
}
}
static niveauCompetenceArme(arme, competences) {
const compArme = competences.find(it => it.name == arme.data.competence);
return compArme?.data.niveau ?? -8;
}
/* -------------------------------------------- */
static getNomCategorieParade(arme) {
const categorie = arme?.data ? RdDItemArme.getCategorieParade(arme) : arme;
@ -38,7 +50,7 @@ export class RdDItemArme extends Item {
/* -------------------------------------------- */
static needArmeResist(armeAttaque, armeParade) {
if (!armeAttaque || !armeParade){
if (!armeAttaque || !armeParade) {
return false;
}
// Epées parant une arme de bois (cf. page 115 ), une résistance est nécessaire
@ -54,7 +66,7 @@ export class RdDItemArme extends Item {
return arme.data.categorie_parade;
}
// pour compatibilité avec des personnages existants
if (arme.type == 'competencecreature' || arme.data.categorie == 'creature' ) {
if (arme.type == 'competencecreature' || arme.data.categorie == 'creature') {
return arme.data.categorie_parade || (arme.data.isparade ? 'sans-armes' : '');
}
if (!arme.type.match(/arme|competencecreature/)) {
@ -86,7 +98,7 @@ export class RdDItemArme extends Item {
/* -------------------------------------------- */
static needParadeSignificative(armeAttaque, armeParade) {
if (!armeAttaque || !armeParade){
if (!armeAttaque || !armeParade) {
return false;
}
// categories d'armes à la parade (cf. page 115 )
@ -145,10 +157,16 @@ export class RdDItemArme extends Item {
}
static isArmeUtilisable(item) {
return item.type == 'arme' && item.data.equipe && (item.data.resistance > 0 || item.data.portee_courte>0);
return item.type == 'arme' && item.data.equipe && (item.data.resistance > 0 || item.data.portee_courte > 0);
}
static mainsNues(actorData={}) {
static ajoutCorpsACorps(armes, competences, carac) {
let corpsACorps = competences.find(it => it.name == 'Corps à corps') ?? { data: { niveau: -6 } };
let init = RdDCombatManager.calculInitiative(corpsACorps.data.niveau, carac['melee'].value);
armes.push(RdDItemArme.mainsNues({ niveau: corpsACorps.data.niveau, initiative: init }));
}
static mainsNues(actorData = {}) {
const mainsNues = {
name: 'Mains nues',
data: {
@ -163,8 +181,8 @@ export class RdDItemArme extends Item {
}
};
if (actorData) {
mergeObject( mainsNues.data, actorData, {overwrite:false});
mergeObject(mainsNues.data, actorData, { overwrite: false });
}
return mainsNues
}
}
}