mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-16 05:31:07 +01:00
[Bug] Potential Adversary When Removed (#248)
* Fixed so edit/view/delete of potential adversary is handled if the adversary Actor has been removed from the world * Improved lang
This commit is contained in:
parent
ee8a48f73d
commit
ac7fb93635
4 changed files with 28 additions and 7 deletions
|
|
@ -20,6 +20,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"DAGGERHEART": {
|
"DAGGERHEART": {
|
||||||
|
"UI": {
|
||||||
|
"notifications": {
|
||||||
|
"adversaryMissing": "The linked adversary doesn't exist in the world."
|
||||||
|
}
|
||||||
|
},
|
||||||
"Settings": {
|
"Settings": {
|
||||||
"Menu": {
|
"Menu": {
|
||||||
"Automation": {
|
"Automation": {
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@ export default class DhpEnvironment extends DaggerheartSheet(ActorSheetV2) {
|
||||||
actions: {
|
actions: {
|
||||||
addAdversary: this.addAdversary,
|
addAdversary: this.addAdversary,
|
||||||
deleteProperty: this.deleteProperty,
|
deleteProperty: this.deleteProperty,
|
||||||
viewAdversary: this.viewAdversary,
|
|
||||||
openSettings: this.openSettings,
|
openSettings: this.openSettings,
|
||||||
useItem: this.useItem,
|
useItem: this.useItem,
|
||||||
toChat: this.toChat
|
toChat: this.toChat
|
||||||
|
|
@ -103,14 +102,24 @@ export default class DhpEnvironment extends DaggerheartSheet(ActorSheetV2) {
|
||||||
this.render();
|
this.render();
|
||||||
}
|
}
|
||||||
|
|
||||||
static async viewAdversary(_, button) {
|
async viewAdversary(_, button) {
|
||||||
const adversary = await foundry.utils.fromUuid(button.dataset.adversary);
|
const target = button.closest('[data-item-uuid]');
|
||||||
|
const adversary = await foundry.utils.fromUuid(target.dataset.itemUuid);
|
||||||
|
if (!adversary) {
|
||||||
|
ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.notifications.adversaryMissing'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
adversary.sheet.render(true);
|
adversary.sheet.render(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static async useItem(event) {
|
static async useItem(event, button) {
|
||||||
const action = this.getAction(event);
|
const action = this.getAction(event);
|
||||||
action.use(event);
|
if (!action) {
|
||||||
|
await this.viewAdversary(event, button);
|
||||||
|
} else {
|
||||||
|
action.use(event);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static async toChat(event) {
|
static async toChat(event) {
|
||||||
|
|
|
||||||
|
|
@ -181,13 +181,20 @@ export default class DHEnvironmentSettings extends HandlebarsApplicationMixin(Ap
|
||||||
|
|
||||||
static async #viewAdversary(_, button) {
|
static async #viewAdversary(_, button) {
|
||||||
const adversary = await foundry.utils.fromUuid(button.dataset.adversary);
|
const adversary = await foundry.utils.fromUuid(button.dataset.adversary);
|
||||||
|
if (!adversary) {
|
||||||
|
ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.notifications.adversaryMissing'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
adversary.sheet.render(true);
|
adversary.sheet.render(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static async #deleteAdversary(event, target) {
|
static async #deleteAdversary(event, target) {
|
||||||
const adversaryKey = target.dataset.adversary;
|
const adversaryKey = target.dataset.adversary;
|
||||||
const path = `system.potentialAdversaries.${target.dataset.potentialAdversary}.adversaries`;
|
const path = `system.potentialAdversaries.${target.dataset.potentialAdversary}.adversaries`;
|
||||||
const newAdversaries = foundry.utils.getProperty(this.actor, path).filter(x => x.uuid !== adversaryKey);
|
const newAdversaries = foundry.utils
|
||||||
|
.getProperty(this.actor, path)
|
||||||
|
.filter(x => x && (x?.uuid ?? x) !== adversaryKey);
|
||||||
await this.actor.update({ [path]: newAdversaries });
|
await this.actor.update({ [path]: newAdversaries });
|
||||||
this.render();
|
this.render();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<li class="inventory-item" data-item-id="{{item.id}}" data-companion="{{companion}}" data-tooltip="{{concat "#item#" item.uuid}}">
|
<li class="inventory-item" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-companion="{{companion}}" data-tooltip="{{concat "#item#" item.uuid}}">
|
||||||
<img src="{{item.img}}" class="item-img {{#if isActor}}actor-img{{/if}}" data-action="useItem"/>
|
<img src="{{item.img}}" class="item-img {{#if isActor}}actor-img{{/if}}" data-action="useItem"/>
|
||||||
<div class="item-label">
|
<div class="item-label">
|
||||||
<div class="item-name">{{item.name}}</div>
|
<div class="item-name">{{item.name}}</div>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue