@gamepark/zenith 0.1.8 → 0.1.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.
- package/dist/TeamColor.d.ts +0 -9
- package/dist/TeamColor.d.ts.map +1 -1
- package/dist/TeamColor.js +0 -8
- package/dist/TeamColor.js.map +1 -1
- package/dist/ZenithBot.d.ts.map +1 -1
- package/dist/ZenithBot.js +2 -4
- package/dist/ZenithBot.js.map +1 -1
- package/dist/ZenithOptions.d.ts +7 -1
- package/dist/ZenithOptions.d.ts.map +1 -1
- package/dist/ZenithOptions.js +25 -1
- package/dist/ZenithOptions.js.map +1 -1
- package/dist/ZenithRules.d.ts +2 -1
- package/dist/ZenithRules.d.ts.map +1 -1
- package/dist/ZenithRules.js +6 -5
- package/dist/ZenithRules.js.map +1 -1
- package/dist/ZenithSetup.d.ts +3 -2
- package/dist/ZenithSetup.d.ts.map +1 -1
- package/dist/ZenithSetup.js +38 -6
- package/dist/ZenithSetup.js.map +1 -1
- package/dist/material/LocationType.d.ts +2 -1
- package/dist/material/LocationType.d.ts.map +1 -1
- package/dist/material/LocationType.js +1 -0
- package/dist/material/LocationType.js.map +1 -1
- package/dist/material/effect/Effect.d.ts +6 -1
- package/dist/material/effect/Effect.d.ts.map +1 -1
- package/dist/material/effect/Effect.js.map +1 -1
- package/dist/material/effect/EffectType.d.ts +2 -1
- package/dist/material/effect/EffectType.d.ts.map +1 -1
- package/dist/material/effect/EffectType.js +1 -0
- package/dist/material/effect/EffectType.js.map +1 -1
- package/dist/rules/CustomMoveType.d.ts +2 -1
- package/dist/rules/CustomMoveType.d.ts.map +1 -1
- package/dist/rules/CustomMoveType.js +1 -0
- package/dist/rules/CustomMoveType.js.map +1 -1
- package/dist/rules/Memory.d.ts +2 -1
- package/dist/rules/Memory.d.ts.map +1 -1
- package/dist/rules/Memory.js +1 -0
- package/dist/rules/Memory.js.map +1 -1
- package/dist/rules/MulliganRule.d.ts.map +1 -1
- package/dist/rules/MulliganRule.js +2 -2
- package/dist/rules/MulliganRule.js.map +1 -1
- package/dist/rules/PickOrderRule.d.ts.map +1 -1
- package/dist/rules/PickOrderRule.js +2 -3
- package/dist/rules/PickOrderRule.js.map +1 -1
- package/dist/rules/PlayCardRule.d.ts.map +1 -1
- package/dist/rules/PlayCardRule.js +3 -4
- package/dist/rules/PlayCardRule.js.map +1 -1
- package/dist/rules/RefillRule.d.ts +1 -1
- package/dist/rules/RefillRule.d.ts.map +1 -1
- package/dist/rules/RefillRule.js +3 -3
- package/dist/rules/RefillRule.js.map +1 -1
- package/dist/rules/RuleId.d.ts +2 -1
- package/dist/rules/RuleId.d.ts.map +1 -1
- package/dist/rules/RuleId.js +1 -0
- package/dist/rules/RuleId.js.map +1 -1
- package/dist/rules/discard-action/TechnologyActions.d.ts.map +1 -1
- package/dist/rules/discard-action/TechnologyActions.js +171 -0
- package/dist/rules/discard-action/TechnologyActions.js.map +1 -1
- package/dist/rules/effect/AgentEffects.spec.js +22 -17
- package/dist/rules/effect/AgentEffects.spec.js.map +1 -1
- package/dist/rules/effect/EffectEdgeCases.spec.js +121 -3
- package/dist/rules/effect/EffectEdgeCases.spec.js.map +1 -1
- package/dist/rules/effect/ExileRule.d.ts +2 -1
- package/dist/rules/effect/ExileRule.d.ts.map +1 -1
- package/dist/rules/effect/ExileRule.js +6 -0
- package/dist/rules/effect/ExileRule.js.map +1 -1
- package/dist/rules/effect/StealZenithiumRule.d.ts +8 -0
- package/dist/rules/effect/StealZenithiumRule.d.ts.map +1 -0
- package/dist/rules/effect/StealZenithiumRule.js +29 -0
- package/dist/rules/effect/StealZenithiumRule.js.map +1 -0
- package/dist/rules/effect/index.d.ts +1 -0
- package/dist/rules/effect/index.d.ts.map +1 -1
- package/dist/rules/effect/index.js +1 -0
- package/dist/rules/effect/index.js.map +1 -1
- package/dist/rules/helper/EffectHelper.d.ts.map +1 -1
- package/dist/rules/helper/EffectHelper.js +3 -0
- package/dist/rules/helper/EffectHelper.js.map +1 -1
- package/dist/rules/helper/EffectRuleIds.d.ts.map +1 -1
- package/dist/rules/helper/EffectRuleIds.js +2 -1
- package/dist/rules/helper/EffectRuleIds.js.map +1 -1
- package/dist/rules/helper/PlayerHelper.d.ts +7 -2
- package/dist/rules/helper/PlayerHelper.d.ts.map +1 -1
- package/dist/rules/helper/PlayerHelper.js +22 -3
- package/dist/rules/helper/PlayerHelper.js.map +1 -1
- package/dist/tutorial/TutorialSetup.d.ts +1 -0
- package/dist/tutorial/TutorialSetup.d.ts.map +1 -1
- package/dist/tutorial/TutorialSetup.js +6 -1
- package/dist/tutorial/TutorialSetup.js.map +1 -1
- package/dist/tutorial/TutorialSetup.spec.js +1 -1
- package/dist/tutorial/TutorialSetup.spec.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MulliganRule.js","sourceRoot":"","sources":["../../src/rules/MulliganRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAE,cAAc,EAA0B,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAC5H,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"MulliganRule.js","sourceRoot":"","sources":["../../src/rules/MulliganRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAE,cAAc,EAA0B,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAC5H,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,MAAM,OAAO,YAAa,SAAQ,gBAAgB;IAChD,yBAAyB,CAAC,MAAgB;QACxC,OAAO;YACL,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;gBAChC,IAAI,EAAE,YAAY,CAAC,YAAY;aAChC,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;SAC7C,CAAA;IACH,CAAC;IAED,YAAY,CAAC,IAAgB;QAC3B,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAA;QAC3D,MAAM,MAAM,GAAa,IAAI,CAAC,IAAI,CAAA;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACnD,MAAM,KAAK,GAAmB,EAAE,CAAA;QAEhC,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YACtB,KAAK,CAAC,IAAI,CACR,IAAI,CAAC,UAAU,CACb;gBACE,IAAI,EAAE,YAAY,CAAC,UAAU;gBAC7B,MAAM,EAAE,MAAM;aACf,EACD,aAAa,CACd,CACF,CAAA;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;QAEtC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,gBAAgB,CAAC,MAAgB;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAqB,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;IACtE,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAA;IACtF,CAAC;IAED,cAAc,CAAC,IAAc;QAC3B,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,YAAY;YAAE,OAAO,EAAE,CAAA;QAChH,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC1E,MAAM,MAAM,GAAa,IAAI,CAAC,QAAQ,CAAC,MAAO,CAAA;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACnD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;QACzD,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,CAAC,QAAkB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IACjG,CAAC;IAED,wBAAwB;QACtB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACtC,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAY,MAAM,CAAC,WAAW,CAAC,CAAA;YAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAA;YACtG,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAA;QACpE,CAAC;QAGD,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACnE,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAa,MAAM,CAAC,SAAS,CAAC,CAAA;IAClD,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PickOrderRule.d.ts","sourceRoot":"","sources":["../../src/rules/PickOrderRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAMtC,qBAAa,aAAc,SAAQ,gBAAgB;IACjD,WAAW;IAKX,yBAAyB,CAAC,MAAM,EAAE,QAAQ,GAAG,YAAY,EAAE;IAS3D,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ;
|
|
1
|
+
{"version":3,"file":"PickOrderRule.d.ts","sourceRoot":"","sources":["../../src/rules/PickOrderRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAMtC,qBAAa,aAAc,SAAQ,gBAAgB;IACjD,WAAW;IAKX,yBAAyB,CAAC,MAAM,EAAE,QAAQ,GAAG,YAAY,EAAE;IAS3D,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ;IAIvC,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,EAAE;IAU9C,wBAAwB,IAAI,YAAY,EAAE;CAO3C"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isCustomMoveType, SimultaneousRule } from '@gamepark/rules-api';
|
|
2
|
-
import {
|
|
2
|
+
import { PlayerHelper } from './helper/PlayerHelper';
|
|
3
3
|
import { CustomMoveType } from './CustomMoveType';
|
|
4
4
|
import { Memory } from './Memory';
|
|
5
5
|
import { RuleId } from './RuleId';
|
|
@@ -16,8 +16,7 @@ export class PickOrderRule extends SimultaneousRule {
|
|
|
16
16
|
return [this.customMove(CustomMoveType.PickFirst, player), this.customMove(CustomMoveType.PickFirst, teammate)];
|
|
17
17
|
}
|
|
18
18
|
getTeammate(player) {
|
|
19
|
-
|
|
20
|
-
return this.game.players.find((p) => p !== player && getTeamColor(p) === team);
|
|
19
|
+
return new PlayerHelper(this.game, player).teammate;
|
|
21
20
|
}
|
|
22
21
|
onCustomMove(move) {
|
|
23
22
|
if (!isCustomMoveType(CustomMoveType.PickFirst)(move))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PickOrderRule.js","sourceRoot":"","sources":["../../src/rules/PickOrderRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAgB,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAElG,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"PickOrderRule.js","sourceRoot":"","sources":["../../src/rules/PickOrderRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAgB,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAElG,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IACjD,WAAW;QACT,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC7B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,yBAAyB,CAAC,MAAgB;QACxC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;YAChD,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QACzC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;IACjH,CAAC;IAED,WAAW,CAAC,MAAgB;QAC1B,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAS,CAAA;IACtD,CAAC;IAED,YAAY,CAAC,IAAgB;QAC3B,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAA;QAEhE,MAAM,YAAY,GAAa,IAAI,CAAC,IAAI,CAAA;QACxC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;QAE7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAA;QAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IAClD,CAAC;IAED,wBAAwB;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAW,MAAM,CAAC,SAAS,CAAC,CAAA;QAE3D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAA;QAE9C,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAA;IAC7D,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayCardRule.d.ts","sourceRoot":"","sources":["../../src/rules/PlayCardRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"PlayCardRule.d.ts","sourceRoot":"","sources":["../../src/rules/PlayCardRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAKpK,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,qBAAa,YAAa,SAAQ,cAAc;IAC9C,WAAW;IAUX,cAAc,IAAI,YAAY,EAAE;IAkBhC,gBAAgB,CAAC,KAAK,EAAE,QAAQ;IAwBhC,aAAa,CAAC,KAAK,EAAE,QAAQ;IAM7B,IAAI,YAAY,iBAEf;IAED,YAAY,CAAC,IAAI,EAAE,UAAU;IAgB7B,aAAa,CAAC,IAAI,EAAE,QAAQ;IA6C5B,IAAI,eAAe,oBAElB;IAED,IAAI,YAAY,iBAEf;IAED,IAAI,IAAI,qCAEP;CACF"}
|
|
@@ -2,7 +2,6 @@ import { isCustomMoveType, isMoveItemType, isStartPlayerTurn, isStartRule, Playe
|
|
|
2
2
|
import { Agents } from '../material/Agents';
|
|
3
3
|
import { LocationType } from '../material/LocationType';
|
|
4
4
|
import { MaterialType } from '../material/MaterialType';
|
|
5
|
-
import { getAllowedPlanets, getTeamColor } from '../TeamColor';
|
|
6
5
|
import { CreditHelper } from './helper/CreditHelper';
|
|
7
6
|
import { CustomMoveType } from './CustomMoveType';
|
|
8
7
|
import { EffectHelper } from './helper/EffectHelper';
|
|
@@ -41,7 +40,7 @@ export class PlayCardRule extends PlayerTurnRule {
|
|
|
41
40
|
const influenceHelper = this.influenceHelper;
|
|
42
41
|
const playerHelper = this.playerHelper;
|
|
43
42
|
const is4Players = this.game.players.length === 4;
|
|
44
|
-
const allowedPlanets =
|
|
43
|
+
const allowedPlanets = playerHelper.allowedPlanets;
|
|
45
44
|
return cards
|
|
46
45
|
.filter((item) => {
|
|
47
46
|
if (influenceHelper.getCost(item) > playerHelper.credits)
|
|
@@ -56,7 +55,7 @@ export class PlayCardRule extends PlayerTurnRule {
|
|
|
56
55
|
.moveItems((item) => ({
|
|
57
56
|
type: LocationType.Influence,
|
|
58
57
|
id: Agents[item.id].influence,
|
|
59
|
-
player:
|
|
58
|
+
player: this.playerHelper.team
|
|
60
59
|
}));
|
|
61
60
|
}
|
|
62
61
|
discardAgents(cards) {
|
|
@@ -120,7 +119,7 @@ export class PlayCardRule extends PlayerTurnRule {
|
|
|
120
119
|
return moves;
|
|
121
120
|
}
|
|
122
121
|
get influenceHelper() {
|
|
123
|
-
return new InfluenceHelper(this.game,
|
|
122
|
+
return new InfluenceHelper(this.game, this.playerHelper.team);
|
|
124
123
|
}
|
|
125
124
|
get playerHelper() {
|
|
126
125
|
return new PlayerHelper(this.game, this.player);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayCardRule.js","sourceRoot":"","sources":["../../src/rules/PlayCardRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAoC,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpK,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"PlayCardRule.js","sourceRoot":"","sources":["../../src/rules/PlayCardRule.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export declare class RefillRule extends PlayerTurnRule {
|
|
|
8
8
|
get currentTeam(): TeamColor;
|
|
9
9
|
getTeamPlayers(team: TeamColor): PlayerId[];
|
|
10
10
|
get nextPlayer(): PlayerId;
|
|
11
|
-
get handSize():
|
|
11
|
+
get handSize(): 5 | 4 | 6;
|
|
12
12
|
get deckHelper(): DeckHelper;
|
|
13
13
|
refillHand(maxCount: number): MaterialMove[];
|
|
14
14
|
afterItemMove(move: ItemMove): MaterialMove[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefillRule.d.ts","sourceRoot":"","sources":["../../src/rules/RefillRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAIrH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"RefillRule.d.ts","sourceRoot":"","sources":["../../src/rules/RefillRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAIrH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAKhD,qBAAa,UAAW,SAAQ,cAAc;IAC5C,WAAW;IA8BX,IAAI,YAAY,IAAI,YAAY,EAAE,CAwBjC;IAED,IAAI,WAAW,IAAI,SAAS,CAE3B;IAED,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,EAAE;IAI3C,IAAI,UAAU,IAAI,QAAQ,CAGzB;IAED,IAAI,QAAQ,cAYX;IAED,IAAI,UAAU,eAEb;IAED,UAAU,CAAC,QAAQ,EAAE,MAAM;IAmB3B,aAAa,CAAC,IAAI,EAAE,QAAQ;IAY5B,IAAI,IAAI,mEAEP;IAED,IAAI,WAAW,mEAEd;CACF"}
|
package/dist/rules/RefillRule.js
CHANGED
|
@@ -2,7 +2,7 @@ import { isMoveItemTypeAtOnce, isShuffleItemType, PlayerTurnRule } from '@gamepa
|
|
|
2
2
|
import { influences } from '../material/Influence';
|
|
3
3
|
import { LocationType } from '../material/LocationType';
|
|
4
4
|
import { MaterialType } from '../material/MaterialType';
|
|
5
|
-
import {
|
|
5
|
+
import { TeamColor } from '../TeamColor';
|
|
6
6
|
import { DeckHelper } from './helper/DeckHelper';
|
|
7
7
|
import { PlayerHelper } from './helper/PlayerHelper';
|
|
8
8
|
import { Memory } from './Memory';
|
|
@@ -36,7 +36,7 @@ export class RefillRule extends PlayerTurnRule {
|
|
|
36
36
|
const alreadyPlayed = this.remind(Memory.AlreadyPlayedPlayers) ?? [];
|
|
37
37
|
const currentTeam = this.currentTeam;
|
|
38
38
|
const teamPlayers = this.getTeamPlayers(currentTeam);
|
|
39
|
-
const teamPlayersPlayed = alreadyPlayed.filter(p =>
|
|
39
|
+
const teamPlayersPlayed = alreadyPlayed.filter(p => new PlayerHelper(this.game, p).team === currentTeam).length;
|
|
40
40
|
if (this.game.players.length === 4) {
|
|
41
41
|
if (teamPlayersPlayed < 2) {
|
|
42
42
|
const nextPlayer = teamPlayers.find(p => !alreadyPlayed.includes(p));
|
|
@@ -58,7 +58,7 @@ export class RefillRule extends PlayerTurnRule {
|
|
|
58
58
|
return this.remind(Memory.CurrentTeam) ?? TeamColor.White;
|
|
59
59
|
}
|
|
60
60
|
getTeamPlayers(team) {
|
|
61
|
-
return this.game.players.filter(p =>
|
|
61
|
+
return this.game.players.filter(p => new PlayerHelper(this.game, p).team === team);
|
|
62
62
|
}
|
|
63
63
|
get nextPlayer() {
|
|
64
64
|
const players = this.game.players;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefillRule.js","sourceRoot":"","sources":["../../src/rules/RefillRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAA0B,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACrH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"RefillRule.js","sourceRoot":"","sources":["../../src/rules/RefillRule.ts"],"names":[],"mappings":"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"}
|
package/dist/rules/RuleId.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuleId.d.ts","sourceRoot":"","sources":["../../src/rules/RuleId.ts"],"names":[],"mappings":"AAAA,oBAAY,MAAM;IAChB,OAAO,IAAI;IACX,QAAQ,IAAA;IACR,aAAa,IAAA;IACb,QAAQ,IAAA;IACR,UAAU,IAAA;IACV,SAAS,IAAA;IACT,WAAW,IAAA;IACX,WAAW,IAAA;IACX,YAAY,IAAA;IACZ,aAAa,KAAA;IACb,KAAK,KAAA;IACL,YAAY,KAAA;IACZ,aAAa,KAAA;IACb,cAAc,KAAA;IACd,iBAAiB,KAAA;IACjB,eAAe,KAAA;IACf,eAAe,KAAA;IACf,OAAO,KAAA;IACP,QAAQ,KAAA;IACR,MAAM,KAAA;IACN,SAAS,KAAA;IACT,MAAM,KAAA;IACN,WAAW,KAAA;IACX,cAAc,KAAA;IACd,wBAAwB,KAAA;IACxB,SAAS,KAAA;IACT,SAAS,KAAA;IACT,gBAAgB,KAAA;IAChB,eAAe,KAAA;
|
|
1
|
+
{"version":3,"file":"RuleId.d.ts","sourceRoot":"","sources":["../../src/rules/RuleId.ts"],"names":[],"mappings":"AAAA,oBAAY,MAAM;IAChB,OAAO,IAAI;IACX,QAAQ,IAAA;IACR,aAAa,IAAA;IACb,QAAQ,IAAA;IACR,UAAU,IAAA;IACV,SAAS,IAAA;IACT,WAAW,IAAA;IACX,WAAW,IAAA;IACX,YAAY,IAAA;IACZ,aAAa,KAAA;IACb,KAAK,KAAA;IACL,YAAY,KAAA;IACZ,aAAa,KAAA;IACb,cAAc,KAAA;IACd,iBAAiB,KAAA;IACjB,eAAe,KAAA;IACf,eAAe,KAAA;IACf,OAAO,KAAA;IACP,QAAQ,KAAA;IACR,MAAM,KAAA;IACN,SAAS,KAAA;IACT,MAAM,KAAA;IACN,WAAW,KAAA;IACX,cAAc,KAAA;IACd,wBAAwB,KAAA;IACxB,SAAS,KAAA;IACT,SAAS,KAAA;IACT,gBAAgB,KAAA;IAChB,eAAe,KAAA;IACf,cAAc,KAAA;CACf"}
|
package/dist/rules/RuleId.js
CHANGED
|
@@ -29,5 +29,6 @@ export var RuleId;
|
|
|
29
29
|
RuleId[RuleId["ShareCard"] = 27] = "ShareCard";
|
|
30
30
|
RuleId[RuleId["TechnologyAction"] = 28] = "TechnologyAction";
|
|
31
31
|
RuleId[RuleId["DiplomacyAction"] = 29] = "DiplomacyAction";
|
|
32
|
+
RuleId[RuleId["StealZenithium"] = 30] = "StealZenithium";
|
|
32
33
|
})(RuleId || (RuleId = {}));
|
|
33
34
|
//# sourceMappingURL=RuleId.js.map
|
package/dist/rules/RuleId.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuleId.js","sourceRoot":"","sources":["../../src/rules/RuleId.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"RuleId.js","sourceRoot":"","sources":["../../src/rules/RuleId.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,MA+BX;AA/BD,WAAY,MAAM;IAChB,yCAAW,CAAA;IACX,2CAAQ,CAAA;IACR,qDAAa,CAAA;IACb,2CAAQ,CAAA;IACR,+CAAU,CAAA;IACV,6CAAS,CAAA;IACT,iDAAW,CAAA;IACX,iDAAW,CAAA;IACX,mDAAY,CAAA;IACZ,sDAAa,CAAA;IACb,sCAAK,CAAA;IACL,oDAAY,CAAA;IACZ,sDAAa,CAAA;IACb,wDAAc,CAAA;IACd,8DAAiB,CAAA;IACjB,0DAAe,CAAA;IACf,0DAAe,CAAA;IACf,0CAAO,CAAA;IACP,4CAAQ,CAAA;IACR,wCAAM,CAAA;IACN,8CAAS,CAAA;IACT,wCAAM,CAAA;IACN,kDAAW,CAAA;IACX,wDAAc,CAAA;IACd,4EAAwB,CAAA;IACxB,8CAAS,CAAA;IACT,8CAAS,CAAA;IACT,4DAAgB,CAAA;IAChB,0DAAe,CAAA;IACf,wDAAc,CAAA;AAChB,CAAC,EA/BW,MAAM,KAAN,MAAM,QA+BjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TechnologyActions.d.ts","sourceRoot":"","sources":["../../../src/rules/discard-action/TechnologyActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAKpE,eAAO,MAAM,mBAAmB,GAAI,IAAI,MAAM,KAAG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"TechnologyActions.d.ts","sourceRoot":"","sources":["../../../src/rules/discard-action/TechnologyActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAKpE,eAAO,MAAM,mBAAmB,GAAI,IAAI,MAAM,KAAG,MAAM,EAAE,EAgBxD,CAAA;AAuUD,eAAO,MAAM,qBAAqB,EAAE,MAAM,EAazC,CAAA"}
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import { ConditionType } from '../../material/effect/Effect';
|
|
2
2
|
import { EffectType } from '../../material/effect/EffectType';
|
|
3
3
|
import { Faction } from '../../material/Faction';
|
|
4
|
+
import { Influence } from '../../material/Influence';
|
|
4
5
|
export const getTechnologyAction = (id) => {
|
|
5
6
|
switch (id) {
|
|
6
7
|
case 'S':
|
|
7
8
|
return TechnologySActions;
|
|
8
9
|
case 'U':
|
|
9
10
|
return TechnologyUActions;
|
|
11
|
+
case 'D':
|
|
12
|
+
return TechnologyDActions;
|
|
13
|
+
case 'O':
|
|
14
|
+
return TechnologyOActions;
|
|
15
|
+
case 'P':
|
|
16
|
+
return TechnologyPActions;
|
|
10
17
|
case 'N':
|
|
11
18
|
default:
|
|
12
19
|
return TechnologyNActions;
|
|
@@ -167,6 +174,170 @@ const TechnologyNActions = [
|
|
|
167
174
|
}
|
|
168
175
|
]
|
|
169
176
|
];
|
|
177
|
+
const TechnologyDActions = [
|
|
178
|
+
[
|
|
179
|
+
{
|
|
180
|
+
type: EffectType.Exile,
|
|
181
|
+
opponent: true,
|
|
182
|
+
quantity: 1
|
|
183
|
+
}
|
|
184
|
+
],
|
|
185
|
+
[
|
|
186
|
+
{
|
|
187
|
+
type: EffectType.WinCredit,
|
|
188
|
+
quantity: 5
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
type: EffectType.TakeTechnologyBonusToken,
|
|
192
|
+
faction: Faction.Animod,
|
|
193
|
+
x: 2
|
|
194
|
+
}
|
|
195
|
+
],
|
|
196
|
+
[
|
|
197
|
+
{
|
|
198
|
+
type: EffectType.TakeBonus
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
type: EffectType.WinInfluence,
|
|
202
|
+
quantity: 1
|
|
203
|
+
}
|
|
204
|
+
],
|
|
205
|
+
[
|
|
206
|
+
{
|
|
207
|
+
type: EffectType.WinInfluence,
|
|
208
|
+
influence: Influence.Mercury,
|
|
209
|
+
quantity: 1
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
type: EffectType.WinInfluence,
|
|
213
|
+
influence: Influence.Venus,
|
|
214
|
+
quantity: 1
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
type: EffectType.WinInfluence,
|
|
218
|
+
influence: Influence.Terra,
|
|
219
|
+
quantity: 1
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
type: EffectType.WinInfluence,
|
|
223
|
+
influence: Influence.Mars,
|
|
224
|
+
quantity: 1
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
type: EffectType.WinInfluence,
|
|
228
|
+
influence: Influence.Jupiter,
|
|
229
|
+
quantity: 1
|
|
230
|
+
}
|
|
231
|
+
],
|
|
232
|
+
[
|
|
233
|
+
{
|
|
234
|
+
type: EffectType.WinInfluence,
|
|
235
|
+
quantity: 2
|
|
236
|
+
}
|
|
237
|
+
]
|
|
238
|
+
];
|
|
239
|
+
const TechnologyOActions = [
|
|
240
|
+
[
|
|
241
|
+
{
|
|
242
|
+
type: EffectType.TakeBonus
|
|
243
|
+
}
|
|
244
|
+
],
|
|
245
|
+
[
|
|
246
|
+
{
|
|
247
|
+
type: EffectType.StealZenithium,
|
|
248
|
+
quantity: 1
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
type: EffectType.TakeTechnologyBonusToken,
|
|
252
|
+
faction: Faction.Human,
|
|
253
|
+
x: 2
|
|
254
|
+
}
|
|
255
|
+
],
|
|
256
|
+
[
|
|
257
|
+
{
|
|
258
|
+
type: EffectType.Mobilize,
|
|
259
|
+
quantity: 3
|
|
260
|
+
}
|
|
261
|
+
],
|
|
262
|
+
[
|
|
263
|
+
{
|
|
264
|
+
type: EffectType.WinInfluence,
|
|
265
|
+
pattern: [2, 2]
|
|
266
|
+
}
|
|
267
|
+
],
|
|
268
|
+
[
|
|
269
|
+
{
|
|
270
|
+
type: EffectType.WinInfluence,
|
|
271
|
+
quantity: 2
|
|
272
|
+
}
|
|
273
|
+
]
|
|
274
|
+
];
|
|
275
|
+
const TechnologyPActions = [
|
|
276
|
+
[
|
|
277
|
+
{
|
|
278
|
+
type: EffectType.Mobilize,
|
|
279
|
+
quantity: 1
|
|
280
|
+
}
|
|
281
|
+
],
|
|
282
|
+
[
|
|
283
|
+
{
|
|
284
|
+
type: EffectType.Mobilize,
|
|
285
|
+
quantity: 1
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
type: EffectType.Transfer,
|
|
289
|
+
quantity: 1
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
type: EffectType.Exile,
|
|
293
|
+
opponent: true,
|
|
294
|
+
quantity: 1
|
|
295
|
+
}
|
|
296
|
+
],
|
|
297
|
+
[
|
|
298
|
+
{
|
|
299
|
+
type: EffectType.WinCredit,
|
|
300
|
+
quantity: 10
|
|
301
|
+
}
|
|
302
|
+
],
|
|
303
|
+
[
|
|
304
|
+
{
|
|
305
|
+
type: EffectType.Conditional,
|
|
306
|
+
mandatory: true,
|
|
307
|
+
condition: {
|
|
308
|
+
type: ConditionType.DoEffect,
|
|
309
|
+
effect: {
|
|
310
|
+
type: EffectType.Exile
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
effect: {
|
|
314
|
+
type: EffectType.WinInfluence,
|
|
315
|
+
quantity: 2
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
type: EffectType.Conditional,
|
|
320
|
+
mandatory: true,
|
|
321
|
+
condition: {
|
|
322
|
+
type: ConditionType.DoEffect,
|
|
323
|
+
effect: {
|
|
324
|
+
type: EffectType.Exile,
|
|
325
|
+
differentPlanet: true
|
|
326
|
+
}
|
|
327
|
+
},
|
|
328
|
+
effect: {
|
|
329
|
+
type: EffectType.WinInfluence,
|
|
330
|
+
quantity: 2
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
],
|
|
334
|
+
[
|
|
335
|
+
{
|
|
336
|
+
type: EffectType.WinInfluence,
|
|
337
|
+
quantity: 2
|
|
338
|
+
}
|
|
339
|
+
]
|
|
340
|
+
];
|
|
170
341
|
export const TechnologyLineBonuses = [
|
|
171
342
|
{
|
|
172
343
|
type: EffectType.WinInfluence,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TechnologyActions.js","sourceRoot":"","sources":["../../../src/rules/discard-action/TechnologyActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAU,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"TechnologyActions.js","sourceRoot":"","sources":["../../../src/rules/discard-action/TechnologyActions.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ const player1 = 1;
|
|
|
15
15
|
const player2 = 2;
|
|
16
16
|
function createGameForAgent(agent) {
|
|
17
17
|
const setup = new TestSetup(agent);
|
|
18
|
-
const game = setup.setup({ players:
|
|
18
|
+
const game = setup.setup({ players: [{}, {}], beginner: true });
|
|
19
19
|
return new ZenithRules(game);
|
|
20
20
|
}
|
|
21
21
|
class TestSetup extends ZenithSetup {
|
|
@@ -25,6 +25,7 @@ class TestSetup extends ZenithSetup {
|
|
|
25
25
|
this.testAgent = testAgent;
|
|
26
26
|
}
|
|
27
27
|
setupMaterial() {
|
|
28
|
+
this.setupTeamMemory();
|
|
28
29
|
this.setupTurnOrder();
|
|
29
30
|
this.setupTestHands();
|
|
30
31
|
this.setupRemainingDeck();
|
|
@@ -34,6 +35,10 @@ class TestSetup extends ZenithSetup {
|
|
|
34
35
|
this.setupTeams();
|
|
35
36
|
this.setupTestBonuses();
|
|
36
37
|
}
|
|
38
|
+
setupTeamMemory() {
|
|
39
|
+
this.memorize(Memory.Team, TeamColor.White, player1);
|
|
40
|
+
this.memorize(Memory.Team, TeamColor.Black, player2);
|
|
41
|
+
}
|
|
37
42
|
setupTurnOrder() {
|
|
38
43
|
this.memorize(Memory.TurnOrder, [player1, player2]);
|
|
39
44
|
}
|
|
@@ -201,7 +206,7 @@ describe('Agent effects resolution', () => {
|
|
|
201
206
|
describe('Gilgamesh opponentSide fallback', () => {
|
|
202
207
|
it('should allow pulling a different planet when the only opponent-side planet was pulled across by effect 2', () => {
|
|
203
208
|
const setup = new GilgameshTestSetup();
|
|
204
|
-
const game = setup.setup({ players:
|
|
209
|
+
const game = setup.setup({ players: [{}, {}], beginner: true });
|
|
205
210
|
const rules = new ZenithRules(game);
|
|
206
211
|
const venusStart = rules.material(MaterialType.InfluenceDisc)
|
|
207
212
|
.location(LocationType.PlanetBoardInfluenceDiscSpace)
|
|
@@ -236,7 +241,7 @@ describe('Gilgamesh opponentSide fallback', () => {
|
|
|
236
241
|
describe('Planet capture', () => {
|
|
237
242
|
it('White pulling a planet at x=3 should capture it at x=4 into White TeamPlanets', () => {
|
|
238
243
|
const setup = new CaptureTestSetup(Agent.Mc4ffr3y, Influence.Mars, 3);
|
|
239
|
-
const game = setup.setup({ players:
|
|
244
|
+
const game = setup.setup({ players: [{}, {}], beginner: true });
|
|
240
245
|
const rules = new ZenithRules(game);
|
|
241
246
|
const marsStart = rules.material(MaterialType.InfluenceDisc)
|
|
242
247
|
.location(LocationType.PlanetBoardInfluenceDiscSpace)
|
|
@@ -285,7 +290,7 @@ describe('Planet capture', () => {
|
|
|
285
290
|
});
|
|
286
291
|
it('Black pulling a planet at x=-3 should capture it at x=-4 into Black TeamPlanets', () => {
|
|
287
292
|
const setup = new CaptureTestSetupBlack(Agent.Mc4ffr3y, Influence.Mars, -3);
|
|
288
|
-
const game = setup.setup({ players:
|
|
293
|
+
const game = setup.setup({ players: [{}, {}], beginner: true });
|
|
289
294
|
const rules = new ZenithRules(game);
|
|
290
295
|
const marsStart = rules.material(MaterialType.InfluenceDisc)
|
|
291
296
|
.location(LocationType.PlanetBoardInfluenceDiscSpace)
|
|
@@ -334,7 +339,7 @@ describe('Planet capture', () => {
|
|
|
334
339
|
});
|
|
335
340
|
it('White pushing Terra at x=-3 should capture it at x=-4 into Black TeamPlanets (opponent)', () => {
|
|
336
341
|
const setup = new CaptureTestSetup(Agent.Titus, Influence.Terra, -3);
|
|
337
|
-
const game = setup.setup({ players:
|
|
342
|
+
const game = setup.setup({ players: [{}, {}], beginner: true });
|
|
338
343
|
const rules = new ZenithRules(game);
|
|
339
344
|
const terraStart = rules.material(MaterialType.InfluenceDisc)
|
|
340
345
|
.location(LocationType.PlanetBoardInfluenceDiscSpace)
|
|
@@ -387,7 +392,7 @@ describe('Planet capture', () => {
|
|
|
387
392
|
describe('Augustus pattern [1,2,1] at extreme — Mercury capture', () => {
|
|
388
393
|
it('should allow capturing Mercury and still apply remaining pattern moves to Venus and Terra', () => {
|
|
389
394
|
const setup = new AugustusPatternSetup({ [Influence.Mercury]: 3 });
|
|
390
|
-
const game = setup.setup({ players:
|
|
395
|
+
const game = setup.setup({ players: [{}, {}], beginner: true });
|
|
391
396
|
const rules = new ZenithRules(game);
|
|
392
397
|
expect(rules.material(MaterialType.InfluenceDisc)
|
|
393
398
|
.location(LocationType.PlanetBoardInfluenceDiscSpace).id(Influence.Mercury).getItem().location.x).toBe(3);
|
|
@@ -437,7 +442,7 @@ describe('Augustus pattern [1,2,1] at extreme — Mercury capture', () => {
|
|
|
437
442
|
});
|
|
438
443
|
it('should allow truncated pattern at left edge — Mercury+2 capture with Venus+1', () => {
|
|
439
444
|
const setup = new AugustusPatternSetup({ [Influence.Mercury]: 2 });
|
|
440
|
-
const game = setup.setup({ players:
|
|
445
|
+
const game = setup.setup({ players: [{}, {}], beginner: true });
|
|
441
446
|
const rules = new ZenithRules(game);
|
|
442
447
|
expect(rules.material(MaterialType.InfluenceDisc)
|
|
443
448
|
.location(LocationType.PlanetBoardInfluenceDiscSpace).id(Influence.Mercury).getItem().location.x).toBe(2);
|
|
@@ -478,7 +483,7 @@ describe('Augustus pattern [1,2,1] at extreme — Mercury capture', () => {
|
|
|
478
483
|
});
|
|
479
484
|
it('should allow truncated pattern at right edge — Jupiter+2 capture with Mars+1', () => {
|
|
480
485
|
const setup = new AugustusPatternSetup({ [Influence.Jupiter]: 2 });
|
|
481
|
-
const game = setup.setup({ players:
|
|
486
|
+
const game = setup.setup({ players: [{}, {}], beginner: true });
|
|
482
487
|
const rules = new ZenithRules(game);
|
|
483
488
|
expect(rules.material(MaterialType.InfluenceDisc)
|
|
484
489
|
.location(LocationType.PlanetBoardInfluenceDiscSpace).id(Influence.Jupiter).getItem().location.x).toBe(2);
|
|
@@ -519,7 +524,7 @@ describe('Augustus pattern [1,2,1] at extreme — Mercury capture', () => {
|
|
|
519
524
|
});
|
|
520
525
|
it('should not allow moving Mercury+2 when it is not at the edge (no truncated pattern needed)', () => {
|
|
521
526
|
const setup = new AugustusPatternSetup({});
|
|
522
|
-
const game = setup.setup({ players:
|
|
527
|
+
const game = setup.setup({ players: [{}, {}], beginner: true });
|
|
523
528
|
const rules = new ZenithRules(game);
|
|
524
529
|
const cardIndex = rules.material(MaterialType.AgentCard)
|
|
525
530
|
.location(LocationType.PlayerHand).player(player1).id(Agent.Augustus).getIndex();
|
|
@@ -557,7 +562,7 @@ describe('Augustus pattern [1,2,1] at extreme — Mercury capture', () => {
|
|
|
557
562
|
});
|
|
558
563
|
it('should not allow moving a non-adjacent planet with pattern', () => {
|
|
559
564
|
const setup = new AugustusPatternSetup({});
|
|
560
|
-
const game = setup.setup({ players:
|
|
565
|
+
const game = setup.setup({ players: [{}, {}], beginner: true });
|
|
561
566
|
const rules = new ZenithRules(game);
|
|
562
567
|
const cardIndex = rules.material(MaterialType.AgentCard)
|
|
563
568
|
.location(LocationType.PlayerHand).player(player1).id(Agent.Augustus).getIndex();
|
|
@@ -599,7 +604,7 @@ describe('Augustus pattern [1,2,1] at extreme — Mercury capture', () => {
|
|
|
599
604
|
});
|
|
600
605
|
it('should not allow moving only Jupiter+2 without Mars (pattern requires adjacency)', () => {
|
|
601
606
|
const setup = new AugustusPatternSetup({ [Influence.Jupiter]: 2 });
|
|
602
|
-
const game = setup.setup({ players:
|
|
607
|
+
const game = setup.setup({ players: [{}, {}], beginner: true });
|
|
603
608
|
const rules = new ZenithRules(game);
|
|
604
609
|
const cardIndex = rules.material(MaterialType.AgentCard)
|
|
605
610
|
.location(LocationType.PlayerHand).player(player1).id(Agent.Augustus).getIndex();
|
|
@@ -655,7 +660,7 @@ describe('Augustus pattern [1,2,1] at extreme — Mercury capture', () => {
|
|
|
655
660
|
});
|
|
656
661
|
it('should continue pattern when Venus is clamped at limit — Mercury+1, Venus captured, Terra+1', () => {
|
|
657
662
|
const setup = new AugustusPatternSetup({ [Influence.Venus]: 3 });
|
|
658
|
-
const game = setup.setup({ players:
|
|
663
|
+
const game = setup.setup({ players: [{}, {}], beginner: true });
|
|
659
664
|
const rules = new ZenithRules(game);
|
|
660
665
|
const cardIndex = rules.material(MaterialType.AgentCard)
|
|
661
666
|
.location(LocationType.PlayerHand).player(player1).id(Agent.Augustus).getIndex();
|
|
@@ -703,7 +708,7 @@ describe('Augustus pattern [1,2,1] at extreme — Mercury capture', () => {
|
|
|
703
708
|
});
|
|
704
709
|
it('should work with pattern on right side — Terra+1, Mars+2 clamped/captured, Jupiter+1', () => {
|
|
705
710
|
const setup = new AugustusPatternSetup({ [Influence.Mars]: 3 });
|
|
706
|
-
const game = setup.setup({ players:
|
|
711
|
+
const game = setup.setup({ players: [{}, {}], beginner: true });
|
|
707
712
|
const rules = new ZenithRules(game);
|
|
708
713
|
const cardIndex = rules.material(MaterialType.AgentCard)
|
|
709
714
|
.location(LocationType.PlayerHand).player(player1).id(Agent.Augustus).getIndex();
|
|
@@ -840,7 +845,7 @@ class GilgameshTestSetup extends TestSetup {
|
|
|
840
845
|
describe('Refill with low/empty deck', () => {
|
|
841
846
|
function createRefillSetup(deckCount) {
|
|
842
847
|
const setup = new RefillTestSetup(deckCount);
|
|
843
|
-
const game = setup.setup({ players:
|
|
848
|
+
const game = setup.setup({ players: [{}, {}], beginner: true });
|
|
844
849
|
return new ZenithRules(game);
|
|
845
850
|
}
|
|
846
851
|
function discardAndRefill(rules) {
|
|
@@ -945,7 +950,7 @@ describe('Refill with low/empty deck', () => {
|
|
|
945
950
|
describe('Mobilize with low/empty deck', () => {
|
|
946
951
|
function createMobilizeSetup(deckCount) {
|
|
947
952
|
const setup = new MobilizeTestSetup(deckCount);
|
|
948
|
-
const game = setup.setup({ players:
|
|
953
|
+
const game = setup.setup({ players: [{}, {}], beginner: true });
|
|
949
954
|
return new ZenithRules(game);
|
|
950
955
|
}
|
|
951
956
|
it('mobilize 2 with deck=1: should reshuffle discard and mobilize second card', () => {
|
|
@@ -966,7 +971,7 @@ describe('Mobilize with low/empty deck', () => {
|
|
|
966
971
|
});
|
|
967
972
|
it('mobilize 2 with deck=0 and discard=0: should skip mobilization without blocking', () => {
|
|
968
973
|
const setup = new MobilizeEmptySetup();
|
|
969
|
-
const game = setup.setup({ players:
|
|
974
|
+
const game = setup.setup({ players: [{}, {}], beginner: true });
|
|
970
975
|
const rules = new ZenithRules(game);
|
|
971
976
|
expect(rules.material(MaterialType.AgentCard).location(LocationType.AgentDeck).length).toBe(0);
|
|
972
977
|
expect(rules.material(MaterialType.AgentCard).location(LocationType.AgentDiscard).length).toBe(0);
|
|
@@ -978,7 +983,7 @@ describe('Mobilize with low/empty deck', () => {
|
|
|
978
983
|
});
|
|
979
984
|
it('mobilize 2 with deck=1 and discard=0: should mobilize 1 then skip remaining', () => {
|
|
980
985
|
const setup = new MobilizePartialSetup(1);
|
|
981
|
-
const game = setup.setup({ players:
|
|
986
|
+
const game = setup.setup({ players: [{}, {}], beginner: true });
|
|
982
987
|
const rules = new ZenithRules(game);
|
|
983
988
|
expect(rules.material(MaterialType.AgentCard).location(LocationType.AgentDeck).length).toBe(1);
|
|
984
989
|
expect(rules.material(MaterialType.AgentCard).location(LocationType.AgentDiscard).length).toBe(0);
|