From d3e65b98ca932aef1e05e33d74eaf62be520cdd4 Mon Sep 17 00:00:00 2001 From: Daniel Weipert Date: Fri, 18 Aug 2023 16:07:39 +0200 Subject: inventory and items --- resources/js/classes/InventoryItem.js | 40 +++++++++++++++++++++++++++++++++++ resources/js/classes/Item.js | 22 ++++++++++++++++++- resources/js/classes/State.js | 2 +- 3 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 resources/js/classes/InventoryItem.js (limited to 'resources/js/classes') diff --git a/resources/js/classes/InventoryItem.js b/resources/js/classes/InventoryItem.js new file mode 100644 index 0000000..9dfdbcc --- /dev/null +++ b/resources/js/classes/InventoryItem.js @@ -0,0 +1,40 @@ +class InventoryItem { + /** + * @type {Item} + */ + item = null; + + /** + * @type {number} + */ + quantity = 1; + + /** + * @param {Item} item + */ + constructor (item) { + this.item = item; + } + + /* Item */ + + get slug () { + return this.item.slug; + } + + get name () { + return this.item.name; + } + + get category () { + return this.item.category; + } + + get type () { + return this.item.type; + } + + get sprite () { + return this.item.sprite; + } +} diff --git a/resources/js/classes/Item.js b/resources/js/classes/Item.js index e274a20..6207cc2 100644 --- a/resources/js/classes/Item.js +++ b/resources/js/classes/Item.js @@ -1 +1,21 @@ -class Item {} +class Item { + constructor (slug) { + this.slug = slug; + } + + get name () { + return slugToName(this.slug); + } + + get category () { + return DB.items[this.slug].category; + } + + get type () { + return DB.items[this.slug].type; + } + + get sprite () { + return DB.items[this.slug].sprite; + } +} diff --git a/resources/js/classes/State.js b/resources/js/classes/State.js index 2384a85..c0065d1 100644 --- a/resources/js/classes/State.js +++ b/resources/js/classes/State.js @@ -10,7 +10,7 @@ class State { monsters = []; /** - * @type {Item[]} + * @type {InventoryItem[]} */ inventory = []; -- cgit v1.2.3