forked from public/foundryvtt-reve-de-dragon
Roll V2 sur compétences&combat
Corrections associées Maintenant, active en mode rollV2
This commit is contained in:
@@ -26,7 +26,8 @@ import { BASE_CORPS_A_CORPS, BASE_ESQUIVE, POSSESSION_SANS_DRACONIC } from "../i
|
||||
import { RollDataAjustements } from "../rolldata-ajustements-v1.js";
|
||||
import { MappingCreatureArme } from "../item/mapping-creature-arme.mjs";
|
||||
import RollDialog from "../roll/roll-dialog.mjs";
|
||||
import { ROLL_TYPE_ATTAQUE, ROLL_TYPE_COMP, ROLL_TYPE_JEU, ROLL_TYPE_MEDITATION, ROLL_TYPE_OEUVRE, ROLL_TYPE_TACHE } from "../roll/roll-constants.mjs";
|
||||
import { ATTAQUE_ROLL_TYPES, DEFAULT_ROLL_TYPES, DIFF, ROLL_TYPE_ATTAQUE, ROLL_TYPE_COMP, ROLL_TYPE_JEU, ROLL_TYPE_MEDITATION, ROLL_TYPE_OEUVRE, ROLL_TYPE_TACHE } from "../roll/roll-constants.mjs";
|
||||
import { OptionsAvancees, ROLL_DIALOG_V2 } from "../settings/options-avancees.js";
|
||||
|
||||
/**
|
||||
* Classe de base pour les acteurs disposant de rêve (donc, pas des objets)
|
||||
@@ -410,22 +411,32 @@ export class RdDBaseActorReve extends RdDBaseActor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollCompetenceV2(rollData) {
|
||||
foundry.utils.mergeObject(rollData, {
|
||||
ids: {
|
||||
actorId: this.id
|
||||
},
|
||||
type: {
|
||||
allowed: [ROLL_TYPE_COMP, ROLL_TYPE_OEUVRE, ROLL_TYPE_TACHE, ROLL_TYPE_JEU, ROLL_TYPE_MEDITATION],
|
||||
|
||||
}
|
||||
})
|
||||
rollData.ids.actorId = rollData.ids.actorId ?? this.id
|
||||
rollData.ids = rollData?.ids ?? {}
|
||||
rollData.type = rollData.type ?? { allowed: DEFAULT_ROLL_TYPES }
|
||||
rollData.ids.actorId = this.id
|
||||
await RollDialog.create(rollData)
|
||||
}
|
||||
|
||||
async rollCompetence(idOrName, options = { tryTarget: true, arme: undefined }) {
|
||||
RdDEmpoignade.checkEmpoignadeEnCours(this)
|
||||
|
||||
const competence = this.getCompetence(idOrName);
|
||||
if (competence.type != ITEM_TYPES.competencecreature && OptionsAvancees.isUsing(ROLL_DIALOG_V2)) {
|
||||
const rollData = {
|
||||
selected: {
|
||||
comp: { key: competence.name },
|
||||
diff: { type: DIFF.LIBRE, value: competence.system.default_diffLibre ?? 0 }
|
||||
}
|
||||
}
|
||||
if (options.arme) {
|
||||
rollData.selected.attaque = { arme: { id: options.arme.id }, comp: { id: competence.id } }
|
||||
rollData.type = { allowed: ATTAQUE_ROLL_TYPES }
|
||||
}
|
||||
|
||||
await this.rollCompetenceV2(rollData)
|
||||
return
|
||||
}
|
||||
|
||||
let rollData = {
|
||||
carac: this.system.carac,
|
||||
competence: competence,
|
||||
@@ -443,7 +454,7 @@ export class RdDBaseActorReve extends RdDBaseActor {
|
||||
RdDCombat.rddCombatTarget(target, this, token).attaque(competence, arme)
|
||||
}
|
||||
});
|
||||
return;
|
||||
return
|
||||
}
|
||||
// Transformer la competence de créature
|
||||
MappingCreatureArme.setRollDataCreature(rollData)
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import { Grammar } from "../../grammar.js"
|
||||
import { RdDItemArme } from "../../item/arme.js"
|
||||
import { EMPOIGNADE, RdDItemArme } from "../../item/arme.js"
|
||||
import { RdDItemCompetence } from "../../item-competence.js"
|
||||
import { RdDItemSort } from "../../item-sort.js"
|
||||
import { ITEM_TYPES } from "../../constants.js"
|
||||
@@ -141,7 +141,7 @@ export class Mapping {
|
||||
|
||||
static prepareArmes(actor) {
|
||||
const armes = actor.items.filter(it => it.type == ITEM_TYPES.arme)
|
||||
armes.push(RdDItemArme.corpsACorps(actor));
|
||||
armes.push(RdDItemArme.pugilat(actor));
|
||||
armes.push(RdDItemArme.empoignade(actor));
|
||||
return armes.map(arme => [
|
||||
arme.system.unemain ? Mapping.prepareArme(actor, arme, '(1 main)') : undefined,
|
||||
@@ -175,7 +175,7 @@ export class Mapping {
|
||||
const dommages = Misc.toSignedString(dmgArme + RdDBonus.bonusDmg(actor, maniement, dmgArme))
|
||||
switch (arme.system.mortalite) {
|
||||
case 'non-mortel': return `(${dommages})`
|
||||
case 'empoignade': return '-'
|
||||
case EMPOIGNADE: return '-'
|
||||
}
|
||||
return dommages
|
||||
}
|
||||
|
Reference in New Issue
Block a user