Gestion des créatures

This commit is contained in:
2020-09-20 17:38:21 +02:00
parent 97cda9012c
commit 046e2e97ba
9 changed files with 586 additions and 35 deletions

View File

@ -27,25 +27,21 @@ export class RdDActor extends Actor {
if (data.items) {
return super.create(data, options);
}
data.items = [];
let compendiumName = "";
if (data.type == "personnage")
{
this.push_competence( data, "foundryvtt-reve-de-dragon.competences" );
compendiumName = "foundryvtt-reve-de-dragon.competences";
}
if (data.type == "humanoide")
{
this.push_competence( data, "foundryvtt-reve-de-dragon.competences-humanoide" );
compendiumName = "foundryvtt-reve-de-dragon.competences-humanoide";
}
if (data.type == "creature")
{
this.push_competence( data, "foundryvtt-reve-de-dragon.competences-creature" );
compendiumName = "foundryvtt-reve-de-dragon.competences-creatures";
}
super.create(data, options);
}
/* -------------------------------------------- */
async push_competence( data, compendiumName ) {
let competences = [];
const pack = game.packs.get(compendiumName);
await pack.getIndex().then(index => competences = index);
@ -55,7 +51,12 @@ export class RdDActor extends Actor {
await pack.getEntity(comp._id).then(skill => compItem = skill);
data.items.push(compItem);
}
super.create(data, options);
}
/* -------------------------------------------- */
/* -------------------------------------------- */
prepareData() {
@ -302,6 +303,22 @@ export class RdDActor extends Actor {
this.update( { caracpath: caracValue } );
}
/* -------------------------------------------- */
async updateCreatureCompetence( compName, fieldName, compValue )
{
let comp = RdDUtility.findCompetence( this.data.items, compName);
if ( comp ) {
const update = {_id: comp._id }
if (fieldName == "niveau")
update['data.niveau']= compValue;
else if (fieldName == "dommages")
update['data.dommages']= compValue;
else
update['data.cacac-value']= compValue;
const updated = await this.updateEmbeddedEntity("OwnedItem", update); // Updates one EmbeddedEntity
}
}
/* -------------------------------------------- */
async updateCompetence( compName, compValue )
{
@ -701,6 +718,13 @@ export class RdDActor extends Actor {
this.rollCompetence( armeName ); //Bypass mode!
}
/* -------------------------------------------- */
rollCreatureCompetence( compName )
{
let compItem = RdDUtility.findCompetence( this.data.items, compName);
//TODO !!!!
}
/* -------------------------------------------- */
async rollCompetence( compName, armeItem=undefined, attackerRoll=undefined )
{