Ajout acteur de type vehicule/maison
This commit is contained in:
@ -53,7 +53,7 @@ export class RdDActor extends Actor {
|
||||
return actor;
|
||||
}
|
||||
|
||||
let compendiumName = "";
|
||||
let compendiumName;
|
||||
if (data.type == "personnage") {
|
||||
compendiumName = "foundryvtt-reve-de-dragon.competences";
|
||||
} else if (data.type == "creature") {
|
||||
@ -61,7 +61,9 @@ export class RdDActor extends Actor {
|
||||
} else if (data.type == "entite") {
|
||||
compendiumName = "foundryvtt-reve-de-dragon.competences-entites";
|
||||
}
|
||||
data.items = RdDUtility.loadCompendium(compendiumName);
|
||||
if ( compendiumName ) {
|
||||
data.items = RdDUtility.loadCompendium(compendiumName);
|
||||
}
|
||||
// Ajout monnaie
|
||||
if (data.type == "personnage") {
|
||||
await RdDActor.ajouterMonnaie(data.items);
|
||||
@ -90,6 +92,7 @@ export class RdDActor extends Actor {
|
||||
// things organized.
|
||||
if (actorData.type === 'personnage') this._prepareCharacterData(actorData);
|
||||
if (actorData.type === 'creature') this.prepareCreatureData(actorData);
|
||||
if (actorData.type === 'vehicule') this.prepareVehiculeData(actorData);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -98,6 +101,11 @@ export class RdDActor extends Actor {
|
||||
this.computeEtatGeneral();
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
prepareVehiculeData( actorData ) {
|
||||
this.computeEncombrementTotalEtMalusArmure();
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/**
|
||||
* Prepare Character type specific data
|
||||
@ -758,7 +766,6 @@ export class RdDActor extends Actor {
|
||||
itemsList.push( {id: itemId, conteneurId: undefined }); // Init list
|
||||
sourceActor.buildSubConteneurObjetList( itemId, itemsList ); // Get itemId list
|
||||
|
||||
|
||||
let conteneurMap = {};
|
||||
for (let item of itemsList) {
|
||||
let copyItem = sourceActor.data.items.find( subItem => subItem._id == item.id );
|
||||
@ -784,14 +791,20 @@ export class RdDActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
detectSurEncombrement( ) {
|
||||
let diffEnc = Number(this.encTotal) - Number(this.data.data.attributs.encombrement.value);
|
||||
let maxEnc = 0;
|
||||
if ( this.data.type == 'vehicule')
|
||||
maxEnc = this.data.data.capacite_encombrement;
|
||||
else
|
||||
maxEnc = this.data.data.attributs.encombrement.value;
|
||||
let diffEnc = Number(this.encTotal) - Number(maxEnc);
|
||||
return Math.max(0, Math.ceil(diffEnc));
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async computeEncombrementTotalEtMalusArmure() {
|
||||
let encTotal = 0;
|
||||
let malusArmureData = (this.data.data.attributs.malusarmure) ? duplicate(this.data.data.attributs.malusarmure) : {};
|
||||
|
||||
let malusArmureData = (this.data.data.attributs && this.data.data.attributs.malusarmure) ? duplicate(this.data.data.attributs.malusarmure) : {};
|
||||
let newMalusArmure = 0;
|
||||
for (const item of this.data.items) {
|
||||
if (item.type == 'armure' && item.data.equipe) { // Armure équipée, intégration du malus armure total
|
||||
@ -811,10 +824,10 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
// Mise à jour valeur totale et états
|
||||
this.encTotal = encTotal;
|
||||
//console.log("Enco total : ", this.encTotal);
|
||||
console.log("Enco total : ", this.encTotal);
|
||||
this.detectSurEncombrement();
|
||||
// Mise à jour éventuelle du malus armure
|
||||
if (this.data.data.attributs.malusarmure && newMalusArmure != malusArmureData.value) {
|
||||
if (this.data.data.attributs && this.data.data.attributs.malusarmure && newMalusArmure != malusArmureData.value) {
|
||||
malusArmureData.value = newMalusArmure;
|
||||
await this.update({ "data.attributs.malusarmure": malusArmureData });
|
||||
}
|
||||
@ -875,7 +888,7 @@ export class RdDActor extends Actor {
|
||||
data.compteurs.surenc.value = - this.detectSurEncombrement();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async ajouterRefoulement(value = 1) {
|
||||
let ret = "none";
|
||||
|
Reference in New Issue
Block a user