From 89ac79e9f3a2f31e164333dbe31d10b59e88a754 Mon Sep 17 00:00:00 2001 From: Peter Varaksin Date: Mon, 11 May 2020 15:21:18 +0300 Subject: [PATCH] GH-45 Add Item Dialog - Closes #45 - Adds "Add Item" functionality: popup and styling - Fixes Healing Clock reset - README tweaks - Version increment --- README.md | 35 +++++++++++++- module/actor-sheet.js | 8 +++- module/blades-helpers.js | 25 ++++++++++ module/blades-sheet.js | 90 +++++++++++++++++++++++++++++++++++ module/crew-sheet.js | 8 ++-- scss/style.scss | 47 ++++++++++++++++++ styles/blades.css | 31 ++++++++++++ styles/blades.css.map | 2 +- system.json | 28 +++++------ templates/actor-sheet.html | 97 +++++++++++++++++++++----------------- templates/crew-sheet.html | 14 ++++-- 11 files changed, 314 insertions(+), 71 deletions(-) create mode 100644 module/blades-sheet.js diff --git a/README.md b/README.md index ea6b1b7..94d3c40 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,34 @@ Contact Discord: `megastruktur#5704` in case you find any bugs or if you have any suggestions. ## Usage +`"Item" - all classes, crew types, upgrades, items, abilities, upgrades, etc.` -- To use just open Compendium and drag necessary Items, Abilities, etc. to the sheet. -- To reset XP, attributes, etc, click on Name. +- To reset reputation, exp, etc counters just click on the label name. +- Health clock can be reset by clicking on "Healing" table header. +- To add items you can click a corresponding link or drag items from compendium/game to the sheet. +- All "class/crew" specific items are prefixed with first letters + +- I don't want the "class/crew items" to be prepopulated, so the character sheet contains less "compendium" info. +- To see the description of Class, Vice, Background, etc you can just click added item and see all the info in the popup. +- When adding a new item you can hower a "question-circle" icon to see the item's description. +- To add Custom abilities just add a new "Foundry Item" of the corresponding type and fill all the necessary info. Then drag it to the sheet or add via button on a sheet. + +Classes: +- (C) Cutter +- (H) Hound +- (Le) Leech +- (Lu) Lurk +- (Sl) Slide +- (Sp) Spider +- (W) Whisper + +Crew Types: +- (A) Assassins +- (B) Bravos +- (C) Cult +- (H) Hawkers +- (Sh) Shadows +- (Sm) Smugglers ## Screenshots @@ -15,6 +40,12 @@ Contact Discord: `megastruktur#5704` in case you find any bugs or if you have an ### Compendium ![alt screen][screenshot_compendium] +## To be done in the nearest future +- Clocks +- Friends/rivals section +- Stress/Harm dynamic values (can be modified by abilities but for now are hardcoded) +- Dice Rolling + ## Troubleshooting - If you can't find the drag-n-dropped item, refer to "All Items" tab on each sheet. diff --git a/module/actor-sheet.js b/module/actor-sheet.js index f578fbe..2cd7c91 100644 --- a/module/actor-sheet.js +++ b/module/actor-sheet.js @@ -1,8 +1,11 @@ + +import { BladesSheet } from "./blades-sheet.js"; + /** * Extend the basic ActorSheet with some very simple modifications - * @extends {ActorSheet} + * @extends {BladesSheet} */ -export class BladesActorSheet extends ActorSheet { +export class BladesActorSheet extends BladesSheet { /** @override */ static get defaultOptions() { @@ -68,4 +71,5 @@ export class BladesActorSheet extends ActorSheet { } /* -------------------------------------------- */ + } diff --git a/module/blades-helpers.js b/module/blades-helpers.js index 9449aac..def1ece 100644 --- a/module/blades-helpers.js +++ b/module/blades-helpers.js @@ -172,4 +172,29 @@ export class BladesHelpers { return actor.createEmbeddedEntity("OwnedItem", data); } + /** + * Get the list of all available ingame items by Type. + * + * @param {string} item_type + * @param {Object} game + */ + static async getAllItemsByType(item_type, game) { + + let list_of_items = []; + let game_items = []; + let compendium_items = []; + + game_items = game.items.filter(e => e.type === item_type).map(e => {return e.data}); + + let pack = game.packs.find(e => e.metadata.name === item_type); + let compendium_content = await pack.getContent(); + compendium_items = compendium_content.map(e => {return e.data}); + + list_of_items = game_items.concat(compendium_items); + + return list_of_items; + + } + /* -------------------------------------------- */ + } diff --git a/module/blades-sheet.js b/module/blades-sheet.js new file mode 100644 index 0000000..19f31c1 --- /dev/null +++ b/module/blades-sheet.js @@ -0,0 +1,90 @@ +/** + * Extend the basic ActorSheet with some very simple modifications + * @extends {ActorSheet} + */ + +export class BladesSheet extends ActorSheet { + + /* -------------------------------------------- */ + + /** @override */ + activateListeners(html) { + super.activateListeners(html); + html.find(".item-add-popup").click(this._onItemAddClick.bind(this)); + } + + /* -------------------------------------------- */ + + async _onItemAddClick(event) { + event.preventDefault(); + const item_type = $(event.currentTarget).data("itemType") + const distinct = $(event.currentTarget).data("distinct") + let input_type = "checkbox"; + + if (typeof distinct !== "undefined") { + input_type = "radio"; + } + + let items = await BladesHelpers.getAllItemsByType(item_type, game); + + let html = `
`; + + items.forEach(e => { + let addition_price_load = ``; + + if (typeof e.data.load !== "undefined") { + addition_price_load += `(${e.data.load})` + } else if (typeof e.data.price !== "undefined") { + addition_price_load += `(${e.data.price})` + } + + html += ``; + html += ``; + }); + + html += `
`; + + let options = { + // width: "500" + } + + let dialog = new Dialog({ + title: `Add ${item_type}`, + content: html, + buttons: { + one: { + icon: '', + label: "Add", + callback: () => this.addItemsToSheet(item_type, $(document).find('#items-to-add')) + }, + two: { + icon: '', + label: "Cancel", + callback: () => false + } + }, + default: "two" + }, options); + + dialog.render(true); + } + + /* -------------------------------------------- */ + + async addItemsToSheet(item_type, el) { + + let items = await BladesHelpers.getAllItemsByType(item_type, game); + let items_to_add = []; + el.find("input:checked").each(function() { + + items_to_add.push(items.find(e => e._id === $(this).val())); + }); + items_to_add.forEach(e => { + this.actor.createEmbeddedEntity("OwnedItem", duplicate(e)); + }); + } + /* -------------------------------------------- */ + +} \ No newline at end of file diff --git a/module/crew-sheet.js b/module/crew-sheet.js index 61694e1..c1ec1d1 100644 --- a/module/crew-sheet.js +++ b/module/crew-sheet.js @@ -1,8 +1,10 @@ + +import { BladesSheet } from "./blades-sheet.js"; + /** - * Extend the basic ActorSheet with some very simple modifications - * @extends {ActorSheet} + * @extends {BladesSheet} */ -export class BladesCrewSheet extends ActorSheet { +export class BladesCrewSheet extends BladesSheet { /** @override */ static get defaultOptions() { diff --git a/scss/style.scss b/scss/style.scss index 5d9178a..963efbc 100644 --- a/scss/style.scss +++ b/scss/style.scss @@ -193,6 +193,12 @@ $almost_white: #EEEFFF; width: 200px; } + .label-stripe { + p:first-child { + margin-right: 10px; + } + } + } // Experience teeth @@ -527,4 +533,45 @@ $almost_white: #EEEFFF; } } } + + // Add Items modal styling. + #items-to-add { + + display: flex; + flex-direction: column; + flex-wrap: wrap; + justify-content: space-around; + + input[type="radio"], + input[type="checkbox"] { + display: none; + + &:checked + label { + font-weight: bold; + } + } + } + + // Tooltip. + .tooltip { + + .tooltiptext { + visibility: hidden; + width: 200px; + background-color: $almost_black; + color: $almost_white; + text-align: center; + padding: 5px; + border-radius: 6px; + + // Position + position: absolute; + z-index: 9999; + } + + &:hover .tooltiptext { + visibility: visible; + } + } + } diff --git a/styles/blades.css b/styles/blades.css index af690c7..fa86563 100644 --- a/styles/blades.css +++ b/styles/blades.css @@ -242,6 +242,9 @@ * #abilities .item-description { width: 200px; } +* #abilities .label-stripe p:first-child { + margin-right: 10px; +} * .teeth-experience { display: flex; /* Hide the browser's default checkbox */ @@ -828,5 +831,33 @@ border-top: none; padding: 5px; } +* #items-to-add { + display: flex; + flex-direction: column; + flex-wrap: wrap; + justify-content: space-around; +} +* #items-to-add input[type=radio], +* #items-to-add input[type=checkbox] { + display: none; +} +* #items-to-add input[type=radio]:checked + label, +* #items-to-add input[type=checkbox]:checked + label { + font-weight: bold; +} +* .tooltip .tooltiptext { + visibility: hidden; + width: 200px; + background-color: #191813; + color: #EEEFFF; + text-align: center; + padding: 5px; + border-radius: 6px; + position: absolute; + z-index: 9999; +} +* .tooltip:hover .tooltiptext { + visibility: visible; +} /*# sourceMappingURL=blades.css.map */ diff --git a/styles/blades.css.map b/styles/blades.css.map index 1051033..bf511d3 100644 --- a/styles/blades.css.map +++ b/styles/blades.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../scss/mixin.scss","../scss/style.scss"],"names":[],"mappings":"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","file":"blades.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../scss/mixin.scss","../scss/style.scss"],"names":[],"mappings":"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","file":"blades.css"} \ No newline at end of file diff --git a/system.json b/system.json index 63f7389..2530496 100644 --- a/system.json +++ b/system.json @@ -2,7 +2,7 @@ "name": "blades-in-the-dark", "title": "Blades in the Dark", "description": "Blades in the dark game system.", - "version": 0.1, + "version": 0.5, "minimumCoreVersion": "0.5.3", "compatibleCoreVersion": "0.5.5", "templateVersion": 1, @@ -10,86 +10,82 @@ "esmodules": ["module/blades.js"], "styles": ["styles/blades.css"], "languages": ["en"], - "gridDistance": 1, - "gridUnits": "m", - "primaryTokenAttribute": null, - "secondaryTokenAttribute": null, "url": "https://github.com/megastruktur/foundryvtt-blades-in-the-dark/", "manifest": "https://raw.githubusercontent.com/megastruktur/foundryvtt-blades-in-the-dark/master/system.json", "download": "https://github.com/megastruktur/foundryvtt-blades-in-the-dark/archive/master.zip", "packs": [ { - "name": "Classes", + "name": "class", "label": "Classes", "system": "blades-in-the-dark", "path": "./packs/classes.db", "entity": "Item" }, { - "name": "Heritages", + "name": "heritage", "label": "Heritages", "system": "blades-in-the-dark", "path": "./packs/heritages.db", "entity": "Item" }, { - "name": "Vices", + "name": "vice", "label": "Vices", "system": "blades-in-the-dark", "path": "./packs/vices.db", "entity": "Item" }, { - "name": "Backgrounds", + "name": "background", "label": "Backgrounds", "system": "blades-in-the-dark", "path": "./packs/backgrounds.db", "entity": "Item" }, { - "name": "Items", + "name": "item", "label": "Items", "system": "blades-in-the-dark", "path": "./packs/items.db", "entity": "Item" }, { - "name": "Abilities", + "name": "ability", "label": "Abilities", "system": "blades-in-the-dark", "path": "./packs/abilities.db", "entity": "Item" }, { - "name": "Crew Reputation", + "name": "crew_reputation", "label": "Crew Reputation", "system": "blades-in-the-dark", "path": "./packs/crew_reputation.db", "entity": "Item" }, { - "name": "Crew Types", + "name": "crew_type", "label": "Crew Types", "system": "blades-in-the-dark", "path": "./packs/crew_types.db", "entity": "Item" }, { - "name": "Crew Upgrades", + "name": "crew_upgrade", "label": "Crew Upgrades", "system": "blades-in-the-dark", "path": "./packs/crew_upgrades.db", "entity": "Item" }, { - "name": "Crew Abilities", + "name": "crew_ability", "label": "Crew Abilities", "system": "blades-in-the-dark", "path": "./packs/crew_abilities.db", "entity": "Item" }, { - "name": "Doskvol", + "name": "scene", "label": "Doskvol", "system": "blades-in-the-dark", "path": "./packs/doskvol.db", diff --git a/templates/actor-sheet.html b/templates/actor-sheet.html index e27035c..de8647f 100644 --- a/templates/actor-sheet.html +++ b/templates/actor-sheet.html @@ -10,10 +10,26 @@
- {{#each actor.items as |item id|}} - {{#eq item.type "heritage"}} +
+ + {{#each actor.items as |item id|}} + {{#eq item.type "heritage"}} +
+
+ +
{{item.name}}
+
+ +
+ {{/eq}} + {{/each}} +
+ +
+ + {{#each actor.items as |item id|}} + {{#eq item.type "background"}}
-
Heritage
{{item.name}}
@@ -21,46 +37,39 @@
{{/eq}} - {{/each}} + {{/each}} +
- {{#each actor.items as |item id|}} - {{#eq item.type "background"}} -
-
Background
-
- -
{{item.name}}
-
- +
+ + {{#each actor.items as |item id|}} + {{#eq item.type "vice"}} +
+
+ +
{{item.name}}
+
+ +
+ {{/eq}} + {{/each}} +
+ +
+ + {{#each actor.items as |item id|}} + {{#eq item.type "class"}} +
+
+ +
{{item.name}}
+
+ +
+ {{/eq}} + {{/each}}
- {{/eq}} - {{/each}} - {{#each actor.items as |item id|}} - {{#eq item.type "vice"}} -
-
Vice
-
- -
{{item.name}}
-
- -
- {{/eq}} - {{/each}} - - {{#each actor.items as |item id|}} - {{#eq item.type "class"}} -
-
Class
-
- -
{{item.name}}
-
- -
- {{/eq}} - {{/each}}
@@ -171,7 +180,7 @@ - + @@ -255,6 +264,7 @@

+

{{#multiboxes data.experience}} @@ -292,13 +302,15 @@
{{/eq}} {{/each}} +
{{!-- Owned Items Tab --}}
-
+

Loadout: {{data.loadout}}

+

{{#each actor.items as |item id|}} @@ -313,6 +325,7 @@
{{/eq}} {{/each}} +
diff --git a/templates/crew-sheet.html b/templates/crew-sheet.html index 6d738f3..aa9f1a1 100644 --- a/templates/crew-sheet.html +++ b/templates/crew-sheet.html @@ -9,7 +9,9 @@
-
Crew Reputation
+ {{#each actor.items as |item id|}} {{#eq item.type "crew_reputation"}}
@@ -264,8 +266,9 @@ {{!-- Crew Upgrades --}}
-
-

+
+

Crew Upgrades

+

{{#each actor.items as |item id|}} {{#eq item.type "crew_upgrade"}} @@ -282,8 +285,9 @@ {{!-- Crew Abilities --}}
-
-

+
+

Special Abilities

+

{{#each actor.items as |item id|}} {{#eq item.type "crew_ability"}}
HarmHealing Armor