(async function () { await initializeDB(); // Start Game const possibleStarterMonsters = ['budaye', 'dollfin', 'grintot', 'ignibus', 'memnomnom']; const monsterSelection = UI.openStarterMonsterSelection( await Promise.all(possibleStarterMonsters.map(async (monsterSlug) => await fetchMonster(monsterSlug))) ); monsterSelection.addEventListener('starter:monster:selected', async (event) => { if (!confirm(`Select ${event.detail.monster.name}?`)) { return; } Memory.state.player = new Trainer({ monsters: [ event.detail.monster, ], inventory: [ new InventoryItem(await fetchItem('tuxeball'), 5), new InventoryItem(await fetchItem('potion')), ] }); await Memory.state.player.initialize(); Game.setActivePlayerMonster(Memory.state.player.monsters[0]); Memory.state.activeBall = Memory.state.player.inventory[0]; // tuxeball possibleStarterMonsters.splice(possibleStarterMonsters.indexOf(event.detail.monster), 1); Memory.state.rivalMonster = possibleStarterMonsters[Math.round(Math.random() * (possibleStarterMonsters.length - 1))]; await Game.goToArea('paper-town'); UI.drawActiveMonster(); UI.drawActiveTechniques(); event.detail.popup.remove(); }); })();