@thegraid/hexlib 1.1.0 → 1.1.3

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/table.js CHANGED
@@ -72,7 +72,7 @@ export class Table {
72
72
  static stageTable(obj) {
73
73
  return obj.stage.table;
74
74
  }
75
- disp;
75
+ disp = this;
76
76
  namedOn(Aname, type, listener, scope, once, data, useCapture = false) {
77
77
  const list2 = this.disp.on(type, listener, scope, once, data, useCapture);
78
78
  list2.Aname = Aname;
@@ -99,12 +99,10 @@ export class Table {
99
99
  *
100
100
  * typically: this.hexC = this.hexMap.hexC as Constructor\<IHex2\> */
101
101
  hexC;
102
- overlayCont = new Container();
102
+ overlayCont = new NamedContainer('overlay');
103
103
  constructor(stage) {
104
104
  // super();
105
105
  EventDispatcher.initialize(this);
106
- this.disp = this;
107
- this.overlayCont.name = 'overlay';
108
106
  // backpointer so Containers can find their Table (& curMark)
109
107
  Table.table = stage.table = this;
110
108
  this.stage = stage;
@@ -465,16 +463,16 @@ export class Table {
465
463
  */
466
464
  makeParamGUI(parent, x = 0, y = 0) {
467
465
  const gui = new ParamGUI(TP, { textAlign: 'right' });
468
- const gamePlay = this.gamePlay.gameSetup;
466
+ const gameSetup = this.gamePlay.gameSetup;
469
467
  gui.makeParamSpec('hexRad', [30, 60, 90, 120], { fontColor: 'red' });
470
468
  TP.hexRad;
471
469
  gui.makeParamSpec('nHexes', [2, 3, 4, 5, 6, 7, 8, 9, 10, 11], { fontColor: 'red' });
472
470
  TP.nHexes;
473
471
  gui.makeParamSpec('mHexes', [1, 2, 3], { fontColor: 'red' });
474
472
  TP.mHexes;
475
- gui.spec("hexRad").onChange = (item) => { gamePlay.restart({ hexRad: item.value }); };
476
- gui.spec("nHexes").onChange = (item) => { gamePlay.restart({ nh: item.value }); };
477
- gui.spec("mHexes").onChange = (item) => { gamePlay.restart({ mh: item.value }); };
473
+ gui.spec("hexRad").onChange = (item) => { gameSetup.restart({ hexRad: item.value }); };
474
+ gui.spec("nHexes").onChange = (item) => { gameSetup.restart({ nh: item.value }); };
475
+ gui.spec("mHexes").onChange = (item) => { gameSetup.restart({ mh: item.value }); };
478
476
  parent.addChild(gui);
479
477
  gui.x = x; // (3*cw+1*ch+6*m) + max(line.width) - (max(choser.width) + 20)
480
478
  gui.y = y;
@@ -579,14 +577,19 @@ export class Table {
579
577
  return this.hexMap.hexUnderObj(dragObj, legalOnly);
580
578
  }
581
579
  dragContext;
580
+ /** Direct callback from this.dragger. Invoke this.dragFunc0(tile, info, hexUnderTile) */
582
581
  dragFunc(tile, info) {
583
582
  const hex = this.hexUnderObj(tile); // clickToDrag 'snaps' to non-original hex!
584
583
  this.dragFunc0(tile, info, hex);
585
584
  }
586
- /** Table.dragFunc0 (Table.dragFunc to inject drag/start actions programatically)
585
+ /** Table.dragFunc0
586
+ *
587
+ * Version of Table.dragFunc used to inject drag/start actions programatically.
588
+ *
589
+ * Calls out to Tile.dragFunc0(IHex2, DragContext)
587
590
  * @param tile is being dragged
588
591
  * @param info { first: boolean, event: MouseEvent }
589
- * @param hex the Hex that tile is currently over (may be undefined or off map)
592
+ * @param hex the IHex2 which tile is currently over (may be undefined or off map)
590
593
  */
591
594
  dragFunc0(tile, info, hex = this.hexUnderObj(tile)) {
592
595
  let ctx = this.dragContext;
@@ -601,6 +604,7 @@ export class Table {
601
604
  }
602
605
  const event = info.event?.nativeEvent;
603
606
  tile.fromHex = tile.hex; // dragStart: set tile.fromHex when first move!
607
+ // create and record a DragContext for this drag:
604
608
  ctx = {
605
609
  tile: tile,
606
610
  targetHex: tile.fromHex,
@@ -619,9 +623,9 @@ export class Table {
619
623
  return; // stopDragging() was invoked
620
624
  }
621
625
  this.checkShift(hex, ctx);
622
- tile.dragFunc0(hex, ctx);
626
+ tile.dragFunc0(hex, ctx); // tile is dragged over hex
623
627
  }
624
- // invoke dragShift 'event' if shift state changes
628
+ /** invoke dragShift callback if shift state changes */
625
629
  checkShift(hex, ctx) {
626
630
  const nativeEvent = ctx.info.event?.nativeEvent;
627
631
  ctx.lastCtrl = nativeEvent?.ctrlKey;
@@ -633,6 +637,21 @@ export class Table {
633
637
  this.dragShift(ctx.tile, shiftKey, ctx); // was interesting for hexmarket
634
638
  }
635
639
  }
640
+ /**
641
+ * Try start dragging.
642
+ * Abort if tile.cantBeMoved(player)
643
+ *
644
+ * Inform tile.dragStart(ctx)
645
+ *
646
+ * Mark all legal Hexes, set ctx.nLegal
647
+ *
648
+ * tile.moveTo(undefined); // dropFunc() will placeTile on targetHex/fromHex.
649
+ *
650
+ * Invoke tile.noLegalTarget(ctx) if nLegal === 0
651
+ *
652
+ * @param tile the Tile to be Dragged
653
+ * @param ctx DragContext with shift/ctrl from table.dragFunc0()
654
+ */
636
655
  dragStart(tile, ctx) {
637
656
  // press SHIFT to capture [recycle] opponent's Criminals or Tiles
638
657
  const reason = tile.cantBeMovedBy(this.gamePlay.curPlayer, ctx);
@@ -654,20 +673,18 @@ export class Table {
654
673
  tile.moveTo(undefined); // notify source Hex, so it can scale; also triggers nextUnit !!
655
674
  this.hexMap.update();
656
675
  if (ctx.nLegal === 0) {
657
- tile.noLegal();
658
- if (!this.gamePlay.recycleHex?.isLegal) {
659
- this.stopDragging(); // actually, maybe let it drag, so we can see beneath...
660
- }
676
+ tile.noLegalTarget(ctx);
661
677
  }
662
678
  }
663
679
  }
664
- /** state of shiftKey has changed during drag */
680
+ /** state of shiftKey has changed during drag. call tile.dragShift(). */
665
681
  dragShift(tile, shiftKey, ctx) {
666
682
  tile?.dragShift(shiftKey, ctx);
667
683
  }
668
- /** Tile dropFunc */
684
+ /** dropFunc for each Dragable/Tile -> tile.dropFunc0(hex, ctx) */
669
685
  dropFunc(dobj, info, hex = this.hexUnderObj(dobj)) {
670
686
  const tile = dobj;
687
+ // invoke Tile.dropFunc0() which will delegate to Tile.dropFunc(targetHex, ctx)
671
688
  tile.dropFunc0(hex, this.dragContext); // generally: hex == ctx.targetHex
672
689
  tile.markLegal(this); // hex => hex.isLegal = false;
673
690
  // this.gamePlay.recycleHex.isLegal = false;
@@ -678,10 +695,10 @@ export class Table {
678
695
  dragStartAndDrop(tile, toHex) {
679
696
  if (!tile)
680
697
  return; // C-q when no EventTile on eventHex
681
- const hex = toHex, info = { first: true }; // event: undefined
682
- this.dragFunc0(tile, info, tile.hex); // dragStart()
683
- tile.dragFunc0(hex, this.dragContext);
684
- this.dropFunc(tile, info, hex);
698
+ const toHex2 = toHex, info = { first: true }; // event: undefined
699
+ this.dragFunc0(tile, info, tile.hex); // table.dragStart(tile)->tile.dragstart(ctx); tile.dragFunc0(fromHex)
700
+ tile.dragFunc0(toHex2, this.dragContext); // tile.dragFunc0(toHex)
701
+ this.dropFunc(tile, info, toHex2); // table.dropFunc(toHex)->tile.dropFunc0(toHex,ctx)
685
702
  }
686
703
  isDragging() { return this.dragContext?.tile !== undefined; }
687
704
  /** Force this.dragger to drop the current drag object on given target Hex.
@@ -731,7 +748,7 @@ export class Table {
731
748
  }
732
749
  _tablePlanner;
733
750
  get tablePlanner() {
734
- return this._tablePlanner ||
751
+ return this._tablePlanner ??
735
752
  (this._tablePlanner = new TablePlanner(this.gamePlay));
736
753
  }
737
754
  /**
@@ -770,9 +787,9 @@ export class Table {
770
787
  }
771
788
  if (bindKeys) {
772
789
  this.bindKeysToScale(scaleC, "a", 436, 2);
773
- KeyBinder.keyBinder.setKey('Space', { thisArg: this, func: () => this.dragTarget() });
774
- KeyBinder.keyBinder.setKey('S-Space', { thisArg: this, func: () => this.dragTarget() });
775
- KeyBinder.keyBinder.setKey('t', { thisArg: this, func: () => { this.toggleText(); } });
790
+ KeyBinder.keyBinder.setKey('Space', () => this.dragTarget());
791
+ KeyBinder.keyBinder.setKey('S-Space', () => this.dragTarget());
792
+ KeyBinder.keyBinder.setKey('t', () => this.toggleText());
776
793
  }
777
794
  return scaleC;
778
795
  }
package/dist/table.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"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"}
package/dist/tile.d.ts CHANGED
@@ -66,6 +66,7 @@ export declare class Tile extends Tile0 implements Dragable {
66
66
  homeHex: Hex1;
67
67
  /** location at start-of-drag */
68
68
  fromHex: IHex2;
69
+ /** override hook to deselect/stopDragging a Tile. */
69
70
  isDragable(ctx?: DragContext): boolean;
70
71
  _hex: Hex1 | undefined;
71
72
  /** the map Hex on which this Tile sits. */
@@ -97,28 +98,70 @@ export declare class Tile extends Tile0 implements Dragable {
97
98
  * Post-condition: !tile.hex.isOnMap; tile.hex = this.homeHex may be undefined [UnitSource, AuctionTile, BonusTile]
98
99
  */
99
100
  sendHome(): void;
101
+ /** map.showMark(ctx.targetHex); override for alternate showMark. */
100
102
  showTargetMark(hex: IHex2 | undefined, ctx: DragContext): void;
101
103
  /**
102
- * Augment Table.dragFunc0().
104
+ * Invoked for each mouseMove when dragging this Tile.
103
105
  *
104
- * isLegal already set;
105
- * record ctx.targetHex & showMark() when Tile is over a legal targetHex.
106
+ * hex.isLegal was already set by dragStart [for ALL Hex]
107
+ *
108
+ * set ctx.targetHex = hex?.isLegal ? hex : this.fromHex;
109
+ *
110
+ * then this.dragFunc(hex, ctx);
111
+ *
112
+ * @param hex Hex under this Tile
113
+ * @param ctx
106
114
  */
107
115
  dragFunc0(hex: IHex2 | undefined, ctx: DragContext): void;
108
- /** entry point from Table.dropFunc; delegate to this.dropFunc()
116
+ /**
117
+ * this Tile is being dragged.
118
+ *
119
+ * default: [return] just let it drag until it's dropped.
120
+ * @param hex Hex under this Tile
121
+ * @param ctx full context: ctrl/shift, nLegal, info, targetHex
122
+ */
123
+ dragFunc(hex: IHex2 | undefined, ctx: DragContext): void;
124
+ /**
125
+ * entry point from Table.dropFunc;
109
126
  *
110
- * then showMark(undefined);
127
+ * Invoke this.dropFunc() then showMark(undefined);
111
128
  */
112
129
  dropFunc0(hex: IHex2, ctx: DragContext): void;
130
+ /**
131
+ * Tile.dropFunc; override to give game-specific or tile-specific behavior.
132
+ *
133
+ * default: this.placeTile(targetHex)
134
+ * @param targetHex last legal Hex this Tile was over. (may be fromHex)
135
+ * @param ctx DragContext
136
+ */
137
+ dropFunc(targetHex: IHex2, ctx: DragContext): void;
138
+ /**
139
+ * Indicates if given Player is allowed to dragStart this Tile.
140
+ * @param player typically: this.gamePlay.curPlayer
141
+ * @param ctx the dragStart context
142
+ * @returns a 'reason' string if cant be moved, undefined if can be moved.
143
+ */
113
144
  cantBeMovedBy(player: Player, ctx: DragContext): string | boolean | undefined;
114
- /** override as necessary. */
145
+ /**
146
+ * Invoked before checking isLegalTarget;
147
+ *
148
+ * Tile has not yet been moved: tile.hex is still tile.fromHex.
149
+ *
150
+ * default: [return] override as necessary.
151
+ */
115
152
  dragStart(ctx: DragContext): void;
116
153
  /** state of shiftKey has changed during drag */
117
154
  dragShift(shiftKey: boolean | undefined, ctx: DragContext): void;
118
- /** with recycleHex: override with:
155
+ /**
156
+ * When this Tile starts a drag,
157
+ * run setLegal() on all Hex of given Table to identify legal targets.
158
+ *
159
+ * All Hex is table.newHexes and table.hexMap.hexAry.
160
+ * - does not include table.recycleHex, so that may need special treatment.
119
161
  *
120
- * - this.gamePlay.recycleHex.isLegal = this.isLegalRecycle(ctx); // do not increment ctx.nLegal!
121
- * - OR! class RecycleHex override markLegal to handle this!
162
+ * @param table acces to newHexes and hexMap
163
+ * @param setLegal [default: hex.isLegal = false] or countLegalHexes/isLegalTarget
164
+ * @param ctx DragContext if needed
122
165
  */
123
166
  markLegal(table: Table, setLegal?: (hex: IHex2) => void, ctx?: DragContext): void;
124
167
  /**
@@ -127,13 +170,11 @@ export declare class Tile extends Tile0 implements Dragable {
127
170
  */
128
171
  isLegalTarget(toHex: Hex1, ctx?: DragContext): boolean;
129
172
  isLegalRecycle(ctx: DragContext): boolean;
130
- /**
131
- * Tile.dropFunc; Override in AuctionTile, Civic, Meeple/Leader.
132
- * @param targetHex Hex2 this Tile is over when dropped (may be undefined; see also: ctx.targetHex)
133
- * @param ctx DragContext
173
+ /** Called by table.dragStart() if there are no legal targets for this Tile.
174
+ *
175
+ * unless recycleHex.isLegal, stopDragging();
134
176
  */
135
- dropFunc(targetHex: IHex2, ctx: DragContext): void;
136
- noLegal(): void;
177
+ noLegalTarget(ctx: DragContext): void;
137
178
  logRecycle(verb: string): void;
138
179
  }
139
180
  /** A plain WHITE tile; for Debt */
@@ -145,7 +186,11 @@ export declare class WhiteTile extends Tile {
145
186
  export declare class Token extends Tile {
146
187
  makeShape(): PaintableShape;
147
188
  }
148
- /** Tiles that can be played to the Map: AuctionTile, Civic, Monument, BonusTile */
189
+ /**
190
+ * Tiles that can be played to the Map, and generally stay where they are dropped.
191
+ *
192
+ * Tiles that are moved around on the map are classed as Meeple.
193
+ */
149
194
  export declare class MapTile extends Tile {
150
195
  }
151
196
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"tile.d.ts","sourceRoot":"","sources":["../src/tile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tile.d.ts","sourceRoot":"","sources":["../src/tile.ts"],"names":[],"mappings":"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"}
package/dist/tile.js CHANGED
@@ -113,6 +113,7 @@ export class Tile extends Tile0 {
113
113
  homeHex;
114
114
  /** location at start-of-drag */
115
115
  fromHex;
116
+ /** override hook to deselect/stopDragging a Tile. */
116
117
  isDragable(ctx) { return true; }
117
118
  _hex;
118
119
  /** the map Hex on which this Tile sits. */
@@ -210,38 +211,87 @@ export class Tile extends Tile0 {
210
211
  source.nextUnit();
211
212
  }
212
213
  }
214
+ /** map.showMark(ctx.targetHex); override for alternate showMark. */
213
215
  showTargetMark(hex, ctx) {
214
- ctx.targetHex = hex?.isLegal ? hex : this.fromHex;
215
- ctx.targetHex?.map.showMark(ctx.targetHex);
216
+ ctx.targetHex?.map.showMark(ctx.targetHex); // else prev mark still showing
216
217
  }
217
218
  /**
218
- * Augment Table.dragFunc0().
219
+ * Invoked for each mouseMove when dragging this Tile.
220
+ *
221
+ * hex.isLegal was already set by dragStart [for ALL Hex]
222
+ *
223
+ * set ctx.targetHex = hex?.isLegal ? hex : this.fromHex;
219
224
  *
220
- * isLegal already set;
221
- * record ctx.targetHex & showMark() when Tile is over a legal targetHex.
225
+ * then this.dragFunc(hex, ctx);
226
+ *
227
+ * @param hex Hex under this Tile
228
+ * @param ctx
222
229
  */
223
230
  dragFunc0(hex, ctx) {
231
+ ctx.targetHex = hex?.isLegal ? hex : this.fromHex;
224
232
  this.showTargetMark(hex, ctx);
233
+ this.dragFunc(hex, ctx);
234
+ }
235
+ /**
236
+ * this Tile is being dragged.
237
+ *
238
+ * default: [return] just let it drag until it's dropped.
239
+ * @param hex Hex under this Tile
240
+ * @param ctx full context: ctrl/shift, nLegal, info, targetHex
241
+ */
242
+ dragFunc(hex, ctx) {
243
+ return;
225
244
  }
226
- /** entry point from Table.dropFunc; delegate to this.dropFunc()
245
+ /**
246
+ * entry point from Table.dropFunc;
227
247
  *
228
- * then showMark(undefined);
248
+ * Invoke this.dropFunc() then showMark(undefined);
229
249
  */
230
250
  dropFunc0(hex, ctx) {
231
251
  this.dropFunc(ctx.targetHex, ctx);
232
252
  ctx.targetHex?.map.showMark(undefined); // if (this.fromHex === undefined)
233
253
  }
254
+ /**
255
+ * Tile.dropFunc; override to give game-specific or tile-specific behavior.
256
+ *
257
+ * default: this.placeTile(targetHex)
258
+ * @param targetHex last legal Hex this Tile was over. (may be fromHex)
259
+ * @param ctx DragContext
260
+ */
261
+ dropFunc(targetHex, ctx) {
262
+ this.placeTile(targetHex);
263
+ }
264
+ /**
265
+ * Indicates if given Player is allowed to dragStart this Tile.
266
+ * @param player typically: this.gamePlay.curPlayer
267
+ * @param ctx the dragStart context
268
+ * @returns a 'reason' string if cant be moved, undefined if can be moved.
269
+ */
234
270
  cantBeMovedBy(player, ctx) {
235
- return (ctx?.lastShift || this.player === undefined || this.player === player) ? undefined : "Not your Tile";
271
+ return (ctx?.lastShift || this.player === undefined || this.player === player) ? undefined : 'Not your Tile';
272
+ }
273
+ /**
274
+ * Invoked before checking isLegalTarget;
275
+ *
276
+ * Tile has not yet been moved: tile.hex is still tile.fromHex.
277
+ *
278
+ * default: [return] override as necessary.
279
+ */
280
+ dragStart(ctx) {
281
+ return;
236
282
  }
237
- /** override as necessary. */
238
- dragStart(ctx) { }
239
283
  /** state of shiftKey has changed during drag */
240
284
  dragShift(shiftKey, ctx) { }
241
- /** with recycleHex: override with:
285
+ /**
286
+ * When this Tile starts a drag,
287
+ * run setLegal() on all Hex of given Table to identify legal targets.
242
288
  *
243
- * - this.gamePlay.recycleHex.isLegal = this.isLegalRecycle(ctx); // do not increment ctx.nLegal!
244
- * - OR! class RecycleHex override markLegal to handle this!
289
+ * All Hex is table.newHexes and table.hexMap.hexAry.
290
+ * - does not include table.recycleHex, so that may need special treatment.
291
+ *
292
+ * @param table acces to newHexes and hexMap
293
+ * @param setLegal [default: hex.isLegal = false] or countLegalHexes/isLegalTarget
294
+ * @param ctx DragContext if needed
245
295
  */
246
296
  markLegal(table, setLegal = (hex) => { hex.isLegal = false; }, ctx = table.dragContext) {
247
297
  table.newHexes.forEach(setLegal);
@@ -265,15 +315,14 @@ export class Tile extends Tile0 {
265
315
  isLegalRecycle(ctx) {
266
316
  return true;
267
317
  }
268
- /**
269
- * Tile.dropFunc; Override in AuctionTile, Civic, Meeple/Leader.
270
- * @param targetHex Hex2 this Tile is over when dropped (may be undefined; see also: ctx.targetHex)
271
- * @param ctx DragContext
318
+ /** Called by table.dragStart() if there are no legal targets for this Tile.
319
+ *
320
+ * unless recycleHex.isLegal, stopDragging();
272
321
  */
273
- dropFunc(targetHex, ctx) {
274
- this.placeTile(targetHex);
275
- }
276
- noLegal() {
322
+ noLegalTarget(ctx) {
323
+ if (!this.gamePlay.recycleHex?.isLegal) {
324
+ this.gamePlay.table.stopDragging(); // actually, maybe let it drag, so we can see beneath...
325
+ }
277
326
  // const cause = this.gamePlay.failToBalance(this) ?? '';
278
327
  // const [infR, coinR] = this.gamePlay.getInfR(this);
279
328
  // this.gamePlay.logText(`No placement for ${this.andInfStr} ${cause} infR=${infR} coinR=${coinR}`, 'Tile.noLegal')
@@ -300,7 +349,11 @@ export class Token extends Tile {
300
349
  return new HexShape(this.radius * .5);
301
350
  }
302
351
  }
303
- /** Tiles that can be played to the Map: AuctionTile, Civic, Monument, BonusTile */
352
+ /**
353
+ * Tiles that can be played to the Map, and generally stay where they are dropped.
354
+ *
355
+ * Tiles that are moved around on the map are classed as Meeple.
356
+ */
304
357
  export class MapTile extends Tile {
305
358
  }
306
359
  //# sourceMappingURL=tile.js.map