[Feature] Summon Action Implementation (#1514)

* Schema definition for DHSummonAction

* Will reimplement

* HBS idea formed. Need to recheck drag drop implementation

* Tried to refine drag drop

* drag drop implemented (css tbd)

* phase 1 complete

* tbd work on summon action type

* Improved Schema and now it works

* .

* Dialog created. Tokens not dragged(tbd).

* Bare minimum implementation

* Finalized functionality

* Cleanup

* .

* Added optional summon render to chat message

* Updated SRD

* bugfix: fix title lines not rendering in chat messages

* Added summon actions to the easily doable environments in the SRD

* Update module/data/fields/action/summonField.mjs

Co-authored-by: Carlos Fernandez <CarlosFdez@users.noreply.github.com>

---------

Co-authored-by: Nikhil Nagarajan <potter.nikhil@gmail.com>
Co-authored-by: Murilo Brito <dev.murilobrito@gmail.com>
Co-authored-by: Carlos Fernandez <CarlosFdez@users.noreply.github.com>
This commit is contained in:
WBHarry 2026-01-13 10:36:29 +01:00 committed by GitHub
parent d823501d91
commit d282a81594
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
44 changed files with 902 additions and 312 deletions

View file

@ -93,27 +93,29 @@ export default class DhpDowntime extends HandlebarsApplicationMixin(ApplicationV
}
getRefreshables() {
const actionItems = this.actor.items.filter(x => this.actor.system.isItemAvailable(x)).reduce((acc, x) => {
if (x.system.actions) {
const recoverable = x.system.actions.reduce((acc, action) => {
if (refreshIsAllowed([this.shortrest ? 'shortRest' : 'longRest'], action.uses.recovery)) {
acc.push({
title: x.name,
name: action.name,
uuid: action.uuid
});
const actionItems = this.actor.items
.filter(x => this.actor.system.isItemAvailable(x))
.reduce((acc, x) => {
if (x.system.actions) {
const recoverable = x.system.actions.reduce((acc, action) => {
if (refreshIsAllowed([this.shortrest ? 'shortRest' : 'longRest'], action.uses.recovery)) {
acc.push({
title: x.name,
name: action.name,
uuid: action.uuid
});
}
return acc;
}, []);
if (recoverable) {
acc.push(...recoverable);
}
return acc;
}, []);
if (recoverable) {
acc.push(...recoverable);
}
}
return acc;
}, []);
return acc;
}, []);
const resourceItems = this.actor.items.reduce((acc, x) => {
if (
x.system.resource &&
@ -189,7 +191,8 @@ export default class DhpDowntime extends HandlebarsApplicationMixin(ApplicationV
}));
});
});
const characters = game.actors.filter(x => x.type === 'character')
const characters = game.actors
.filter(x => x.type === 'character')
.filter(x => x.testUserPermission(game.user, 'LIMITED'))
.filter(x => x.uuid !== this.actor.uuid);