@thegraid/hexlib 1.2.0 → 1.2.10

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.
Files changed (62) hide show
  1. package/dist/choosers.d.ts +11 -2
  2. package/dist/choosers.d.ts.map +1 -1
  3. package/dist/choosers.js +13 -3
  4. package/dist/choosers.js.map +1 -1
  5. package/dist/game-play.d.ts +22 -17
  6. package/dist/game-play.d.ts.map +1 -1
  7. package/dist/game-play.js +36 -38
  8. package/dist/game-play.js.map +1 -1
  9. package/dist/game-setup.d.ts +1 -0
  10. package/dist/game-setup.d.ts.map +1 -1
  11. package/dist/game-setup.js +6 -4
  12. package/dist/game-setup.js.map +1 -1
  13. package/dist/game-state.d.ts +18 -6
  14. package/dist/game-state.d.ts.map +1 -1
  15. package/dist/game-state.js +38 -36
  16. package/dist/game-state.js.map +1 -1
  17. package/dist/hex-intfs.d.ts +0 -6
  18. package/dist/hex-intfs.d.ts.map +1 -1
  19. package/dist/hex-intfs.js +1 -0
  20. package/dist/hex-intfs.js.map +1 -1
  21. package/dist/hex.d.ts +12 -5
  22. package/dist/hex.d.ts.map +1 -1
  23. package/dist/hex.js +16 -5
  24. package/dist/hex.js.map +1 -1
  25. package/dist/image-loader.d.ts.map +1 -1
  26. package/dist/image-loader.js.map +1 -1
  27. package/dist/meeple.d.ts +5 -7
  28. package/dist/meeple.d.ts.map +1 -1
  29. package/dist/meeple.js +8 -13
  30. package/dist/meeple.js.map +1 -1
  31. package/dist/player-panel.d.ts +5 -9
  32. package/dist/player-panel.d.ts.map +1 -1
  33. package/dist/player-panel.js +56 -42
  34. package/dist/player-panel.js.map +1 -1
  35. package/dist/player.d.ts +2 -1
  36. package/dist/player.d.ts.map +1 -1
  37. package/dist/player.js +6 -2
  38. package/dist/player.js.map +1 -1
  39. package/dist/scenario-parser.d.ts.map +1 -1
  40. package/dist/scenario-parser.js +4 -6
  41. package/dist/scenario-parser.js.map +1 -1
  42. package/dist/shapes.d.ts +42 -194
  43. package/dist/shapes.d.ts.map +1 -1
  44. package/dist/shapes.js +54 -363
  45. package/dist/shapes.js.map +1 -1
  46. package/dist/table-params.d.ts +3 -3
  47. package/dist/table-params.d.ts.map +1 -1
  48. package/dist/table-params.js +2 -2
  49. package/dist/table-params.js.map +1 -1
  50. package/dist/table.d.ts +42 -18
  51. package/dist/table.d.ts.map +1 -1
  52. package/dist/table.js +89 -67
  53. package/dist/table.js.map +1 -1
  54. package/dist/text-log.js +2 -2
  55. package/dist/text-log.js.map +1 -1
  56. package/dist/tile.d.ts +17 -20
  57. package/dist/tile.d.ts.map +1 -1
  58. package/dist/tile.js +31 -31
  59. package/dist/tile.js.map +1 -1
  60. package/dist/types.d.ts +0 -1
  61. package/dist/types.d.ts.map +1 -1
  62. package/package.json +5 -4
package/dist/table.d.ts CHANGED
@@ -1,16 +1,15 @@
1
1
  /// <reference types="easeljs" />
2
- /// <reference types="createjs-lib" />
3
2
  /// <reference types="@thegraid/easeljs-lib/dist/createjs-functions" />
4
- import { Constructor, Dragger, DragInfo, DropdownStyle, ParamGUI, ScaleableContainer, XY } from "@thegraid/easeljs-lib";
5
- import { Container, DisplayObject, EventDispatcher, Shape, Stage, Text } from "@thegraid/easeljs-module";
6
- import { NamedContainer, NamedObject, type GamePlay } from "./game-play";
3
+ import { Constructor, XY, XYWH } from "@thegraid/common-lib";
4
+ import { Dispatcher, Dragger, DragInfo, DropdownStyle, NamedContainer, NamedObject, ParamGUI, RectShape, ScaleableContainer } from "@thegraid/easeljs-lib";
5
+ import { Container, DisplayObject, Shape, Stage, Text } from "@thegraid/easeljs-module";
6
+ import { type GamePlay } from "./game-play";
7
7
  import { Scenario } from "./game-setup";
8
8
  import type { GameState } from "./game-state";
9
9
  import { Hex, HexM, IdHex, IHex2, RecycleHex } from "./hex";
10
- import { XYWH } from "./hex-intfs";
11
10
  import { Player } from "./player";
12
11
  import { PlayerPanel } from "./player-panel";
13
- import { HexShape, RectShape, UtilButton } from "./shapes";
12
+ import { HexShape, UtilButton } from "./shapes";
14
13
  import { Tile } from "./tile";
15
14
  import { TileSource } from "./tile-source";
16
15
  export interface Dragable {
@@ -38,21 +37,20 @@ declare class TextLog extends NamedContainer {
38
37
  lines: Text[];
39
38
  lastLine: string;
40
39
  nReps: number;
41
- height(n?: number): number;
40
+ height(nLines?: number): number;
42
41
  clear(): void;
43
42
  private newText;
44
43
  private spaceLines;
44
+ /** convert line to single-line; inc count if same line; insert & scroll up */
45
45
  log(line: string, from?: string, toConsole?: boolean): string;
46
46
  }
47
47
  /** layout display components, setup callbacks to GamePlay.
48
48
  *
49
49
  * uses a HexMap\<IHex2\>
50
50
  */
51
- export declare class Table {
51
+ export declare class Table extends Dispatcher {
52
52
  static table: Table;
53
53
  static stageTable(obj: DisplayObject): Table;
54
- disp: EventDispatcher;
55
- namedOn(Aname: string, type: string, listener: (eventObj: any) => boolean, scope?: Object, once?: boolean, data?: any, useCapture?: boolean): void;
56
54
  gamePlay: GamePlay;
57
55
  stage: Stage;
58
56
  bgRect: Shape;
@@ -77,12 +75,14 @@ export declare class Table {
77
75
  hexC: Constructor<IHex2>;
78
76
  readonly overlayCont: NamedContainer;
79
77
  constructor(stage: Stage);
80
- /** shows the last 2 start of turn lines */
78
+ /** shows the last TP.numPlayers start of turn lines */
81
79
  turnLog: TextLog;
82
80
  /** show [13] other interesting log strings */
83
81
  textLog: TextLog;
84
- logTurn(line: string): void;
85
- logText(line: string, from?: string): void;
82
+ /** write '// ${turn}: ${line}' comment line to TextLog (& console) & logWriter */
83
+ logText(line: string, from?: string, toConsole?: boolean): void;
84
+ logCurPlayer(plyr: Player): void;
85
+ logTurnPlayer(line: string): void;
86
86
  setupUndoButtons(xOffs: number, bSize: number, skipRad: number, bgr: XYWH, row?: number, col?: number): void;
87
87
  showWinText(msg?: string, color?: string): void;
88
88
  enableHexInspector(qY?: number, cont?: Container): HexShape;
@@ -462,10 +462,26 @@ export declare class Table {
462
462
  * six panel locations [row, col, dir][].
463
463
  *
464
464
  * col==0 is on left edge of hexMap; The *center* hex is col == (nHexes-1)
465
+ * @example
466
+ * P0 --- P3
467
+ * P1 --C-- P4
468
+ * P2 --- P5
469
+ */
470
+ getPanelLocs(): number[][];
471
+ /**
472
+ * Which PanelLocs to use for a given number of Players
473
+ * @param np number of Players
474
+ * @returns array of indices into PanelLocs (one for each Player)
475
+ */
476
+ panelLocsForNp(np: number): number[];
477
+ /** Panel location for the nth of nPlayers.
478
+ *
479
+ * @param pIndex Player index (0 .. nPlayers-1)
480
+ * @param nPlayers [allPlayers.length] total number of Players
481
+ * @param panelLocs [getPanelLocs] potential panel locations
482
+ * @return panelLocs[panelLocsForNp(nPlayers)][pIndex]
465
483
  */
466
- setPanelLocs(): number[][];
467
- /** select from setPanelLoc, based on pIndex from total np */
468
- panelLoc(pIndex: number, np?: number, locs?: number[][]): number[];
484
+ panelLoc(pIndex: number, nPlayers?: number, panelLocs?: number[][]): number[];
469
485
  readonly allPlayerPanels: PlayerPanel[];
470
486
  /** make player panels, placed at panelLoc... */
471
487
  makePerPlayer(): void;
@@ -641,7 +657,15 @@ export declare class Table {
641
657
  showNetworkGroup(group_name?: string): void;
642
658
  doneButton: UtilButton;
643
659
  doneClicked: (evt?: any) => void;
644
- addDoneButton(actionCont: Container, rh: number): Container;
660
+ /**
661
+ * May be contained or placed with ActionSelection buttons.
662
+ * @param cont [scaleCont] a Container to hold the DoneButton
663
+ * @param cx [0] offset in Container (to 'center', 'left', 'right' per align)
664
+ * @param cy [0] offset in Container (to top of text box)
665
+ * @param align ['center'] left or right
666
+ * @returns actionCont
667
+ */
668
+ addDoneButton(cont?: Container, cx?: number, cy?: number, align?: string): Container;
645
669
  /** show player player score on table */
646
670
  setPlayerScore(plyr: Player, score: number, rank?: number): void;
647
671
  /** update table when a new Game is started.
@@ -1305,8 +1329,8 @@ export declare class Table {
1305
1329
  */
1306
1330
  dragTarget(dragObj?: DisplayObject, xy?: XY): void;
1307
1331
  startDragging(dragObj: DisplayObject, xy?: XY): void;
1308
- logCurPlayer(plyr: Player): void;
1309
1332
  showRedoUndoCount(): void;
1333
+ /** log --> comment line to [console], TextLog, logWriter; showRedoUndoCount() */
1310
1334
  showNextPlayer(log?: boolean): void;
1311
1335
  _tablePlanner: TablePlanner;
1312
1336
  get tablePlanner(): TablePlanner;
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"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"}
package/dist/table.js CHANGED
@@ -1,11 +1,11 @@
1
- import { afterUpdate, AT, C, CenterText, Dragger, F, KeyBinder, ParamGUI, S, ScaleableContainer, stime } from "@thegraid/easeljs-lib";
2
- import { Container, EventDispatcher, Graphics, Shape, Text } from "@thegraid/easeljs-module";
1
+ import { AT, C, F, S, stime } from "@thegraid/common-lib";
2
+ import { afterUpdate, CenterText, CircleShape, Dispatcher, Dragger, KeyBinder, NamedContainer, ParamGUI, RectShape, ScaleableContainer } from "@thegraid/easeljs-lib";
3
+ import { Container, Graphics, Shape, Text } from "@thegraid/easeljs-module";
3
4
  import { EBC, PidChoice } from "./choosers";
4
- import { NamedContainer, TileEvent } from "./game-play";
5
+ import { TileEvent } from "./game-play";
5
6
  import { RecycleHex } from "./hex";
6
- import { Player } from "./player";
7
7
  import { PlayerPanel } from "./player-panel";
8
- import { CircleShape, HexShape, RectShape, UtilButton } from "./shapes";
8
+ import { HexShape, UtilButton } from "./shapes";
9
9
  import { playerColor0, playerColor1, TP } from "./table-params";
10
10
  import { Tile } from "./tile";
11
11
  /** to own file... */
@@ -15,7 +15,7 @@ class TablePlanner {
15
15
  class TextLog extends NamedContainer {
16
16
  size;
17
17
  lead;
18
- constructor(Aname, nlines = 6, size = 30, lead = 3) {
18
+ constructor(Aname, nlines = 6, size = TP.hexRad / 2, lead = 3) {
19
19
  super(Aname);
20
20
  this.size = size;
21
21
  this.lead = lead;
@@ -27,8 +27,8 @@ class TextLog extends NamedContainer {
27
27
  lines;
28
28
  lastLine = '';
29
29
  nReps = 0;
30
- height(n = this.lines.length) {
31
- return (this.size + this.lead) * n;
30
+ height(nLines = this.lines.length) {
31
+ return (this.size + this.lead) * nLines;
32
32
  }
33
33
  clear() {
34
34
  this.lines.forEach(tline => tline.text = '');
@@ -43,8 +43,9 @@ class TextLog extends NamedContainer {
43
43
  spaceLines(cy = 0, lead = this.lead) {
44
44
  this.lines.forEach(tline => (tline.y = cy, cy += tline.getMeasuredLineHeight() + lead));
45
45
  }
46
+ /** convert line to single-line; inc count if same line; insert & scroll up */
46
47
  log(line, from = '', toConsole = true) {
47
- line = line.replace('/\n/g', '-');
48
+ line = line.replace(/\n/g, '-');
48
49
  toConsole && console.log(stime(`${from}:`), line);
49
50
  if (line === this.lastLine) {
50
51
  this.lines[this.lines.length - 1].text = `[${++this.nReps}] ${line}`;
@@ -64,16 +65,11 @@ class TextLog extends NamedContainer {
64
65
  *
65
66
  * uses a HexMap\<IHex2\>
66
67
  */
67
- export class Table {
68
+ export class Table extends Dispatcher {
68
69
  static table;
69
70
  static stageTable(obj) {
70
71
  return obj.stage.table;
71
72
  }
72
- disp = this;
73
- namedOn(Aname, type, listener, scope, once, data, useCapture = false) {
74
- const list2 = this.disp.on(type, listener, scope, once, data, useCapture);
75
- list2.Aname = Aname;
76
- }
77
73
  gamePlay;
78
74
  stage;
79
75
  bgRect;
@@ -98,8 +94,7 @@ export class Table {
98
94
  hexC;
99
95
  overlayCont = new NamedContainer('overlay');
100
96
  constructor(stage) {
101
- // super();
102
- EventDispatcher.initialize(this);
97
+ super();
103
98
  // backpointer so Containers can find their Table (& curMark)
104
99
  Table.table = stage.table = this;
105
100
  this.stage = stage;
@@ -111,20 +106,28 @@ export class Table {
111
106
  this.bindKeys();
112
107
  }
113
108
  }
114
- /** shows the last 2 start of turn lines */
115
- turnLog = new TextLog('turnLog', 2);
109
+ /** shows the last TP.numPlayers start of turn lines */
110
+ turnLog = new TextLog('turnLog', TP.numPlayers);
116
111
  /** show [13] other interesting log strings */
117
112
  textLog = new TextLog('textLog', TP.textLogLines);
118
- logTurn(line) {
119
- this.turnLog.log(line, 'table.logTurn'); // in top two lines
120
- }
121
- logText(line, from = '') {
122
- const text = this.textLog.log(`${this.gamePlay.turnNumber}: ${line}`, from || '***'); // scrolling lines below
113
+ /** write '// ${turn}: ${line}' comment line to TextLog (& console) & logWriter */
114
+ logText(line, from = '', toConsole = true) {
115
+ const text = this.textLog.log(`${this.gamePlay.turnNumber}: ${line}`, from || '***', toConsole); // scrolling lines below
123
116
  this.gamePlay.logWriter.writeLine(`// ${text}`);
124
117
  // JSON string, instead of JSON5 comment:
125
118
  // const text = this.textLog.log(`${this.gamePlay.turnNumber}: ${line}`, from); // scrolling lines below
126
119
  // this.gamePlay.logWriter.writeLine(`"${line}",`);
127
120
  }
121
+ logCurPlayer(plyr) {
122
+ const tn = this.gamePlay.turnNumber;
123
+ const robo = plyr.useRobo ? AT.ansiText(['red', 'bold'], "robo") : "----";
124
+ const info = { turn: tn, gamePlay: this.gamePlay, curPlayer: plyr, plyr: plyr.Aname };
125
+ console.log(stime(this, `.logCurPlayer --${robo}--`), info);
126
+ this.logTurnPlayer(`//${tn}: ${plyr.Aname}`);
127
+ }
128
+ logTurnPlayer(line) {
129
+ this.turnLog.log(line, 'table.logTurn', false); // in top two lines
130
+ }
128
131
  setupUndoButtons(xOffs, bSize, skipRad, bgr, row = 8, col = -7) {
129
132
  const undoC = this.undoCont; // holds the undo buttons.
130
133
  this.setToRowCol(undoC, row, col);
@@ -224,7 +227,7 @@ export class Table {
224
227
  console.log(stime('GamePlay', `.reCacheTiles: TP.cacheTiles=`), TP.cacheTiles, this.scaleCont.scaleX);
225
228
  Tile.allTiles.forEach(tile => {
226
229
  const rad = tile.radius;
227
- tile.setBounds(null, 0, 0, 0);
230
+ tile.setBoundsNull();
228
231
  if (tile.cacheID) {
229
232
  tile.uncache();
230
233
  const { x, y, width, height } = tile.getBounds() ?? { x: -rad, y: -rad, width: 2 * rad, height: 2 * rad };
@@ -338,7 +341,7 @@ export class Table {
338
341
  const parent = this.scaleCont;
339
342
  this.setToRowCol(this.turnLog, rowy, colx);
340
343
  this.setToRowCol(this.textLog, rowy, colx);
341
- this.textLog.y += this.turnLog.height(Player.allPlayers.length + 1); // allow room for 1 line per player
344
+ this.textLog.y += this.turnLog.height(TP.numPlayers + 1); // allow room for 1 line per player
342
345
  parent.addChild(this.turnLog, this.textLog);
343
346
  parent.stage.update();
344
347
  }
@@ -386,20 +389,19 @@ export class Table {
386
389
  */
387
390
  makeGUIs(scale = TP.hexRad / 60, cx = -200, cy = 250, dy = 20) {
388
391
  const scaleCont = this.scaleCont;
389
- let lmax = 0, ymax = 0;
390
- const align = (gui) => {
392
+ let wmax = 0, ymax = 0;
393
+ const guiWYmax = (gui) => {
391
394
  ymax += (gui.ymax + dy);
392
- lmax = Math.max(lmax, gui.children[0].getBounds().width);
395
+ wmax = Math.max(wmax, gui.children[0].getBounds().width);
396
+ return gui;
393
397
  };
394
398
  const guis = [this.makeNetworkGUI, this.makeParamGUI, this.makeParamGUI2].map(mgf => {
395
- const gui = this.gpanel(mgf, cx, cy + ymax, scale);
396
- align(gui);
397
- return gui;
399
+ return guiWYmax(this.gpanel(mgf, cx, cy + ymax, scale));
398
400
  });
401
+ guis.forEach(gui => gui.x -= wmax);
399
402
  scaleCont.addChild(...guis.reverse()); // lower y values ABOVE to dropdown is not obscured
400
- guis.forEach(gui => gui.x -= lmax);
401
403
  // TODO: dropdown to use given 'top' container!
402
- guis[0].stage.update();
404
+ scaleCont.stage.update();
403
405
  }
404
406
  get panelHeight() { return (2 * TP.nHexes - 1) / 3 - .2; }
405
407
  get panelOffset() { return TP.nHexes + 2; }
@@ -407,8 +409,12 @@ export class Table {
407
409
  * six panel locations [row, col, dir][].
408
410
  *
409
411
  * col==0 is on left edge of hexMap; The *center* hex is col == (nHexes-1)
412
+ * @example
413
+ * P0 --- P3
414
+ * P1 --C-- P4
415
+ * P2 --- P5
410
416
  */
411
- setPanelLocs() {
417
+ getPanelLocs() {
412
418
  const r0 = this.hexMap.centerHex.row, dr = this.panelHeight + .2;
413
419
  const cc = this.hexMap.centerHex.col, coff = this.panelOffset;
414
420
  const c0 = cc - coff, c1 = cc + coff;
@@ -418,18 +424,32 @@ export class Table {
418
424
  ];
419
425
  return locs;
420
426
  }
421
- /** select from setPanelLoc, based on pIndex from total np */
422
- panelLoc(pIndex, np = Math.min(Player.allPlayers.length, 6), locs = this.setPanelLocs()) {
423
- const seq = [[], [0], [0, 3], [0, 3, 1], [0, 3, 4, 1], [0, 3, 4, 2, 1], [0, 3, 4, 5, 2, 1]];
424
- const seqn = seq[np], ndx = seqn[Math.min(pIndex, np - 1)];
425
- return locs[ndx];
427
+ /**
428
+ * Which PanelLocs to use for a given number of Players
429
+ * @param np number of Players
430
+ * @returns array of indices into PanelLocs (one for each Player)
431
+ */
432
+ panelLocsForNp(np) {
433
+ return [[], [0], [0, 3], [0, 3, 1], [0, 3, 4, 1], [0, 3, 4, 2, 1], [0, 3, 4, 5, 2, 1]][np];
434
+ }
435
+ /** Panel location for the nth of nPlayers.
436
+ *
437
+ * @param pIndex Player index (0 .. nPlayers-1)
438
+ * @param nPlayers [allPlayers.length] total number of Players
439
+ * @param panelLocs [getPanelLocs] potential panel locations
440
+ * @return panelLocs[panelLocsForNp(nPlayers)][pIndex]
441
+ */
442
+ panelLoc(pIndex, nPlayers = Math.min(TP.numPlayers, 6), panelLocs = this.getPanelLocs()) {
443
+ const seqn = this.panelLocsForNp(nPlayers);
444
+ const ndx = seqn[Math.min(pIndex, nPlayers - 1)];
445
+ return panelLocs[ndx];
426
446
  }
427
447
  allPlayerPanels = [];
428
448
  /** make player panels, placed at panelLoc... */
429
449
  makePerPlayer() {
430
450
  this.allPlayerPanels.length = 0; // TODO: maybe deconstruct
431
451
  const high = this.panelHeight, wide = 4.5;
432
- const np = Math.min(Player.allPlayers.length, 6), locs = this.setPanelLocs();
452
+ const np = Math.min(TP.numPlayers, 6), locs = this.getPanelLocs();
433
453
  this.gamePlay.forEachPlayer((player, pIndex) => {
434
454
  const [row, col, dir] = this.panelLoc(pIndex, np, locs);
435
455
  this.allPlayerPanels[pIndex] = player.panel = new PlayerPanel(this, player, high, wide, row - high / 2, col - wide / 2, dir);
@@ -458,7 +478,7 @@ export class Table {
458
478
  hex.legalMark.setOnHex(hex);
459
479
  hex.cont.visible = false;
460
480
  }
461
- makeCircleButton(color = C.WHITE, rad = 20, c, fs = 30) {
481
+ makeCircleButton(color = C.WHITE, rad = TP.hexRad / 3, c, fs = rad * 3 / 2) {
462
482
  const button = new Container();
463
483
  button.name = 'circle';
464
484
  const shape = new CircleShape(color, rad, '');
@@ -472,7 +492,7 @@ export class Table {
472
492
  button.mouseEnabled = false;
473
493
  return button;
474
494
  }
475
- makeSquareButton(color = C.WHITE, xywh, c, fs = 30) {
495
+ makeSquareButton(color = C.WHITE, xywh, c, fs = TP.hexRad / 2) {
476
496
  const button = new Container();
477
497
  button.name = 'square';
478
498
  const shape = new RectShape(xywh, color, '');
@@ -579,24 +599,33 @@ export class Table {
579
599
  this.doneButton.visible = false;
580
600
  this.gamePlay.phaseDone(); // <--- main doneButton does not supply 'panel'
581
601
  };
582
- addDoneButton(actionCont, rh) {
583
- const w = 90, h = 56;
584
- const doneButton = this.doneButton = new UtilButton('lightgreen', 'Done', 36, C.black);
602
+ /**
603
+ * May be contained or placed with ActionSelection buttons.
604
+ * @param cont [scaleCont] a Container to hold the DoneButton
605
+ * @param cx [0] offset in Container (to 'center', 'left', 'right' per align)
606
+ * @param cy [0] offset in Container (to top of text box)
607
+ * @param align ['center'] left or right
608
+ * @returns actionCont
609
+ */
610
+ addDoneButton(cont = this.scaleCont, cx = 0, cy = 0, align = 'center') {
611
+ const doneButton = this.doneButton = new UtilButton('Done', { bgColor: 'lightgreen' });
612
+ doneButton.disp.textAlign = align; // Note: baseline is still 'middle'
613
+ const { x, y, width: w, height: h } = doneButton.getBounds();
585
614
  doneButton.name = 'doneButton';
586
- doneButton.x = -(w);
587
- doneButton.y = 3 * rh;
588
- doneButton.label.textAlign = 'right';
615
+ doneButton.x = cx - 0; // XY is the top-right corner, align extends to left
616
+ doneButton.y = cy - y; // XY is the top-right corner, align extends to left
589
617
  doneButton.on(S.click, this.doneClicked, this);
590
- actionCont.addChild(doneButton);
591
- // prefix advice: set text color
618
+ cont.addChild(doneButton);
619
+ // prefix advice: set text color to contrast with RectShape color
620
+ // TODO: add as option to UtilButton
592
621
  const o_cgf = doneButton.rectShape.cgf;
593
622
  const cgf = (color) => {
594
- const tcolor = (C.dist(color, C.WHITE) < C.dist(color, C.black)) ? C.black : C.white;
595
- doneButton.label.color = tcolor;
596
- return o_cgf(color);
623
+ const tcolor = (C.dist(color, C.WHITE) < C.dist(color, C.BLACK)) ? C.black : C.white;
624
+ doneButton.disp.color = tcolor;
625
+ return o_cgf.call(doneButton.rectShape, color);
597
626
  };
598
627
  doneButton.rectShape.cgf = cgf; // invokes shape.paint(cgf) !!
599
- return actionCont;
628
+ return cont;
600
629
  }
601
630
  /** show player player score on table */
602
631
  setPlayerScore(plyr, score, rank) {
@@ -782,17 +811,11 @@ export class Table {
782
811
  startDragging(dragObj, xy = { x: 0, y: 0 }) {
783
812
  this.dragger.dragTarget(dragObj, xy);
784
813
  }
785
- logCurPlayer(plyr) {
786
- const tn = this.gamePlay.turnNumber;
787
- const robo = plyr.useRobo ? AT.ansiText(['red', 'bold'], "robo") : "----";
788
- const info = { turn: tn, plyr: plyr.Aname, gamePlay: this.gamePlay, curPlayer: plyr };
789
- console.log(stime(this, `.logCurPlayer --${robo}--`), info);
790
- this.logTurn(`//${tn}: ${plyr.Aname}`);
791
- }
792
814
  showRedoUndoCount() {
793
815
  this.undoText.text = `${this.gamePlay.undoRecs.length}`;
794
816
  this.redoText.text = `${this.gamePlay.redoMoves.length}`;
795
817
  }
818
+ /** log --> comment line to [console], TextLog, logWriter; showRedoUndoCount() */
796
819
  showNextPlayer(log = true) {
797
820
  let curPlayer = this.gamePlay.curPlayer; // after gamePlay.setNextPlayer()
798
821
  if (log)
@@ -822,7 +845,7 @@ export class Table {
822
845
  moveTileToHex(tile, ihex) {
823
846
  const hex = this.hexMap.getHex(ihex);
824
847
  this.hexMap.showMark(hex);
825
- this.disp.dispatchEvent(new TileEvent(S.add, tile, hex)); // -> GamePlay.playerMoveEvent(hex, sc)
848
+ this.dispatchEvent(new TileEvent(S.add, tile, hex)); // -> GamePlay.playerMoveEvent(hex, sc)
826
849
  }
827
850
  /** default scaling-up value */
828
851
  upscale = 1.5;
@@ -852,8 +875,7 @@ export class Table {
852
875
  KeyBinder.keyBinder.setKey('S-Space', () => this.dragTarget());
853
876
  KeyBinder.keyBinder.setKey('t', () => this.toggleText());
854
877
  // of dubious utility...
855
- const getOop = () => { this.stage.getObjectsUnderPoint(500, 100, 1); };
856
- KeyBinder.keyBinder.setKey("p", { func: () => getOop(), thisArg: this });
878
+ KeyBinder.keyBinder.setKey("p", () => this.stage.getObjectsUnderPoint(500, 100, 1));
857
879
  }
858
880
  /** put a Rectangle Shape at (0,0) with XYWH bounds as given */
859
881
  setBackground(parent, bounds, bgColor = TP.bgColor) {
@@ -892,9 +914,9 @@ export class Table {
892
914
  views = [this.viewA, this.viewZ];
893
915
  }
894
916
  views.forEach(view => {
895
- KeyBinder.keyBinder.setKey(view.isk, { func: () => invokeView(view) });
917
+ KeyBinder.keyBinder.setKey(view.isk, () => invokeView(view));
896
918
  if (view.ssk)
897
- KeyBinder.keyBinder.setKey(view.ssk, { func: () => saveView(view) });
919
+ KeyBinder.keyBinder.setKey(view.ssk, () => saveView(view));
898
920
  });
899
921
  if (views?.[0])
900
922
  KeyBinder.keyBinder.dispatchChar(views[0].isk);