Gestion attaques v2 et initiative
This commit is contained in:
@@ -37,7 +37,7 @@ import { RollPartAttaque } from "./roll-part-attaque.mjs";
|
||||
import { RollPartDefense } from "./roll-part-defense.mjs";
|
||||
import { RollDialogAdapter } from "./roll-dialog-adapter.mjs";
|
||||
import { ROLLDIALOG_SECTION } from "./roll-part.mjs";
|
||||
import { ROLL_TYPE_COMP } from "./roll-constants.mjs";
|
||||
import { ROLL_TYPE_ATTAQUE, ROLL_TYPE_COMP } from "./roll-constants.mjs";
|
||||
import ChatRollResult from "./chat-roll-result.mjs";
|
||||
import { renderTemplate } from "../constants.js";
|
||||
|
||||
@@ -58,8 +58,6 @@ const ALL_ROLL_TYPES = [
|
||||
// new RollTypeFixedCarac ??
|
||||
]
|
||||
|
||||
const BASIC_PARTS = new RollBasicParts()
|
||||
|
||||
const ROLL_PARTS = [
|
||||
new RollPartActor(),
|
||||
new RollPartAction(),
|
||||
@@ -257,7 +255,7 @@ export default class RollDialog extends HandlebarsApplicationMixin(ApplicationV2
|
||||
rollData.selected = rollData.selected ?? {}
|
||||
rollData.type = rollData.type ?? {}
|
||||
rollData.type.retry = rollData.type.retry ?? false
|
||||
BASIC_PARTS.restore(rollData)
|
||||
RollBasicParts.restore(rollData)
|
||||
|
||||
const potential = ALL_ROLL_TYPES.find(m => m.code == rollData.type.current)?.code
|
||||
const allowed = rollData.type.retry && potential
|
||||
@@ -283,13 +281,14 @@ export default class RollDialog extends HandlebarsApplicationMixin(ApplicationV2
|
||||
}
|
||||
|
||||
static saveParts(rollData) {
|
||||
const target = BASIC_PARTS.initFrom(rollData)
|
||||
const target = RollBasicParts.initFrom(rollData)
|
||||
ROLL_PARTS.filter(p => p.isActive(rollData))
|
||||
.forEach(p => p.storeClean(rollData, target))
|
||||
target.attackerRoll = rollData.attackerRoll
|
||||
target.rolled = rollData.rolled
|
||||
target.result = rollData.result
|
||||
target.done = target.done ?? {}
|
||||
target.done = rollData.done ?? {}
|
||||
target.dmg = rollData.dmg
|
||||
return target
|
||||
}
|
||||
|
||||
@@ -377,7 +376,7 @@ export default class RollDialog extends HandlebarsApplicationMixin(ApplicationV2
|
||||
|
||||
const types = ALL_ROLL_TYPES.filter(m => m.isAllowed(rollData) && m.visible(rollData))
|
||||
.map(m => m.toTypeData(rollData))
|
||||
BASIC_PARTS.loadSurprises(rollData, this.getSelectedType().code)
|
||||
RollBasicParts.loadSurprises(rollData, this.getSelectedType().code)
|
||||
rollData.type.label = this.getSelectedType()?.title(rollData)
|
||||
//TOCHECK: set type.label ?
|
||||
const visibleRollParts = RollDialog.getActiveParts(rollData)
|
||||
@@ -423,18 +422,17 @@ export default class RollDialog extends HandlebarsApplicationMixin(ApplicationV2
|
||||
}
|
||||
|
||||
async roll() {
|
||||
// ROLL_PARTS.filter(p => p.isActive(this.rollData))
|
||||
// .forEach(p => p.validate(this.rollData))
|
||||
|
||||
const roll = RollDialog.saveParts(this.rollData)
|
||||
RollDialog.loadRollData(roll)
|
||||
roll.current.resultat = this.rollData.current[PART_TRICHER]?.resultat ?? -1
|
||||
roll.rolled = await this.$rollDice(roll)
|
||||
roll.choix = {}
|
||||
roll.rolled = await RollDialogAdapter.rollDice(roll, this.rollTitle(roll))
|
||||
roll.result = this.getSelectedType(roll).getResult(roll)
|
||||
console.info('RollDialog.roll:', roll)
|
||||
await Promise.all(this.rollOptions.callbacks.map(async callback => await callback(roll)))
|
||||
await this.chatRollResult.display(roll)
|
||||
|
||||
console.info('RollDialog.roll:', roll)
|
||||
await this.chatRollResult.display(roll)
|
||||
await Promise.all(this.rollOptions.callbacks.map(async callback => await callback(roll)))
|
||||
this.rollOptions.onRollDone(this)
|
||||
}
|
||||
|
||||
@@ -444,12 +442,9 @@ export default class RollDialog extends HandlebarsApplicationMixin(ApplicationV2
|
||||
roll.v2 = true
|
||||
}
|
||||
|
||||
async defaultCallback(rollData, rolled) {
|
||||
await rollData.active.actor.appliquerAjoutExperience(rollData)
|
||||
await rollData.active.actor.appliquerAppelMoral(rollData)
|
||||
async defaultCallback(roll, rolled) {
|
||||
await roll.active.actor.appliquerAjoutExperience(roll)
|
||||
await roll.active.actor.appliquerAppelMoral(roll)
|
||||
}
|
||||
|
||||
async $rollDice(rollData) {
|
||||
return await RollDialogAdapter.rollDice(rollData, this.rollTitle(rollData))
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user