forked from public/foundryvtt-reve-de-dragon
Fix possession
On peut maintenant lutter pour les haut-rêvants Les messages ont été clarifiés
This commit is contained in:
@ -372,12 +372,27 @@ export class RdDActor extends Actor {
|
||||
const list = this.getDraconicList();
|
||||
return duplicate(list[0]);
|
||||
}
|
||||
getDraconicOrZero() {
|
||||
const list = this.getDraconicList().filter(it => Misc.data(it).data.niveau >= 0);
|
||||
if (list.length == 0) {
|
||||
return { name: "Aucun", data: { niveau: 0 } };
|
||||
getDraconicOuPossession() {
|
||||
const possessions = this.items.filter(it => Misc.data(it).type == 'competencecreature' && Misc.templateData(it).ispossession)
|
||||
.sort(Misc.descending(it => Misc.templateData(it).niveau));
|
||||
if (possessions.length>0) {
|
||||
return duplicate(possessions[0]);
|
||||
}
|
||||
return duplicate(list[0]);
|
||||
const draconics = this.getDraconicList().filter(it => Misc.data(it).data.niveau >= 0);
|
||||
if (draconics.length> 0) {
|
||||
return duplicate(draconics[0]);
|
||||
}
|
||||
return {
|
||||
img: 'systems/foundryvtt-reve-de-dragon/icons/entites/possession.webp',
|
||||
name: 'Sans draconic',
|
||||
data: {
|
||||
niveau: 0,
|
||||
defaut_carac: "reve",
|
||||
}
|
||||
};
|
||||
}
|
||||
getPossession(possessionId) {
|
||||
return this.items.find(it => it.type == 'possession' && it.data.data.possessionid == possessionId);
|
||||
}
|
||||
|
||||
getDemiReve() {
|
||||
@ -783,7 +798,7 @@ export class RdDActor extends Actor {
|
||||
async combattreReveDeDragon(force) {
|
||||
let rollData = {
|
||||
actor: this,
|
||||
competence: duplicate(this.getDraconicOrZero()),
|
||||
competence: duplicate(this.getDraconicOuPossession()),
|
||||
canClose: false,
|
||||
rencontre: duplicate(TMRRencontres.getRencontre('rdd')),
|
||||
tmr: true,
|
||||
@ -2538,7 +2553,7 @@ export class RdDActor extends Actor {
|
||||
if (rollData.competence.type == 'competencecreature') {
|
||||
if (rollData.competence.data.iscombat) {
|
||||
if (rollData.competence.data.ispossession) {
|
||||
RdDPossession.managePossession(this, rollData.competence)
|
||||
RdDPossession.onAttaquePossession(this, rollData.competence)
|
||||
} else {
|
||||
const arme = RdDItemCompetenceCreature.toArme(rollData.competence)
|
||||
RdDCombat.createUsingTarget(this)?.attaque(competence, arme)
|
||||
@ -2566,8 +2581,8 @@ export class RdDActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
conjurerPossession(possession) {
|
||||
let draconic = this.getBestDraconic();
|
||||
RdDPossession.managePossession(this, draconic, possession)
|
||||
let draconic = this.getDraconicOuPossession();
|
||||
RdDPossession.onAttaquePossession(this, draconic, possession)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -3206,7 +3221,7 @@ export class RdDActor extends Actor {
|
||||
let competence = Misc.data(this.getCompetence(arme.data.competence));
|
||||
if (arme || (competence.type == 'competencecreature' && competence.data.iscombat)) {
|
||||
if (competence.data.ispossession) {
|
||||
RdDPossession.managePossession(this, competence);
|
||||
RdDPossession.onAttaquePossession(this, competence);
|
||||
} else {
|
||||
RdDCombat.createUsingTarget(this)?.attaque(competence, arme);
|
||||
}
|
||||
|
Reference in New Issue
Block a user