mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-11 19:25:21 +01:00
[Fix] Beastform Fixes (#1288)
* Fixed Beastforms getting stuck * Made the wildcard image select dialog scrollable * Beastform button shifts to cancelBeastform
This commit is contained in:
parent
91b1b92d19
commit
fcb9c032ef
9 changed files with 40 additions and 30 deletions
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ export default class ImageSelectDialog extends HandlebarsApplicationMixin(Applic
|
|||
tag: 'form',
|
||||
classes: ['daggerheart', 'dialog', 'dh-style', 'image-select'],
|
||||
position: {
|
||||
width: 600,
|
||||
width: 612,
|
||||
height: 'auto'
|
||||
},
|
||||
window: {
|
||||
|
|
@ -30,7 +30,10 @@ export default class ImageSelectDialog extends HandlebarsApplicationMixin(Applic
|
|||
|
||||
/** @override */
|
||||
static PARTS = {
|
||||
main: { template: 'systems/daggerheart/templates/dialogs/image-select/main.hbs' },
|
||||
main: {
|
||||
template: 'systems/daggerheart/templates/dialogs/image-select/main.hbs',
|
||||
scrollable: ['.images-container']
|
||||
},
|
||||
footer: { template: 'systems/daggerheart/templates/dialogs/image-select/footer.hbs' }
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -41,9 +41,6 @@ export default class BeastformField extends fields.SchemaField {
|
|||
* @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods.
|
||||
*/
|
||||
static async execute(config) {
|
||||
// Should not be useful anymore here
|
||||
await BeastformField.handleActiveTransformations.call(this);
|
||||
|
||||
const { selected, evolved, hybrid } = await BeastformDialog.configure(config, this.item);
|
||||
if (!selected) return false;
|
||||
|
||||
|
|
|
|||
|
|
@ -257,9 +257,10 @@ export const updateActorTokens = async (actor, update) => {
|
|||
/* Update the tokens in all scenes belonging to Actor */
|
||||
for (let token of actor.getDependentTokens()) {
|
||||
const tokenActor = token.baseActor ?? token.actor;
|
||||
if (tokenActor?.id === actor.id) {
|
||||
if (token.id && tokenActor?.id === actor.id) {
|
||||
await token.update({
|
||||
...update
|
||||
...update,
|
||||
_id: token.id
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@
|
|||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
max-height: 420px;
|
||||
overflow: auto;
|
||||
|
||||
img {
|
||||
width: 136px;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
<div class="images-container">
|
||||
{{#each images as |image|}}
|
||||
<a data-action="selectImage"><img {{#if (eq image @root.selectedImage)}}class="selected"{{/if}} src="{{image}}" data-image="{{image}}" /></a>
|
||||
{{/each}}
|
||||
<div>
|
||||
<div class="images-container">
|
||||
{{#each images as |image|}}
|
||||
<a data-action="selectImage"><img {{#if (eq image @root.selectedImage)}}class="selected"{{/if}} src="{{image}}" data-image="{{image}}" /></a>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -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}}">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue