blueversusraid 0.0.7 → 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 CHANGED
@@ -10,10 +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>;
16
19
  kill(author: Player | null, target: Player, phase: Phase): Promise<void>;
20
+ win(winner: Player | Team): Promise<void>;
17
21
  }
18
22
  export { Role, Player };
19
23
  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;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"}
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,33 @@ 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
+ }
78
98
  async kill(author, target, phase) {
79
99
  await target.die(author, phase);
80
100
  for (const player of this.players) {
@@ -86,6 +106,9 @@ export class Game {
86
106
  });
87
107
  }
88
108
  }
109
+ async win(winner) {
110
+ this.winner = winner;
111
+ }
89
112
  }
90
113
  export { Role, Player };
91
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blueversusraid",
3
- "version": "0.0.7",
3
+ "version": "0.0.8",
4
4
  "description": "Moteur pour des jeux en 2 équipes du style loup-garou",
5
5
  "license": "GPL-3.0",
6
6
  "author": "EjNalo",