@gamepark/mythologies 0.4.1 → 0.5.0

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.
Files changed (61) hide show
  1. package/dist/Memory.d.ts +9 -7
  2. package/dist/Memory.js +9 -7
  3. package/dist/MythologiesRules.d.ts +41 -33
  4. package/dist/MythologiesRules.js +8 -0
  5. package/dist/MythologiesSetup.js +1 -1
  6. package/dist/material/Mythology.d.ts +0 -1
  7. package/dist/material/Mythology.js +1 -3
  8. package/dist/material/Pantheon.d.ts +1 -0
  9. package/dist/material/Pantheon.js +5 -0
  10. package/dist/material/entity/Effect.d.ts +2 -2
  11. package/dist/material/entity/Effect.js +1 -4
  12. package/dist/material/entity/MoveEffectRule.d.ts +4 -1
  13. package/dist/material/entity/MoveEffectRule.js +24 -5
  14. package/dist/material/entity/PlaceCardEffectRule.js +4 -27
  15. package/dist/material/entity/SacrificeEffectRule.d.ts +1 -1
  16. package/dist/material/entity/SacrificeEffectRule.js +2 -1
  17. package/dist/material/entity/SimultaneousMoveEffectRule.d.ts +8 -2
  18. package/dist/material/entity/SimultaneousMoveEffectRule.js +34 -6
  19. package/dist/material/entity/celtic/Dullahan.js +7 -1
  20. package/dist/material/entity/celtic/Leprechaun.js +7 -1
  21. package/dist/material/entity/celtic/Selkie.js +12 -1
  22. package/dist/rules/RuleId.d.ts +37 -33
  23. package/dist/rules/RuleId.js +37 -33
  24. package/dist/rules/effects/CentaurEffectRule.d.ts +5 -3
  25. package/dist/rules/effects/CentaurEffectRule.js +64 -16
  26. package/dist/rules/effects/CondorEffectRule.d.ts +1 -1
  27. package/dist/rules/effects/CondorEffectRule.js +5 -1
  28. package/dist/rules/effects/DullahanEffectRule.d.ts +11 -0
  29. package/dist/rules/effects/DullahanEffectRule.js +73 -0
  30. package/dist/rules/effects/FenrirEffectRule.js +2 -1
  31. package/dist/rules/effects/GarudaEffectRule.d.ts +1 -1
  32. package/dist/rules/effects/GarudaEffectRule.js +3 -2
  33. package/dist/rules/effects/GorgonEffectRule.d.ts +1 -1
  34. package/dist/rules/effects/GorgonEffectRule.js +2 -26
  35. package/dist/rules/effects/HadesEffectRule.d.ts +8 -4
  36. package/dist/rules/effects/HadesEffectRule.js +12 -50
  37. package/dist/rules/effects/IdloziEffectRule.d.ts +2 -2
  38. package/dist/rules/effects/IdloziEffectRule.js +4 -1
  39. package/dist/rules/effects/IllapaEffectRule.d.ts +1 -1
  40. package/dist/rules/effects/IllapaEffectRule.js +1 -1
  41. package/dist/rules/effects/JiangshiEffectRule.d.ts +1 -1
  42. package/dist/rules/effects/JiangshiEffectRule.js +2 -26
  43. package/dist/rules/effects/LeprechaunEffectRule.d.ts +9 -0
  44. package/dist/rules/effects/LeprechaunEffectRule.js +49 -0
  45. package/dist/rules/effects/MultipleSimultaneousMoveEffectRule.d.ts +13 -0
  46. package/dist/rules/effects/MultipleSimultaneousMoveEffectRule.js +160 -0
  47. package/dist/rules/effects/RaEffectRule.d.ts +8 -4
  48. package/dist/rules/effects/RaEffectRule.js +12 -50
  49. package/dist/rules/effects/SelkieEffectRule.d.ts +8 -0
  50. package/dist/rules/effects/SelkieEffectRule.js +44 -0
  51. package/dist/rules/effects/ShivaEffectRule.d.ts +2 -2
  52. package/dist/rules/effects/ShivaEffectRule.js +8 -32
  53. package/dist/rules/effects/SphinxEffectRule.d.ts +2 -2
  54. package/dist/rules/effects/SphinxEffectRule.js +4 -1
  55. package/dist/rules/effects/TianlongEffectRule.d.ts +2 -3
  56. package/dist/rules/effects/TianlongEffectRule.js +33 -39
  57. package/dist/rules/effects/VetalaEffectRule.d.ts +3 -2
  58. package/dist/rules/effects/VetalaEffectRule.js +10 -5
  59. package/dist/rules/effects/ViracochaEffectRule.d.ts +1 -1
  60. package/dist/rules/effects/ViracochaEffectRule.js +2 -26
  61. package/package.json +2 -2
@@ -52,7 +52,6 @@ var __values = (this && this.__values) || function(o) {
52
52
  };
53
53
  Object.defineProperty(exports, "__esModule", { value: true });
54
54
  exports.TianlongOpponentsEffectRule = exports.TianlongEffectRule = void 0;
55
- var rules_api_1 = require("@gamepark/rules-api");
56
55
  var CustomMoveType_1 = require("../../CustomMoveType");
57
56
  var MoveEffectRule_1 = require("../../material/entity/MoveEffectRule");
58
57
  var SimultaneousMoveEffectRule_1 = require("../../material/entity/SimultaneousMoveEffectRule");
@@ -74,50 +73,44 @@ var TianlongEffectRule = (function (_super) {
74
73
  }
75
74
  return moves;
76
75
  };
77
- TianlongEffectRule.prototype.beforeItemMove = function (move) {
76
+ TianlongEffectRule.prototype.onCardMoved = function (move) {
78
77
  var e_1, _a;
79
- if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.EntityCard)(move) && move.location.player === this.player) {
80
- var _b = this.material(MaterialType_1.MaterialType.EntityCard).getItem(move.itemIndex).location, x = _b.x, y = _b.y;
81
- this.memorize(Memory_1.Memory.TianlongVector, [
82
- { x: x, y: y },
83
- { x: move.location.x, y: move.location.y }
84
- ]);
85
- var opponentsEffectRule = new TianlongOpponentsEffectRule(this.game);
86
- var affectedPlayers = opponentsEffectRule.getAffectedPlayers();
87
- var playersWithChoice = [];
88
- var moves = [new Pantheon_1.Pantheon(this.game, this.player).spendGems(1)];
89
- try {
90
- for (var affectedPlayers_1 = __values(affectedPlayers), affectedPlayers_1_1 = affectedPlayers_1.next(); !affectedPlayers_1_1.done; affectedPlayers_1_1 = affectedPlayers_1.next()) {
91
- var player = affectedPlayers_1_1.value;
92
- var legalMoves = opponentsEffectRule.getActivePlayerLegalMoves(player);
93
- if (legalMoves.length === 1) {
94
- moves.push(legalMoves[0]);
95
- }
96
- else {
97
- playersWithChoice.push(player);
98
- }
78
+ var _b = this.material(MaterialType_1.MaterialType.EntityCard).getItem(move.itemIndex).location, x = _b.x, y = _b.y;
79
+ this.memorize(Memory_1.Memory.TianlongVector, [
80
+ { x: x, y: y },
81
+ { x: move.location.x, y: move.location.y }
82
+ ]);
83
+ var opponentsEffectRule = new TianlongOpponentsEffectRule(this.game);
84
+ var affectedPlayers = opponentsEffectRule.getAffectedPlayers();
85
+ var playersWithChoice = [];
86
+ var moves = [new Pantheon_1.Pantheon(this.game, this.player).spendGems(1)];
87
+ try {
88
+ for (var affectedPlayers_1 = __values(affectedPlayers), affectedPlayers_1_1 = affectedPlayers_1.next(); !affectedPlayers_1_1.done; affectedPlayers_1_1 = affectedPlayers_1.next()) {
89
+ var player = affectedPlayers_1_1.value;
90
+ var legalMoves = opponentsEffectRule.getActivePlayerLegalMoves(player);
91
+ if (legalMoves.length === 1) {
92
+ moves.push(legalMoves[0]);
99
93
  }
100
- }
101
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
102
- finally {
103
- try {
104
- if (affectedPlayers_1_1 && !affectedPlayers_1_1.done && (_a = affectedPlayers_1.return)) _a.call(affectedPlayers_1);
94
+ else {
95
+ playersWithChoice.push(player);
105
96
  }
106
- finally { if (e_1) throw e_1.error; }
107
97
  }
108
- if (playersWithChoice.length) {
109
- moves.push(this.startSimultaneousRule(RuleId_1.RuleId.TianlongOpponentsEffect, playersWithChoice));
110
- }
111
- else {
112
- this.forget(Memory_1.Memory.TianlongVector);
113
- moves.push.apply(moves, __spreadArray([], __read(this.endEffect()), false));
98
+ }
99
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
100
+ finally {
101
+ try {
102
+ if (affectedPlayers_1_1 && !affectedPlayers_1_1.done && (_a = affectedPlayers_1.return)) _a.call(affectedPlayers_1);
114
103
  }
115
- return moves;
104
+ finally { if (e_1) throw e_1.error; }
116
105
  }
117
- return [];
118
- };
119
- TianlongEffectRule.prototype.onCardMoved = function () {
120
- return [];
106
+ if (playersWithChoice.length) {
107
+ moves.push(this.startSimultaneousRule(RuleId_1.RuleId.TianlongOpponentsEffect, playersWithChoice));
108
+ }
109
+ else {
110
+ this.forget(Memory_1.Memory.TianlongVector);
111
+ moves.push(this.customMove(CustomMoveType_1.CustomMoveType.EndEffect));
112
+ }
113
+ return moves;
121
114
  };
122
115
  return TianlongEffectRule;
123
116
  }(MoveEffectRule_1.MoveEffectRule));
@@ -140,6 +133,7 @@ var TianlongOpponentsEffectRule = (function (_super) {
140
133
  return space.x === x && space.y === y;
141
134
  };
142
135
  TianlongOpponentsEffectRule.prototype.onRuleEnd = function () {
136
+ this.forget(Memory_1.Memory.EntityMoved);
143
137
  this.forget(Memory_1.Memory.TianlongVector);
144
138
  return [];
145
139
  };
@@ -1,4 +1,4 @@
1
- import { MaterialItem, MaterialMove } from '@gamepark/rules-api';
1
+ import { MaterialItem, MaterialMove, MoveItem } from '@gamepark/rules-api';
2
2
  import { MoveEffectRule } from '../../material/entity/MoveEffectRule';
3
3
  import { RuleId } from '../RuleId';
4
4
  export declare class VetalaEffectRule extends MoveEffectRule {
@@ -6,6 +6,7 @@ export declare class VetalaEffectRule extends MoveEffectRule {
6
6
  onRuleStart(): MaterialMove[];
7
7
  getPlayerMoves(): MaterialMove<number, number, number, number>[];
8
8
  getAvailableDestinations(card: MaterialItem, cardIndex: number): import("@gamepark/rules-api").XYCoordinates[];
9
- onCardMoved(): MaterialMove[];
9
+ onCardMoved(): import("@gamepark/rules-api").CustomMove<number>[];
10
+ onCardSacrificed(move: MoveItem): import("@gamepark/rules-api").CustomMove<number>[];
10
11
  onRuleEnd(): never[];
11
12
  }
@@ -33,11 +33,11 @@ var VetalaEffectRule = (function (_super) {
33
33
  VetalaEffectRule.prototype.onRuleStart = function () {
34
34
  var entitiesSacrificed = this.material(MaterialType_1.MaterialType.EntityCard).location(LocationType_1.LocationType.PlayerDiscard).player(this.player).length;
35
35
  if (entitiesSacrificed) {
36
- this.memorize(Memory_1.Memory.VetalaCount, entitiesSacrificed);
36
+ this.memorize(Memory_1.Memory.EffectCount, entitiesSacrificed);
37
37
  return [];
38
38
  }
39
39
  else {
40
- return this.endEffect();
40
+ return [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
41
41
  }
42
42
  };
43
43
  VetalaEffectRule.prototype.getPlayerMoves = function () {
@@ -47,11 +47,16 @@ var VetalaEffectRule = (function (_super) {
47
47
  return _super.prototype.getAvailableDestinations.call(this, card, cardIndex).filter(function (space) { return (0, rules_api_1.areAdjacentSquares)(card.location, space); });
48
48
  };
49
49
  VetalaEffectRule.prototype.onCardMoved = function () {
50
- var count = this.memorize(Memory_1.Memory.VetalaCount, function (count) { return count - 1; });
51
- return count > 0 ? [] : this.endEffect();
50
+ var count = this.memorize(Memory_1.Memory.EffectCount, function (count) { return count - 1; });
51
+ return count > 0 ? [] : [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
52
+ };
53
+ VetalaEffectRule.prototype.onCardSacrificed = function (move) {
54
+ _super.prototype.onCardSacrificed.call(this, move);
55
+ return this.onCardMoved();
52
56
  };
53
57
  VetalaEffectRule.prototype.onRuleEnd = function () {
54
- this.forget(Memory_1.Memory.VetalaCount);
58
+ this.forget(Memory_1.Memory.EntityMoved);
59
+ this.forget(Memory_1.Memory.EffectCount);
55
60
  return [];
56
61
  };
57
62
  return VetalaEffectRule;
@@ -3,5 +3,5 @@ import { RuleId } from '../RuleId';
3
3
  export declare class ViracochaEffectRule extends SacrificeEffectRule {
4
4
  ruleId: RuleId;
5
5
  getCardsToSacrifice(): import("@gamepark/rules-api").Material<number, number, number>;
6
- onSacrifice(): import("@gamepark/rules-api").MaterialMove<number, number, number, number>[];
6
+ onSacrifice(): (import("@gamepark/rules-api").CustomMove<number> | import("@gamepark/rules-api").CreateItem<number, number, number>)[];
7
7
  }
@@ -14,33 +14,9 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
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
17
  Object.defineProperty(exports, "__esModule", { value: true });
43
18
  exports.ViracochaEffectRule = void 0;
19
+ var CustomMoveType_1 = require("../../CustomMoveType");
44
20
  var Entity_1 = require("../../material/Entity");
45
21
  var SacrificeEffectRule_1 = require("../../material/entity/SacrificeEffectRule");
46
22
  var Pantheon_1 = require("../../material/Pantheon");
@@ -57,7 +33,7 @@ var ViracochaEffectRule = (function (_super) {
57
33
  };
58
34
  ViracochaEffectRule.prototype.onSacrifice = function () {
59
35
  var pantheon = new Pantheon_1.Pantheon(this.game, this.player);
60
- return __spreadArray([pantheon.gainGems(2)], __read(this.endEffect()), false);
36
+ return [pantheon.gainGems(2), this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
61
37
  };
62
38
  return ViracochaEffectRule;
63
39
  }(SacrificeEffectRule_1.SacrificeEffectRule));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gamepark/mythologies",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
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": "d8c1359afbcb56757b75fda229d3a030a64b4d8b"
32
+ "gitHead": "d8a6ef2a164b825fc27f47ead850ec5b7bd29c6a"
33
33
  }