41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
import { DotDungeonItem } from "../Item/GenericItem.mjs";
|
|
|
|
export class DotDungeonActor extends Actor {
|
|
async createEmbeddedItem(defaults, opts = {}) {
|
|
let items = await this.createEmbeddedDocuments(`Item`, defaults);
|
|
if (items.length == 0) {
|
|
throw new Error(`Failed to create any items`);
|
|
};
|
|
this.sheet.render();
|
|
if (
|
|
game.settings.get(`dotdungeon`, `openEmbeddedOnCreate`)
|
|
&& !opts.overrideSheetOpen
|
|
) {
|
|
for (const item of items) {
|
|
item.sheet.render(true);
|
|
};
|
|
};
|
|
};
|
|
|
|
/** @param {DotDungeonItem} item */
|
|
async preItemEmbed(item) {
|
|
console.log(`preEmbed`, item._source._id);
|
|
let type = item.type[0].toUpperCase() + item.type.slice(1);
|
|
if (this[`pre${type}Embed`]) {
|
|
return await this[`pre${type}Embed`](item);
|
|
};
|
|
let embedded = this.itemTypes[item.type].find(i => i._source._id === item._source._id);
|
|
if (embedded) {
|
|
await embedded.update({"system.quantity": embedded.system.quantity + 1});
|
|
ui.notifications.info(
|
|
game.i18n.format(
|
|
`dotdungeon.notification.info.increased-item-quantity`,
|
|
{ name: inventoryItem.name }
|
|
),
|
|
{ console: false }
|
|
);
|
|
return false;
|
|
};
|
|
return true;
|
|
};
|
|
};
|