mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-04-21 23:13:39 +02:00
* Initial * progress * Working armor application * . * Added a updateArmorValue function that updates armoreffects according to an auto order * . * Added createDialog * . * Updated Armor SRD * . * Fixed character sheet armor update * Updated itemconfig * Actions now use createDialog for effects * . * . * Fixed ArmorEffect max being a string * Fixed SRD armor effects * Finally finished the migration ._. * SRD finalization * Added ArmoreEffect.armorInteraction option * Added ArmorManagement menu * Fixed DamageReductionDialog * Fixed ArmorManagement pip syle * feat: add style to armors tooltip, add a style to make armor slot label more clear that was a button and add a tooltip location * . * Removed tooltip on manageArmor * Fixes * Fixed Downtime armor repair * Removed ArmorScore from character data model and instead adding it in basePrep * [Feature] ArmorEffect reworked into ChangeType on BaseEffect (#1739) * Initial * . * Single armor rework start * More fixes * Fixed DamageReductionDialog * Removed last traces of ArmorEffect * . * Corrected the SRD to use base effects again * Removed bare bones armor item * [V14] Refactor ArmorChange schema and fix some bugs (#1742) * Refactor ArmorChange schema and fix some bugs * Add current back to schema * Fixed so changing armor values and taking damage works again * Fixed so that scrolltexts for armor changes work again * Removed old marks on armor.system * Restored damageReductionDialog armorScore.value * Use toggle for css class addition/removal * Fix armor change type choices * Added ArmorChange DamageThresholds --------- Co-authored-by: WBHarry <williambjrklund@gmail.com> * [V14] Armor System ArmorScore (#1744) * Readded so that armor items have their system defined armor instead of using an ActiveEffect * Consolidate armor source retrieval * Fix regression with updating armor when sources are disabled * Simplify armor pip update * Use helper in damage reduction dialog * . * Corrected SRD Armor Items --------- Co-authored-by: Carlos Fernandez <cfern1990@gmail.com> * Updated migrations * Migrations are now not horrible =D --------- Co-authored-by: Murilo Brito <dev.murilobrito@gmail.com> Co-authored-by: Carlos Fernandez <CarlosFdez@users.noreply.github.com> Co-authored-by: Carlos Fernandez <cfern1990@gmail.com>
68 lines
2.2 KiB
JavaScript
68 lines
2.2 KiB
JavaScript
import DHActionBaseConfig from './action-base-config.mjs';
|
|
|
|
export default class DHActionConfig extends DHActionBaseConfig {
|
|
static DEFAULT_OPTIONS = {
|
|
...DHActionBaseConfig.DEFAULT_OPTIONS,
|
|
actions: {
|
|
...DHActionBaseConfig.DEFAULT_OPTIONS.actions,
|
|
addEffect: this.addEffect,
|
|
removeEffect: this.removeEffect,
|
|
editEffect: this.editEffect
|
|
}
|
|
};
|
|
|
|
async _prepareContext(options) {
|
|
const context = await super._prepareContext(options);
|
|
if (!!this.action.effects) context.effects = this.action.effects.map(e => this.action.item.effects.get(e._id));
|
|
context.getEffectDetails = this.getEffectDetails.bind(this);
|
|
|
|
return context;
|
|
}
|
|
|
|
static async addEffect(_event) {
|
|
if (!this.action.effects) return;
|
|
const effectData = this._addEffectData.bind(this)();
|
|
const data = this.action.toObject();
|
|
|
|
const created = await game.system.api.documents.DhActiveEffect.createDialog(effectData, {
|
|
parent: this.action.item,
|
|
render: false
|
|
});
|
|
if (!created) return;
|
|
|
|
data.effects.push({ _id: created._id });
|
|
this.constructor.updateForm.bind(this)(null, null, { object: foundry.utils.flattenObject(data) });
|
|
this.action.item.effects.get(created._id).sheet.render(true);
|
|
}
|
|
|
|
/**
|
|
* The data for a newly created applied effect.
|
|
* @returns {object}
|
|
* @protected
|
|
*/
|
|
_addEffectData() {
|
|
return {
|
|
name: this.action.item.name,
|
|
img: this.action.item.img,
|
|
origin: this.action.item.uuid,
|
|
transfer: false
|
|
};
|
|
}
|
|
|
|
getEffectDetails(id) {
|
|
return this.action.item.effects.get(id);
|
|
}
|
|
|
|
static removeEffect(event, button) {
|
|
if (!this.action.effects) return;
|
|
const index = button.dataset.index,
|
|
effectId = this.action.effects[index]._id;
|
|
this.constructor.removeElement.bind(this)(event, button);
|
|
this.action.item.deleteEmbeddedDocuments('ActiveEffect', [effectId]);
|
|
}
|
|
|
|
static editEffect(event) {
|
|
const id = event.target.closest('[data-effect-id]')?.dataset?.effectId;
|
|
this.action.item.effects.get(id).sheet.render(true);
|
|
}
|
|
}
|