@gamepark/mythologies 0.1.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 (269) hide show
  1. package/dist/CustomMoveType.d.ts +13 -0
  2. package/dist/CustomMoveType.js +13 -0
  3. package/dist/Memory.d.ts +13 -0
  4. package/dist/Memory.js +17 -0
  5. package/dist/MythologiesOptions.d.ts +12 -0
  6. package/dist/MythologiesOptions.js +14 -0
  7. package/dist/MythologiesRules.d.ts +111 -0
  8. package/dist/MythologiesRules.js +218 -0
  9. package/dist/MythologiesSetup.d.ts +17 -0
  10. package/dist/MythologiesSetup.js +161 -0
  11. package/dist/PlayerColor.d.ts +10 -0
  12. package/dist/PlayerColor.js +10 -0
  13. package/dist/index.d.ts +3 -0
  14. package/dist/index.js +9 -0
  15. package/dist/material/Destiny.d.ts +9 -0
  16. package/dist/material/Destiny.js +87 -0
  17. package/dist/material/Entity.d.ts +98 -0
  18. package/dist/material/Entity.js +99 -0
  19. package/dist/material/LocationType.d.ts +26 -0
  20. package/dist/material/LocationType.js +31 -0
  21. package/dist/material/MaterialType.d.ts +12 -0
  22. package/dist/material/MaterialType.js +16 -0
  23. package/dist/material/Mythology.d.ts +19 -0
  24. package/dist/material/Mythology.js +21 -0
  25. package/dist/material/Pantheon.d.ts +36 -0
  26. package/dist/material/Pantheon.js +357 -0
  27. package/dist/material/Trial.d.ts +22 -0
  28. package/dist/material/Trial.js +184 -0
  29. package/dist/material/entity/Effect.d.ts +91 -0
  30. package/dist/material/entity/Effect.js +115 -0
  31. package/dist/material/entity/EntityDescription.d.ts +13 -0
  32. package/dist/material/entity/EntityDescription.js +173 -0
  33. package/dist/material/entity/MoveEffectRule.d.ts +15 -0
  34. package/dist/material/entity/MoveEffectRule.js +86 -0
  35. package/dist/material/entity/PlaceCardEffectRule.d.ts +15 -0
  36. package/dist/material/entity/PlaceCardEffectRule.js +75 -0
  37. package/dist/material/entity/SacrificeEffectRule.d.ts +9 -0
  38. package/dist/material/entity/SacrificeEffectRule.js +58 -0
  39. package/dist/material/entity/SimultaneousMoveEffectRule.d.ts +13 -0
  40. package/dist/material/entity/SimultaneousMoveEffectRule.js +124 -0
  41. package/dist/material/entity/SimultaneousSacrificeEffectRule.d.ts +10 -0
  42. package/dist/material/entity/SimultaneousSacrificeEffectRule.js +57 -0
  43. package/dist/material/entity/celtic/Banshee.d.ts +2 -0
  44. package/dist/material/entity/celtic/Banshee.js +6 -0
  45. package/dist/material/entity/celtic/Brigid.d.ts +2 -0
  46. package/dist/material/entity/celtic/Brigid.js +6 -0
  47. package/dist/material/entity/celtic/Cernunnos.d.ts +2 -0
  48. package/dist/material/entity/celtic/Cernunnos.js +6 -0
  49. package/dist/material/entity/celtic/Dagda.d.ts +2 -0
  50. package/dist/material/entity/celtic/Dagda.js +6 -0
  51. package/dist/material/entity/celtic/Dryad.d.ts +2 -0
  52. package/dist/material/entity/celtic/Dryad.js +6 -0
  53. package/dist/material/entity/celtic/Dullahan.d.ts +2 -0
  54. package/dist/material/entity/celtic/Dullahan.js +6 -0
  55. package/dist/material/entity/celtic/Kelpie.d.ts +2 -0
  56. package/dist/material/entity/celtic/Kelpie.js +6 -0
  57. package/dist/material/entity/celtic/Leprechaun.d.ts +2 -0
  58. package/dist/material/entity/celtic/Leprechaun.js +6 -0
  59. package/dist/material/entity/celtic/Morrigan.d.ts +2 -0
  60. package/dist/material/entity/celtic/Morrigan.js +6 -0
  61. package/dist/material/entity/celtic/Selkie.d.ts +2 -0
  62. package/dist/material/entity/celtic/Selkie.js +6 -0
  63. package/dist/material/entity/chinese/ChangE.d.ts +2 -0
  64. package/dist/material/entity/chinese/ChangE.js +6 -0
  65. package/dist/material/entity/chinese/Fenghuang.d.ts +2 -0
  66. package/dist/material/entity/chinese/Fenghuang.js +6 -0
  67. package/dist/material/entity/chinese/Jiangshi.d.ts +2 -0
  68. package/dist/material/entity/chinese/Jiangshi.js +6 -0
  69. package/dist/material/entity/chinese/Mogwai.d.ts +2 -0
  70. package/dist/material/entity/chinese/Mogwai.js +6 -0
  71. package/dist/material/entity/chinese/Nian.d.ts +2 -0
  72. package/dist/material/entity/chinese/Nian.js +6 -0
  73. package/dist/material/entity/chinese/Nuwa.d.ts +2 -0
  74. package/dist/material/entity/chinese/Nuwa.js +6 -0
  75. package/dist/material/entity/chinese/Qilin.d.ts +2 -0
  76. package/dist/material/entity/chinese/Qilin.js +6 -0
  77. package/dist/material/entity/chinese/SunWukong.d.ts +2 -0
  78. package/dist/material/entity/chinese/SunWukong.js +6 -0
  79. package/dist/material/entity/chinese/Tianlong.d.ts +2 -0
  80. package/dist/material/entity/chinese/Tianlong.js +6 -0
  81. package/dist/material/entity/chinese/YanluoWang.d.ts +2 -0
  82. package/dist/material/entity/chinese/YanluoWang.js +6 -0
  83. package/dist/material/entity/egyptian/Anubis.d.ts +2 -0
  84. package/dist/material/entity/egyptian/Anubis.js +12 -0
  85. package/dist/material/entity/egyptian/Babai.d.ts +2 -0
  86. package/dist/material/entity/egyptian/Babai.js +12 -0
  87. package/dist/material/entity/egyptian/Beetle.d.ts +2 -0
  88. package/dist/material/entity/egyptian/Beetle.js +36 -0
  89. package/dist/material/entity/egyptian/Bennu.d.ts +2 -0
  90. package/dist/material/entity/egyptian/Bennu.js +12 -0
  91. package/dist/material/entity/egyptian/Cobra.d.ts +2 -0
  92. package/dist/material/entity/egyptian/Cobra.js +12 -0
  93. package/dist/material/entity/egyptian/Isis.d.ts +2 -0
  94. package/dist/material/entity/egyptian/Isis.js +39 -0
  95. package/dist/material/entity/egyptian/Mummy.d.ts +2 -0
  96. package/dist/material/entity/egyptian/Mummy.js +39 -0
  97. package/dist/material/entity/egyptian/Osiris.d.ts +2 -0
  98. package/dist/material/entity/egyptian/Osiris.js +71 -0
  99. package/dist/material/entity/egyptian/Ra.d.ts +2 -0
  100. package/dist/material/entity/egyptian/Ra.js +12 -0
  101. package/dist/material/entity/egyptian/Sphinx.d.ts +2 -0
  102. package/dist/material/entity/egyptian/Sphinx.js +12 -0
  103. package/dist/material/entity/greek/Athena.d.ts +2 -0
  104. package/dist/material/entity/greek/Athena.js +12 -0
  105. package/dist/material/entity/greek/Centaur.d.ts +2 -0
  106. package/dist/material/entity/greek/Centaur.js +12 -0
  107. package/dist/material/entity/greek/Chimera.d.ts +2 -0
  108. package/dist/material/entity/greek/Chimera.js +12 -0
  109. package/dist/material/entity/greek/Cyclops.d.ts +2 -0
  110. package/dist/material/entity/greek/Cyclops.js +21 -0
  111. package/dist/material/entity/greek/Gorgon.d.ts +2 -0
  112. package/dist/material/entity/greek/Gorgon.js +12 -0
  113. package/dist/material/entity/greek/Griffin.d.ts +2 -0
  114. package/dist/material/entity/greek/Griffin.js +12 -0
  115. package/dist/material/entity/greek/Hades.d.ts +2 -0
  116. package/dist/material/entity/greek/Hades.js +12 -0
  117. package/dist/material/entity/greek/Minotaur.d.ts +2 -0
  118. package/dist/material/entity/greek/Minotaur.js +12 -0
  119. package/dist/material/entity/greek/Poseidon.d.ts +2 -0
  120. package/dist/material/entity/greek/Poseidon.js +44 -0
  121. package/dist/material/entity/greek/Zeus.d.ts +2 -0
  122. package/dist/material/entity/greek/Zeus.js +39 -0
  123. package/dist/material/entity/hindu/Asura.d.ts +2 -0
  124. package/dist/material/entity/hindu/Asura.js +66 -0
  125. package/dist/material/entity/hindu/Brahma.d.ts +2 -0
  126. package/dist/material/entity/hindu/Brahma.js +36 -0
  127. package/dist/material/entity/hindu/Ganesh.d.ts +2 -0
  128. package/dist/material/entity/hindu/Ganesh.js +44 -0
  129. package/dist/material/entity/hindu/Garuda.d.ts +2 -0
  130. package/dist/material/entity/hindu/Garuda.js +12 -0
  131. package/dist/material/entity/hindu/Kinnara.d.ts +2 -0
  132. package/dist/material/entity/hindu/Kinnara.js +12 -0
  133. package/dist/material/entity/hindu/Naga.d.ts +2 -0
  134. package/dist/material/entity/hindu/Naga.js +68 -0
  135. package/dist/material/entity/hindu/Rakshasa.d.ts +2 -0
  136. package/dist/material/entity/hindu/Rakshasa.js +12 -0
  137. package/dist/material/entity/hindu/Shiva.d.ts +2 -0
  138. package/dist/material/entity/hindu/Shiva.js +12 -0
  139. package/dist/material/entity/hindu/Vetala.d.ts +2 -0
  140. package/dist/material/entity/hindu/Vetala.js +12 -0
  141. package/dist/material/entity/hindu/Vishnu.d.ts +2 -0
  142. package/dist/material/entity/hindu/Vishnu.js +71 -0
  143. package/dist/material/entity/inca/Amaru.d.ts +2 -0
  144. package/dist/material/entity/inca/Amaru.js +6 -0
  145. package/dist/material/entity/inca/Caiman.d.ts +2 -0
  146. package/dist/material/entity/inca/Caiman.js +6 -0
  147. package/dist/material/entity/inca/Condor.d.ts +2 -0
  148. package/dist/material/entity/inca/Condor.js +6 -0
  149. package/dist/material/entity/inca/Illapa.d.ts +2 -0
  150. package/dist/material/entity/inca/Illapa.js +6 -0
  151. package/dist/material/entity/inca/Inti.d.ts +2 -0
  152. package/dist/material/entity/inca/Inti.js +6 -0
  153. package/dist/material/entity/inca/MamaQucha.d.ts +2 -0
  154. package/dist/material/entity/inca/MamaQucha.js +6 -0
  155. package/dist/material/entity/inca/Pumapunku.d.ts +2 -0
  156. package/dist/material/entity/inca/Pumapunku.js +6 -0
  157. package/dist/material/entity/inca/Supay.d.ts +2 -0
  158. package/dist/material/entity/inca/Supay.js +6 -0
  159. package/dist/material/entity/inca/Ukuku.d.ts +2 -0
  160. package/dist/material/entity/inca/Ukuku.js +6 -0
  161. package/dist/material/entity/inca/Viracocha.d.ts +2 -0
  162. package/dist/material/entity/inca/Viracocha.js +6 -0
  163. package/dist/material/entity/norse/Alf.d.ts +2 -0
  164. package/dist/material/entity/norse/Alf.js +12 -0
  165. package/dist/material/entity/norse/Draugr.d.ts +2 -0
  166. package/dist/material/entity/norse/Draugr.js +12 -0
  167. package/dist/material/entity/norse/Fenrir.d.ts +2 -0
  168. package/dist/material/entity/norse/Fenrir.js +12 -0
  169. package/dist/material/entity/norse/Freya.d.ts +2 -0
  170. package/dist/material/entity/norse/Freya.js +39 -0
  171. package/dist/material/entity/norse/Jotunn.d.ts +2 -0
  172. package/dist/material/entity/norse/Jotunn.js +36 -0
  173. package/dist/material/entity/norse/Loki.d.ts +2 -0
  174. package/dist/material/entity/norse/Loki.js +36 -0
  175. package/dist/material/entity/norse/Odin.d.ts +2 -0
  176. package/dist/material/entity/norse/Odin.js +6 -0
  177. package/dist/material/entity/norse/Thor.d.ts +2 -0
  178. package/dist/material/entity/norse/Thor.js +12 -0
  179. package/dist/material/entity/norse/Troll.d.ts +2 -0
  180. package/dist/material/entity/norse/Troll.js +6 -0
  181. package/dist/material/entity/norse/Valkyrie.d.ts +2 -0
  182. package/dist/material/entity/norse/Valkyrie.js +72 -0
  183. package/dist/material/entity/zulu/Idlozi.d.ts +2 -0
  184. package/dist/material/entity/zulu/Idlozi.js +6 -0
  185. package/dist/material/entity/zulu/Impundulu.d.ts +2 -0
  186. package/dist/material/entity/zulu/Impundulu.js +6 -0
  187. package/dist/material/entity/zulu/Inkanyamba.d.ts +2 -0
  188. package/dist/material/entity/zulu/Inkanyamba.js +6 -0
  189. package/dist/material/entity/zulu/Inkosazana.d.ts +2 -0
  190. package/dist/material/entity/zulu/Inkosazana.js +6 -0
  191. package/dist/material/entity/zulu/Shembe.d.ts +2 -0
  192. package/dist/material/entity/zulu/Shembe.js +6 -0
  193. package/dist/material/entity/zulu/Tokoloshe.d.ts +2 -0
  194. package/dist/material/entity/zulu/Tokoloshe.js +6 -0
  195. package/dist/material/entity/zulu/Umvelinqangi.d.ts +2 -0
  196. package/dist/material/entity/zulu/Umvelinqangi.js +6 -0
  197. package/dist/material/entity/zulu/Unkulunkulu.d.ts +2 -0
  198. package/dist/material/entity/zulu/Unkulunkulu.js +6 -0
  199. package/dist/material/entity/zulu/Unwabu.d.ts +2 -0
  200. package/dist/material/entity/zulu/Unwabu.js +6 -0
  201. package/dist/material/entity/zulu/Werehyena.d.ts +2 -0
  202. package/dist/material/entity/zulu/Werehyena.js +6 -0
  203. package/dist/rules/ChooseDraftTokenRule.d.ts +15 -0
  204. package/dist/rules/ChooseDraftTokenRule.js +103 -0
  205. package/dist/rules/DrawDestinyCardRule.d.ts +7 -0
  206. package/dist/rules/DrawDestinyCardRule.js +116 -0
  207. package/dist/rules/EndGameRule.d.ts +5 -0
  208. package/dist/rules/EndGameRule.js +44 -0
  209. package/dist/rules/PlaceCardsRule.d.ts +13 -0
  210. package/dist/rules/PlaceCardsRule.js +192 -0
  211. package/dist/rules/PlaceTokenRule.d.ts +13 -0
  212. package/dist/rules/PlaceTokenRule.js +139 -0
  213. package/dist/rules/RuleId.d.ts +36 -0
  214. package/dist/rules/RuleId.js +40 -0
  215. package/dist/rules/UpkeepRule.d.ts +9 -0
  216. package/dist/rules/UpkeepRule.js +140 -0
  217. package/dist/rules/effects/AlfEffectRule.d.ts +10 -0
  218. package/dist/rules/effects/AlfEffectRule.js +59 -0
  219. package/dist/rules/effects/AnubisEffectRule.d.ts +9 -0
  220. package/dist/rules/effects/AnubisEffectRule.js +49 -0
  221. package/dist/rules/effects/AthenaEffectRule.d.ts +9 -0
  222. package/dist/rules/effects/AthenaEffectRule.js +104 -0
  223. package/dist/rules/effects/BabaiEffectRule.d.ts +6 -0
  224. package/dist/rules/effects/BabaiEffectRule.js +40 -0
  225. package/dist/rules/effects/BennuEffectRule.d.ts +6 -0
  226. package/dist/rules/effects/BennuEffectRule.js +35 -0
  227. package/dist/rules/effects/CentaurEffectRule.d.ts +15 -0
  228. package/dist/rules/effects/CentaurEffectRule.js +77 -0
  229. package/dist/rules/effects/ChimeraEffectRule.d.ts +8 -0
  230. package/dist/rules/effects/ChimeraEffectRule.js +51 -0
  231. package/dist/rules/effects/CobraEffectRule.d.ts +12 -0
  232. package/dist/rules/effects/CobraEffectRule.js +55 -0
  233. package/dist/rules/effects/CyclopsEffectRule.d.ts +8 -0
  234. package/dist/rules/effects/CyclopsEffectRule.js +87 -0
  235. package/dist/rules/effects/DraugrEffectRule.d.ts +11 -0
  236. package/dist/rules/effects/DraugrEffectRule.js +56 -0
  237. package/dist/rules/effects/FenrirEffectRule.d.ts +15 -0
  238. package/dist/rules/effects/FenrirEffectRule.js +132 -0
  239. package/dist/rules/effects/GarudaEffectRule.d.ts +9 -0
  240. package/dist/rules/effects/GarudaEffectRule.js +84 -0
  241. package/dist/rules/effects/GorgonEffectRule.d.ts +11 -0
  242. package/dist/rules/effects/GorgonEffectRule.js +78 -0
  243. package/dist/rules/effects/GriffinEffectRule.d.ts +9 -0
  244. package/dist/rules/effects/GriffinEffectRule.js +41 -0
  245. package/dist/rules/effects/HadesEffectRule.d.ts +5 -0
  246. package/dist/rules/effects/HadesEffectRule.js +87 -0
  247. package/dist/rules/effects/KinnaraEffectRule.d.ts +12 -0
  248. package/dist/rules/effects/KinnaraEffectRule.js +84 -0
  249. package/dist/rules/effects/MinotaurEffectRule.d.ts +9 -0
  250. package/dist/rules/effects/MinotaurEffectRule.js +39 -0
  251. package/dist/rules/effects/OdinEffectRule.d.ts +11 -0
  252. package/dist/rules/effects/OdinEffectRule.js +52 -0
  253. package/dist/rules/effects/RaEffectRule.d.ts +5 -0
  254. package/dist/rules/effects/RaEffectRule.js +87 -0
  255. package/dist/rules/effects/RakshasaEffectRule.d.ts +13 -0
  256. package/dist/rules/effects/RakshasaEffectRule.js +48 -0
  257. package/dist/rules/effects/ResolveEffectsRule.d.ts +6 -0
  258. package/dist/rules/effects/ResolveEffectsRule.js +73 -0
  259. package/dist/rules/effects/ShivaEffectRule.d.ts +10 -0
  260. package/dist/rules/effects/ShivaEffectRule.js +82 -0
  261. package/dist/rules/effects/SphinxEffectRule.d.ts +9 -0
  262. package/dist/rules/effects/SphinxEffectRule.js +47 -0
  263. package/dist/rules/effects/ThorEffectRule.d.ts +11 -0
  264. package/dist/rules/effects/ThorEffectRule.js +56 -0
  265. package/dist/rules/effects/TriggerEffectsRule.d.ts +11 -0
  266. package/dist/rules/effects/TriggerEffectsRule.js +159 -0
  267. package/dist/rules/effects/VetalaEffectRule.d.ts +11 -0
  268. package/dist/rules/effects/VetalaEffectRule.js +59 -0
  269. package/package.json +33 -0
@@ -0,0 +1,87 @@
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.Destiny = void 0;
19
+ var rules_api_1 = require("@gamepark/rules-api");
20
+ var PlayerColor_1 = require("../PlayerColor");
21
+ var LocationType_1 = require("./LocationType");
22
+ var MaterialType_1 = require("./MaterialType");
23
+ var Destiny = (function (_super) {
24
+ __extends(Destiny, _super);
25
+ function Destiny() {
26
+ return _super !== null && _super.apply(this, arguments) || this;
27
+ }
28
+ Destiny.prototype.getMythologyBoard = function (player) {
29
+ var destiny = this.material(MaterialType_1.MaterialType.DestinyCard)
30
+ .location(LocationType_1.LocationType.CurrentDestiny)
31
+ .maxBy(function (item) { return item.location.x; })
32
+ .getItem().id;
33
+ var map = this.getDestinyMap(destiny);
34
+ var y = map.findIndex(function (line) { return line.includes(player); });
35
+ var x = map[y].indexOf(player);
36
+ return this.material(MaterialType_1.MaterialType.MythologyBoard).location(function (location) { return location.x === x && location.y === y; });
37
+ };
38
+ Destiny.prototype.getMythology = function (player) {
39
+ return this.getMythologyBoard(player).getItem().id.mythology;
40
+ };
41
+ Destiny.prototype.getDestinyMap = function (destiny) {
42
+ switch (destiny) {
43
+ case 1:
44
+ return [
45
+ [PlayerColor_1.PlayerColor.Blue, PlayerColor_1.PlayerColor.Green],
46
+ [PlayerColor_1.PlayerColor.Grey, PlayerColor_1.PlayerColor.Red]
47
+ ];
48
+ case 2:
49
+ return [
50
+ [PlayerColor_1.PlayerColor.Red, PlayerColor_1.PlayerColor.Blue],
51
+ [PlayerColor_1.PlayerColor.Green, PlayerColor_1.PlayerColor.Grey]
52
+ ];
53
+ case 3:
54
+ return [
55
+ [PlayerColor_1.PlayerColor.Green, PlayerColor_1.PlayerColor.Grey],
56
+ [PlayerColor_1.PlayerColor.Red, PlayerColor_1.PlayerColor.Blue]
57
+ ];
58
+ case 4:
59
+ return [
60
+ [PlayerColor_1.PlayerColor.Grey, PlayerColor_1.PlayerColor.Red],
61
+ [PlayerColor_1.PlayerColor.Blue, PlayerColor_1.PlayerColor.Green]
62
+ ];
63
+ default:
64
+ throw new Error("Unknown destiny card: ".concat(destiny));
65
+ }
66
+ };
67
+ Destiny.prototype.getAvailableEntities = function (player) {
68
+ var tokensOnCards = this.material(MaterialType_1.MaterialType.DraftToken).location(LocationType_1.LocationType.OnEntityCard).getItems();
69
+ var cardsWithToken = tokensOnCards.map(function (item) { return item.location.parent; });
70
+ var mythology = this.getMythologyBoard(player).getIndex();
71
+ return this.material(MaterialType_1.MaterialType.EntityCard)
72
+ .location(function (l) { return l.type === LocationType_1.LocationType.SanctuaryGodSpot || l.type === LocationType_1.LocationType.SanctuaryCreatureSpot; })
73
+ .parent(mythology)
74
+ .index(function (index) { return !cardsWithToken.includes(index); });
75
+ };
76
+ Destiny.prototype.getBoardsWithoutPlayer = function () {
77
+ var _this = this;
78
+ var destiny = this.material(MaterialType_1.MaterialType.DestinyCard)
79
+ .location(LocationType_1.LocationType.CurrentDestiny)
80
+ .maxBy(function (item) { return item.location.x; })
81
+ .getItem().id;
82
+ var map = this.getDestinyMap(destiny);
83
+ return this.material(MaterialType_1.MaterialType.MythologyBoard).location(function (l) { return !_this.game.players.includes(map[l.y][l.x]); });
84
+ };
85
+ return Destiny;
86
+ }(rules_api_1.MaterialRulesPart));
87
+ exports.Destiny = Destiny;
@@ -0,0 +1,98 @@
1
+ import { Mythology } from './Mythology';
2
+ export declare enum Entity {
3
+ Zeus = 1,
4
+ Poseidon = 2,
5
+ Athena = 3,
6
+ Hades = 4,
7
+ Minotaur = 5,
8
+ Centaur = 6,
9
+ Gorgon = 7,
10
+ Cyclops = 8,
11
+ Griffin = 9,
12
+ Chimera = 10,
13
+ Odin = 11,
14
+ Thor = 12,
15
+ Loki = 13,
16
+ Freya = 14,
17
+ Draugr = 15,
18
+ Jotunn = 16,
19
+ Valkyrie = 17,
20
+ Troll = 18,
21
+ Fenrir = 19,
22
+ Alf = 20,
23
+ Ra = 21,
24
+ Osiris = 22,
25
+ Anubis = 23,
26
+ Isis = 24,
27
+ Beetle = 25,
28
+ Mummy = 26,
29
+ Sphinx = 27,
30
+ Cobra = 28,
31
+ Babai = 29,
32
+ Bennu = 30,
33
+ Brahma = 31,
34
+ Vishnu = 32,
35
+ Shiva = 33,
36
+ Ganesh = 34,
37
+ Asura = 35,
38
+ Naga = 36,
39
+ Rakshasa = 37,
40
+ Garuda = 38,
41
+ Vetala = 39,
42
+ Kinnara = 40,
43
+ Viracocha = 41,
44
+ MamaQucha = 42,
45
+ Illapa = 43,
46
+ Inti = 44,
47
+ Pumapunku = 45,
48
+ Amaru = 46,
49
+ Caiman = 47,
50
+ Condor = 48,
51
+ Supay = 49,
52
+ Ukuku = 50,
53
+ YanluoWang = 51,
54
+ SunWukong = 52,
55
+ Nuwa = 53,
56
+ ChangE = 54,
57
+ Tianlong = 55,
58
+ Qilin = 56,
59
+ Fenghuang = 57,
60
+ Mogwai = 58,
61
+ Jiangshi = 59,
62
+ Nian = 60,
63
+ Unkulunkulu = 61,
64
+ Inkosazana = 62,
65
+ Shembe = 63,
66
+ Umvelinqangi = 64,
67
+ Inkanyamba = 65,
68
+ Unwabu = 66,
69
+ Tokoloshe = 67,
70
+ Impundulu = 68,
71
+ Werehyena = 69,
72
+ Idlozi = 70,
73
+ Dagda = 71,
74
+ Brigid = 72,
75
+ Cernunnos = 73,
76
+ Morrigan = 74,
77
+ Kelpie = 75,
78
+ Banshee = 76,
79
+ Dryad = 77,
80
+ Leprechaun = 78,
81
+ Selkie = 79,
82
+ Dullahan = 80
83
+ }
84
+ export declare enum EntityType {
85
+ God = 1,
86
+ Creature = 2
87
+ }
88
+ export type EntityId = {
89
+ front?: Entity;
90
+ back: {
91
+ mythology: Mythology;
92
+ entityType: EntityType;
93
+ };
94
+ };
95
+ export declare const getEntityType: (entity: Entity) => EntityType;
96
+ export declare const isGod: (entity?: Entity) => boolean;
97
+ export declare const isCreature: (entity?: Entity) => boolean;
98
+ export declare const entityMythology: (entity: Entity) => Mythology;
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.entityMythology = exports.isCreature = exports.isGod = exports.getEntityType = exports.EntityType = exports.Entity = void 0;
4
+ var Entity;
5
+ (function (Entity) {
6
+ Entity[Entity["Zeus"] = 1] = "Zeus";
7
+ Entity[Entity["Poseidon"] = 2] = "Poseidon";
8
+ Entity[Entity["Athena"] = 3] = "Athena";
9
+ Entity[Entity["Hades"] = 4] = "Hades";
10
+ Entity[Entity["Minotaur"] = 5] = "Minotaur";
11
+ Entity[Entity["Centaur"] = 6] = "Centaur";
12
+ Entity[Entity["Gorgon"] = 7] = "Gorgon";
13
+ Entity[Entity["Cyclops"] = 8] = "Cyclops";
14
+ Entity[Entity["Griffin"] = 9] = "Griffin";
15
+ Entity[Entity["Chimera"] = 10] = "Chimera";
16
+ Entity[Entity["Odin"] = 11] = "Odin";
17
+ Entity[Entity["Thor"] = 12] = "Thor";
18
+ Entity[Entity["Loki"] = 13] = "Loki";
19
+ Entity[Entity["Freya"] = 14] = "Freya";
20
+ Entity[Entity["Draugr"] = 15] = "Draugr";
21
+ Entity[Entity["Jotunn"] = 16] = "Jotunn";
22
+ Entity[Entity["Valkyrie"] = 17] = "Valkyrie";
23
+ Entity[Entity["Troll"] = 18] = "Troll";
24
+ Entity[Entity["Fenrir"] = 19] = "Fenrir";
25
+ Entity[Entity["Alf"] = 20] = "Alf";
26
+ Entity[Entity["Ra"] = 21] = "Ra";
27
+ Entity[Entity["Osiris"] = 22] = "Osiris";
28
+ Entity[Entity["Anubis"] = 23] = "Anubis";
29
+ Entity[Entity["Isis"] = 24] = "Isis";
30
+ Entity[Entity["Beetle"] = 25] = "Beetle";
31
+ Entity[Entity["Mummy"] = 26] = "Mummy";
32
+ Entity[Entity["Sphinx"] = 27] = "Sphinx";
33
+ Entity[Entity["Cobra"] = 28] = "Cobra";
34
+ Entity[Entity["Babai"] = 29] = "Babai";
35
+ Entity[Entity["Bennu"] = 30] = "Bennu";
36
+ Entity[Entity["Brahma"] = 31] = "Brahma";
37
+ Entity[Entity["Vishnu"] = 32] = "Vishnu";
38
+ Entity[Entity["Shiva"] = 33] = "Shiva";
39
+ Entity[Entity["Ganesh"] = 34] = "Ganesh";
40
+ Entity[Entity["Asura"] = 35] = "Asura";
41
+ Entity[Entity["Naga"] = 36] = "Naga";
42
+ Entity[Entity["Rakshasa"] = 37] = "Rakshasa";
43
+ Entity[Entity["Garuda"] = 38] = "Garuda";
44
+ Entity[Entity["Vetala"] = 39] = "Vetala";
45
+ Entity[Entity["Kinnara"] = 40] = "Kinnara";
46
+ Entity[Entity["Viracocha"] = 41] = "Viracocha";
47
+ Entity[Entity["MamaQucha"] = 42] = "MamaQucha";
48
+ Entity[Entity["Illapa"] = 43] = "Illapa";
49
+ Entity[Entity["Inti"] = 44] = "Inti";
50
+ Entity[Entity["Pumapunku"] = 45] = "Pumapunku";
51
+ Entity[Entity["Amaru"] = 46] = "Amaru";
52
+ Entity[Entity["Caiman"] = 47] = "Caiman";
53
+ Entity[Entity["Condor"] = 48] = "Condor";
54
+ Entity[Entity["Supay"] = 49] = "Supay";
55
+ Entity[Entity["Ukuku"] = 50] = "Ukuku";
56
+ Entity[Entity["YanluoWang"] = 51] = "YanluoWang";
57
+ Entity[Entity["SunWukong"] = 52] = "SunWukong";
58
+ Entity[Entity["Nuwa"] = 53] = "Nuwa";
59
+ Entity[Entity["ChangE"] = 54] = "ChangE";
60
+ Entity[Entity["Tianlong"] = 55] = "Tianlong";
61
+ Entity[Entity["Qilin"] = 56] = "Qilin";
62
+ Entity[Entity["Fenghuang"] = 57] = "Fenghuang";
63
+ Entity[Entity["Mogwai"] = 58] = "Mogwai";
64
+ Entity[Entity["Jiangshi"] = 59] = "Jiangshi";
65
+ Entity[Entity["Nian"] = 60] = "Nian";
66
+ Entity[Entity["Unkulunkulu"] = 61] = "Unkulunkulu";
67
+ Entity[Entity["Inkosazana"] = 62] = "Inkosazana";
68
+ Entity[Entity["Shembe"] = 63] = "Shembe";
69
+ Entity[Entity["Umvelinqangi"] = 64] = "Umvelinqangi";
70
+ Entity[Entity["Inkanyamba"] = 65] = "Inkanyamba";
71
+ Entity[Entity["Unwabu"] = 66] = "Unwabu";
72
+ Entity[Entity["Tokoloshe"] = 67] = "Tokoloshe";
73
+ Entity[Entity["Impundulu"] = 68] = "Impundulu";
74
+ Entity[Entity["Werehyena"] = 69] = "Werehyena";
75
+ Entity[Entity["Idlozi"] = 70] = "Idlozi";
76
+ Entity[Entity["Dagda"] = 71] = "Dagda";
77
+ Entity[Entity["Brigid"] = 72] = "Brigid";
78
+ Entity[Entity["Cernunnos"] = 73] = "Cernunnos";
79
+ Entity[Entity["Morrigan"] = 74] = "Morrigan";
80
+ Entity[Entity["Kelpie"] = 75] = "Kelpie";
81
+ Entity[Entity["Banshee"] = 76] = "Banshee";
82
+ Entity[Entity["Dryad"] = 77] = "Dryad";
83
+ Entity[Entity["Leprechaun"] = 78] = "Leprechaun";
84
+ Entity[Entity["Selkie"] = 79] = "Selkie";
85
+ Entity[Entity["Dullahan"] = 80] = "Dullahan";
86
+ })(Entity = exports.Entity || (exports.Entity = {}));
87
+ var EntityType;
88
+ (function (EntityType) {
89
+ EntityType[EntityType["God"] = 1] = "God";
90
+ EntityType[EntityType["Creature"] = 2] = "Creature";
91
+ })(EntityType = exports.EntityType || (exports.EntityType = {}));
92
+ var getEntityType = function (entity) { return ((entity - 1) % 10 < 4 ? EntityType.God : EntityType.Creature); };
93
+ exports.getEntityType = getEntityType;
94
+ var isGod = function (entity) { return entity !== undefined && (0, exports.getEntityType)(entity) === EntityType.God; };
95
+ exports.isGod = isGod;
96
+ var isCreature = function (entity) { return entity !== undefined && (0, exports.getEntityType)(entity) === EntityType.Creature; };
97
+ exports.isCreature = isCreature;
98
+ var entityMythology = function (entity) { return Math.floor((entity - 1) / 10); };
99
+ exports.entityMythology = entityMythology;
@@ -0,0 +1,26 @@
1
+ export declare enum LocationType {
2
+ Sanctuary = 1,
3
+ GodsDeck = 2,
4
+ CreaturesDeck = 3,
5
+ PantheonBoardSpot = 4,
6
+ PlayerHand = 5,
7
+ SanctuaryCreatureSpot = 6,
8
+ SanctuaryGodSpot = 7,
9
+ FavorTokensStock = 8,
10
+ GemTokensStock = 9,
11
+ PantheonLineBonus = 10,
12
+ PantheonColumnBonus = 11,
13
+ FirstPlayerTokenSpot = 12,
14
+ RoundCounterBoardSpot = 13,
15
+ RoundSpace = 14,
16
+ DestinyDeck = 15,
17
+ CurrentDestiny = 16,
18
+ PlayedTokenSpot = 17,
19
+ OnEntityCard = 18,
20
+ Pantheon = 19,
21
+ PlayerGems = 20,
22
+ PlayerFavor = 21,
23
+ PlayerDiscard = 22,
24
+ PlayerBufferArea = 23
25
+ }
26
+ export declare const isInSanctuary: (type?: LocationType) => boolean;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isInSanctuary = exports.LocationType = void 0;
4
+ var LocationType;
5
+ (function (LocationType) {
6
+ LocationType[LocationType["Sanctuary"] = 1] = "Sanctuary";
7
+ LocationType[LocationType["GodsDeck"] = 2] = "GodsDeck";
8
+ LocationType[LocationType["CreaturesDeck"] = 3] = "CreaturesDeck";
9
+ LocationType[LocationType["PantheonBoardSpot"] = 4] = "PantheonBoardSpot";
10
+ LocationType[LocationType["PlayerHand"] = 5] = "PlayerHand";
11
+ LocationType[LocationType["SanctuaryCreatureSpot"] = 6] = "SanctuaryCreatureSpot";
12
+ LocationType[LocationType["SanctuaryGodSpot"] = 7] = "SanctuaryGodSpot";
13
+ LocationType[LocationType["FavorTokensStock"] = 8] = "FavorTokensStock";
14
+ LocationType[LocationType["GemTokensStock"] = 9] = "GemTokensStock";
15
+ LocationType[LocationType["PantheonLineBonus"] = 10] = "PantheonLineBonus";
16
+ LocationType[LocationType["PantheonColumnBonus"] = 11] = "PantheonColumnBonus";
17
+ LocationType[LocationType["FirstPlayerTokenSpot"] = 12] = "FirstPlayerTokenSpot";
18
+ LocationType[LocationType["RoundCounterBoardSpot"] = 13] = "RoundCounterBoardSpot";
19
+ LocationType[LocationType["RoundSpace"] = 14] = "RoundSpace";
20
+ LocationType[LocationType["DestinyDeck"] = 15] = "DestinyDeck";
21
+ LocationType[LocationType["CurrentDestiny"] = 16] = "CurrentDestiny";
22
+ LocationType[LocationType["PlayedTokenSpot"] = 17] = "PlayedTokenSpot";
23
+ LocationType[LocationType["OnEntityCard"] = 18] = "OnEntityCard";
24
+ LocationType[LocationType["Pantheon"] = 19] = "Pantheon";
25
+ LocationType[LocationType["PlayerGems"] = 20] = "PlayerGems";
26
+ LocationType[LocationType["PlayerFavor"] = 21] = "PlayerFavor";
27
+ LocationType[LocationType["PlayerDiscard"] = 22] = "PlayerDiscard";
28
+ LocationType[LocationType["PlayerBufferArea"] = 23] = "PlayerBufferArea";
29
+ })(LocationType = exports.LocationType || (exports.LocationType = {}));
30
+ var isInSanctuary = function (type) { return type === LocationType.SanctuaryCreatureSpot || type === LocationType.SanctuaryGodSpot; };
31
+ exports.isInSanctuary = isInSanctuary;
@@ -0,0 +1,12 @@
1
+ export declare enum MaterialType {
2
+ MythologyBoard = 1,
3
+ EntityCard = 2,
4
+ PantheonBoard = 3,
5
+ DraftToken = 4,
6
+ GemToken = 5,
7
+ FavorToken = 6,
8
+ FirstPlayerToken = 7,
9
+ RoundCounterBoard = 8,
10
+ RoundToken = 9,
11
+ DestinyCard = 10
12
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MaterialType = void 0;
4
+ var MaterialType;
5
+ (function (MaterialType) {
6
+ MaterialType[MaterialType["MythologyBoard"] = 1] = "MythologyBoard";
7
+ MaterialType[MaterialType["EntityCard"] = 2] = "EntityCard";
8
+ MaterialType[MaterialType["PantheonBoard"] = 3] = "PantheonBoard";
9
+ MaterialType[MaterialType["DraftToken"] = 4] = "DraftToken";
10
+ MaterialType[MaterialType["GemToken"] = 5] = "GemToken";
11
+ MaterialType[MaterialType["FavorToken"] = 6] = "FavorToken";
12
+ MaterialType[MaterialType["FirstPlayerToken"] = 7] = "FirstPlayerToken";
13
+ MaterialType[MaterialType["RoundCounterBoard"] = 8] = "RoundCounterBoard";
14
+ MaterialType[MaterialType["RoundToken"] = 9] = "RoundToken";
15
+ MaterialType[MaterialType["DestinyCard"] = 10] = "DestinyCard";
16
+ })(MaterialType = exports.MaterialType || (exports.MaterialType = {}));
@@ -0,0 +1,19 @@
1
+ export declare enum Mythology {
2
+ Greek = 0,
3
+ Norse = 1,
4
+ Egyptian = 2,
5
+ Hindu = 3,
6
+ Inca = 4,
7
+ Chinese = 5,
8
+ Zulu = 6,
9
+ Celtic = 7
10
+ }
11
+ export declare const availableMythologies: Mythology[];
12
+ export declare enum SanctuarySide {
13
+ Left = 0,
14
+ Right = 1
15
+ }
16
+ export type MythologyBoardId = {
17
+ mythology: Mythology;
18
+ side: SanctuarySide;
19
+ };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SanctuarySide = exports.availableMythologies = exports.Mythology = void 0;
4
+ var rules_api_1 = require("@gamepark/rules-api");
5
+ var Mythology;
6
+ (function (Mythology) {
7
+ Mythology[Mythology["Greek"] = 0] = "Greek";
8
+ Mythology[Mythology["Norse"] = 1] = "Norse";
9
+ Mythology[Mythology["Egyptian"] = 2] = "Egyptian";
10
+ Mythology[Mythology["Hindu"] = 3] = "Hindu";
11
+ Mythology[Mythology["Inca"] = 4] = "Inca";
12
+ Mythology[Mythology["Chinese"] = 5] = "Chinese";
13
+ Mythology[Mythology["Zulu"] = 6] = "Zulu";
14
+ Mythology[Mythology["Celtic"] = 7] = "Celtic";
15
+ })(Mythology = exports.Mythology || (exports.Mythology = {}));
16
+ exports.availableMythologies = (0, rules_api_1.getEnumValues)(Mythology).filter(function (mythology) { return mythology < 4; });
17
+ var SanctuarySide;
18
+ (function (SanctuarySide) {
19
+ SanctuarySide[SanctuarySide["Left"] = 0] = "Left";
20
+ SanctuarySide[SanctuarySide["Right"] = 1] = "Right";
21
+ })(SanctuarySide = exports.SanctuarySide || (exports.SanctuarySide = {}));
@@ -0,0 +1,36 @@
1
+ import { Material, MaterialGame, MaterialItem, MaterialMove, MaterialRulesPart, MoveItem, XYCoordinates } from '@gamepark/rules-api';
2
+ import { PlayerColor } from '../PlayerColor';
3
+ import { Entity } from './Entity';
4
+ export declare class Pantheon extends MaterialRulesPart {
5
+ private player;
6
+ constructor(game: MaterialGame, player: PlayerColor);
7
+ get allCards(): Material<number, number, number>;
8
+ get visibleEntities(): Material<number, number, number>;
9
+ get coveredEntities(): Material<number, number, number>;
10
+ get grid(): (Entity | undefined)[][];
11
+ get legalSpacesToInvoke(): XYCoordinates[];
12
+ isLegalSpaceToInvoke(space: XYCoordinates): boolean;
13
+ getOpponentsWithTrollAt({ x, y }: XYCoordinates): PlayerColor[];
14
+ get legalSpaces(): XYCoordinates[];
15
+ isLegalSpace({ x, y }: XYCoordinates, grid?: (Entity | undefined)[][]): boolean;
16
+ isFreeSpace({ x, y }: XYCoordinates): boolean;
17
+ gainGems(quantity: number): import("@gamepark/rules-api").CreateItem<number, number, number>;
18
+ get gemMaterial(): Material<number, number, number>;
19
+ get gems(): number;
20
+ spendGems(quantity: number): import("@gamepark/rules-api").DeleteItem<number>;
21
+ gainFavor(quantity: number): import("@gamepark/rules-api").CreateItem<number, number, number>;
22
+ get favor(): number;
23
+ loseFavor(quantity?: number): import("@gamepark/rules-api").DeleteItem<number>;
24
+ onCardPlaced(move: MoveItem): MaterialMove<number, number, number, number>[];
25
+ get isInvoke(): boolean;
26
+ gainBonus(grid?: (Entity | undefined)[][]): MaterialMove<number, number, number, number>[];
27
+ getBonusGem(y: number): Material<number, number, number>;
28
+ getBonusFavor(x: number): Material<number, number, number>;
29
+ onInvoke(move: MoveItem): MaterialMove<number, number, number, number>[];
30
+ getInvokeGains(entity: Entity, line: number): MaterialMove<number, number, number, number>[];
31
+ hasEntity(entity: Entity): boolean;
32
+ getPiles(predicate?: (space: XYCoordinates) => boolean): Material[];
33
+ isAbleToMove(entity: MaterialItem): boolean;
34
+ get mythologies(): import("./Mythology").Mythology[];
35
+ get missingMythologies(): import("./Mythology").Mythology[];
36
+ }