diff --git a/module/actors/actor-sheet.js b/module/actors/actor-sheet.js index c1b85cf..ca55af7 100644 --- a/module/actors/actor-sheet.js +++ b/module/actors/actor-sheet.js @@ -200,6 +200,32 @@ export class ActorSheetKH extends ActorSheet { }, ]); + new ContextMenu(html, "li.item-attack", [ + { + name: game.i18n.localize("MENU.SHOWROLLDIALOG"), + icon: '', + callback: (li) => { + let skillValue = li.data("ability"); + let skillName = "ITEM.ATTACK"; + let showValue = false + + if(this.actor.data.type === "character") { + showValue = true + } + + this.khRoller.rollSkillDialogInChat(skillName, skillValue, showValue, this.actor) + }, + }, + { + name: game.i18n.localize("MENU.SENTTOCHAT"), + icon: '', + callback: (li) => { + let itemId = li.data("itemId"); + this._itemDetailsToChat(itemId); + }, + }, + ]); + html.find(".feature").click(async (ev) => { const featureName = $(ev.currentTarget).data("feature"); const featureValue = this.actor.data.data.feature[featureName].value; @@ -224,9 +250,61 @@ export class ActorSheetKH extends ActorSheet { li.slideUp(200, () => this.render(false)); }); + html.find(".item-attack-delete").click((ev) => { + const li = $(ev.currentTarget).parents(".item-attack"); + + this.actor.deleteOwnedItem(li.data("itemId")); + + li.slideUp(200, () => this.render(false)); + }); + + html.find(".item-weapon-delete").click((ev) => { + const li = $(ev.currentTarget).parents(".item-weapon"); + + this.actor.deleteOwnedItem(li.data("itemId")); + + li.slideUp(200, () => this.render(false)); + }); + // Edit Inventory Item html.find(".item-edit").click(async (ev) => { - const li = $(ev.currentTarget).parents(".item"); + let li = $(ev.currentTarget).parents(".item"); + let itemId = li.data("itemId"); + let item = this.actor.getOwnedItem(itemId); + + if (!item) { + item = game.items.get(itemId); + + if (!item) { + console.log("IMPORT ERROR") + } + } + + if (item?.sheet) { + item.sheet.render(true); + } + }); + + html.find(".item-attack-edit").click(async (ev) => { + let li = $(ev.currentTarget).parents(".item-attack"); + let itemId = li.data("itemId"); + let item = this.actor.getOwnedItem(itemId); + + if (!item) { + item = game.items.get(itemId); + + if (!item) { + console.log("IMPORT ERROR") + } + } + + if (item?.sheet) { + item.sheet.render(true); + } + }); + + html.find(".item-weapon-edit").click(async (ev) => { + let li = $(ev.currentTarget).parents(".item-weapon"); let itemId = li.data("itemId"); let item = this.actor.getOwnedItem(itemId); @@ -316,7 +394,7 @@ export class ActorSheetKH extends ActorSheet { /* Roll weapon damage */ html.find(".roll-damage").click((ev) => { - const li = $(ev.currentTarget).parents(".item"); + const li = $(ev.currentTarget).parents(".item-weapon"); let itemId = li.data("itemId"); let weapon = this.actor.getOwnedItem(itemId); @@ -392,7 +470,7 @@ export class ActorSheetKH extends ActorSheet { /* Adversary specific */ html.find(".roll-adversary-attack").click((ev) => { - const li = $(ev.currentTarget).parents(".item"); + const li = $(ev.currentTarget).parents(".item-attack"); let skillValue = li.data("ability"); let skillName = "ITEM.ATTACK"; @@ -400,6 +478,30 @@ export class ActorSheetKH extends ActorSheet { this.khRoller.rollSkillInChat(skillName, skillValue, false, this.actor) }); + html.find(".roll-attack-damage").click((ev) => { + const li = $(ev.currentTarget).parents(".item-attack"); + let itemId = li.data("itemId"); + let weapon = this.actor.getOwnedItem(itemId); + + if (!weapon) { + weapon = game.items.get(itemId); + + if (!weapon) { + console.log("IMPORT ERROR") + return + } + } + + let damage = weapon.data.data.damage.value; + + let regex = /([0-9]*)t([0-9]*)/g; + let regexMatch; + + while (regexMatch = regex.exec(damage.toLowerCase())) { + this.khRoller.rollDamageInChat(regexMatch[1], this.actor) + } + }); + html.find(".roll-defence").click((ev) => { const skillValue = $(ev.currentTarget).data("defence"); diff --git a/module/items/item-sheet.js b/module/items/item-sheet.js index a740701..0d765bd 100644 --- a/module/items/item-sheet.js +++ b/module/items/item-sheet.js @@ -36,7 +36,13 @@ export class ItemSheetKH extends ItemSheet { switch (this.object.data.type) { case "weapon": // Load Skills Compendium skills - let skillList2 = await game.packs.get("kopparhavet.skills").getContent(); + let skillList2 + + if(game.settings.get("kopparhavet", "gameSystem") === "hjaltarnas-tid") { + skillList2 = await game.packs.get("kopparhavet.skills-ht").getContent(); + } else { + skillList2 = await game.packs.get("kopparhavet.skills").getContent(); + } for (let item of skillList2) { if(item.data.type === "skill" && item.data.data.type.value === "combat") { diff --git a/styles/items.css b/styles/items.css index e8ca394..a08d39f 100644 --- a/styles/items.css +++ b/styles/items.css @@ -104,6 +104,13 @@ text-align: center; } +.items .items-list .item-nor { + line-height: 24px; + padding: 3px 0; + border-bottom: 1px solid #bbb; + text-align: center; +} + .items .items-list .item .toggle-equipped { color: #888; } diff --git a/templates/dice/roll.html b/templates/dice/roll.html index 0a492bc..3095534 100644 --- a/templates/dice/roll.html +++ b/templates/dice/roll.html @@ -5,12 +5,12 @@