forked from public/foundryvtt-reve-de-dragon
XP fix avec tooltip
This commit is contained in:
@ -621,6 +621,7 @@ export class RdDActor extends Actor {
|
||||
async updateCompetenceXP(compName, compValue) {
|
||||
let comp = this.getCompetence(compName);
|
||||
if (comp) {
|
||||
this.checkCompetenceXP(compName, compValue);
|
||||
const update = { _id: comp._id, 'data.xp': compValue };
|
||||
const updated = await this.updateEmbeddedEntity("OwnedItem", update); // Updates one EmbeddedEntity
|
||||
} else {
|
||||
@ -1461,14 +1462,19 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async checkCompetenceXP(compName) {
|
||||
async checkCompetenceXP(compName, newXP = undefined) {
|
||||
let competence = RdDItemCompetence.findCompetence(this.data.items, compName);
|
||||
if (competence && competence.data.xp > 0) {
|
||||
if ( competence && newXP && newXP == competence.data.xp ) { // Si édition, mais sans changement XP
|
||||
return;
|
||||
}
|
||||
newXP = (newXP) ? newXP : competence.data.xp;
|
||||
if (competence && newXP > 0) {
|
||||
let xpNeeded = RdDItemCompetence.getCompetenceNextXp(competence.data.niveau);
|
||||
if (competence.data.xp >= xpNeeded) {
|
||||
if (newXP >= xpNeeded) {
|
||||
let newCompetence = duplicate(competence);
|
||||
newCompetence.data.niveau += 1;
|
||||
|
||||
newCompetence.data.xp = newXP;
|
||||
|
||||
let xpData = {
|
||||
alias: this.name,
|
||||
competence: newCompetence.name,
|
||||
@ -2698,4 +2704,12 @@ export class RdDActor extends Actor {
|
||||
await this.createEmbeddedEntity('ActiveEffect', effet, options);
|
||||
this.applyActiveEffects();
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async updateEmbeddedEntity(embeddedName, data, options) {
|
||||
if ( data && data['data.defaut_carac'] && data['data.xp'] ) { // C'est une compétence
|
||||
this.checkCompetenceXP(data['name'], data['data.xp'] );
|
||||
}
|
||||
return super.updateEmbeddedEntity(embeddedName, data, options);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user