@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.
- package/dist/game-play.d.ts +10 -4
- package/dist/game-play.d.ts.map +1 -1
- package/dist/game-play.js +12 -2
- package/dist/game-play.js.map +1 -1
- package/dist/hex.d.ts +145 -81
- package/dist/hex.d.ts.map +1 -1
- package/dist/hex.js +255 -175
- package/dist/hex.js.map +1 -1
- package/dist/table-params.js +1 -1
- package/dist/table-params.js.map +1 -1
- package/dist/table.d.ts +7 -4
- package/dist/table.d.ts.map +1 -1
- package/dist/table.js +13 -10
- package/dist/table.js.map +1 -1
- package/dist/tile.d.ts +5 -0
- package/dist/tile.d.ts.map +1 -1
- package/dist/tile.js +6 -1
- package/dist/tile.js.map +1 -1
- package/package.json +1 -1
package/dist/game-play.d.ts
CHANGED
|
@@ -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,
|
|
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 |
|
|
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)
|
|
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?:
|
|
157
|
+
showRedoMark(hex?: IdHex | Hex): void;
|
|
152
158
|
endTurn(): void;
|
|
153
159
|
setNextPlayer(turnNumber?: number): void;
|
|
154
160
|
/** After setNextPlayer() */
|
package/dist/game-play.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game-play.d.ts","sourceRoot":"","sources":["../src/game-play.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,IAAI,EAAuB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,IAAI,
|
|
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)
|
|
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
|
-
|
|
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
|
package/dist/game-play.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game-play.js","sourceRoot":"","sources":["../src/game-play.ts"],"names":[],"mappings":"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"}
|
|
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,
|
|
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
|
-
|
|
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:
|
|
54
|
+
static ofMap(ihex: IdHex, otherMap: HexMap<Hex>): Hex;
|
|
53
55
|
static aname(row: number, col: number): string;
|
|
54
|
-
constructor(map:
|
|
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():
|
|
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:
|
|
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
|
-
/**
|
|
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
|
-
|
|
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
|
-
/**
|
|
138
|
-
toString(
|
|
139
|
-
/**
|
|
140
|
-
rcspString(
|
|
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:
|
|
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
|
-
/**
|
|
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
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
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
|
-
|
|
212
|
-
|
|
213
|
-
static cNames: readonly ["resaCont", "hexCont", "
|
|
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
|
-
* [
|
|
243
|
+
* [Generally, hexCont.centerHex is ~ mapCont(0,0)]
|
|
228
244
|
*
|
|
229
|
-
* Move ALL children of
|
|
230
|
-
* @param hexCont
|
|
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(
|
|
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
|
|
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
|
|
295
|
-
/** ...stage
|
|
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
|
-
*
|
|
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
|
-
*
|
|
341
|
-
* @param
|
|
342
|
-
* @param district
|
|
343
|
-
* @param
|
|
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
|
-
|
|
347
|
-
|
|
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
|
|
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
|
-
/**
|
|
362
|
-
|
|
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'
|
|
374
|
-
* @returns
|
|
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
|
-
|
|
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
|
|
394
|
-
* @param
|
|
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
|
|
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> {
|