Beastform button shifts to cancelBeastform

This commit is contained in:
WBHarry 2025-11-15 14:20:18 +01:00
parent bea5c08fbd
commit 332b90afec
4 changed files with 24 additions and 19 deletions

View file

@ -216,7 +216,8 @@
},
"viewLevelups": "View Levelups",
"InvalidOldCharacterImportTitle": "Old Character Import",
"InvalidOldCharacterImportText": "Character data exported prior to system version 1.1 will not generate a complete character. Do you wish to continue?"
"InvalidOldCharacterImportText": "Character data exported prior to system version 1.1 will not generate a complete character. Do you wish to continue?",
"cancelBeastform": "Cancel Beastform"
},
"Companion": {
"FIELDS": {
@ -316,8 +317,7 @@
"toLoadout": "Send to Loadout",
"toVault": "Send to Vault",
"unequip": "Unequip",
"useItem": "Use Item",
"cancelBeastform": "Cancel Beastform"
"useItem": "Use Item"
},
"Countdown": {
"addCountdown": "Add Countdown",

View file

@ -31,6 +31,7 @@ export default class CharacterSheet extends DHBaseActorSheet {
toggleEquipItem: CharacterSheet.#toggleEquipItem,
toggleResourceDice: CharacterSheet.#toggleResourceDice,
handleResourceDice: CharacterSheet.#handleResourceDice,
cancelBeastform: CharacterSheet.#cancelBeastform,
useDowntime: this.useDowntime
},
window: {
@ -219,6 +220,8 @@ export default class CharacterSheet extends DHBaseActorSheet {
}
};
context.beastformActive = this.document.effects.find(x => x.type === 'beastform');
const homebrewCurrency = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).currency;
if (homebrewCurrency.enabled) {
context.inventory.currency = homebrewCurrency;
@ -848,6 +851,15 @@ export default class CharacterSheet extends DHBaseActorSheet {
});
}
/**
*
*/
static async #cancelBeastform(_, target) {
const item = await getDocFromElement(target);
if (!item) return;
game.system.api.fields.ActionFields.BeastformField.handleActiveTransformations.call(item);
}
/**
* Open the downtime application.
* @type {ApplicationClickAction}

View file

@ -420,19 +420,6 @@ export default function DHApplicationMixin(Base) {
];
if (usable) {
options.unshift({
name: 'DAGGERHEART.APPLICATIONS.ContextMenu.cancelBeastform',
icon: 'fa-solid fa-ban',
condition: target => {
const doc = getDocFromElementSync(target);
return doc && doc.system?.actions?.some(a => a.type === 'beastform');
},
callback: async target =>
game.system.api.fields.ActionFields.BeastformField.handleActiveTransformations.call(
await getDocFromElement(target)
)
});
options.unshift({
name: 'DAGGERHEART.GENERAL.damage',
icon: 'fa-solid fa-explosion',

View file

@ -139,9 +139,15 @@ Parameters:
<div class="item-buttons">
{{#each item.system.actions as | action |}}
<div class="item-button">
<button type="button" data-action="useItem" data-item-uuid="{{action.uuid}}">
{{action.name}}
</button>
{{#if (and (eq action.type 'beastform') @root.beastformActive)}}
<button type="button" data-action="cancelBeastform" data-item-uuid="{{action.uuid}}">
{{localize "DAGGERHEART.ACTORS.Character.cancelBeastform"}}
</button>
{{else}}
<button type="button" data-action="useItem" data-item-uuid="{{action.uuid}}">
{{action.name}}
</button>
{{/if}}
{{#if action.uses.max}}
<div class="spacer"></div>
<button type="button" class="action-uses-button" data-action="increaseActionUses" data-item-uuid="{{action.uuid}}">