Various fixes

This commit is contained in:
2022-04-30 23:42:55 +02:00
parent f64928858c
commit 5214b036d3
11 changed files with 96 additions and 98 deletions

View File

@ -1785,13 +1785,13 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
_computeEnduranceMax() {
let blessures = this.system.data.blessures;
let diffVie = this.system.data.sante.vie.max - this.system.data.sante.vie.value;
let maxEndVie = this.system.data.sante.endurance.max - (diffVie * 2);
let blessures = this.system.blessures;
let diffVie = this.system.sante.vie.max - this.system.sante.vie.value;
let maxEndVie = this.system.sante.endurance.max - (diffVie * 2);
let nbGraves = this.countBlessures(blessures.graves.liste);
let nbCritiques = this.countBlessures(blessures.critiques.liste);
let maxEndGraves = Math.floor(this.system.data.sante.endurance.max / (2 * nbGraves));
let maxEndCritiques = nbCritiques > 0 ? 1 : this.system.data.sante.endurance.max;
let maxEndGraves = Math.floor(this.system.sante.endurance.max / (2 * nbGraves));
let maxEndCritiques = nbCritiques > 0 ? 1 : this.system.sante.endurance.max;
return Math.max(0, Math.min(maxEndVie, maxEndGraves, maxEndCritiques));
}
@ -2206,24 +2206,24 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
async checkCompetenceXP(compName, newXP, display = true) {
let compData = Misc.data(this.getCompetence(compName));
let compData = this.getCompetence(compName)
if (compData && newXP && newXP == compData.data.xp) { // Si édition, mais sans changement XP
return;
return
}
newXP = (newXP) ? newXP : compData.data.xp;
newXP = (newXP) ? newXP : compData.system.xp
if (compData && newXP > 0) {
let xpNeeded = RdDItemCompetence.getCompetenceNextXp(compData.data.niveau + 1);
let xpNeeded = RdDItemCompetence.getCompetenceNextXp(compData.system.niveau + 1);
if (newXP >= xpNeeded) {
let newCompData = duplicate(compData);
newCompData.data.niveau += 1;
newCompData.data.xp = newXP;
let newCompData = duplicate(compData)
newCompData.system.niveau += 1;
newCompData.system.xp = newXP;
let checkXp = {
alias: this.name,
competence: newCompData.name,
niveau: newCompData.data.niveau,
xp: newCompData.data.xp,
archetype: newCompData.data.niveau_archetype,
archetypeWarning: newCompData.data.niveau > compData.data.niveau_archetype
niveau: newCompData.system.niveau,
xp: newCompData.system.xp,
archetype: newCompData.system.niveau_archetype,
archetypeWarning: newCompData.system.niveau > compData.system.niveau_archetype
}
if (display) {
ChatMessage.create({
@ -2528,11 +2528,12 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
async rollCompetence(idOrName) {
let rollData = { competence: Misc.data(this.getCompetence(idOrName)) }
let comp = this.getCompetence(idOrName)
let rollData = { competence: comp }
//console.log("COMP CREATURE", name, rollData, name);
if (rollData.competence.type == 'competencecreature') {
if (rollData.competence.data.iscombat) {
if (rollData.competence.system.iscombat) {
const arme = RdDItemCompetenceCreature.toArme(rollData.competence);
RdDCombat.createUsingTarget(this).attaque(rollData.competence, arme);
return;
@ -2554,8 +2555,8 @@ export class RdDActor extends Actor {
this.createCallbackAppelAuMoral(),
{ action: r => this._competenceResult(r) }
]
});
dialog.render(true);
})
dialog.render(true)
}
/* -------------------------------------------- */
@ -3186,15 +3187,16 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
rollArme(arme) {
let competence = Misc.data(this.getCompetence(arme.system.competence));
let itemData = arme.system && arme.system || arme.data
let competence = this.getCompetence( itemData.competence )
if (arme || (competence.type == 'competencecreature' && competence.system.iscombat)) {
if (competence.data.ispossession) {
RdDPossession.managePosession(this, competence);
if (competence.system.ispossession) {
RdDPossession.managePosession(this, competence)
} else {
RdDCombat.createUsingTarget(this)?.attaque(competence, arme);
RdDCombat.createUsingTarget(this)?.attaque(competence, arme)
}
} else {
this.rollCompetence(competence.name);
this.rollCompetence(competence.name)
}
}