blueversusraid 0.0.5 → 0.0.7

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 CHANGED
@@ -13,6 +13,7 @@ export declare class Game {
13
13
  constructor(id?: number);
14
14
  iterate(): Promise<void>;
15
15
  startLoop(): Promise<void>;
16
+ kill(author: Player | null, target: Player, phase: Phase): Promise<void>;
16
17
  }
17
18
  export { Role, Player };
18
19
  export type { Team, Phase, Cycle };
@@ -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;gBAEjB,EAAE,CAAC,EAAE,MAAM;IAIV,OAAO;IAiDP,SAAS;CAQzB;AAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;AACvB,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA"}
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;gBAEjB,EAAE,CAAC,EAAE,MAAM;IAIV,OAAO;IAmDP,SAAS;IAST,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CAYxE;AAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;AACvB,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA"}
package/lib/index.js CHANGED
@@ -53,14 +53,16 @@ export class Game {
53
53
  this.current_phases = executed;
54
54
  for (const turn of executed) {
55
55
  await Promise.all(turn.roles.map(async (role) => {
56
- let callback = await role.call(turn.name);
57
- let isOnTime = true;
58
- setTimeout(() => {
59
- role.endCall();
60
- isOnTime = false;
61
- }, turn.duration * 1000);
62
- if (isOnTime) {
63
- callback();
56
+ for (const player of this.players.filter(p => p.role?.name === role.name)) {
57
+ let callback = await player.call(turn.name);
58
+ let isOnTime = true;
59
+ setTimeout(() => {
60
+ player.endCall();
61
+ isOnTime = false;
62
+ }, turn.duration * 1000);
63
+ if (isOnTime) {
64
+ callback();
65
+ }
64
66
  }
65
67
  }));
66
68
  }
@@ -73,6 +75,17 @@ export class Game {
73
75
  await new Promise(_ => { setTimeout(_, sleeps[this.iteration]); });
74
76
  }
75
77
  }
78
+ async kill(author, target, phase) {
79
+ await target.die(author, phase);
80
+ for (const player of this.players) {
81
+ await player.triggerEvent({
82
+ type: 'death',
83
+ author,
84
+ target,
85
+ phase
86
+ });
87
+ }
88
+ }
76
89
  }
77
90
  export { Role, Player };
78
91
  //# 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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Player } from './players.js';
2
+ import { Phase } from './rules.js';
3
+ export type GameEvent = {
4
+ type: 'death';
5
+ author: Player | null;
6
+ target: Player;
7
+ phase: Phase;
8
+ };
9
+ //# sourceMappingURL=events.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":""}
@@ -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 {
@@ -7,6 +8,9 @@ export declare class Player {
7
8
  dead: boolean;
8
9
  state: Record<string, boolean>;
9
10
  constructor(id?: number, role?: Role);
10
- trigger_death(author: (Player | null) | undefined, phase: Phase): Promise<void>;
11
+ call(phase: string): Promise<() => void>;
12
+ endCall(): Promise<void>;
13
+ die(author: Player | null, phase: Phase): Promise<void>;
14
+ triggerEvent(event: GameEvent): Promise<void>;
11
15
  }
12
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,aAAa,CAAC,MAAM,GAAE,MAAM,GAAG,IAAI,aAAO,EAAE,KAAK,EAAE,KAAK;CAMxE"}
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"}
@@ -1,7 +1,7 @@
1
1
  export class Player {
2
2
  id;
3
3
  role;
4
- team; // For an eventuel team swap with the same role
4
+ team; // For an eventual team swap with the same role
5
5
  dead = false;
6
6
  state = {};
7
7
  constructor(id, role) {
@@ -9,11 +9,20 @@ export class Player {
9
9
  this.role = role || null;
10
10
  this.team = role?.team || null;
11
11
  }
12
- async trigger_death(author = null, phase) {
12
+ async call(phase) {
13
+ return await this.role?.call(this, phase) || (() => { });
14
+ }
15
+ async endCall() {
16
+ await this.role?.endCall(this);
17
+ }
18
+ async die(author, phase) {
13
19
  if (this.dead)
14
20
  return;
15
21
  this.dead = true;
16
- await this.role?.trigger_death(author instanceof Player ? author.role : author, phase);
22
+ await this.role?.die(this, author, phase);
23
+ }
24
+ async triggerEvent(event) {
25
+ await this.role?.triggerEvent(this, event);
17
26
  }
18
27
  }
19
28
  //# sourceMappingURL=players.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"players.js","sourceRoot":"","sources":["../../src/types/players.ts"],"names":[],"mappings":"AAGA,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,aAAa,CAAC,SAAwB,IAAI,EAAE,KAAY;QACjE,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO;QAEtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,MAAM,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,YAAY,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC1F,CAAC;CACJ"}
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"}
@@ -1,4 +1,6 @@
1
1
  import { Phase } from "./rules.js";
2
+ import { Player } from "./players.js";
3
+ import { GameEvent } from "./events.js";
2
4
  export type Team = {
3
5
  name: string;
4
6
  description: string;
@@ -9,17 +11,17 @@ export declare class Role {
9
11
  team: Team;
10
12
  depends_on: Role['name'][];
11
13
  private exec_death;
12
- private exec_kill;
13
14
  private exec_logic;
14
15
  private end_logic;
15
- constructor(name: string, team: Team, depends_on?: Role['name'][], exec_death?: (author: Role | null, phase: Phase) => void, exec_kill?: (victim: Role) => void, exec_logic?: (phase: string) => Promise<() => void>, end_logic?: () => void);
16
- onDeath(callback: (author: Role | null, phase: Phase) => void): void;
17
- onKill(callback: (victim: Role) => void): void;
18
- onCall(callback: (phase: string) => Promise<() => void>): void;
19
- onEndCall(callback: () => void): void;
20
- call(phase: string): Promise<() => void>;
21
- endCall(): Promise<void>;
22
- trigger_death(author: Role | null, phase: Phase): Promise<void>;
23
- do_kill(victim: Role): Promise<void>;
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);
18
+ onDeath(callback: (myself: Player, author: Player | null, phase: Phase) => void): void;
19
+ onCall(callback: (myself: Player, phase: string) => Promise<() => void>): void;
20
+ onEndCall(callback: (myself: Player) => void): void;
21
+ on(event: GameEvent['type'], callback: (myself: Player, event: GameEvent) => void): void;
22
+ call(player: Player, phase: string): Promise<() => void>;
23
+ endCall(player: Player): Promise<void>;
24
+ die(myself: Player, author: Player | null, phase: Phase): Promise<void>;
25
+ triggerEvent(myself: Player, event: GameEvent): Promise<void>;
24
26
  }
25
27
  //# sourceMappingURL=roles.d.ts.map
@@ -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;AAElC,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,CAA6D;IAC/E,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,UAAU,CAA+D;IACjF,OAAO,CAAC,SAAS,CAA6B;gBAG1C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,EACV,UAAU,GAAE,IAAI,CAAC,MAAM,CAAC,EAAO,EAC/B,UAAU,GAAE,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,IAAe,EAClE,SAAS,GAAE,CAAC,MAAM,EAAE,IAAI,KAAK,IAAe,EAC5C,UAAU,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,CAAqC,EACtF,SAAS,GAAE,MAAM,IAAe;IAY7B,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI;IAI7D,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,KAAK,IAAI;IAIvC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,CAAC;IAIvD,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI;IAIxB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAIxC,OAAO;IAIP,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK;IAI/C,OAAO,CAAC,MAAM,EAAE,IAAI;CAGpC"}
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"}
@@ -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
- constructor(name, team, depends_on = [], exec_death = () => { }, exec_kill = () => { }, exec_logic = async (phase) => () => { }, end_logic = () => { }) {
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
  }
30
- async call(phase) {
31
- return await this.exec_logic(phase);
27
+ on(event, callback) {
28
+ switch (event) {
29
+ case 'death':
30
+ this.listen_death = callback;
31
+ }
32
+ }
33
+ async call(player, phase) {
34
+ return await this.exec_logic(player, phase);
32
35
  }
33
- async endCall() {
34
- await this.end_logic();
36
+ async endCall(player) {
37
+ await this.end_logic(player);
35
38
  }
36
- async trigger_death(author, phase) {
37
- await this.exec_death(author, phase);
39
+ async die(myself, author, phase) {
40
+ await this.exec_death(myself, author, phase);
38
41
  }
39
- async do_kill(victim) {
40
- await this.exec_kill(victim);
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
@@ -1 +1 @@
1
- {"version":3,"file":"roles.js","sourceRoot":"","sources":["../../src/types/roles.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,IAAI;IACN,IAAI,CAAQ;IACZ,IAAI,CAAM;IACV,UAAU,GAAmB,EAAE,CAAA;IAE9B,UAAU,GAA+C,KAAK,IAAI,EAAE,GAAE,CAAC,CAAA;IACvE,SAAS,GAA2B,KAAK,IAAI,EAAE,GAAE,CAAC,CAAA;IAClD,UAAU,GAA2C,KAAK,IAAI,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC,CAAA;IACzE,SAAS,GAAe,KAAK,IAAI,EAAE,GAAE,CAAC,CAAA;IAE9C,YACI,IAAY,EACZ,IAAU,EACV,aAA6B,EAAE,EAC/B,aAA0D,GAAG,EAAE,GAAE,CAAC,EAClE,YAAoC,GAAG,EAAE,GAAE,CAAC,EAC5C,aAAqD,KAAK,EAAE,KAAa,EAAE,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC,EACtF,YAAwB,GAAG,EAAE,GAAE,CAAC;QAEhC,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,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC9B,CAAC;IAEM,OAAO,CAAC,QAAqD;QAChE,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAA;IAC9B,CAAC;IAEM,MAAM,CAAC,QAAgC;QAC1C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;IAC7B,CAAC;IAEM,MAAM,CAAC,QAAgD;QAC1D,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAA;IAC9B,CAAC;IAEM,SAAS,CAAC,QAAoB;QACjC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;IAC7B,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,KAAa;QAC3B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;IAC1B,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,MAAmB,EAAE,KAAY;QACxD,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACxC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,MAAY;QAC7B,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;CACJ"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blueversusraid",
3
- "version": "0.0.5",
3
+ "version": "0.0.7",
4
4
  "description": "Moteur pour des jeux en 2 équipes du style loup-garou",
5
5
  "license": "GPL-3.0",
6
6
  "author": "EjNalo",