blueversusraid 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.d.ts +5 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +35 -1
- package/lib/index.js.map +1 -1
- package/lib/types/events.d.ts +9 -0
- package/lib/types/events.d.ts.map +1 -0
- package/lib/types/events.js +2 -0
- package/lib/types/events.js.map +1 -0
- package/lib/types/players.d.ts +3 -2
- package/lib/types/players.d.ts.map +1 -1
- package/lib/types/players.js +7 -4
- package/lib/types/players.js.map +1 -1
- package/lib/types/roles.d.ts +6 -5
- package/lib/types/roles.d.ts.map +1 -1
- package/lib/types/roles.js +15 -9
- package/lib/types/roles.js.map +1 -1
- package/package.json +1 -1
package/lib/index.d.ts
CHANGED
|
@@ -10,9 +10,14 @@ export declare class Game {
|
|
|
10
10
|
phases: Phase[][];
|
|
11
11
|
current_phases: Phase[];
|
|
12
12
|
players: Player[];
|
|
13
|
+
running: boolean;
|
|
14
|
+
winner: Team | Player | null;
|
|
13
15
|
constructor(id?: number);
|
|
14
16
|
iterate(): Promise<void>;
|
|
15
17
|
startLoop(): Promise<void>;
|
|
18
|
+
onEnd(callback: (winner: Player | Team | null) => void): Promise<void>;
|
|
19
|
+
kill(author: Player | null, target: Player, phase: Phase): Promise<void>;
|
|
20
|
+
win(winner: Player | Team): Promise<void>;
|
|
16
21
|
}
|
|
17
22
|
export { Role, Player };
|
|
18
23
|
export type { Team, Phase, Cycle };
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,qBAAa,IAAI;IACN,EAAE,EAAE,MAAM,CAAA;IAEV,KAAK,EAAE,IAAI,EAAE,CAAK;IAClB,KAAK,EAAE,IAAI,EAAE,CAgBnB;IAEM,KAAK,EAAE,MAAM,CAAI;IACxB,OAAO,CAAC,SAAS,CAAY;IAEtB,MAAM,EAAE,KAAK,EAAE,EAAE,CAAK;IACtB,cAAc,EAAE,KAAK,EAAE,CAAK;IAE5B,OAAO,EAAE,MAAM,EAAE,CAAK;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,qBAAa,IAAI;IACN,EAAE,EAAE,MAAM,CAAA;IAEV,KAAK,EAAE,IAAI,EAAE,CAAK;IAClB,KAAK,EAAE,IAAI,EAAE,CAgBnB;IAEM,KAAK,EAAE,MAAM,CAAI;IACxB,OAAO,CAAC,SAAS,CAAY;IAEtB,MAAM,EAAE,KAAK,EAAE,EAAE,CAAK;IACtB,cAAc,EAAE,KAAK,EAAE,CAAK;IAE5B,OAAO,EAAE,MAAM,EAAE,CAAK;IACtB,OAAO,EAAE,OAAO,CAAQ;IACxB,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAO;gBAE9B,EAAE,CAAC,EAAE,MAAM;IAIV,OAAO;IAiEP,SAAS;IAST,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,KAAK,IAAI;IAStD,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAaxD,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGzC;AAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;AACvB,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA"}
|
package/lib/index.js
CHANGED
|
@@ -25,6 +25,8 @@ export class Game {
|
|
|
25
25
|
phases = [];
|
|
26
26
|
current_phases = [];
|
|
27
27
|
players = [];
|
|
28
|
+
running = false;
|
|
29
|
+
winner = null;
|
|
28
30
|
constructor(id) {
|
|
29
31
|
this.id = id || Math.random();
|
|
30
32
|
}
|
|
@@ -66,15 +68,47 @@ export class Game {
|
|
|
66
68
|
}
|
|
67
69
|
}));
|
|
68
70
|
}
|
|
71
|
+
let _teams = new Set();
|
|
72
|
+
for (const player of this.players) {
|
|
73
|
+
if (player.team)
|
|
74
|
+
_teams.add(player.team);
|
|
75
|
+
}
|
|
76
|
+
if (_teams.size === 1) {
|
|
77
|
+
const winner = _teams.values().next().value;
|
|
78
|
+
if ((!winner.solo) || this.players.length === 1) {
|
|
79
|
+
await this.win(winner);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
69
82
|
this.iteration += 1;
|
|
70
83
|
}
|
|
71
84
|
async startLoop() {
|
|
72
85
|
let sleeps = this.phases.map(phase => Math.max(...phase.map(turn => turn.duration)));
|
|
73
|
-
while (this.players.length > 0) {
|
|
86
|
+
while (this.players.length > 0 && !this.winner) {
|
|
74
87
|
await this.iterate();
|
|
75
88
|
await new Promise(_ => { setTimeout(_, sleeps[this.iteration]); });
|
|
76
89
|
}
|
|
77
90
|
}
|
|
91
|
+
async onEnd(callback) {
|
|
92
|
+
while (!this.winner) {
|
|
93
|
+
await new Promise(_ => setTimeout(_, 50));
|
|
94
|
+
}
|
|
95
|
+
this.running = false;
|
|
96
|
+
callback(this.winner);
|
|
97
|
+
}
|
|
98
|
+
async kill(author, target, phase) {
|
|
99
|
+
await target.die(author, phase);
|
|
100
|
+
for (const player of this.players) {
|
|
101
|
+
await player.triggerEvent({
|
|
102
|
+
type: 'death',
|
|
103
|
+
author,
|
|
104
|
+
target,
|
|
105
|
+
phase
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
async win(winner) {
|
|
110
|
+
this.winner = winner;
|
|
111
|
+
}
|
|
78
112
|
}
|
|
79
113
|
export { Role, Player };
|
|
80
114
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAQ,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,MAAM,OAAO,IAAI;IACN,EAAE,CAAQ;IAEV,KAAK,GAAW,EAAE,CAAA;IAClB,KAAK,GAAW;QACnB;YACI,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,yBAAyB;YACtC,IAAI,EAAE,KAAK;SACd;QACD;YACI,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,wBAAwB;YACrC,IAAI,EAAE,KAAK;SACd;QACD;YACI,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,8BAA8B;YAC3C,IAAI,EAAE,IAAI;SACb;KACJ,CAAA;IAEM,KAAK,GAAW,CAAC,CAAA;IAChB,SAAS,GAAW,CAAC,CAAA;IAEtB,MAAM,GAAc,EAAE,CAAA;IACtB,cAAc,GAAY,EAAE,CAAA;IAE5B,OAAO,GAAa,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,MAAM,MAAM,SAAS,GAAG;IACpB,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,KAAK,CAAA;CACf,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":""}
|
package/lib/types/players.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { GameEvent } from "./events.js";
|
|
1
2
|
import { Role, Team } from "./roles.js";
|
|
2
3
|
import { Phase } from "./rules.js";
|
|
3
4
|
export declare class Player {
|
|
@@ -9,7 +10,7 @@ export declare class Player {
|
|
|
9
10
|
constructor(id?: number, role?: Role);
|
|
10
11
|
call(phase: string): Promise<() => void>;
|
|
11
12
|
endCall(): Promise<void>;
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
die(author: Player | null, phase: Phase): Promise<void>;
|
|
14
|
+
triggerEvent(event: GameEvent): Promise<void>;
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=players.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"players.d.ts","sourceRoot":"","sources":["../../src/types/players.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,qBAAa,MAAM;IACR,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IACjB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IAEjB,IAAI,EAAE,OAAO,CAAQ;IACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAK;gBAE9B,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI;IAMvB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAIxC,OAAO;IAIP,
|
|
1
|
+
{"version":3,"file":"players.d.ts","sourceRoot":"","sources":["../../src/types/players.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,qBAAa,MAAM;IACR,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IACjB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IAEjB,IAAI,EAAE,OAAO,CAAQ;IACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAK;gBAE9B,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI;IAMvB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAIxC,OAAO;IAIP,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK;IAOvC,YAAY,CAAC,KAAK,EAAE,SAAS;CAG7C"}
|
package/lib/types/players.js
CHANGED
|
@@ -15,11 +15,14 @@ export class Player {
|
|
|
15
15
|
async endCall() {
|
|
16
16
|
await this.role?.endCall(this);
|
|
17
17
|
}
|
|
18
|
-
async
|
|
19
|
-
|
|
18
|
+
async die(author, phase) {
|
|
19
|
+
if (this.dead)
|
|
20
|
+
return;
|
|
21
|
+
this.dead = true;
|
|
22
|
+
await this.role?.die(this, author, phase);
|
|
20
23
|
}
|
|
21
|
-
async
|
|
22
|
-
await this.role?.
|
|
24
|
+
async triggerEvent(event) {
|
|
25
|
+
await this.role?.triggerEvent(this, event);
|
|
23
26
|
}
|
|
24
27
|
}
|
|
25
28
|
//# sourceMappingURL=players.js.map
|
package/lib/types/players.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"players.js","sourceRoot":"","sources":["../../src/types/players.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"players.js","sourceRoot":"","sources":["../../src/types/players.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,MAAM;IACR,EAAE,CAAQ;IACV,IAAI,CAAa;IACjB,IAAI,CAAa,CAAC,+CAA+C;IAEjE,IAAI,GAAY,KAAK,CAAA;IACrB,KAAK,GAA4B,EAAE,CAAA;IAE1C,YAAY,EAAW,EAAE,IAAW;QAChC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAA;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAA;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAA;IAClC,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,KAAa;QAC3B,OAAO,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAC3D,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,MAAM,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,MAAqB,EAAE,KAAY;QAChD,IAAI,IAAI,CAAC,IAAI;YAAE,OAAM;QAErB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;IAC7C,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,KAAgB;QACtC,MAAM,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC9C,CAAC;CACJ"}
|
package/lib/types/roles.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Phase } from "./rules.js";
|
|
2
2
|
import { Player } from "./players.js";
|
|
3
|
+
import { GameEvent } from "./events.js";
|
|
3
4
|
export type Team = {
|
|
4
5
|
name: string;
|
|
5
6
|
description: string;
|
|
@@ -10,17 +11,17 @@ export declare class Role {
|
|
|
10
11
|
team: Team;
|
|
11
12
|
depends_on: Role['name'][];
|
|
12
13
|
private exec_death;
|
|
13
|
-
private exec_kill;
|
|
14
14
|
private exec_logic;
|
|
15
15
|
private end_logic;
|
|
16
|
-
|
|
16
|
+
private listen_death;
|
|
17
|
+
constructor(name: string, team: Team, depends_on?: Role['name'][], exec_death?: (myself: Player, author: Player | null, phase: Phase) => void, exec_logic?: (myself: Player, phase: string) => Promise<() => void>, end_logic?: (myself: Player) => void, listen_death?: (myself: Player, event: GameEvent) => void);
|
|
17
18
|
onDeath(callback: (myself: Player, author: Player | null, phase: Phase) => void): void;
|
|
18
|
-
onKill(callback: (myself: Player, victim: Player) => void): void;
|
|
19
19
|
onCall(callback: (myself: Player, phase: string) => Promise<() => void>): void;
|
|
20
20
|
onEndCall(callback: (myself: Player) => void): void;
|
|
21
|
+
on(event: GameEvent['type'], callback: (myself: Player, event: GameEvent) => void): void;
|
|
21
22
|
call(player: Player, phase: string): Promise<() => void>;
|
|
22
23
|
endCall(player: Player): Promise<void>;
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
die(myself: Player, author: Player | null, phase: Phase): Promise<void>;
|
|
25
|
+
triggerEvent(myself: Player, event: GameEvent): Promise<void>;
|
|
25
26
|
}
|
|
26
27
|
//# sourceMappingURL=roles.d.ts.map
|
package/lib/types/roles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/types/roles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/types/roles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC,MAAM,MAAM,IAAI,GAAG;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,qBAAa,IAAI;IACN,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,IAAI,CAAA;IACV,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAK;IAEtC,OAAO,CAAC,UAAU,CAAgF;IAClG,OAAO,CAAC,UAAU,CAA+E;IACjG,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,YAAY,CAA6D;gBAG7E,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,EACV,UAAU,GAAE,IAAI,CAAC,MAAM,CAAC,EAAO,EAC/B,UAAU,GAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,IAAe,EACpF,UAAU,GAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,CAAwB,EACzF,SAAS,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAe,EAC9C,YAAY,GAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,IAAe;IAYhE,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI;IAI/E,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,CAAC;IAIvE,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;IAI5C,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI;IAO3E,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAIxD,OAAO,CAAC,MAAM,EAAE,MAAM;IAItB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK;IAIvD,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS;CAM7D"}
|
package/lib/types/roles.js
CHANGED
|
@@ -3,41 +3,47 @@ export class Role {
|
|
|
3
3
|
team;
|
|
4
4
|
depends_on = [];
|
|
5
5
|
exec_death = async () => { };
|
|
6
|
-
exec_kill = async () => { };
|
|
7
6
|
exec_logic = async () => () => { };
|
|
8
7
|
end_logic = async () => { };
|
|
9
|
-
|
|
8
|
+
listen_death = async () => { };
|
|
9
|
+
constructor(name, team, depends_on = [], exec_death = () => { }, exec_logic = async () => () => { }, end_logic = () => { }, listen_death = () => { }) {
|
|
10
10
|
this.name = name;
|
|
11
11
|
this.team = team;
|
|
12
12
|
this.depends_on = depends_on;
|
|
13
13
|
this.exec_death = exec_death;
|
|
14
|
-
this.exec_kill = exec_kill;
|
|
15
14
|
this.exec_logic = exec_logic;
|
|
16
15
|
this.end_logic = end_logic;
|
|
16
|
+
this.listen_death = listen_death;
|
|
17
17
|
}
|
|
18
18
|
onDeath(callback) {
|
|
19
19
|
this.exec_death = callback;
|
|
20
20
|
}
|
|
21
|
-
onKill(callback) {
|
|
22
|
-
this.exec_kill = callback;
|
|
23
|
-
}
|
|
24
21
|
onCall(callback) {
|
|
25
22
|
this.exec_logic = callback;
|
|
26
23
|
}
|
|
27
24
|
onEndCall(callback) {
|
|
28
25
|
this.end_logic = callback;
|
|
29
26
|
}
|
|
27
|
+
on(event, callback) {
|
|
28
|
+
switch (event) {
|
|
29
|
+
case 'death':
|
|
30
|
+
this.listen_death = callback;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
30
33
|
async call(player, phase) {
|
|
31
34
|
return await this.exec_logic(player, phase);
|
|
32
35
|
}
|
|
33
36
|
async endCall(player) {
|
|
34
37
|
await this.end_logic(player);
|
|
35
38
|
}
|
|
36
|
-
async
|
|
39
|
+
async die(myself, author, phase) {
|
|
37
40
|
await this.exec_death(myself, author, phase);
|
|
38
41
|
}
|
|
39
|
-
async
|
|
40
|
-
|
|
42
|
+
async triggerEvent(myself, event) {
|
|
43
|
+
switch (event.type) {
|
|
44
|
+
case 'death':
|
|
45
|
+
await this.listen_death(myself, event);
|
|
46
|
+
}
|
|
41
47
|
}
|
|
42
48
|
}
|
|
43
49
|
//# sourceMappingURL=roles.js.map
|
package/lib/types/roles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.js","sourceRoot":"","sources":["../../src/types/roles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"roles.js","sourceRoot":"","sources":["../../src/types/roles.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,IAAI;IACN,IAAI,CAAQ;IACZ,IAAI,CAAM;IACV,UAAU,GAAmB,EAAE,CAAA;IAE9B,UAAU,GAAkE,KAAK,IAAI,EAAE,GAAE,CAAC,CAAA;IAC1F,UAAU,GAA2D,KAAK,IAAI,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC,CAAA;IACzF,SAAS,GAA6B,KAAK,IAAI,EAAE,GAAE,CAAC,CAAA;IACpD,YAAY,GAA+C,KAAK,IAAI,EAAE,GAAE,CAAC,CAAA;IAEjF,YACI,IAAY,EACZ,IAAU,EACV,aAA6B,EAAE,EAC/B,aAA4E,GAAG,EAAE,GAAE,CAAC,EACpF,aAAqE,KAAK,IAAI,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC,EACzF,YAAsC,GAAG,EAAE,GAAE,CAAC,EAC9C,eAA2D,GAAG,EAAE,GAAE,CAAC;QAEnE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAE5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACpC,CAAC;IAEM,OAAO,CAAC,QAAuE;QAClF,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAA;IAC9B,CAAC;IAEM,MAAM,CAAC,QAAgE;QAC1E,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAA;IAC9B,CAAC;IAEM,SAAS,CAAC,QAAkC;QAC/C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;IAC7B,CAAC;IAEM,EAAE,CAAC,KAAwB,EAAE,QAAoD;QACpF,QAAQ,KAAK,EAAE,CAAC;YACZ,KAAK,OAAO;gBACR,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAA;QACpC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,KAAa;QAC3C,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC/C,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,MAAc;QAC/B,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,MAAc,EAAE,MAAqB,EAAE,KAAY;QAChE,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,KAAgB;QACtD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,OAAO;gBACR,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAC9C,CAAC;IACL,CAAC;CACJ"}
|