summaryrefslogtreecommitdiff
path: root/resources/js/classes/Trainer.js
diff options
context:
space:
mode:
Diffstat (limited to 'resources/js/classes/Trainer.js')
-rw-r--r--resources/js/classes/Trainer.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/resources/js/classes/Trainer.js b/resources/js/classes/Trainer.js
index 668c92b..f2c2df9 100644
--- a/resources/js/classes/Trainer.js
+++ b/resources/js/classes/Trainer.js
@@ -1,4 +1,12 @@
class Trainer {
+ #monsters = [];
+ #inventory = [];
+
+ /**
+ * @type {('trainer' | 'monster')}
+ */
+ type = 'trainer';
+
/**
* @type {Monster[]}
*/
@@ -13,4 +21,29 @@ class Trainer {
* @type {Monster}
*/
activeMonster = [];
+
+ constructor (monsters, inventory = []) {
+ this.#monsters = monsters;
+ this.#inventory = inventory;
+ }
+
+ async initialize () {
+ for (const monsterData of this.#monsters) {
+ const monster = await fetchMonster(monsterData.slug);
+
+ monster.level = monsterData.level || monster.level;
+
+ this.monsters.push(monster);
+ }
+
+ this.activeMonster = this.monsters[0];
+
+ for (const itemData of this.#inventory) {
+ const item = new InventoryItem(await fetchItem(itemData.slug));
+
+ item.amount = itemData.amount || 1;
+
+ this.inventory.push(item);
+ }
+ }
}