@gamepark/mythologies 0.3.0 → 0.3.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/Memory.d.ts CHANGED
@@ -1,11 +1,10 @@
1
1
  export declare enum Memory {
2
- KeepTokenPlaceSecret = 1,
3
- TrialFailure = 2,
4
- PendingEffects = 3,
5
- PendingRule = 4,
6
- OngoingEffect = 5,
7
- OncePerTurn = 6,
8
- PlayerGrid = 7,
2
+ TrialFailure = 1,
3
+ PendingEffects = 2,
4
+ PendingRule = 3,
5
+ OngoingEffect = 4,
6
+ OncePerTurn = 5,
7
+ PlayerGrid = 6,
9
8
  OdinTargetMythology = 10,
10
9
  FenrirPaid1 = 11,
11
10
  AnubisInvoke1 = 12,
package/dist/Memory.js CHANGED
@@ -3,13 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Memory = void 0;
4
4
  var Memory;
5
5
  (function (Memory) {
6
- Memory[Memory["KeepTokenPlaceSecret"] = 1] = "KeepTokenPlaceSecret";
7
- Memory[Memory["TrialFailure"] = 2] = "TrialFailure";
8
- Memory[Memory["PendingEffects"] = 3] = "PendingEffects";
9
- Memory[Memory["PendingRule"] = 4] = "PendingRule";
10
- Memory[Memory["OngoingEffect"] = 5] = "OngoingEffect";
11
- Memory[Memory["OncePerTurn"] = 6] = "OncePerTurn";
12
- Memory[Memory["PlayerGrid"] = 7] = "PlayerGrid";
6
+ Memory[Memory["TrialFailure"] = 1] = "TrialFailure";
7
+ Memory[Memory["PendingEffects"] = 2] = "PendingEffects";
8
+ Memory[Memory["PendingRule"] = 3] = "PendingRule";
9
+ Memory[Memory["OngoingEffect"] = 4] = "OngoingEffect";
10
+ Memory[Memory["OncePerTurn"] = 5] = "OncePerTurn";
11
+ Memory[Memory["PlayerGrid"] = 6] = "PlayerGrid";
13
12
  Memory[Memory["OdinTargetMythology"] = 10] = "OdinTargetMythology";
14
13
  Memory[Memory["FenrirPaid1"] = 11] = "FenrirPaid1";
15
14
  Memory[Memory["AnubisInvoke1"] = 12] = "AnubisInvoke1";
@@ -1,4 +1,4 @@
1
- import { CompetitiveScore, CustomMove, FillGapStrategy, ItemMove, MaterialGame, MaterialItem, MaterialMove, PositiveSequenceStrategy, SecretMaterialRules, StackingStrategy, TimeLimit } from '@gamepark/rules-api';
1
+ import { CompetitiveScore, CustomMove, FillGapStrategy, ItemMove, MaterialGame, MaterialItem, MaterialMove, MoveItem, PositiveSequenceStrategy, SecretMaterialRules, StackingStrategy, TimeLimit } from '@gamepark/rules-api';
2
2
  import { LocationType } from './material/LocationType';
3
3
  import { MaterialType } from './material/MaterialType';
4
4
  import { PlayerColor } from './PlayerColor';
@@ -128,6 +128,7 @@ export declare class MythologiesRules extends SecretMaterialRules<PlayerColor, M
128
128
  };
129
129
  };
130
130
  keepMoveSecret(move: MaterialMove): boolean;
131
+ isPlayerDestiny(move: MoveItem): boolean;
131
132
  beforeItemMove(move: ItemMove): never[];
132
133
  protected onCustomMove(move: CustomMove): MaterialMove<number, number, number, number>[];
133
134
  getAutomaticMoves(): MaterialMove<number, number, number, number>[];
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.MythologiesRules = void 0;
19
19
  var rules_api_1 = require("@gamepark/rules-api");
20
20
  var CustomMoveType_1 = require("./CustomMoveType");
21
+ var Destiny_1 = require("./material/Destiny");
21
22
  var Entity_1 = require("./material/Entity");
22
23
  var Effect_1 = require("./material/entity/Effect");
23
24
  var LocationType_1 = require("./material/LocationType");
@@ -158,9 +159,16 @@ var MythologiesRules = (function (_super) {
158
159
  return _this;
159
160
  }
160
161
  MythologiesRules.prototype.keepMoveSecret = function (move) {
162
+ var _a;
161
163
  return ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.DraftToken)(move) &&
162
164
  move.location.type === LocationType_1.LocationType.OnEntityCard &&
163
- this.remind(Memory_1.Memory.KeepTokenPlaceSecret, this.material(MaterialType_1.MaterialType.DraftToken).getItem(move.itemIndex).id.back) === true);
165
+ ((_a = this.game.rule) === null || _a === void 0 ? void 0 : _a.id) === RuleId_1.RuleId.PlaceToken &&
166
+ this.isPlayerDestiny(move));
167
+ };
168
+ MythologiesRules.prototype.isPlayerDestiny = function (move) {
169
+ var player = this.material(MaterialType_1.MaterialType.DraftToken).getItem(move.itemIndex).id.back;
170
+ var entity = this.material(MaterialType_1.MaterialType.EntityCard).getItem(move.location.parent);
171
+ return new Destiny_1.Destiny(this.game).getMythologyBoard(player).getIndex() === entity.location.parent;
164
172
  };
165
173
  MythologiesRules.prototype.beforeItemMove = function (move) {
166
174
  if (!this.game.rule)
@@ -58,7 +58,7 @@ var ChooseDraftTokenRule = (function (_super) {
58
58
  .location(LocationType_1.LocationType.PlayerHand)
59
59
  .id(function (id) { return id.front === true; });
60
60
  var playersHavingToTake = this.game.players.filter(function (player) { return takeTokens.player(player).length > destinyLeft; });
61
- return playersHavingToTake.map(function (player) { return takeTokens.player(player).deck().dealOne(_this.getTokenDestination(player)); });
61
+ return playersHavingToTake.map(function (player) { return takeTokens.player(player).moveItem(_this.getTokenDestination(player)); });
62
62
  };
63
63
  ChooseDraftTokenRule.prototype.getActivePlayerLegalMoves = function (player) {
64
64
  return this.material(MaterialType_1.MaterialType.DraftToken).location(LocationType_1.LocationType.PlayerHand).player(player).moveItems(this.getTokenDestination(player));
@@ -9,5 +9,4 @@ export declare class PlaceTokenRule extends SimultaneousRule {
9
9
  getTopDeckCreature(mythology: Mythology): number;
10
10
  afterItemMove(move: ItemMove): import("@gamepark/rules-api").EndPlayerTurn<PlayerColor>[];
11
11
  getMovesAfterPlayersDone(): import("@gamepark/rules-api").StartRule<RuleId.DrawDestinyCard>[] | (import("@gamepark/rules-api").MoveItem<number, number, number> | import("@gamepark/rules-api").StartPlayerTurn<number, RuleId.PlaceCards>)[];
12
- onRuleEnd(): never[];
13
12
  }
@@ -75,9 +75,6 @@ var PlaceTokenRule = (function (_super) {
75
75
  if (legalMoves.length === 1) {
76
76
  moves.push(legalMoves[0]);
77
77
  }
78
- else {
79
- this.memorize(Memory_1.Memory.KeepTokenPlaceSecret, true, player);
80
- }
81
78
  }
82
79
  }
83
80
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
@@ -113,7 +110,7 @@ var PlaceTokenRule = (function (_super) {
113
110
  return this.material(MaterialType_1.MaterialType.EntityCard).location(LocationType_1.LocationType.CreaturesDeck).locationId(mythology).deck().getIndex();
114
111
  };
115
112
  PlaceTokenRule.prototype.afterItemMove = function (move) {
116
- if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.DraftToken)(move)) {
113
+ if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.DraftToken)(move) && move.location.type === LocationType_1.LocationType.OnEntityCard) {
117
114
  var player = this.material(MaterialType_1.MaterialType.DraftToken).getItem(move.itemIndex).id.back;
118
115
  return [this.endPlayerTurn(player)];
119
116
  }
@@ -132,10 +129,6 @@ var PlaceTokenRule = (function (_super) {
132
129
  ], false);
133
130
  }
134
131
  };
135
- PlaceTokenRule.prototype.onRuleEnd = function () {
136
- this.forget(Memory_1.Memory.KeepTokenPlaceSecret);
137
- return [];
138
- };
139
132
  return PlaceTokenRule;
140
133
  }(rules_api_1.SimultaneousRule));
141
134
  exports.PlaceTokenRule = PlaceTokenRule;
@@ -9,6 +9,7 @@ export declare class SupayEffectRule extends PlayerEffectRule {
9
9
  getCreaturesInLine(): Material<number, number, number>;
10
10
  getRules(): (SupayMoveRule | SupaySacrificeRule)[];
11
11
  getPlayerMoves(): MaterialMove[];
12
+ beforeItemMove(move: ItemMove): MaterialMove<number, number, number, number>[];
12
13
  afterItemMove(move: ItemMove): MaterialMove<number, number, number, number>[];
13
14
  }
14
15
  export declare class SupaySacrificeRule extends SacrificeEffectRule {
@@ -48,6 +48,9 @@ var SupayEffectRule = (function (_super) {
48
48
  SupayEffectRule.prototype.getPlayerMoves = function () {
49
49
  return this.getRules().flatMap(function (rule) { return rule.getPlayerMoves(); });
50
50
  };
51
+ SupayEffectRule.prototype.beforeItemMove = function (move) {
52
+ return this.getRules().flatMap(function (rule) { return rule.beforeItemMove(move); });
53
+ };
51
54
  SupayEffectRule.prototype.afterItemMove = function (move) {
52
55
  return this.getRules().flatMap(function (rule) { return rule.afterItemMove(move); });
53
56
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gamepark/mythologies",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "The rules of Mythologies adapted for Game Park",
5
5
  "sideEffects": false,
6
6
  "main": "dist/index.js",
@@ -29,5 +29,5 @@
29
29
  "i18next": "^22.0.3",
30
30
  "lodash": "^4.17.21"
31
31
  },
32
- "gitHead": "040c56993fd93fc1fa5978d53414ee6fa9b79b2f"
32
+ "gitHead": "9e3481a061f2f707eb6ed6c340dd043ae264d6ad"
33
33
  }