const toast = require('izitoast'); function registerEvents(registry, events) { function setCryps(cryps) { console.log('setting cryps'); registry.set('cryps', cryps); } function setWs(ws) { registry.set('ws', ws); } function setGame(game) { registry.set('game', game); } function setAccount(account) { registry.set('account', account); events.emit('ACCOUNT', account); } function setActiveSkill(skill) { registry.set('activeSkill', skill); } function setItems(items) { registry.set('items', items); } function setGameList(gameList) { registry.set('gameList', gameList); } events.on('SET_ACTIVE_SKILL', function skillActive(skill) { const activeSkill = registry.get('activeSkill'); if (activeSkill) { activeSkill.clearTint(); } skill.setTint(0x00ff00); return setActiveSkill(skill); }); events.on('SEND_ACTIVE_SKILL', function skillActive(cryp) { const activeSkill = registry.get('activeSkill'); const game = registry.get('game'); if (activeSkill) { const target = activeSkill.cryp.account === cryp.account; if (!target) { const ws = registry.get('ws'); if (game.phase === 'Skill') { ws.sendGameSkill(game.id, activeSkill.cryp.id, cryp.account, activeSkill.skill.skill); } else if (game.phase === 'Target') { ws.sendGameTarget(game.id, cryp.id, activeSkill.skill.id); } activeSkill.setTint(0xff0000); } else { activeSkill.clearTint(); } registry.set('activeSkill', null); } }); events.on('CRYP_ACTIVE', function crypActiveCb(cryp) { const cryps = registry.get('cryps'); cryps.forEach((c) => { if (c.id === cryp.id) { if (c.active) return c.active = false; return c.active = true; } return false; }); return setCryps(cryps); }); function loginPrompt() { const USER_INPUT = ''; const PASSWORD_INPUT = ''; const LOGIN_BUTTON = ''; const REGISTER_BUTTON = ''; const ws = registry.get('ws'); function submitLogin(instance, thisToast, button, e, inputs) { const USERNAME = inputs[0].value; const PASSWORD = inputs[1].value; ws.sendAccountLogin(USERNAME, PASSWORD); } function submitRegister(instance, thisToast, button, e, inputs) { const USERNAME = inputs[0].value; const PASSWORD = inputs[1].value; ws.sendAccountCreate(USERNAME, PASSWORD); } const existing = document.querySelector('#login'); // Selector of your toast if (existing) toast.hide({}, existing, 'reconnect'); toast.question({ id: 'login', theme: 'dark', color: 'black', timeout: false, // overlay: true, drag: false, close: false, title: 'LOGIN', position: 'center', inputs: [ [USER_INPUT, 'change', null, true], // true to focus [PASSWORD_INPUT, 'change', null], ], buttons: [ [LOGIN_BUTTON, submitLogin], // true to focus [REGISTER_BUTTON, submitRegister], // true to focus ], }); const prompt = document.querySelector('#login'); // Selector of your toast events.once('ACCOUNT', function closeLoginCb() { toast.hide({ transitionOut: 'fadeOut' }, prompt, 'event'); }); } events.on('CRYP_SPAWN', function spawnPrompt() { const NAME_INPUT = ''; const SPAWN_BUTTON = ''; const ws = registry.get('ws'); function submitSpawn(instance, thisToast, button, e, inputs) { const NAME = inputs[0].value; ws.sendCrypSpawn(NAME); instance.hide({ transitionOut: 'fadeOut' }, thisToast, 'button'); } toast.question({ theme: 'dark', color: 'black', timeout: false, // overlay: true, drag: false, close: true, title: 'SPAWN CRYP', position: 'center', inputs: [ [NAME_INPUT, 'change', null, true], // true to focus ], buttons: [ [SPAWN_BUTTON, submitSpawn], // true to focus ], }); }); return { loginPrompt, setAccount, setActiveSkill, setCryps, setGame, setItems, setWs, setGameList, }; } module.exports = registerEvents;