@thegraid/hexlib 1.0.9 → 1.0.11

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.
@@ -2,7 +2,7 @@ import { Undo } from "@thegraid/easeljs-lib";
2
2
  import { Container } from "@thegraid/easeljs-module";
3
3
  import type { GameSetup, Scenario } from "./game-setup";
4
4
  import { GameState } from "./game-state";
5
- import { Hex, Hex1, HexMap, IHex } from "./hex";
5
+ import { Hex, Hex1, HexMap, IdHex } from "./hex";
6
6
  import { Player } from "./player";
7
7
  import { SetupElt } from "./scenario-parser";
8
8
  import { Table } from "./table";
@@ -18,6 +18,7 @@ export declare class NamedContainer extends Container implements NamedObject {
18
18
  }
19
19
  declare class HexEvent {
20
20
  }
21
+ /** moves also identified by IHex | Hex, indicating where stone was placed. */
21
22
  declare class Move {
22
23
  Aname: string;
23
24
  ind: number;
@@ -25,6 +26,7 @@ declare class Move {
25
26
  }
26
27
  /** Implement game, enforce the rules, manage GameStats & hexMap; no GUI/Table required.
27
28
  *
29
+ * From HexTowns: https://docs.google.com/document/d/1CzI70mpnrnBlvHHgcQowulyS-WOJTF06mFv1G2uu5CI/edit
28
30
  * Actions are:
29
31
  * - Reserve: place one Tile from auction to Player reserve
30
32
  * - Recruit: place a Builder/Leader (in Civic);
@@ -54,7 +56,7 @@ export declare class GamePlay0 {
54
56
  get allTiles(): Tile[];
55
57
  readonly hexMap: HexMap<Hex>;
56
58
  readonly redoMoves: {
57
- hex: Hex | IHex;
59
+ hex: Hex | IdHex;
58
60
  }[];
59
61
  logWriterLine0(): void;
60
62
  /** GamePlay0 - supply GodNames for each: new Player(...). */
@@ -83,7 +85,10 @@ export declare class GamePlay0 {
83
85
  updateCounters(): void;
84
86
  logFailure(type: string, reqd: number, avail: number, toHex: Hex): void;
85
87
  /**
86
- * Move tile to hex (or recycle), updating influence.
88
+ * Move tile to hex (or recycle).
89
+ *
90
+ * - hexline/anhk would check recycleHex; (see placeEither2)
91
+ * - hexline would then update influence;
87
92
  *
88
93
  * Tile.dropFunc() -> Tile.placeTile() -> gp.placeEither()
89
94
  * @param tile ignore if undefined
@@ -91,6 +96,7 @@ export declare class GamePlay0 {
91
96
  * @param payCost commit and verify payment
92
97
  */
93
98
  placeEither(tile: Tile, toHex: Hex1 | undefined, payCost?: boolean): void;
99
+ placeEither2(tile: Tile, toHex: Hex1 | undefined, payCost?: boolean): void;
94
100
  recycleTile(tile: Tile): void;
95
101
  }
96
102
  /** GamePlay with Table & GUI (KeyBinder, ParamGUI & Dragger) */
@@ -148,7 +154,7 @@ export declare class GamePlay extends GamePlay0 {
148
154
  undoMove(undoTurn?: boolean): void;
149
155
  /** doTableMove(redoMoves[0]) */
150
156
  redoMove(): void;
151
- showRedoMark(hex?: IHex | Hex): void;
157
+ showRedoMark(hex?: IdHex | Hex): void;
152
158
  endTurn(): void;
153
159
  setNextPlayer(turnNumber?: number): void;
154
160
  /** After setNextPlayer() */
@@ -1 +1 @@
1
- {"version":3,"file":"game-play.d.ts","sourceRoot":"","sources":["../src/game-play.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"game-play.d.ts","sourceRoot":"","sources":["../src/game-play.ts"],"names":[],"mappings":"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"}
package/dist/game-play.js CHANGED
@@ -18,6 +18,7 @@ export class NamedContainer extends Container {
18
18
  }
19
19
  class HexEvent {
20
20
  }
21
+ /** moves also identified by IHex | Hex, indicating where stone was placed. */
21
22
  class Move {
22
23
  Aname = "";
23
24
  ind = 0;
@@ -25,6 +26,7 @@ class Move {
25
26
  }
26
27
  /** Implement game, enforce the rules, manage GameStats & hexMap; no GUI/Table required.
27
28
  *
29
+ * From HexTowns: https://docs.google.com/document/d/1CzI70mpnrnBlvHHgcQowulyS-WOJTF06mFv1G2uu5CI/edit
28
30
  * Actions are:
29
31
  * - Reserve: place one Tile from auction to Player reserve
30
32
  * - Recruit: place a Builder/Leader (in Civic);
@@ -142,7 +144,10 @@ export class GamePlay0 {
142
144
  this.logText(failText, `GamePlay.failToPayCost`);
143
145
  }
144
146
  /**
145
- * Move tile to hex (or recycle), updating influence.
147
+ * Move tile to hex (or recycle).
148
+ *
149
+ * - hexline/anhk would check recycleHex; (see placeEither2)
150
+ * - hexline would then update influence;
146
151
  *
147
152
  * Tile.dropFunc() -> Tile.placeTile() -> gp.placeEither()
148
153
  * @param tile ignore if undefined
@@ -150,12 +155,17 @@ export class GamePlay0 {
150
155
  * @param payCost commit and verify payment
151
156
  */
152
157
  placeEither(tile, toHex, payCost) {
158
+ tile?.moveTo(toHex); // placeEither(tile, hex) --> moveTo(hex)
159
+ }
160
+ // advise or overload placeEither to look for RecycleHex...
161
+ placeEither2(tile, toHex, payCost) {
153
162
  if (!tile)
154
163
  return;
155
164
  const fromHex = tile.fromHex;
156
165
  if (toHex !== fromHex)
157
166
  this.logText(`${tile} -> ${toHex}`, `gamePlay.placeEither`);
158
- tile.moveTo(toHex); // placeEither(tile, hex) --> moveTo(hex)
167
+ // super.placeEither(tile, toHex, payCost);
168
+ this.placeEither(tile, toHex, payCost);
159
169
  if (toHex === this.recycleHex) {
160
170
  this.logText(`Recycle ${tile} from ${fromHex?.Aname || '?'}`, `gamePlay.placeEither`);
161
171
  this.recycleTile(tile); // Score capture; log; return to homeHex
@@ -1 +1 @@
1
- {"version":3,"file":"game-play.js","sourceRoot":"","sources":["../src/game-play.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,GAAG,EAA4B,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAe,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,MAAM,OAAO,cAAe,SAAQ,SAAS;IAC3C,KAAK,CAAS;IACd,YAAY,IAAY,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC;QACtC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,QAAQ;CAAG;AACjB,MAAM,IAAI;IACR,KAAK,GAAW,EAAE,CAAC;IACnB,GAAG,GAAW,CAAC,CAAC;IAChB,KAAK,GAAQ,EAAE,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,SAAS;IAiCD;IAhCnB,8DAA8D;IAC9D,MAAM,CAAC,QAAQ,CAAY;IAC3B,MAAM,CAAC,IAAI,GAAG,CAAC,CAAA;IACN,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;IAErB,SAAS,GAAc,CAAC,IAAI,YAAY,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAgB,CAAC,CAAC,CAAC,CAAC,SAA6B,CAAC;IAC7H,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,IAAY,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChF,SAAS,CAAC,GAAG,IAAW,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3D,UAAU,CAAO;IACjB,EAAE,CAAC,CAAS,IAAI,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC,CAAA,CAAC,CAAC;IAEnC,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IAEpD,IAAI,UAAU,KAAK,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9C,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE/B,MAAM,CAAc,CAAU,8DAA8D;IAC5F,SAAS,GAA0B,EAAE,CAAA;IAC9C,8EAA8E;IAC9E,oDAAoD;IACpD,yFAAyF;IAEzF,cAAc;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,IAAuB,EAAE,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QACrF,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtC,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,uCAAuC;QACrE,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,KAAK,IAAI,CAAC,CAAA;IAChD,CAAC;IAED,6DAA6D;IAC7D,YAAmB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QACrC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,UAAU,GAAW,CAAC,CAAA,CAAI,8CAA8C;IACxE,YAAY,GAAW,CAAC,CAAA,CAAE,kDAAkD;IAC5E,SAAS,CAAS;IAClB,OAAO,GAAG,IAAI,CAAC;IAEf,UAAU,CAAC,OAAe,IAAI,CAAC,SAAS;QACtC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QACxD,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,aAAa,CAAC,CAAyD;QACrE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,IAAI,GAAG,EAAE;QAC7B,IAAI,IAAI,YAAY,QAAQ;YAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,OAAO;QACL,4BAA4B;QAC5B,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;aAAM;YACL,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;IACH,CAAC;IAED,OAAO;QACL,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE,MAAc,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAG,CAAC;QAElD,0EAA0E;IAC5E,CAAC;IAED,OAAO,KAAI,CAAC;IAEZ,aAAa,CAAC,UAAmB;QAC/B,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACnD,IAAI,CAAC,OAAO,EAAE,CAAC,CAAE,6BAA6B;SAC/C;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,MAAM,KAAK,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,WAAW;QACT,+CAA+C;QAC/C,MAAM,IAAI,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAG,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kDAAkD;IAClD,WAAW,CAA+E;IAC1F,OAAO,CAAC,GAAQ,EAAE,EAAe,EAAE,IAAW,EAAE,EAAa;QAC3D,OAAO,IAAI,CAAC,WAAW,CAAA,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAA;IAC1E,CAAC;IACD,QAAQ,GAAS,IAAI,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;IACzC,UAAU,CAAC,GAAgB,EAAE,IAAY,EAAE,QAAwB,GAAG,CAAC,IAAI;QACzE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,2DAA2D;IAC3D,cAAc;QACZ,kEAAkE;QAClE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,IAAY,EAAE,KAAa,EAAE,KAAU;QAC9D,MAAM,QAAQ,GAAG,GAAG,IAAI,cAAc,IAAI,MAAM,KAAK,EAAE,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;OAOG;IACH,WAAW,CAAC,IAAU,EAAE,KAAuB,EAAE,OAAiB;QAChE,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,KAAK,KAAK,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,KAAK,EAAE,EAAE,sBAAsB,CAAC,CAAA;QAClF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,yCAAyC;QAC9D,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;YAC7B,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,SAAS,OAAO,EAAE,KAAK,IAAI,GAAG,EAAE,EAAE,sBAAsB,CAAC,CAAA;YACrF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAI,wCAAwC;SACpE;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,WAAW,CAAC,IAAU;QACpB,IAAI,CAAC,IAAI;YAAE,OAAO,CAAI,0BAA0B;QAChD,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC;QAC1C,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;YACzB,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE;gBAClC,IAAI,GAAG,UAAU,CAAC;aACnB;iBAAM,IAAI,IAAI,YAAY,MAAM,EAAE;aAClC;SACF;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAE,cAAc;IAClC,CAAC;;AAGH,gEAAgE;AAChE,MAAM,OAAO,QAAS,SAAQ,SAAS;IAC5B,KAAK,CAAO,CAAG,qCAAqC;IAC7D,uEAAuE;IACvE,YAAY,SAAoB,EAAE,QAAkB;QAClD,KAAK,CAAC,SAAS,CAAC,CAAC,CAAY,6BAA6B;QAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,QAAQ;QAC9B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;YAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAED,8BAA8B;IAC9B,MAAM;QACJ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACvF,CAAC;IAGD,QAAQ;QACN,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACtB,IAAI,SAAS,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,CAAA,CAAA,CAAC,CAAA;QACpE,IAAI,UAAU,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAE,CAAA,CAAA,CAAC,CAAA;QACtE,IAAI,QAAQ,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YAC/C,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC,CAAA;QACD,sEAAsE;QACtE,uEAAuE;QACvE,qEAAqE;QACrE,sFAAsF;QACtF,uFAAuF;QACvF,oHAAoH;QAEpH,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QACzE,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QACvE,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QACvE,yEAAyE;QACzE,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY,EAAC,CAAC,CAAA,CAAC,SAAS;QAC1F,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA,CAAA,mBAAmB;QAC9F,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QACrE,gGAAgG;QAChG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;QAE7E,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1F,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACzF,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAEtF,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QACpE,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QACpE,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;QACpE,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC9D,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC5D,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA,CAAA,CAAC,CAAC,CAAC;QAExH,8GAA8G;QAC9G,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACtF,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACtF,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA,CAAC,mBAAmB;QAC7G,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QACpE,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QAEnD,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE;YACrC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAA;QACxD,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAA;IAC1D,CAAC;IAED,6DAA6D;IAC7D,KAAK;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,SAAS,CAAA;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/D,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvB,QAAQ,CAAC;QACT,OAAO;IACT,CAAC;IAED,uCAAuC;IAC9B,OAAO;IAChB,CAAC;IAED,aAAa;QACX,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC;IACvD,CAAC;IAED,sBAAsB;IACtB,gEAAgE;IAChE,gGAAgG;IAChG,8EAA8E;IAC9E,0CAA0C;IAC1C,kHAAkH;IAClH,iEAAiE;IACjE,8CAA8C;IAC9C,oCAAoC;IACpC,sEAAsE;IACtE,mCAAmC;IACnC,IAAI;IAEJ,UAAU,GAAoB,EAAE,CAAC;IACjC,6CAA6C;IAC7C,SAAS;QACP,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,wBAAwB;YAC9E,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjB;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,wBAAwB,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAC,CAAC,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACxH,CAAC;IACD,iEAAiE;IACjE,MAAM,GAAG,CAAC,CAAC;IACX,0FAA0F;IAC1F,SAAS,CAAC,IAAI,GAAG,IAAI;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1G,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,wBAAwB,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAC,CAAC,SAAS,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QACvH,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,qCAAqC;QAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,wBAAwB,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAC,CAAC,SAAS,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QACvH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,SAAS;QACP,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IAC5B,CAAC;IACD,YAAY,CAAC,GAAY;QACvB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,UAAU,GAAG,IAAI,CAAA;IAEjB,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,EAAE;QAC7C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;QACpB,IAAI,QAAQ,GAAG,CAAE,CAAC,CAAC,OAAmB,CAAC,MAAM,CAAC,QAAQ,CAAA;QACtD,IAAI,QAAQ,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,MAAM,IAAI,KAAK,aAAa,CAAC,CAAC,CAAA;YACxE,MAAM,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAA;YAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,MAAM,IAAI,KAAK,UAAU,CAAC,CAAC,CAAA;SACtE;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IACD,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS;QAC1B,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACrD,CAAC;IACD,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS;QAC3B,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACtD,CAAC;IACD,wFAAwF;IACxF,UAAU;QACR,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACpB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,wBAAwB,CAAC,CAAA;QACrG,UAAU,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC/D,CAAC;IACD,gCAAgC;IAChC,aAAa,CAAC,GAAa,EAAE,EAAQ;QACnC,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc;YAAE,OAAM;QACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;IACnC,CAAC;IAED,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;IAC3B,YAAY;QACV,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3D,EAAE,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,+BAA+B,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5G,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC3B,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;iBAAM;gBACL,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC;gBACvG,oGAAoG;gBACpG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;aACzD;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAED;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,IAAc,EAAE,EAAQ,EAAE,IAAI,GAAG,CAAC;QACzC,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAA;QAC3B,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;YAC/F,OAAM;SACP;QACD,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,GAAG,MAAM,CAAC,OAAO,CAAA;QAC7C,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,qBAAqB;IACrD,CAAC;IACD,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,GAAG,KAAK;QACtB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;YACrB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,QAAQ,CAAC,GAAG,GAAG,CAAC;QACd,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA,CAAE,sBAAsB;QAChD,IAAI,IAAI,CAAC,YAAY,IAAI,GAAG;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACnD,CAAC;IACD,QAAQ,CAAC,GAAG,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI;QAC9B,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC5B,CAAC,CAAC,OAAO,GAAG,OAAO,CAAA;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;IACxE,CAAC;IACD,wCAAwC;IACxC,IAAI,OAAO,CAAC,GAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAA,CAAC,CAAC;IACtE,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAA,CAAC,CAAC;IAC5F,QAAQ,GAAG,KAAK,CAAA;IAEhB,iCAAiC;IACjC,QAAQ,CAAC,WAAoB,IAAI;QAC/B,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAA,CAAC,4BAA4B;QACtD,EAAE;QACF,gBAAgB;QAChB,EAAE;QACF,IAAI,CAAC,YAAY,EAAE,CAAA;QACnB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;IACtB,CAAC;IACD,gCAAgC;IAChC,QAAQ;QACN,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAA,CAAC,4BAA4B;QACtD,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA,CAAA,qCAAqC;QACjE,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChC,IAAI,CAAC,YAAY,EAAE,CAAA;QACnB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;IACtB,CAAC;IACD,YAAY,CAAC,MAAkB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG;QACnD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,2BAA2B;YACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;SAC/E;IACH,CAAC;IAGQ,OAAO;QACd,uEAAuE;QACvE,uGAAuG;QACvG,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;IAEQ,aAAa,CAAC,UAAmB;QACxC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAsB;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;QACnD,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACrD,MAAM,KAAK,GAAG,GAAG,OAAO,IAAI,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,CAAC;QACxD,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,wBAAwB,CAAC,CAAC;QAC/F,CAAC;QAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAyB,CAAC,KAAK,GAAG,KAAK,CAAC;QAChF,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,wBAAwB;QAC/C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,mEAAmE;QAChG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,4BAA4B;IAC5B,SAAS;IACT,CAAC;IAED,cAAc;IACd,CAAC;IAED,8DAA8D;IAC9D,cAAc,CAAC,GAAa;QAC1B,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA,CAAG,oCAAoC;QACxE,qFAAqF;QACrF,6CAA6C;QAC7C,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,uDAAuD,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACrH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oGAAoG;IACpG,eAAe,CAAC,GAAa;QAC3B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"game-play.js","sourceRoot":"","sources":["../src/game-play.ts"],"names":[],"mappings":"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"}
package/dist/hex.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  /// <reference types="easeljs" />
2
+ /// <reference types="@thegraid/easeljs-lib/dist/createjs-functions" />
2
3
  import { XY } from '@thegraid/common-lib';
3
4
  import { Constructor, RC } from "@thegraid/easeljs-lib";
4
- import { Container, DisplayObject, Graphics, Point, Text } from "@thegraid/easeljs-module";
5
+ import { Container, DisplayObject, Point, Text } from "@thegraid/easeljs-module";
5
6
  import { EwDir, HexDir, NsDir } from "./hex-intfs";
6
7
  import type { Meeple } from "./meeple";
7
8
  import { HexShape, LegalMark } from "./shapes";
@@ -9,13 +10,14 @@ import { PlayerColor } from "./table-params";
9
10
  import type { MapTile, Tile } from "./tile";
10
11
  export declare const S_Resign = "Hex@Resign";
11
12
  export declare const S_Skip = "Hex@skip ";
12
- export type IHex = {
13
+ /** serializable Hex ID; identify a Hex by {row, col}, used in Move? see also: RC */
14
+ export type IdHex = {
13
15
  Aname: string;
14
16
  row: number;
15
17
  col: number;
16
18
  };
17
19
  export type HexConstructor<T extends Hex> = new (map: HexMap<T>, row: number, col: number, name?: string) => T;
18
- type LINKS<T extends Hex> = {
20
+ export type LINKS<T extends Hex> = {
19
21
  [key in HexDir]?: T;
20
22
  };
21
23
  type DCR = {
@@ -40,7 +42,7 @@ export declare function newHSC(hex: Hex, sc: PlayerColor, Aname?: string): {
40
42
  sc: "b" | "w" | "c";
41
43
  };
42
44
  /** to recognize this class in hexUnderPoint and obtain the associated Hex2. */
43
- declare class HexCont extends Container {
45
+ export declare class HexCont extends Container {
44
46
  hex2: Hex2;
45
47
  constructor(hex2: Hex2);
46
48
  }
@@ -49,9 +51,9 @@ declare class HexCont extends Container {
49
51
  */
50
52
  export declare class Hex {
51
53
  /** return indicated Hex from otherMap */
52
- static ofMap(ihex: IHex, otherMap: HexMap<Hex>): Hex;
54
+ static ofMap(ihex: IdHex, otherMap: HexMap<Hex>): Hex;
53
55
  static aname(row: number, col: number): string;
54
- constructor(map: HexMap<Hex>, row: number, col: number, name?: string);
56
+ constructor(map: HexM<Hex>, row: number, col: number, name?: string);
55
57
  /** (x,y): center of hex; (width,height) of hex; scaled by radius if supplied
56
58
  * @param radius [1] radius used in drawPolyStar(radius,,, H.dirRot[tiltDir])
57
59
  * @param ewTopo [TP.useEwTopo] true -> suitable for ewTopo (long axis of hex is N/S)
@@ -77,7 +79,7 @@ export declare class Hex {
77
79
  };
78
80
  Aname: string;
79
81
  /** reduce to serializable IHex (removes map, inf, links, etc) */
80
- get iHex(): IHex;
82
+ get iHex(): IdHex;
81
83
  protected nf(n: number): string;
82
84
  /** [row,col] OR special name */
83
85
  get rcs(): string;
@@ -96,13 +98,14 @@ export declare class Hex {
96
98
  _isLegal: boolean;
97
99
  get isLegal(): boolean;
98
100
  set isLegal(v: boolean);
99
- readonly map: HexMap<Hex>;
101
+ readonly map: HexM<Hex>;
100
102
  readonly row: number;
101
103
  readonly col: number;
102
104
  /** Link to neighbor in each H.dirs direction [NE, E, SE, SW, W, NW] */
103
105
  readonly links: LINKS<this>;
106
+ metaLinks: LINKS<this>;
104
107
  get linkDirs(): HexDir[];
105
- /** colorScheme(playerColor)@rcs */
108
+ /** Hex(playerColor)@rcs */
106
109
  toString(): string;
107
110
  /** hex.rcspString => Hex@[ r, c] | 'Hex@Skip ' , 'Hex@Resign ' */
108
111
  rcspString(): string;
@@ -117,7 +120,8 @@ export declare class Hex {
117
120
  hexesInDir(dir: HexDir, rv?: this[]): this[];
118
121
  /** for each Hex in each Dir: func(hex, dir, this) */
119
122
  forEachHexDir(func: (hex: this, dir: HexDir, hex0: this) => unknown): void;
120
- nextHex(ds: HexDir, ns?: number): Hex | undefined;
123
+ /** from this Hex, follow links[ds], ns times. */
124
+ nextHex(dir: HexDir, ns?: number): Hex | undefined;
121
125
  /** return last Hex on axis in given direction */
122
126
  lastHex(ds: HexDir): Hex;
123
127
  /** distance between Hexes: adjacent = 1, based on row, col, sqrt3 */
@@ -134,10 +138,10 @@ export declare class Hex1 extends Hex {
134
138
  get meep(): Meeple | undefined;
135
139
  set meep(meep: Meeple | undefined);
136
140
  get occupied(): [Tile | undefined, Meeple | undefined] | undefined;
137
- /** colorScheme(playerColor)@rcs */
138
- toString(sc?: string | undefined): string;
139
- /** hex.rcspString => COLOR@[ r, c] | 'COLOR@Skip ' , 'COLOR@Resign ' */
140
- rcspString(sc?: string | undefined): string;
141
+ /** COLOR@[r,c]; COLOR = this.(tile??meep).player.color ?? Empty */
142
+ toString(color?: string): string;
143
+ /** COLOR@[ r, c] or COLOR@Name */
144
+ rcspString(color?: string): string;
141
145
  }
142
146
  /** One Hex cell in the game, shown as a polyStar Shape */
143
147
  export declare class Hex2 extends Hex1 {
@@ -170,7 +174,7 @@ export declare class Hex2 extends Hex1 {
170
174
  * - rcText: '(r,c)' slightly above center, WHITE
171
175
  * - distText: initially distText.text = `${district}` slightly below center, BLACK
172
176
  */
173
- constructor(map: HexMap<Hex2>, row: number, col: number, name?: string);
177
+ constructor(map: HexM<Hex2>, row: number, col: number, name?: string);
174
178
  /** set visibility of rcText & distText */
175
179
  showText(vis?: boolean): void;
176
180
  readonly legalMark: LegalMark;
@@ -199,45 +203,58 @@ export declare class Hex2 extends Hex1 {
199
203
  }
200
204
  export declare class RecycleHex extends Hex2 {
201
205
  }
202
- /** for contrast paint it black AND white, leave a hole in the middle unpainted. */
206
+ /**
207
+ * A HexShape/PaintableShape to indicate selected hex of HexMap.
208
+ *
209
+ * For contrast paint it (GREY,.3), leave a hole in the middle unpainted.
210
+ *
211
+ * @param radius of this HexShape
212
+ * @param radius0 of removed circle
213
+ * @param cm of HexShape/ring for mark ['rgba(127,127,127,.3)']
214
+ */
203
215
  export declare class HexMark extends HexShape {
204
- hexMap: HexMap<Hex2>;
205
- hex: Hex2;
206
- constructor(hexMap: HexMap<Hex2>, radius: number, radius0?: number);
207
- paint(color: string): Graphics;
208
- showOn(hex: Hex2): void;
216
+ hex?: Hex2;
217
+ constructor(radius: number, radius0?: number, cm?: string);
218
+ /**
219
+ * Show or hide mark on given hex; and hex.updateCache.
220
+ *
221
+ * (this.hex = hex) ? hex.cont.addChild(this.cont) : this.visible = false
222
+ */
223
+ showOn(hex: Hex2 | undefined): void;
209
224
  }
225
+ /** MapCont is an empty Container until .addContainers(cNames) */
210
226
  export declare class MapCont extends Container {
211
- hexMap: HexMap<Hex2>;
212
- constructor(hexMap: HexMap<Hex2>);
213
- static cNames: readonly ["resaCont", "hexCont", "infCont", "tileCont", "markCont", "capCont", "counterCont", "eventCont"];
227
+ constructor();
228
+ /** initial, default, readonly Container names, fields */
229
+ static cNames: readonly ["resaCont", "hexCont", "tileCont", "markCont", "counterCont"];
230
+ /** actual cNames being used for this MapCont, set in addContainers() */
231
+ private _cNames;
232
+ get cNames(): string[];
214
233
  resaCont: Container;
215
234
  hexCont: Container;
216
- infCont: Container;
217
235
  tileCont: Container;
218
236
  markCont: Container;
219
- capCont: Container;
220
237
  counterCont: Container;
221
- eventCont: Container;
222
238
  /** add all the layers of Containers. */
223
- addContainers(): void;
239
+ addContainers(cNames?: readonly string[]): void;
224
240
  /**
225
241
  * Set hexCont(x,y) so hexMap.getBounds() is centered around mapCont(0,0);
226
242
  *
227
- * [So hexCont.centerHex is at mapCont(0,0)]
243
+ * [Generally, hexCont.centerHex is ~ mapCont(0,0)]
228
244
  *
229
- * Move ALL children of mapCont to have that same (x,y) alignment.
230
- * @param hexCont use getBounds() of given Container to compute alignment.
245
+ * Move ALL children of this MapCont to have that same (x,y) alignment.
246
+ * @param bounds [hexCont.getBounds()] align containers to center of given bounds.
231
247
  */
232
- centerContainers(hexCont?: Container): void;
248
+ centerContainers(bounds?: import("@thegraid/easeljs-module").Rectangle): void;
233
249
  }
234
250
  export interface HexM<T extends Hex> {
251
+ allStones: HSC[];
235
252
  readonly district: T[][];
236
253
  readonly mapCont: MapCont;
237
254
  rcLinear(row: number, col: number): number;
238
255
  forEachHex<K extends T>(fn: (hex: K) => void): void;
239
256
  update(): void;
240
- showMark(hex: T): void;
257
+ showMark(hex?: T): void;
241
258
  }
242
259
  /**
243
260
  * Collection of Hex *and* Graphics-Containers for Hex2
@@ -253,12 +270,22 @@ export interface HexM<T extends Hex> {
253
270
  */
254
271
  export declare class HexMap<T extends Hex> extends Array<Array<T>> implements HexM<T> {
255
272
  hexC: HexConstructor<Hex>;
273
+ Aname: string;
256
274
  static readonly distColor: string[];
275
+ /**
276
+ * HexMap: TP.nRows X TP.nCols hexes.
277
+ *
278
+ * Basic map is non-GUI, addToMapCont uses Hex2 elements to enable GUI interaction.
279
+ * @param addToMapCont use Hex2 for Hex, make Containers: hexCont, infCont, markCont, stoneCont
280
+ * @param hexC Constructor<T> for the Hex elements (typed as HexConstructor<Hex> for Typescript...)
281
+ */
282
+ constructor(radius?: number, addToMapCont?: boolean, hexC?: HexConstructor<Hex>, Aname?: string);
257
283
  get asHex2Map(): HexMap<Hex2>;
258
284
  /** Each occupied Hex, with the occupying PlayerColor */
259
285
  readonly district: Array<T[]>;
260
286
  hexAry: T[];
261
287
  readonly mapCont: MapCont;
288
+ allStones: HSC[];
262
289
  readonly radius: number;
263
290
  /** return this.centerHex.xywh() for this.topo */
264
291
  get xywh(): {
@@ -273,29 +300,22 @@ export declare class HexMap<T extends Hex> extends Array<Array<T>> implements He
273
300
  private maxCol?;
274
301
  private minRow?;
275
302
  private maxRow?;
303
+ get centerRC(): {
304
+ row: number;
305
+ col: number;
306
+ };
276
307
  get centerHex(): T;
277
308
  get nRowCol(): number[];
278
309
  getCornerHex(dn: HexDir): Hex;
279
310
  rcLinear(row: number, col: number): number;
280
- readonly metaMap: T[][];
281
311
  mark: HexMark | undefined;
282
- Aname: string;
283
- /**
284
- * HexMap: TP.nRows X TP.nCols hexes.
285
- *
286
- * Basic map is non-GUI, addToMapCont uses Hex2 elements to enable GUI interaction.
287
- * @param addToMapCont use Hex2 for Hex, make Containers: hexCont, infCont, markCont, stoneCont
288
- * @param hexC Constructor<T> for the Hex elements (typed as HexConstructor<Hex> for Typescript...)
289
- */
290
- constructor(radius?: number, addToMapCont?: boolean, hexC?: HexConstructor<Hex>);
291
- get topoRot(): 0 | 30;
292
312
  makeMark(): HexMark;
293
313
  /** create/attach Graphical components for HexMap */
294
- addToMapCont(hexC?: Constructor<T>): this;
295
- /** ...stage.update() */
314
+ addToMapCont(hexC?: Constructor<T>, cNames?: readonly string[]): this;
315
+ /** ...stage?.update() */
296
316
  update(): void;
297
317
  /** to build this HexMap: create Hex (or Hex2) and link it to neighbors. */
298
- addHex(row: number, col: number, district: number, hexC?: Constructor<T>): T;
318
+ addHex(row: number, col: number, district: number | undefined, hexC?: Constructor<T>): T;
299
319
  hexUnderObj(dragObj: DisplayObject, legalOnly?: boolean): T | undefined;
300
320
  /** find first Hex matching the given predicate function */
301
321
  findHex<K extends T>(fn: (hex: K) => boolean): K | undefined;
@@ -311,7 +331,14 @@ export declare class HexMap<T extends Hex> extends Array<Array<T>> implements He
311
331
  topo: (rc: RC) => (TopoEW | TopoNS);
312
332
  /** see also: Hex.linkDirs */
313
333
  get linkDirs(): HexDir[];
334
+ /** return a new RC; does not mutate the given RC.
335
+ * @return RC of adjacent Hex in given direction for given topo.
336
+ */
314
337
  nextRowCol(rc: RC, dir: HexDir, nt?: Topo): RC;
338
+ readonly metaMap: T[][];
339
+ addMetaHex(hex: T, mrc: RC): void;
340
+ /** link metaHex on metaMap; maybe need ewTopo for nh==1 ?? */
341
+ metaLink(hex: T, rc: RC): void;
315
342
  /** link hex to/from each extant neighor */
316
343
  link(hex: T, rc?: RC, map?: T[][], nt?: Topo, lf?: (hex: T) => LINKS<T>): void;
317
344
  /**
@@ -327,39 +354,88 @@ export declare class HexMap<T extends Hex> extends Array<Array<T>> implements He
327
354
  private _mh;
328
355
  get nh(): number;
329
356
  get mh(): number;
357
+ /** final; set size one time, then it is readonly. */
358
+ setSize(nh?: number, mh?: number): void;
359
+ /** utility for makeAllDistricts; make hex0 at RC */
360
+ calculateRC0(): RC;
330
361
  /**
331
- *
362
+ * Wrapper for makeAllHexes;
363
+ * setSize, calculateRC0, makeAllHexes, set this.hexAry, centerContainers()
332
364
  * @param nh number of hexes on on edge of metaHex
333
365
  * @param mh order of metaHexes (greater than 0);
334
366
  */
335
367
  makeAllDistricts(nh?: number, mh?: number): T[];
336
- pickColor(hexAry: Hex2[]): string;
337
368
  /**
338
- * Make one meta-hex district.
369
+ * overridable action for makeAllDistricts;
370
+ *
371
+ * Base implementation invokes makeMetaDistrict(nh, mh, rc0)
372
+ * @param nh
373
+ * @param mh
374
+ * @param rc0
375
+ * @return hexAry of the created hexes, becomes hexMap.hexAry
376
+ */
377
+ makeAllHexes(nh: number | undefined, mh: number | undefined, rc0: RC): T[];
378
+ /**
379
+ * Make the center district, then make (mh-1) rings other meta-hex districts.
380
+ * @param nh order [number of 'rings'] of meta-hexes (2 or 3 for this game) [TP.mHexes]
381
+ * @param mh size ['rings' in each meta-hex] of meta-hex (1..6) [TP.nHexes]
382
+ * @param rc0 location of initial, central Hex
383
+ * @return
384
+ */
385
+ makeMetaHexRings(nh: number | undefined, mh: number | undefined, rc0: RC, mrc?: {
386
+ row: number;
387
+ col: number;
388
+ }): T[];
389
+ /**
390
+ * Make a single metaHex (district) of order nh, at hex[mr, mc]
391
+ *
392
+ * addHex for center and each of nh rings.
393
+ * @param nh order of the metaHex/district
394
+ * @param district identifying number of district
395
+ * @param rc location of center Hex
396
+ * @return array containing all the added Hexes
397
+ */
398
+ makeMetaHex(nh: number, district: number, rc: RC, mrc: RC): T[];
399
+ /**
400
+ * pickColor and paint all Hexes in hex2Ary
339
401
  *
340
- * rings of this.hexC with topo derived from Hex.topo (TP.useEwTopo)
341
- * @param nh order of inner-hex: number hexes on side of meta-hex
342
- * @param district identifying number of this district
343
- * @param mr make new district on meta-row
344
- * @param mc make new district on meta-col
402
+ * Optional special color for center hex of each district
403
+ * @param hex2Aray a Hex2[] of hexes to be colored by pickColor(hexAry)
404
+ * @param district if district == 0, paint with special distColor[0]
405
+ * @param cColor color for center hex, else use dcolor from pickColor(hex2Ary)
345
406
  */
346
- makeDistrict(nh: number, district: number, mr: number, mc: number): T[];
347
- setDistrictColor(hexAry: T[], district?: number): void;
407
+ paintDistrict(hex2Ary: Hex2[], district?: number, cColor?: string): void;
408
+ /** find color not used by hex adjacent to given hexAry */
409
+ pickColor(hexAry: Hex2[]): string;
410
+ /** record hexAry in this.district[district];
411
+ *
412
+ * paint each Hex using paintDistrict.
413
+ */
414
+ setDistrictAndPaint(hexAry: T[], district?: number): void;
348
415
  /**
349
- * Make rectangle of hexes (marked with district) created with this.hexC
416
+ * Make rectangle of hexes created with this.hexC.
417
+ *
418
+ * Note: district = 0; hexAry.forEach() to set alternate district.
350
419
  *
351
420
  * rnd == 1 looks best when nc is odd;
352
421
  * @param nr height
353
422
  * @param nc width [nr + 1]
354
- * @param district district [0]
355
423
  * @param rnd 0: all, 1: rm end of row 0 (& half of last row!)
356
424
  * @parma half [(rnd === 1) || (nc % 2 === 1)] force/deny final half-row
357
425
  * @param hexAry array in which to push the created Hexes [Array()<T>]
358
426
  * @returns hexAry with the created Hexes pushed (row major)
359
427
  */
360
428
  makeRect(nr: number, nc?: number, rnd?: number, half?: boolean, hexAry?: T[]): T[];
361
- /** create horizontal row using addHex(row, col++, district) */
362
- addRowOfHex(n: number, row: number, col: number, district: number, hexAry: Hex[], di?: number): RC;
429
+ /**
430
+ * create horizontal row using hexAry.push(addHex(row, col++dc, district))
431
+ * @param maxc max col to use (esp when dc > 1)
432
+ * @param row
433
+ * @param col
434
+ * @param district
435
+ * @param hexAry
436
+ * @param dc delta to column [1]
437
+ */
438
+ addLineOfHex(maxc: number, row: number, col: number, district: number, hexAry: Hex[], dc?: number): void;
363
439
  /**
364
440
  * Select RC location of each Hex on a line, and eval f(rc) => Hex.
365
441
  *
@@ -370,35 +446,23 @@ export declare class HexMap<T extends Hex> extends Array<Array<T>> implements He
370
446
  * @param n number of Hex locations to select
371
447
  * @param rc {row, col} of selected location
372
448
  * @param dir from rc, move by dir to next location
373
- * @param f do 'whatever'; must return the given RC [or other RC seed for nextRowCol()!]
374
- * @returns RC of n+1-th Hex on the line (where you typically change to next dir)
375
- */
376
- forRCsOnLine(n: number, rc: RC, dir: HexDir, f: (rc: RC) => RC): RC;
377
- /**
378
- * Used to create rings of new Hex: this.addHex(row, col, district)
379
- * @param n number of Hex to create
380
- * @param rc create first Hex in given RC location
381
- * @param dir after first Hex move dir for each next Hex
382
- * @param district supplied to addHex()
383
- * @param hexAry push created Hex(s) on this array
384
- * @returns RC of next Hex location on line (typically use next direction and continue...)
449
+ * @param f do 'whatever' based on RC
450
+ * @returns nextRowCol(rc, dir) from the last rc of the line.
385
451
  */
386
- newHexesOnLine(n: number, rc: RC, dir: HexDir, district: number, hexAry: Hex[]): RC;
452
+ forRCsOnLine(n: number, rc: RC, dir: HexDir, f?: (rc: RC) => void): RC;
387
453
  /**
388
- * Apply f(rc, dir) to each of 'n' RCs on nth ring.
454
+ * Apply f(rc, dir) to each of 'n' lines of RCs on nth ring.
389
455
  * Step from centerHex by dirs[4], do a line for each dir in dirs.
390
456
  *
391
457
  * - if topoEW: step to W; make lines going NE, E, SE, SW, W, NW
392
458
  * - if topoNS: step to WS; make lines going N, EN, ES, S, WS, WN
393
- * @param n ring number
394
- * @param f (RC, dir) => void
459
+ * @param rc start of first line (heading dirs[0])
460
+ * @param n ring number; number of hexes per line
395
461
  * @param dirs [this.linkDirs] each topo dirs in [clockwise] order.
462
+ * @param f (RC, dir) => void; run f(rc) then step to next RC
396
463
  * @return the *next* RC on the final line (so can easily spiral)
397
464
  */
398
- ringWalk(n: number, f: (rc: RC, dir: HexDir) => void, dirs?: HexDir[]): {
399
- row: number;
400
- col: number;
401
- };
465
+ ringWalk(rc: RC, n: number, dirs: HexDir[] | undefined, f: (rc: RC, dir: HexDir) => void): RC;
402
466
  }
403
467
  /** Marker class for HexMap used by GamePlayD */
404
468
  export declare class HexMapD extends HexMap<Hex> {