Path: blob/main/src/scripts/digItUp/Purchasers.svelte
4175 views
<script lang="ts"> import { devicesLoaded } from "../../stores"; import Group from "../../hud/Group.svelte"; import { getUnsafeWindow } from "../../utils"; import Button from "../../hud/components/Button.svelte"; import socketManager from "../../network/socketManager"; let permitDevices = []; let permitPurchaseDevice = null; let pickaxeDevices = []; let pickaxePurchaseDevice = null; const checkDevices = () => { let devices: any[] = getUnsafeWindow().stores.phaser.scene.worldManager.devices.allDevices; // set permit devices permitDevices = devices.filter(device => device.options.group === "permit upgrade"); permitPurchaseDevice = permitDevices.find(d => d.options.message); permitDevices = permitDevices.filter(d => d !== permitPurchaseDevice); // set pickaxe devices pickaxeDevices = devices.filter(device => device.options.group === "pickaxe upgrade"); pickaxePurchaseDevice = pickaxeDevices.find(d => d.options.message); pickaxeDevices = pickaxeDevices.filter(d => d !== pickaxePurchaseDevice); } devicesLoaded.subscribe(val => { if(!val) return; checkDevices(); }) function buyPermit(device: any) { socketManager.sendMessage("MESSAGE_FOR_DEVICE", { key: "action", deviceId: permitPurchaseDevice.id, data: { action: device.id } }) } function buyPickaxe(device: any) { socketManager.sendMessage("MESSAGE_FOR_DEVICE", { key: "action", deviceId: pickaxePurchaseDevice.id, data: { action: device.id } }) } </script> <Group name="Permits"> {#if permitDevices.length == 0} <div class="notLoaded"> Permits haven't loaded in yet </div> <Button on:click={checkDevices}>Retry</Button> {:else} {#each permitDevices as device} <Button on:click={() => buyPermit(device)}> {device.options.text} </Button> {/each} {/if} </Group> <Group name="Pickaxes"> {#if pickaxeDevices.length == 0} <div class="notLoaded"> Pickaxes haven't loaded in yet </div> <Button on:click={checkDevices}>Retry</Button> {:else} {#each pickaxeDevices as device} <Button on:click={() => buyPickaxe(device)}> {device.options.text} </Button> {/each} {/if} </Group> <style> .notLoaded { width: 100%; text-align: center; } </style>