-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathgame.event.js
More file actions
36 lines (35 loc) · 1.31 KB
/
game.event.js
File metadata and controls
36 lines (35 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import eventManager from 'src/utils/eventManager.js';
import { debug } from 'src/utils/debug.js';
import debugToast from 'src/utils/debugToast';
eventManager.on('GameStart', function gameEvents() {
let finished = false;
eventManager.on('GameEvent', function logEvent(data) {
if (finished) { // Sometimes we get events after the battle is over
debugToast(`Extra action: ${data.action}`, 'debugging.events.extra');
return;
}
debug(data.action, 'debugging.events.name');
debug(data, 'debugging.events.raw');
const emitted = eventManager.emit(data.action, data).ran;
if (!emitted) {
debugToast(`Unknown action: ${data.action}`);
}
});
eventManager.on('PreGameEvent', function callPreEvent(data) {
if (finished) return;
const emit = this.cancelable ? eventManager.cancelable.emit : eventManager.emit;
const event = emit(`${data.action}:before`, data);
if (!event.ran) return;
this.canceled = event.canceled;
});
eventManager.on('getVictory getDefeat getResult', function finish() {
finished = true;
});
eventManager.on('getBattleLog', (data) => {
const log = JSON.parse(data.battleLog);
const { ran } = eventManager.emit(`Log:${log.battleLogType}`, log);
if (!ran) {
debugToast(`Unknown action: Log:${log.battleLogType}`);
}
});
});