@gamepark/zenith 0.0.1
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/PlayerId.d.ts +1 -0
- package/dist/PlayerId.js +2 -0
- package/dist/TeamColor.d.ts +9 -0
- package/dist/TeamColor.js +16 -0
- package/dist/ZenithOptions.d.ts +5 -0
- package/dist/ZenithOptions.js +4 -0
- package/dist/ZenithRules.d.ts +68 -0
- package/dist/ZenithRules.js +128 -0
- package/dist/ZenithSetup.d.ts +24 -0
- package/dist/ZenithSetup.js +316 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +9 -0
- package/dist/material/Agent.d.ts +93 -0
- package/dist/material/Agent.js +98 -0
- package/dist/material/Agents.d.ts +102 -0
- package/dist/material/Agents.js +2305 -0
- package/dist/material/Bonus.d.ts +12 -0
- package/dist/material/Bonus.js +34 -0
- package/dist/material/Bonuses.d.ts +14 -0
- package/dist/material/Bonuses.js +63 -0
- package/dist/material/Credit.d.ts +6 -0
- package/dist/material/Credit.js +11 -0
- package/dist/material/Faction.d.ts +6 -0
- package/dist/material/Faction.js +11 -0
- package/dist/material/Influence.d.ts +8 -0
- package/dist/material/Influence.js +13 -0
- package/dist/material/LocationType.d.ts +23 -0
- package/dist/material/LocationType.js +27 -0
- package/dist/material/MaterialType.d.ts +12 -0
- package/dist/material/MaterialType.js +16 -0
- package/dist/material/effect/Effect.d.ts +144 -0
- package/dist/material/effect/Effect.js +14 -0
- package/dist/material/effect/EffectType.d.ts +23 -0
- package/dist/material/effect/EffectType.js +27 -0
- package/dist/rules/CustomMoveType.d.ts +8 -0
- package/dist/rules/CustomMoveType.js +12 -0
- package/dist/rules/DiscardActionRule.d.ts +8 -0
- package/dist/rules/DiscardActionRule.js +84 -0
- package/dist/rules/Memory.d.ts +25 -0
- package/dist/rules/Memory.js +19 -0
- package/dist/rules/MulliganRule.d.ts +12 -0
- package/dist/rules/MulliganRule.js +138 -0
- package/dist/rules/PlayCardRule.d.ts +15 -0
- package/dist/rules/PlayCardRule.js +147 -0
- package/dist/rules/RefillRule.d.ts +17 -0
- package/dist/rules/RefillRule.js +211 -0
- package/dist/rules/RuleId.d.ts +27 -0
- package/dist/rules/RuleId.js +31 -0
- package/dist/rules/discard-action/DiplomacyActions.d.ts +3 -0
- package/dist/rules/discard-action/DiplomacyActions.js +39 -0
- package/dist/rules/discard-action/DiplomacyBoardRule.d.ts +9 -0
- package/dist/rules/discard-action/DiplomacyBoardRule.js +68 -0
- package/dist/rules/discard-action/TechnologyActions.d.ts +3 -0
- package/dist/rules/discard-action/TechnologyActions.js +187 -0
- package/dist/rules/discard-action/TechnologyBoardRule.d.ts +8 -0
- package/dist/rules/discard-action/TechnologyBoardRule.js +109 -0
- package/dist/rules/effect/ChoiceRule.d.ts +12 -0
- package/dist/rules/effect/ChoiceRule.js +91 -0
- package/dist/rules/effect/ConditionalRule.d.ts +17 -0
- package/dist/rules/effect/ConditionalRule.js +197 -0
- package/dist/rules/effect/DevelopTechnologyRule.d.ts +11 -0
- package/dist/rules/effect/DevelopTechnologyRule.js +133 -0
- package/dist/rules/effect/DiscardRule.d.ts +18 -0
- package/dist/rules/effect/DiscardRule.js +107 -0
- package/dist/rules/effect/EffectRule.d.ts +27 -0
- package/dist/rules/effect/EffectRule.js +161 -0
- package/dist/rules/effect/ExileRule.d.ts +22 -0
- package/dist/rules/effect/ExileRule.js +182 -0
- package/dist/rules/effect/GiveCreditRule.d.ts +13 -0
- package/dist/rules/effect/GiveCreditRule.js +79 -0
- package/dist/rules/effect/GiveInfluenceRule.d.ts +10 -0
- package/dist/rules/effect/GiveInfluenceRule.js +119 -0
- package/dist/rules/effect/GiveLeaderBadgeRule.d.ts +9 -0
- package/dist/rules/effect/GiveLeaderBadgeRule.js +54 -0
- package/dist/rules/effect/GiveZenithiumRule.d.ts +9 -0
- package/dist/rules/effect/GiveZenithiumRule.js +85 -0
- package/dist/rules/effect/MobilizeRule.d.ts +18 -0
- package/dist/rules/effect/MobilizeRule.js +117 -0
- package/dist/rules/effect/ResetInfluenceRule.d.ts +9 -0
- package/dist/rules/effect/ResetInfluenceRule.js +63 -0
- package/dist/rules/effect/SpendCreditRule.d.ts +16 -0
- package/dist/rules/effect/SpendCreditRule.js +109 -0
- package/dist/rules/effect/SpendZenithiumRule.d.ts +17 -0
- package/dist/rules/effect/SpendZenithiumRule.js +116 -0
- package/dist/rules/effect/StealCreditRule.d.ts +7 -0
- package/dist/rules/effect/StealCreditRule.js +67 -0
- package/dist/rules/effect/TakeBonusRule.d.ts +11 -0
- package/dist/rules/effect/TakeBonusRule.js +98 -0
- package/dist/rules/effect/TakeLeaderBadgeRule.d.ts +9 -0
- package/dist/rules/effect/TakeLeaderBadgeRule.js +102 -0
- package/dist/rules/effect/TakeTechnologyBonusTokenRule.d.ts +11 -0
- package/dist/rules/effect/TakeTechnologyBonusTokenRule.js +122 -0
- package/dist/rules/effect/TransferRule.d.ts +19 -0
- package/dist/rules/effect/TransferRule.js +104 -0
- package/dist/rules/effect/WinCreditRule.d.ts +13 -0
- package/dist/rules/effect/WinCreditRule.js +142 -0
- package/dist/rules/effect/WinInfluenceRule.d.ts +23 -0
- package/dist/rules/effect/WinInfluenceRule.js +328 -0
- package/dist/rules/effect/WinZenithiumRule.d.ts +9 -0
- package/dist/rules/effect/WinZenithiumRule.js +92 -0
- package/dist/rules/effect/index.d.ts +19 -0
- package/dist/rules/effect/index.js +35 -0
- package/dist/rules/helper/BonusHelper.d.ts +15 -0
- package/dist/rules/helper/BonusHelper.js +86 -0
- package/dist/rules/helper/CreditHelper.d.ts +9 -0
- package/dist/rules/helper/CreditHelper.js +45 -0
- package/dist/rules/helper/EffectHelper.d.ts +16 -0
- package/dist/rules/helper/EffectHelper.js +133 -0
- package/dist/rules/helper/EffectRuleIds.d.ts +3 -0
- package/dist/rules/helper/EffectRuleIds.js +29 -0
- package/dist/rules/helper/EndGameHelper.d.ts +13 -0
- package/dist/rules/helper/EndGameHelper.js +70 -0
- package/dist/rules/helper/InfluenceHelper.d.ts +13 -0
- package/dist/rules/helper/InfluenceHelper.js +47 -0
- package/dist/rules/helper/MobilizeHelper.d.ts +10 -0
- package/dist/rules/helper/MobilizeHelper.js +56 -0
- package/dist/rules/helper/PlanetHelper.d.ts +19 -0
- package/dist/rules/helper/PlanetHelper.js +104 -0
- package/dist/rules/helper/PlayerHelper.d.ts +12 -0
- package/dist/rules/helper/PlayerHelper.js +61 -0
- package/dist/rules/helper/TechnologyHelper.d.ts +4 -0
- package/dist/rules/helper/TechnologyHelper.js +96 -0
- package/dist/rules/helper/ZenithiumHelper.d.ts +10 -0
- package/dist/rules/helper/ZenithiumHelper.js +59 -0
- package/package.json +33 -0
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __assign = (this && this.__assign) || function () {
|
|
18
|
+
__assign = Object.assign || function(t) {
|
|
19
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
+
s = arguments[i];
|
|
21
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
+
t[p] = s[p];
|
|
23
|
+
}
|
|
24
|
+
return t;
|
|
25
|
+
};
|
|
26
|
+
return __assign.apply(this, arguments);
|
|
27
|
+
};
|
|
28
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
29
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
30
|
+
if (!m) return o;
|
|
31
|
+
var i = m.call(o), r, ar = [], e;
|
|
32
|
+
try {
|
|
33
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
34
|
+
}
|
|
35
|
+
catch (error) { e = { error: error }; }
|
|
36
|
+
finally {
|
|
37
|
+
try {
|
|
38
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
39
|
+
}
|
|
40
|
+
finally { if (e) throw e.error; }
|
|
41
|
+
}
|
|
42
|
+
return ar;
|
|
43
|
+
};
|
|
44
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
45
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
46
|
+
if (ar || !(i in from)) {
|
|
47
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
48
|
+
ar[i] = from[i];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
52
|
+
};
|
|
53
|
+
var __values = (this && this.__values) || function(o) {
|
|
54
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
55
|
+
if (m) return m.call(o);
|
|
56
|
+
if (o && typeof o.length === "number") return {
|
|
57
|
+
next: function () {
|
|
58
|
+
if (o && i >= o.length) o = void 0;
|
|
59
|
+
return { value: o && o[i++], done: !o };
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
63
|
+
};
|
|
64
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
65
|
+
exports.WinInfluenceRule = void 0;
|
|
66
|
+
var rules_api_1 = require("@gamepark/rules-api");
|
|
67
|
+
var Influence_1 = require("../../material/Influence");
|
|
68
|
+
var LocationType_1 = require("../../material/LocationType");
|
|
69
|
+
var MaterialType_1 = require("../../material/MaterialType");
|
|
70
|
+
var TeamColor_1 = require("../../TeamColor");
|
|
71
|
+
var BonusHelper_1 = require("../helper/BonusHelper");
|
|
72
|
+
var EndGameHelper_1 = require("../helper/EndGameHelper");
|
|
73
|
+
var Memory_1 = require("../Memory");
|
|
74
|
+
var index_1 = require("./index");
|
|
75
|
+
var WinInfluenceRule = (function (_super) {
|
|
76
|
+
__extends(WinInfluenceRule, _super);
|
|
77
|
+
function WinInfluenceRule() {
|
|
78
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
79
|
+
}
|
|
80
|
+
WinInfluenceRule.prototype.onRuleStart = function () {
|
|
81
|
+
var moves = _super.prototype.onRuleStart.call(this);
|
|
82
|
+
if (moves.length > 0)
|
|
83
|
+
return moves;
|
|
84
|
+
if (this.effect.resetDifferentPlanet) {
|
|
85
|
+
this.forget(Memory_1.Memory.LastPlanetsMoved);
|
|
86
|
+
}
|
|
87
|
+
if (this.effect.influence) {
|
|
88
|
+
return this.getPlayerMoves();
|
|
89
|
+
}
|
|
90
|
+
return [];
|
|
91
|
+
};
|
|
92
|
+
Object.defineProperty(WinInfluenceRule.prototype, "planets", {
|
|
93
|
+
get: function () {
|
|
94
|
+
var _this = this;
|
|
95
|
+
var planets = this.material(MaterialType_1.MaterialType.InfluenceDisc)
|
|
96
|
+
.location(LocationType_1.LocationType.PlanetBoardInfluenceDiscSpace)
|
|
97
|
+
.filter(function (item) {
|
|
98
|
+
if (_this.effect.except)
|
|
99
|
+
return item.id !== _this.effect.except;
|
|
100
|
+
if (_this.effect.differentPlanet)
|
|
101
|
+
return !_this.isAlreadyPlayed(item.id);
|
|
102
|
+
return true;
|
|
103
|
+
});
|
|
104
|
+
if (!planets.length)
|
|
105
|
+
return planets;
|
|
106
|
+
if (this.effect.fromCenter) {
|
|
107
|
+
return this.fromCenterPlanets(planets);
|
|
108
|
+
}
|
|
109
|
+
else if (this.effect.opponentSide) {
|
|
110
|
+
return this.opponentSidePlanets(planets);
|
|
111
|
+
}
|
|
112
|
+
else if (this.effect.influence) {
|
|
113
|
+
return this.influencePlanet(planets);
|
|
114
|
+
}
|
|
115
|
+
return planets;
|
|
116
|
+
},
|
|
117
|
+
enumerable: false,
|
|
118
|
+
configurable: true
|
|
119
|
+
});
|
|
120
|
+
WinInfluenceRule.prototype.patternPlanet = function () {
|
|
121
|
+
var e_1, _a;
|
|
122
|
+
var _this = this;
|
|
123
|
+
var _b;
|
|
124
|
+
var pattern = this.effect.pattern;
|
|
125
|
+
var planets = this.planets;
|
|
126
|
+
var movedPlanets = (_b = this.remind(Memory_1.Memory.Pattern)) !== null && _b !== void 0 ? _b : [];
|
|
127
|
+
if (!pattern)
|
|
128
|
+
return [];
|
|
129
|
+
var moves = [];
|
|
130
|
+
var possiblePatterns = this.computePossiblePatterns().filter(function (patternType) {
|
|
131
|
+
if (!movedPlanets.length)
|
|
132
|
+
return true;
|
|
133
|
+
return movedPlanets.every(function (m) { return patternType.some(function (p) { return p.influence === m.influence && p.count === m.count; }); });
|
|
134
|
+
});
|
|
135
|
+
var _loop_1 = function (planetIndex) {
|
|
136
|
+
var material = planets.index(planetIndex);
|
|
137
|
+
var item = planets.getItem(planetIndex);
|
|
138
|
+
if (movedPlanets.some(function (patternType) { return patternType.influence === item.id; }))
|
|
139
|
+
return "continue";
|
|
140
|
+
var planetPossiblePatterns = possiblePatterns
|
|
141
|
+
.filter(function (patternType) { return patternType.some(function (p) { return p.influence === item.id; }); })
|
|
142
|
+
.map(function (patternType) { return patternType.find(function (p) { return p.influence === item.id; }); });
|
|
143
|
+
moves.push.apply(moves, __spreadArray([], __read(planetPossiblePatterns.map(function (type) {
|
|
144
|
+
return material.moveItem(__assign(__assign({}, item.location), { x: _this.getPositionForQuantity(item, type.count) }));
|
|
145
|
+
})), false));
|
|
146
|
+
};
|
|
147
|
+
try {
|
|
148
|
+
for (var _c = __values(planets.getIndexes()), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
149
|
+
var planetIndex = _d.value;
|
|
150
|
+
_loop_1(planetIndex);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
154
|
+
finally {
|
|
155
|
+
try {
|
|
156
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
157
|
+
}
|
|
158
|
+
finally { if (e_1) throw e_1.error; }
|
|
159
|
+
}
|
|
160
|
+
return moves;
|
|
161
|
+
};
|
|
162
|
+
WinInfluenceRule.prototype.computePossiblePatterns = function () {
|
|
163
|
+
var pattern = this.effect.pattern;
|
|
164
|
+
if (!pattern)
|
|
165
|
+
return [];
|
|
166
|
+
var patterns = [];
|
|
167
|
+
for (var i = 1; i <= Influence_1.influences.length - (pattern.length - 1); i++) {
|
|
168
|
+
var patternInfluences = Influence_1.influences.slice(i - 1, i + pattern.length - 1);
|
|
169
|
+
patterns.push(patternInfluences.map(function (i, index) { return ({ influence: i, count: pattern[index] }); }));
|
|
170
|
+
}
|
|
171
|
+
return patterns;
|
|
172
|
+
};
|
|
173
|
+
WinInfluenceRule.prototype.influencePlanet = function (planets) {
|
|
174
|
+
return planets.id(this.effect.influence);
|
|
175
|
+
};
|
|
176
|
+
WinInfluenceRule.prototype.opponentSidePlanets = function (planets) {
|
|
177
|
+
var _this = this;
|
|
178
|
+
var opponentSidePlanets = planets.filter(function (planet) { return (_this.playerHelper.team === TeamColor_1.TeamColor.White ? planet.location.x < 0 : planet.location.x > 0); });
|
|
179
|
+
if (!opponentSidePlanets.length)
|
|
180
|
+
return opponentSidePlanets;
|
|
181
|
+
if (this.effect.influence)
|
|
182
|
+
return opponentSidePlanets.id(this.effect.influence);
|
|
183
|
+
return opponentSidePlanets;
|
|
184
|
+
};
|
|
185
|
+
WinInfluenceRule.prototype.fromCenterPlanets = function (planets) {
|
|
186
|
+
var centeredPlanets = planets.filter(function (planet) { return planet.location.x === 0; });
|
|
187
|
+
if (!centeredPlanets.length)
|
|
188
|
+
return centeredPlanets;
|
|
189
|
+
if (this.effect.influence)
|
|
190
|
+
return centeredPlanets.id(this.effect.influence);
|
|
191
|
+
return centeredPlanets;
|
|
192
|
+
};
|
|
193
|
+
WinInfluenceRule.prototype.getPositionAfterPull = function (item, effect) {
|
|
194
|
+
var _a;
|
|
195
|
+
if (effect.times) {
|
|
196
|
+
var positions = [];
|
|
197
|
+
for (var i = 1; i <= effect.times; i++) {
|
|
198
|
+
var newPosition = item.location.x + i;
|
|
199
|
+
if (this.player === TeamColor_1.TeamColor.Black && newPosition > 4)
|
|
200
|
+
break;
|
|
201
|
+
if (this.player === TeamColor_1.TeamColor.White && newPosition < -4)
|
|
202
|
+
break;
|
|
203
|
+
positions.push(newPosition);
|
|
204
|
+
}
|
|
205
|
+
return positions;
|
|
206
|
+
}
|
|
207
|
+
return [this.getPositionForQuantity(item, (_a = effect.quantity) !== null && _a !== void 0 ? _a : 1)];
|
|
208
|
+
};
|
|
209
|
+
WinInfluenceRule.prototype.getPositionForQuantity = function (item, quantity) {
|
|
210
|
+
if (this.player === TeamColor_1.TeamColor.Black) {
|
|
211
|
+
return Math.min(4, item.location.x + quantity);
|
|
212
|
+
}
|
|
213
|
+
return Math.max(-4, item.location.x - quantity);
|
|
214
|
+
};
|
|
215
|
+
WinInfluenceRule.prototype.getPlayerMoves = function () {
|
|
216
|
+
var e_2, _a;
|
|
217
|
+
var effect = this.effect;
|
|
218
|
+
var planets = this.planets;
|
|
219
|
+
if (this.effect.pattern) {
|
|
220
|
+
return this.patternPlanet();
|
|
221
|
+
}
|
|
222
|
+
var moves = [];
|
|
223
|
+
var _loop_2 = function (index) {
|
|
224
|
+
var item = planets.getItem(index);
|
|
225
|
+
var positions = this_1.getPositionAfterPull(item, effect);
|
|
226
|
+
moves.push.apply(moves, __spreadArray([], __read(positions.map(function (x) {
|
|
227
|
+
return planets.index(index).moveItem(__assign(__assign({}, item.location), { x: x }));
|
|
228
|
+
})), false));
|
|
229
|
+
};
|
|
230
|
+
var this_1 = this;
|
|
231
|
+
try {
|
|
232
|
+
for (var _b = __values(planets.getIndexes()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
233
|
+
var index = _c.value;
|
|
234
|
+
_loop_2(index);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
238
|
+
finally {
|
|
239
|
+
try {
|
|
240
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
241
|
+
}
|
|
242
|
+
finally { if (e_2) throw e_2.error; }
|
|
243
|
+
}
|
|
244
|
+
return moves;
|
|
245
|
+
};
|
|
246
|
+
WinInfluenceRule.prototype.beforeItemMove = function (move) {
|
|
247
|
+
if (!(0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.InfluenceDisc)(move) || move.location.type !== LocationType_1.LocationType.PlanetBoardInfluenceDiscSpace)
|
|
248
|
+
return [];
|
|
249
|
+
var planet = this.material(MaterialType_1.MaterialType.InfluenceDisc).index(move.itemIndex);
|
|
250
|
+
var item = planet.getItem();
|
|
251
|
+
this.memorize(Memory_1.Memory.LastPlanetsMoved, function (planets) {
|
|
252
|
+
if (planets === void 0) { planets = []; }
|
|
253
|
+
return planets.concat(item.id);
|
|
254
|
+
});
|
|
255
|
+
var moves = [];
|
|
256
|
+
var effect = this.effect;
|
|
257
|
+
if (Math.abs(move.location.x) === 4) {
|
|
258
|
+
var helper = new EndGameHelper_1.EndGameHelper(this.game);
|
|
259
|
+
var planets = this.material(MaterialType_1.MaterialType.InfluenceDisc).index(__spreadArray(__spreadArray([], __read(helper.getTeamPlanet(this.playerHelper.team).getIndexes()), false), [planet.getIndex()], false));
|
|
260
|
+
moves.push.apply(moves, __spreadArray([], __read(planet.moveItems({
|
|
261
|
+
type: LocationType_1.LocationType.TeamPlanets,
|
|
262
|
+
player: this.playerHelper.team
|
|
263
|
+
})), false));
|
|
264
|
+
if (helper.willEnd(this.playerHelper.team, planets)) {
|
|
265
|
+
moves.push(this.endGame());
|
|
266
|
+
return moves;
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
moves.push.apply(moves, __spreadArray([], __read(new BonusHelper_1.BonusHelper(this.game).applyInfluenceBonus(item.id)), false));
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
if (effect.times) {
|
|
273
|
+
var consumed = move.location.x - item.location.x;
|
|
274
|
+
effect.times -= consumed;
|
|
275
|
+
if (effect.times > 0)
|
|
276
|
+
return moves;
|
|
277
|
+
}
|
|
278
|
+
else if (effect.pattern) {
|
|
279
|
+
this.memorize(Memory_1.Memory.Pattern, function (patternTypes) {
|
|
280
|
+
if (patternTypes === void 0) { patternTypes = []; }
|
|
281
|
+
return patternTypes.concat({ influence: item.id, count: Math.abs(move.location.x - item.location.x) });
|
|
282
|
+
});
|
|
283
|
+
var patternMoves = this.patternPlanet();
|
|
284
|
+
if (patternMoves.length > 0 && patternMoves.length <= effect.pattern.length - 1) {
|
|
285
|
+
moves.push(this.patternPlanet()[0]);
|
|
286
|
+
return moves;
|
|
287
|
+
}
|
|
288
|
+
if (patternMoves.length > 0)
|
|
289
|
+
return moves;
|
|
290
|
+
}
|
|
291
|
+
this.removeFirstEffect();
|
|
292
|
+
moves.push.apply(moves, __spreadArray([], __read(this.afterEffectPlayed()), false));
|
|
293
|
+
return moves;
|
|
294
|
+
};
|
|
295
|
+
WinInfluenceRule.prototype.isAlreadyPlayed = function (influence) {
|
|
296
|
+
var _a;
|
|
297
|
+
return (_a = this.lastPlanetsMoved) === null || _a === void 0 ? void 0 : _a.includes(influence);
|
|
298
|
+
};
|
|
299
|
+
WinInfluenceRule.prototype.isPossible = function () {
|
|
300
|
+
return this.planets.length > 0;
|
|
301
|
+
};
|
|
302
|
+
Object.defineProperty(WinInfluenceRule.prototype, "lastPlanetsMoved", {
|
|
303
|
+
get: function () {
|
|
304
|
+
return this.remind(Memory_1.Memory.LastPlanetsMoved);
|
|
305
|
+
},
|
|
306
|
+
enumerable: false,
|
|
307
|
+
configurable: true
|
|
308
|
+
});
|
|
309
|
+
WinInfluenceRule.prototype.setExtraData = function (_extraData) {
|
|
310
|
+
var _a, _b;
|
|
311
|
+
var _c, _d;
|
|
312
|
+
if (_extraData.quantity) {
|
|
313
|
+
(_a = (_c = this.effect).quantity) !== null && _a !== void 0 ? _a : (_c.quantity = _extraData.quantity);
|
|
314
|
+
}
|
|
315
|
+
if (_extraData.factor) {
|
|
316
|
+
this.effect.times = _extraData.factor;
|
|
317
|
+
}
|
|
318
|
+
if (_extraData.influence) {
|
|
319
|
+
(_b = (_d = this.effect).influence) !== null && _b !== void 0 ? _b : (_d.influence = _extraData.influence);
|
|
320
|
+
}
|
|
321
|
+
};
|
|
322
|
+
WinInfluenceRule.prototype.onRuleEnd = function () {
|
|
323
|
+
this.forget(Memory_1.Memory.Pattern);
|
|
324
|
+
return [];
|
|
325
|
+
};
|
|
326
|
+
return WinInfluenceRule;
|
|
327
|
+
}(index_1.EffectRule));
|
|
328
|
+
exports.WinInfluenceRule = WinInfluenceRule;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MaterialMove } from '@gamepark/rules-api';
|
|
2
|
+
import { WinZenithiumEffect } from '../../material/effect/Effect';
|
|
3
|
+
import { EffectRule } from './index';
|
|
4
|
+
export declare class WinZenithiumRule extends EffectRule<WinZenithiumEffect> {
|
|
5
|
+
onRuleStart(): MaterialMove[];
|
|
6
|
+
setExtraData(_extraData: Record<string, unknown>): void;
|
|
7
|
+
get zenithium(): import("@gamepark/rules-api").Material<number, number, number>;
|
|
8
|
+
onRuleEnd(): never[];
|
|
9
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
18
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
19
|
+
if (!m) return o;
|
|
20
|
+
var i = m.call(o), r, ar = [], e;
|
|
21
|
+
try {
|
|
22
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
23
|
+
}
|
|
24
|
+
catch (error) { e = { error: error }; }
|
|
25
|
+
finally {
|
|
26
|
+
try {
|
|
27
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
28
|
+
}
|
|
29
|
+
finally { if (e) throw e.error; }
|
|
30
|
+
}
|
|
31
|
+
return ar;
|
|
32
|
+
};
|
|
33
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
34
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
35
|
+
if (ar || !(i in from)) {
|
|
36
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
37
|
+
ar[i] = from[i];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
41
|
+
};
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.WinZenithiumRule = void 0;
|
|
44
|
+
var LocationType_1 = require("../../material/LocationType");
|
|
45
|
+
var MaterialType_1 = require("../../material/MaterialType");
|
|
46
|
+
var Memory_1 = require("../Memory");
|
|
47
|
+
var index_1 = require("./index");
|
|
48
|
+
var WinZenithiumRule = (function (_super) {
|
|
49
|
+
__extends(WinZenithiumRule, _super);
|
|
50
|
+
function WinZenithiumRule() {
|
|
51
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
52
|
+
}
|
|
53
|
+
WinZenithiumRule.prototype.onRuleStart = function () {
|
|
54
|
+
var _a, _b;
|
|
55
|
+
var moves = _super.prototype.onRuleStart.call(this);
|
|
56
|
+
if (moves.length > 0)
|
|
57
|
+
return moves;
|
|
58
|
+
this.memorize(Memory_1.Memory.Zenithium, (_a = this.effect.quantity) !== null && _a !== void 0 ? _a : 1);
|
|
59
|
+
this.memorize(Memory_1.Memory.CurrentEffect, JSON.parse(JSON.stringify(this.effect)));
|
|
60
|
+
moves.push(this.zenithium.createItem({
|
|
61
|
+
location: {
|
|
62
|
+
type: LocationType_1.LocationType.TeamZenithium,
|
|
63
|
+
player: this.effect.opponent ? this.opponentTeam : this.playerHelper.team
|
|
64
|
+
},
|
|
65
|
+
quantity: (_b = this.effect.quantity) !== null && _b !== void 0 ? _b : 1
|
|
66
|
+
}));
|
|
67
|
+
this.removeFirstEffect();
|
|
68
|
+
moves.push.apply(moves, __spreadArray([], __read(this.afterEffectPlayed()), false));
|
|
69
|
+
return moves;
|
|
70
|
+
};
|
|
71
|
+
WinZenithiumRule.prototype.setExtraData = function (_extraData) {
|
|
72
|
+
var _a;
|
|
73
|
+
var _b;
|
|
74
|
+
if (_extraData.quantity) {
|
|
75
|
+
(_a = (_b = this.effect).quantity) !== null && _a !== void 0 ? _a : (_b.quantity = _extraData.quantity);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
Object.defineProperty(WinZenithiumRule.prototype, "zenithium", {
|
|
79
|
+
get: function () {
|
|
80
|
+
return this.material(MaterialType_1.MaterialType.ZenithiumToken).location(LocationType_1.LocationType.TeamZenithium).player(this.playerHelper.team);
|
|
81
|
+
},
|
|
82
|
+
enumerable: false,
|
|
83
|
+
configurable: true
|
|
84
|
+
});
|
|
85
|
+
WinZenithiumRule.prototype.onRuleEnd = function () {
|
|
86
|
+
this.forget(Memory_1.Memory.Zenithium);
|
|
87
|
+
this.forget(Memory_1.Memory.CurrentEffect);
|
|
88
|
+
return [];
|
|
89
|
+
};
|
|
90
|
+
return WinZenithiumRule;
|
|
91
|
+
}(index_1.EffectRule));
|
|
92
|
+
exports.WinZenithiumRule = WinZenithiumRule;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export * from './EffectRule';
|
|
2
|
+
export * from './ChoiceRule';
|
|
3
|
+
export * from './ConditionalRule';
|
|
4
|
+
export * from './DevelopTechnologyRule';
|
|
5
|
+
export * from './DiscardRule';
|
|
6
|
+
export * from './ExileRule';
|
|
7
|
+
export * from './GiveCreditRule';
|
|
8
|
+
export * from './GiveInfluenceRule';
|
|
9
|
+
export * from './GiveLeaderBadgeRule';
|
|
10
|
+
export * from './GiveZenithiumRule';
|
|
11
|
+
export * from './MobilizeRule';
|
|
12
|
+
export * from './ResetInfluenceRule';
|
|
13
|
+
export * from './SpendCreditRule';
|
|
14
|
+
export * from './TakeBonusRule';
|
|
15
|
+
export * from './TakeLeaderBadgeRule';
|
|
16
|
+
export * from './TransferRule';
|
|
17
|
+
export * from './WinCreditRule';
|
|
18
|
+
export * from './WinInfluenceRule';
|
|
19
|
+
export * from './WinZenithiumRule';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./EffectRule"), exports);
|
|
18
|
+
__exportStar(require("./ChoiceRule"), exports);
|
|
19
|
+
__exportStar(require("./ConditionalRule"), exports);
|
|
20
|
+
__exportStar(require("./DevelopTechnologyRule"), exports);
|
|
21
|
+
__exportStar(require("./DiscardRule"), exports);
|
|
22
|
+
__exportStar(require("./ExileRule"), exports);
|
|
23
|
+
__exportStar(require("./GiveCreditRule"), exports);
|
|
24
|
+
__exportStar(require("./GiveInfluenceRule"), exports);
|
|
25
|
+
__exportStar(require("./GiveLeaderBadgeRule"), exports);
|
|
26
|
+
__exportStar(require("./GiveZenithiumRule"), exports);
|
|
27
|
+
__exportStar(require("./MobilizeRule"), exports);
|
|
28
|
+
__exportStar(require("./ResetInfluenceRule"), exports);
|
|
29
|
+
__exportStar(require("./SpendCreditRule"), exports);
|
|
30
|
+
__exportStar(require("./TakeBonusRule"), exports);
|
|
31
|
+
__exportStar(require("./TakeLeaderBadgeRule"), exports);
|
|
32
|
+
__exportStar(require("./TransferRule"), exports);
|
|
33
|
+
__exportStar(require("./WinCreditRule"), exports);
|
|
34
|
+
__exportStar(require("./WinInfluenceRule"), exports);
|
|
35
|
+
__exportStar(require("./WinZenithiumRule"), exports);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Material, MaterialMove, MaterialRulesPart } from '@gamepark/rules-api';
|
|
2
|
+
import { Bonus } from '../../material/Bonus';
|
|
3
|
+
import { Effect } from '../../material/effect/Effect';
|
|
4
|
+
import { Influence } from '../../material/Influence';
|
|
5
|
+
export type TechnologyBonusResult = {
|
|
6
|
+
effect: Effect;
|
|
7
|
+
moves: MaterialMove[];
|
|
8
|
+
bonusId: Bonus;
|
|
9
|
+
};
|
|
10
|
+
export declare class BonusHelper extends MaterialRulesPart {
|
|
11
|
+
applyInfluenceBonus(influence: Influence): MaterialMove[];
|
|
12
|
+
getTechnologyBonus(token: Material): TechnologyBonusResult | undefined;
|
|
13
|
+
applyBonusEffect(bonusToken: Material): MaterialMove[];
|
|
14
|
+
getBonusEffect(bonusToken: Material): Effect | undefined;
|
|
15
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __assign = (this && this.__assign) || function () {
|
|
18
|
+
__assign = Object.assign || function(t) {
|
|
19
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
+
s = arguments[i];
|
|
21
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
+
t[p] = s[p];
|
|
23
|
+
}
|
|
24
|
+
return t;
|
|
25
|
+
};
|
|
26
|
+
return __assign.apply(this, arguments);
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.BonusHelper = void 0;
|
|
30
|
+
var rules_api_1 = require("@gamepark/rules-api");
|
|
31
|
+
var Bonuses_1 = require("../../material/Bonuses");
|
|
32
|
+
var LocationType_1 = require("../../material/LocationType");
|
|
33
|
+
var MaterialType_1 = require("../../material/MaterialType");
|
|
34
|
+
var Memory_1 = require("../Memory");
|
|
35
|
+
var BonusHelper = (function (_super) {
|
|
36
|
+
__extends(BonusHelper, _super);
|
|
37
|
+
function BonusHelper() {
|
|
38
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
39
|
+
}
|
|
40
|
+
BonusHelper.prototype.applyInfluenceBonus = function (influence) {
|
|
41
|
+
var bonusToken = this.material(MaterialType_1.MaterialType.BonusToken).location(LocationType_1.LocationType.PlanetBoardBonusSpace).locationId(influence);
|
|
42
|
+
return this.applyBonusEffect(bonusToken);
|
|
43
|
+
};
|
|
44
|
+
BonusHelper.prototype.getTechnologyBonus = function (token) {
|
|
45
|
+
var tokenItem = token.getItem();
|
|
46
|
+
if (tokenItem.location.x !== 2)
|
|
47
|
+
return;
|
|
48
|
+
var bonusToken = this.material(MaterialType_1.MaterialType.BonusToken).location(LocationType_1.LocationType.TechnologyBoardBonusSpace).parent(tokenItem.location.parent);
|
|
49
|
+
if (!bonusToken.length)
|
|
50
|
+
return;
|
|
51
|
+
return {
|
|
52
|
+
effect: this.getBonusEffect(bonusToken),
|
|
53
|
+
moves: [
|
|
54
|
+
bonusToken.moveItem({
|
|
55
|
+
type: LocationType_1.LocationType.BonusDiscard
|
|
56
|
+
})
|
|
57
|
+
],
|
|
58
|
+
bonusId: bonusToken.getItem().id
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
BonusHelper.prototype.applyBonusEffect = function (bonusToken) {
|
|
62
|
+
var moves = [];
|
|
63
|
+
var bonusEffect = this.getBonusEffect(bonusToken);
|
|
64
|
+
if (bonusEffect) {
|
|
65
|
+
moves.push(bonusToken.moveItem({
|
|
66
|
+
type: LocationType_1.LocationType.BonusDiscard
|
|
67
|
+
}));
|
|
68
|
+
var effects = this.remind(Memory_1.Memory.Effects);
|
|
69
|
+
effects.splice(1, 0, __assign(__assign({}, bonusEffect), { effectSource: {
|
|
70
|
+
type: MaterialType_1.MaterialType.BonusToken,
|
|
71
|
+
value: bonusToken.getItem().id
|
|
72
|
+
} }));
|
|
73
|
+
}
|
|
74
|
+
return moves;
|
|
75
|
+
};
|
|
76
|
+
BonusHelper.prototype.getBonusEffect = function (bonusToken) {
|
|
77
|
+
if (bonusToken.length) {
|
|
78
|
+
var bonusItem = bonusToken.getItem();
|
|
79
|
+
var bonusId = bonusItem.id;
|
|
80
|
+
return JSON.parse(JSON.stringify(Bonuses_1.Bonuses[bonusId].effect));
|
|
81
|
+
}
|
|
82
|
+
return;
|
|
83
|
+
};
|
|
84
|
+
return BonusHelper;
|
|
85
|
+
}(rules_api_1.MaterialRulesPart));
|
|
86
|
+
exports.BonusHelper = BonusHelper;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MaterialGame, MaterialMove, MaterialRulesPart } from '@gamepark/rules-api';
|
|
2
|
+
import { PlayerId } from '../../PlayerId';
|
|
3
|
+
export declare class CreditHelper extends MaterialRulesPart {
|
|
4
|
+
readonly player: PlayerId;
|
|
5
|
+
private playerHelper;
|
|
6
|
+
constructor(game: MaterialGame, player: PlayerId);
|
|
7
|
+
get creditMoney(): import("@gamepark/rules-api").MaterialMoney<number, number, number, import("../../material/Credit").Credit>;
|
|
8
|
+
spendCredit(count?: number): MaterialMove[];
|
|
9
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.CreditHelper = void 0;
|
|
19
|
+
var rules_api_1 = require("@gamepark/rules-api");
|
|
20
|
+
var Credit_1 = require("../../material/Credit");
|
|
21
|
+
var LocationType_1 = require("../../material/LocationType");
|
|
22
|
+
var MaterialType_1 = require("../../material/MaterialType");
|
|
23
|
+
var PlayerHelper_1 = require("./PlayerHelper");
|
|
24
|
+
var CreditHelper = (function (_super) {
|
|
25
|
+
__extends(CreditHelper, _super);
|
|
26
|
+
function CreditHelper(game, player) {
|
|
27
|
+
var _this = _super.call(this, game) || this;
|
|
28
|
+
_this.player = player;
|
|
29
|
+
_this.playerHelper = new PlayerHelper_1.PlayerHelper(game, player);
|
|
30
|
+
return _this;
|
|
31
|
+
}
|
|
32
|
+
Object.defineProperty(CreditHelper.prototype, "creditMoney", {
|
|
33
|
+
get: function () {
|
|
34
|
+
return this.material(MaterialType_1.MaterialType.CreditToken).money(Credit_1.credits);
|
|
35
|
+
},
|
|
36
|
+
enumerable: false,
|
|
37
|
+
configurable: true
|
|
38
|
+
});
|
|
39
|
+
CreditHelper.prototype.spendCredit = function (count) {
|
|
40
|
+
if (count === void 0) { count = 1; }
|
|
41
|
+
return this.creditMoney.removeMoney(count, { type: LocationType_1.LocationType.TeamCredit, player: this.playerHelper.team });
|
|
42
|
+
};
|
|
43
|
+
return CreditHelper;
|
|
44
|
+
}(rules_api_1.MaterialRulesPart));
|
|
45
|
+
exports.CreditHelper = CreditHelper;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MaterialGame, MaterialItem, MaterialRulesPart } from '@gamepark/rules-api';
|
|
2
|
+
import { Effect, ExpandedEffect } from '../../material/effect/Effect';
|
|
3
|
+
import { EffectType } from '../../material/effect/EffectType';
|
|
4
|
+
import { PlayerId } from '../../PlayerId';
|
|
5
|
+
import { EffectRule } from '../effect';
|
|
6
|
+
import { RuleId } from '../RuleId';
|
|
7
|
+
export declare class EffectHelper extends MaterialRulesPart {
|
|
8
|
+
readonly player: PlayerId;
|
|
9
|
+
constructor(game: MaterialGame, player: PlayerId);
|
|
10
|
+
applyCard(item: MaterialItem): import("@gamepark/rules-api").StartRule<RuleId>[];
|
|
11
|
+
applyFirstEffect(): import("@gamepark/rules-api").StartRule<RuleId>[];
|
|
12
|
+
get effect(): Effect | undefined;
|
|
13
|
+
get effects(): ExpandedEffect[];
|
|
14
|
+
get effectRuleIds(): Record<EffectType, RuleId>;
|
|
15
|
+
}
|
|
16
|
+
export declare const getEffectRule: (game: MaterialGame, effect: Effect) => EffectRule;
|