@thegraid/hexlib 1.0.10 → 1.0.12

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/dist/hex.js CHANGED
@@ -7,7 +7,7 @@ export const S_Resign = 'Hex@Resign';
7
7
  export const S_Skip = 'Hex@skip ';
8
8
  export function newHSC(hex, sc, Aname = hex.Aname) { return { Aname, hex, sc }; }
9
9
  /** to recognize this class in hexUnderPoint and obtain the associated Hex2. */
10
- class HexCont extends Container {
10
+ export class HexCont extends Container {
11
11
  hex2;
12
12
  constructor(hex2) {
13
13
  super();
@@ -95,8 +95,9 @@ export class Hex {
95
95
  col;
96
96
  /** Link to neighbor in each H.dirs direction [NE, E, SE, SW, W, NW] */
97
97
  links = {};
98
+ metaLinks; // defined only for the center Hex of a metaHex
98
99
  get linkDirs() { return Object.keys(this.links); }
99
- /** colorScheme(playerColor)@rcs */
100
+ /** Hex(playerColor)@rcs */
100
101
  toString() {
101
102
  return `Hex@${this.rcs}`; // hex.toString => Hex@[r,c] | Hex@Skip , Hex@Resign
102
103
  }
@@ -171,13 +172,13 @@ export class Hex1 extends Hex {
171
172
  get meep() { return this._meep; }
172
173
  set meep(meep) { this._meep = meep; }
173
174
  get occupied() { return (this.tile || this.meep) ? [this.tile, this.meep] : undefined; }
174
- /** colorScheme(playerColor)@rcs */
175
- toString(sc = this.tile?.player?.color || this.meep?.player?.color) {
176
- return `${sc ?? 'Empty'}@${this.rcs}`; // hex.toString => COLOR@[r,c] | COLOR@Skip , COLOR@Resign
175
+ /** COLOR@[r,c]; COLOR = this.(tile??meep).player.color ?? Empty */
176
+ toString(color = (this.tile ?? this.meep)?.player?.color ?? 'Empty') {
177
+ return `${color}@${this.rcs}`; // hex.toString => COLOR@[r,c] | COLOR@Skip , COLOR@Resign
177
178
  }
178
- /** hex.rcspString => COLOR@[ r, c] | 'COLOR@Skip ' , 'COLOR@Resign ' */
179
- rcspString(sc = this.tile?.player?.color || this.meep?.player?.color) {
180
- return `${sc ?? 'Empty'}@${this.rcsp}`;
179
+ /** COLOR@[ r, c] or COLOR@Name */
180
+ rcspString(color = (this.tile ?? this.meep)?.player?.color ?? 'Empty') {
181
+ return `${color}@${this.rcsp}`;
181
182
  }
182
183
  }
183
184
  /** One Hex cell in the game, shown as a polyStar Shape */
@@ -204,7 +205,7 @@ export class Hex2 extends Hex1 {
204
205
  distText; // shown on this.cont
205
206
  rcText; // shown on this.cont
206
207
  setUnit(unit, meep = false) {
207
- const cont = this.map.mapCont.tileCont, x = this.x, y = this.y;
208
+ const cont = this.mapCont.tileCont, x = this.x, y = this.y;
208
209
  let k = true; // debug double tile
209
210
  const this_unit = (meep ? this.meep : this.tile);
210
211
  if (unit !== undefined && this_unit !== undefined && !(meep && this_unit.recycleVerb === 'demolished')) {
@@ -257,7 +258,7 @@ export class Hex2 extends Hex1 {
257
258
  this.showText(true); // & this.cache()
258
259
  }
259
260
  /** set visibility of rcText & distText */
260
- showText(vis = this.rcText.visible) {
261
+ showText(vis = !this.rcText.visible) {
261
262
  this.rcText.visible = this.distText.visible = vis;
262
263
  this.cont.updateCache();
263
264
  }
@@ -279,7 +280,7 @@ export class Hex2 extends Hex1 {
279
280
  // cont.rotation = this.map.topoRot;
280
281
  }
281
282
  makeHexShape(shape = HexShape) {
282
- const hs = new shape(this.radius, this.map.topoRot);
283
+ const hs = new shape(this.radius);
283
284
  this.cont.addChildAt(hs, 0);
284
285
  this.cont.hitArea = hs;
285
286
  hs.paint('grey');
@@ -330,69 +331,86 @@ export class Hex2 extends Hex1 {
330
331
  }
331
332
  export class RecycleHex extends Hex2 {
332
333
  }
333
- /** for contrast paint it black AND white, leave a hole in the middle unpainted. */
334
+ /**
335
+ * A HexShape/PaintableShape to indicate selected hex of HexMap.
336
+ *
337
+ * For contrast paint it (GREY,.3), leave a hole in the middle unpainted.
338
+ *
339
+ * @param radius of this HexShape
340
+ * @param radius0 of removed circle
341
+ * @param cm of HexShape/ring for mark ['rgba(127,127,127,.3)']
342
+ */
334
343
  export class HexMark extends HexShape {
335
- hexMap;
336
344
  hex;
337
- constructor(hexMap, radius, radius0 = 0) {
345
+ constructor(radius, radius0 = 0, cm = 'rgba(127,127,127,.3)') {
338
346
  super(radius);
339
- this.hexMap = hexMap;
340
- const mark = this;
341
- const cm = "rgba(127,127,127,.3)";
342
- mark.graphics.f(cm).dp(0, 0, this.radius, 6, 0, this.tilt);
343
- mark.cache(-radius, -radius, 2 * radius, 2 * radius);
344
- mark.graphics.c().f(C.BLACK).dc(0, 0, radius0);
345
- mark.updateCache("destination-out");
346
- mark.setHexBounds();
347
- mark.mouseEnabled = false;
348
- }
349
- paint(color) {
350
- this.setHexBounds();
351
- return this.graphics; // do not repaint.
352
- }
347
+ this.graphics.f(cm).dp(0, 0, this.radius, 6, 0, this.tilt);
348
+ this.cache(-radius, -radius, 2 * radius, 2 * radius);
349
+ this.graphics.c().f(C.BLACK).dc(0, 0, radius0);
350
+ this.updateCache("destination-out");
351
+ this.setHexBounds(); // bounds are based on readonly, should be const
352
+ this.mouseEnabled = false;
353
+ }
354
+ // don't invoke Mark.paint(new_color); TODO: remove this override.
355
+ // override paint(color: string): Graphics {
356
+ // this.setHexBounds(); // <--- likely redundant, see HexSHape
357
+ // return this.graphics; // do not repaint.
358
+ // }
353
359
  // Fail: markCont to be 'above' tileCont...
360
+ /**
361
+ * Show or hide mark on given hex; and hex.updateCache.
362
+ *
363
+ * (this.hex = hex) ? hex.cont.addChild(this.cont) : this.visible = false
364
+ */
354
365
  showOn(hex) {
355
366
  // when mark is NOT showing, this.visible === false && this.hex === undefined.
356
367
  // when mark IS showing, this.visible === true && (this.hex instanceof Hex2)
357
368
  if (this.hex === hex)
358
369
  return;
359
- if (this.hex) {
370
+ let ohex = this.hex, map = ohex?.map;
371
+ if (ohex) {
360
372
  this.visible = false;
361
- if (!this.hex.cont.cacheID)
373
+ if (!ohex.cont.cacheID)
362
374
  debugger;
363
- this.hex.cont.updateCache();
375
+ ohex.cont.updateCache();
376
+ map = ohex.map;
364
377
  }
365
- this.hex = hex;
366
- if (this.hex) {
378
+ if (hex) {
367
379
  this.visible = true;
368
380
  hex.cont.addChild(this);
369
381
  if (!hex.cont.cacheID)
370
382
  debugger;
371
383
  hex.cont.updateCache();
384
+ map = hex.map;
372
385
  }
373
- this.hexMap.update();
386
+ this.hex = hex;
387
+ map?.update(); // remove old hex, add new hex
374
388
  }
375
389
  }
390
+ /** MapCont is an empty Container until .addContainers(cNames) */
376
391
  export class MapCont extends Container {
377
- hexMap;
378
- constructor(hexMap) {
392
+ constructor() {
379
393
  super();
380
- this.hexMap = hexMap;
381
394
  this.name = 'mapCont';
382
395
  }
383
- static cNames = ['resaCont', 'hexCont', 'infCont', 'tileCont', 'markCont', 'capCont', 'counterCont', 'eventCont'];
396
+ /** initial, default, readonly Container names, fields */
397
+ static cNames = ['resaCont', 'hexCont', 'tileCont', 'markCont', 'counterCont'];
398
+ /** actual cNames being used for this MapCont, set in addContainers() */
399
+ _cNames = MapCont.cNames.concat();
400
+ get cNames() { return this._cNames; }
384
401
  resaCont; // playerPanels
385
402
  hexCont; // hex shapes on bottom stats: addChild(dsText), parent.rotation
386
- infCont; // infMark below tileCont; Hex2.showInf
403
+ // infCont: Container // infMark below tileCont; Hex2.showInf
387
404
  tileCont; // Tiles & Meeples on Hex2/HexMap.
388
405
  markCont; // showMark over Hex2; LegalMark
389
- capCont; // for tile.capMark
406
+ // capCont: Container // for tile.capMark
390
407
  counterCont; // counters for AuctionCont
391
- eventCont; // the eventHex & and whatever Tile is on it...
408
+ // eventCont: Container// the eventHex & and whatever Tile is on it...
392
409
  /** add all the layers of Containers. */
393
- addContainers() {
410
+ addContainers(cNames = this.cNames) {
411
+ this._cNames = cNames.concat();
394
412
  this.removeAllChildren();
395
- MapCont.cNames.forEach(cname => {
413
+ this.cNames.forEach(cname => {
396
414
  const cont = new Container();
397
415
  cont.Aname = cont.name = cname;
398
416
  this[cname] = cont;
@@ -402,16 +420,16 @@ export class MapCont extends Container {
402
420
  /**
403
421
  * Set hexCont(x,y) so hexMap.getBounds() is centered around mapCont(0,0);
404
422
  *
405
- * [So hexCont.centerHex is at mapCont(0,0)]
423
+ * [Generally, hexCont.centerHex is ~ mapCont(0,0)]
406
424
  *
407
- * Move ALL children of mapCont to have that same (x,y) alignment.
408
- * @param hexCont use getBounds() of given Container to compute alignment.
425
+ * Move ALL children of this MapCont to have that same (x,y) alignment.
426
+ * @param bounds [hexCont.getBounds()] align containers to center of given bounds.
409
427
  */
410
- centerContainers(hexCont = this.hexCont) {
411
- const hexRect = hexCont.getBounds(); // based on aggregate of Hex2.cont.cache(bounds);
412
- const { x, y, width, height } = hexRect;
428
+ centerContainers(bounds = this.hexCont.getBounds()) {
429
+ // based on aggregate of all added Hex2.cont; == the .cache(bounds);
430
+ const { x, y, width, height } = bounds;
413
431
  const x0 = x + width / 2, y0 = y + height / 2;
414
- MapCont.cNames.forEach(cname => {
432
+ this.cNames.forEach(cname => {
415
433
  const cont = this[cname];
416
434
  cont.x = -x0;
417
435
  cont.y = -y0;
@@ -432,13 +450,29 @@ export class MapCont extends Container {
432
450
  */
433
451
  export class HexMap extends Array {
434
452
  hexC;
453
+ Aname;
435
454
  // A color for each District: 'rgb(198,198,198)'
436
455
  static distColor = ['lightgrey', "limegreen", "deepskyblue", "rgb(255,165,0)", "violet", "rgb(250,80,80)", "yellow"];
456
+ /**
457
+ * HexMap: TP.nRows X TP.nCols hexes.
458
+ *
459
+ * Basic map is non-GUI, addToMapCont uses Hex2 elements to enable GUI interaction.
460
+ * @param addToMapCont use Hex2 for Hex, make Containers: hexCont, infCont, markCont, stoneCont
461
+ * @param hexC Constructor<T> for the Hex elements (typed as HexConstructor<Hex> for Typescript...)
462
+ */
463
+ constructor(radius = TP.hexRad, addToMapCont = false, hexC = Hex, Aname = 'mainMap') {
464
+ super(); // Array<Array<Hex>>()
465
+ this.hexC = hexC;
466
+ this.Aname = Aname;
467
+ this.radius = radius;
468
+ if (addToMapCont)
469
+ this.addToMapCont(this.hexC);
470
+ }
437
471
  get asHex2Map() { return this; }
438
472
  /** Each occupied Hex, with the occupying PlayerColor */
439
473
  district = [];
440
474
  hexAry; // set by makeAllDistricts()
441
- mapCont = new MapCont(this.asHex2Map); // if/when using Hex2
475
+ mapCont = new MapCont(); // if/when using Hex2
442
476
  //
443
477
  // | // | // |
444
478
  // 2 . | 1 // 1 . | .5 // 2/sqrt3 . | 1/sqrt3
@@ -447,6 +481,7 @@ export class HexMap extends Array {
447
481
  // -----------------------+ // -----------------------+ // -----------------------+
448
482
  // sqrt3 // sqrt3/2 // 1
449
483
  //
484
+ allStones = [];
450
485
  radius = TP.hexRad;
451
486
  /** return this.centerHex.xywh() for this.topo */
452
487
  get xywh() { return this.centerHex.xywh(); }
@@ -469,41 +504,23 @@ export class HexMap extends Array {
469
504
  return this.centerHex.lastHex(dn);
470
505
  }
471
506
  rcLinear(row, col) { return col + row * (1 + (this.maxCol ?? 0) - (this.minCol ?? 0)); }
472
- metaMap = Array(); // hex0 (center Hex) of each MetaHex, has metaLinks to others.
473
507
  mark; // a cached DisplayObject, used by showMark
474
- Aname = 'mainMap';
475
- /**
476
- * HexMap: TP.nRows X TP.nCols hexes.
477
- *
478
- * Basic map is non-GUI, addToMapCont uses Hex2 elements to enable GUI interaction.
479
- * @param addToMapCont use Hex2 for Hex, make Containers: hexCont, infCont, markCont, stoneCont
480
- * @param hexC Constructor<T> for the Hex elements (typed as HexConstructor<Hex> for Typescript...)
481
- */
482
- constructor(radius = TP.hexRad, addToMapCont = false, hexC = Hex) {
483
- super(); // Array<Array<Hex>>()
484
- this.hexC = hexC;
485
- this.radius = radius;
486
- if (addToMapCont)
487
- this.addToMapCont(this.hexC);
488
- }
489
- // the 'tilt' to apply to a HexShape to align with map.topo:
490
- get topoRot() { return TP.useEwTopo ? 30 : 0; }
491
508
  makeMark() {
492
- const mark = new HexMark(this.asHex2Map, this.radius, this.radius / 2.5);
509
+ const mark = new HexMark(this.radius, this.radius / 2.5);
493
510
  return mark;
494
511
  }
495
512
  /** create/attach Graphical components for HexMap */
496
- addToMapCont(hexC) {
513
+ addToMapCont(hexC, cNames) {
497
514
  if (hexC)
498
515
  this.hexC = hexC;
516
+ this.mapCont.addContainers(cNames);
499
517
  this.mark = this.makeMark();
500
- this.mapCont.addContainers();
501
518
  return this;
502
519
  }
503
- /** ...stage.update() */
520
+ /** ...stage?.update() */
504
521
  update() {
505
- this.mapCont.hexCont.updateCache(); // when toggleText: hexInspector
506
- this.mapCont.hexCont.parent?.stage.update();
522
+ this.mapCont?.hexCont?.updateCache(); // when toggleText: hexInspector
523
+ this.mapCont?.stage?.update();
507
524
  }
508
525
  /** to build this HexMap: create Hex (or Hex2) and link it to neighbors. */
509
526
  addHex(row, col, district, hexC = this.hexC) {
@@ -525,6 +542,7 @@ export class HexMap extends Array {
525
542
  this.link(hex); // link to existing neighbors
526
543
  return hex;
527
544
  }
545
+ /** find object under dragObj, using hexUnderPoint() */
528
546
  hexUnderObj(dragObj, legalOnly = true) {
529
547
  const pt = dragObj.parent.localToLocal(dragObj.x, dragObj.y, this.mapCont.markCont);
530
548
  return this.hexUnderPoint(pt.x, pt.y, legalOnly);
@@ -594,6 +612,23 @@ export class HexMap extends Array {
594
612
  const { dr, dc } = ntdir; // OR (nt as TopoEW[dir as EwDir]) OR simply: nt[dir]
595
613
  return { row: rc.row + dr, col: rc.col + dc };
596
614
  }
615
+ metaMap = Array(); // hex0 (center Hex) of each MetaHex, has metaLinks to others.
616
+ addMetaHex(hex, mrc) {
617
+ const metaMap = this.metaMap, { row: mr, col: mc } = mrc;
618
+ if (metaMap[mr] === undefined)
619
+ metaMap[mr] = new Array();
620
+ if (metaMap[mr][mc] === undefined)
621
+ metaMap[mr][mc] = hex;
622
+ this.metaLink(hex, { row: mr, col: mc });
623
+ }
624
+ /** link metaHex on metaMap; maybe need ewTopo for nh==1 ?? */
625
+ metaLink(hex, rc) {
626
+ // planner expects Dir1 & Dir2 in NsDir; nextMetaRC.mrc: NsDir
627
+ let nt = (this.nh == 0) ? H.ewTopo(rc) : H.nsTopo(rc); // always nsTopo!!
628
+ if (!hex.metaLinks)
629
+ hex.metaLinks = {};
630
+ this.link(hex, rc, this.metaMap, nt, (hex) => hex.metaLinks);
631
+ }
597
632
  /** link hex to/from each extant neighor */
598
633
  link(hex, rc = hex, map = this, nt = this.topo(rc), lf = (hex) => hex.links) {
599
634
  const topoDirs = Object.keys(nt);
@@ -609,7 +644,7 @@ export class HexMap extends Array {
609
644
  });
610
645
  }
611
646
  /**
612
- * The [Legal] Hex under the given x,y coordinates.
647
+ * The [Legal] Hex (LegalMark.hex2) under the given x,y coordinates.
613
648
  * If on the line, then the top (last drawn) Hex.
614
649
  * @param x in local coordinates of this HexMap.mapCont
615
650
  * @param y
@@ -633,7 +668,10 @@ export class HexMap extends Array {
633
668
  _mh;
634
669
  get nh() { return this._nh; }
635
670
  get mh() { return this._mh; }
636
- /** final; set size one time, then it is readonly. */
671
+ /** final; set size of this HexMap; then it is readonly.
672
+ * @param nh size of district (size of each MetaHex) [TP.nHexes]
673
+ * @param mh order of MetaHex (number of MetaHex per side of map) [TP.mHexes]
674
+ */
637
675
  setSize(nh = TP.nHexes, mh = TP.mHexes) {
638
676
  this._nh = nh;
639
677
  this._mh = mh;
@@ -641,7 +679,7 @@ export class HexMap extends Array {
641
679
  /** utility for makeAllDistricts; make hex0 at RC */
642
680
  calculateRC0() {
643
681
  // suitable for makeMetaHexes
644
- const offs = Math.ceil(this.nh + this.mh * 1.25);
682
+ const offs = Math.ceil(2 * this.nh * (this.mh - .5)); // row incr could be smaller for EwTopo
645
683
  return { row: offs, col: offs }; // row,col to be non-negative
646
684
  }
647
685
  /**
@@ -653,7 +691,7 @@ export class HexMap extends Array {
653
691
  makeAllDistricts(nh = TP.nHexes, mh = TP.mHexes) {
654
692
  this.setSize(nh, mh);
655
693
  const rc0 = this.calculateRC0();
656
- const hexAry = this.hexAry = this.makeAllHexes(nh, 0, rc0); // nh hexes on outer ring; single meta-hex
694
+ const hexAry = this.hexAry = this.makeAllHexes(nh, mh, rc0); // nh hexes on outer ring; single meta-hex
657
695
  this.mapCont.hexCont && this.mapCont.centerContainers();
658
696
  return hexAry;
659
697
  }
@@ -676,25 +714,26 @@ export class HexMap extends Array {
676
714
  * @param rc0 location of initial, central Hex
677
715
  * @return
678
716
  */
679
- makeMetaHexRings(nh = TP.nHexes, mh = TP.mHexes, rc0) {
717
+ makeMetaHexRings(nh = TP.nHexes, mh = TP.mHexes, rc0, mrc = { row: 0, col: 0 }) {
680
718
  const dL = nh, dS = (nh - 1), dirs = this.linkDirs;
681
719
  const nextMetaRC = (rc, nd) => {
682
- const dirL = dirs[nd], dirS = dirs[(nd + 5) % 6]; // ring starts at 'dist' from center
720
+ const dirL = dirs[nd], dirS = dirs[(nd + 5) % 6], metaD = H.nsDirs[(nd + 5) % 6];
683
721
  rc = this.forRCsOnLine(dL, rc, dirL); // step (WS) by dist
684
722
  rc = this.forRCsOnLine(dS, rc, dirS); // step (S) to center of 0-th metaHex
723
+ mrc = this.nextRowCol(mrc, metaD, H.nsTopo(mrc)); // metaMap uses nsTopo!
685
724
  return rc;
686
725
  };
687
726
  // do metaRing = 0, district 0:
688
727
  let district = 0, rc = rc0;
689
- const hexAry = this.makeMetaHex(nh, district++, rc); // Central District [0]
728
+ let hexAry = this.makeMetaHex(nh, district++, rc, mrc); // Central District [0]
690
729
  for (let metaRing = 1; metaRing < mh; metaRing++) {
691
730
  rc = nextMetaRC(rc, 4); // step in dirs[4] to initial rc (W or WS of previous rc)
692
731
  // from rc, for each dir, step dir to center of next metaHex.
693
732
  dirs.forEach((dirL, nd) => {
694
733
  for (let nhc = 1; nhc <= metaRing; nhc++) {
695
734
  rc = nextMetaRC(rc, nd);
696
- const hexAry2 = this.makeMetaHex(nh, district++, rc);
697
- hexAry.concat(...hexAry2);
735
+ const hexAry2 = this.makeMetaHex(nh, district++, rc, mrc);
736
+ hexAry = hexAry.concat(...hexAry2);
698
737
  }
699
738
  });
700
739
  }
@@ -707,11 +746,15 @@ export class HexMap extends Array {
707
746
  * @param nh order of the metaHex/district
708
747
  * @param district identifying number of district
709
748
  * @param rc location of center Hex
749
+ * @param mrc location in meta hex array [undefined: no MetaHex links]
710
750
  * @return array containing all the added Hexes
711
751
  */
712
- makeMetaHex(nh, district, rc) {
752
+ makeMetaHex(nh, district, rc, mrc) {
713
753
  const hexAry = Array();
714
- hexAry.push(this.addHex(rc.row, rc.col, district)); // The *center* hex of district
754
+ const hex = this.addHex(rc.row, rc.col, district);
755
+ hexAry.push(hex); // The *center* hex of district
756
+ if (mrc)
757
+ this.addMetaHex(hex, mrc); // for hexline! (link centers of districts)
715
758
  for (let ring = 1; ring < nh; ring++) {
716
759
  rc = this.nextRowCol(rc, this.linkDirs[4]);
717
760
  // place 'ring' of hexes, addHex along each line:
@@ -836,7 +879,7 @@ export class HexMap extends Array {
836
879
  * @param rc start of first line (heading dirs[0])
837
880
  * @param n ring number; number of hexes per line
838
881
  * @param dirs [this.linkDirs] each topo dirs in [clockwise] order.
839
- * @param f (RC, dir) => void
882
+ * @param f (RC, dir) => void; run f(rc) then step to next RC
840
883
  * @return the *next* RC on the final line (so can easily spiral)
841
884
  */
842
885
  ringWalk(rc, n, dirs = this.linkDirs, f) {
package/dist/hex.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hex.js","sourceRoot":"","sources":["../src/hex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hex.js","sourceRoot":"","sources":["../src/hex.ts"],"names":[],"mappings":"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"}
package/dist/table.d.ts CHANGED
@@ -5,11 +5,11 @@ import { Container, DisplayObject, EventDispatcher, MouseEvent, Shape, Stage, Te
5
5
  import { NamedContainer, NamedObject, type GamePlay } from "./game-play";
6
6
  import { Scenario } from "./game-setup";
7
7
  import type { GameState } from "./game-state";
8
- import { Hex, Hex2, HexMap, IHex } from "./hex";
8
+ import { Hex, Hex2, HexMap, IdHex } from "./hex";
9
9
  import { XYWH } from "./hex-intfs";
10
10
  import { Player } from "./player";
11
11
  import { PlayerPanel } from "./player-panel";
12
- import { RectShape, UtilButton } from "./shapes";
12
+ import { HexShape, RectShape, UtilButton } from "./shapes";
13
13
  import { PlayerColor } from "./table-params";
14
14
  import { Tile } from "./tile";
15
15
  import { TileSource } from "./tile-source";
@@ -55,9 +55,10 @@ declare class TextLog extends NamedContainer {
55
55
  log(line: string, from?: string, toConsole?: boolean): string;
56
56
  }
57
57
  /** layout display components, setup callbacks to GamePlay */
58
- export declare class Table extends EventDispatcher {
58
+ export declare class Table {
59
59
  static table: Table;
60
60
  static stageTable(obj: DisplayObject): Table;
61
+ disp: EventDispatcher;
61
62
  namedOn(Aname: string, type: string, listener: (eventObj: Object) => boolean, scope?: Object, once?: boolean, data?: any, useCapture?: boolean): void;
62
63
  gamePlay: GamePlay;
63
64
  stage: Stage;
@@ -86,7 +87,7 @@ export declare class Table extends EventDispatcher {
86
87
  logText(line: string, from?: string): void;
87
88
  setupUndoButtons(xOffs: number, bSize: number, skipRad: number, bgr: XYWH, row?: number, col?: number): void;
88
89
  showWinText(msg?: string, color?: string): void;
89
- enableHexInspector(qY?: number, cont?: Container): void;
90
+ enableHexInspector(qY?: number, cont?: Container): HexShape;
90
91
  downClick: boolean;
91
92
  isVisible: boolean;
92
93
  /** method invokes closure defined in enableHexInspector. */
@@ -115,6 +116,7 @@ export declare class Table extends EventDispatcher {
115
116
  h: number;
116
117
  };
117
118
  layoutTable(gamePlay: GamePlay): void;
119
+ layoutTurnlog(rowy?: number, colx?: number): void;
118
120
  colf(pIndex: number, icol: number, row: number): {
119
121
  row: number;
120
122
  col: number;
@@ -122,12 +124,13 @@ export declare class Table extends EventDispatcher {
122
124
  layoutTable2(): void;
123
125
  makeGUIs(table: Table): void;
124
126
  get panelHeight(): number;
127
+ get panelOffset(): number;
125
128
  panelLoc(pIndex: number, np?: number, r0?: number, dr?: number): number[];
126
129
  readonly allPlayerPanels: PlayerPanel[];
127
130
  /** make player panels, placed at locations... */
128
131
  makePerPlayer(): void;
129
132
  /** move cont to nominal [row, col] of hexCont */
130
- setToRowCol(cont: Container, row?: number, col?: number): void;
133
+ setToRowCol(cont: Container, row?: number, col?: number, hexCont?: Container): void;
131
134
  sourceOnHex(source: TileSource<Tile>, hex: Hex2): void;
132
135
  makeCircleButton(color?: string, rad?: number, c?: string, fs?: number): Container;
133
136
  makeSquareButton(color: string | undefined, xywh: XYWH, c?: string, fs?: number): Container;
@@ -190,9 +193,9 @@ export declare class Table extends EventDispatcher {
190
193
  *
191
194
  * New: let Ship (Drag & Drop) do this.
192
195
  */
193
- doTableMove(ihex: IHex): void;
196
+ doTableMove(ihex: IdHex): void;
194
197
  /** All moves (GUI & player) feed through this: */
195
- moveStoneToHex(ihex: IHex, sc: PlayerColor): void;
198
+ moveStoneToHex(ihex: IdHex, sc: PlayerColor): void;
196
199
  /** default scaling-up value */
197
200
  upscale: number;
198
201
  /** change cont.scale to given scale value. */