@gamepark/greylune 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 (229) hide show
  1. package/dist/Constants.d.ts +23 -0
  2. package/dist/Constants.d.ts.map +1 -0
  3. package/dist/Constants.js +17 -0
  4. package/dist/Constants.js.map +1 -0
  5. package/dist/GreyluneOptions.d.ts +11 -0
  6. package/dist/GreyluneOptions.d.ts.map +1 -0
  7. package/dist/GreyluneOptions.js +8 -0
  8. package/dist/GreyluneOptions.js.map +1 -0
  9. package/dist/GreyluneRules.d.ts +123 -0
  10. package/dist/GreyluneRules.d.ts.map +1 -0
  11. package/dist/GreyluneRules.js +122 -0
  12. package/dist/GreyluneRules.js.map +1 -0
  13. package/dist/GreyluneSetup.d.ts +18 -0
  14. package/dist/GreyluneSetup.d.ts.map +1 -0
  15. package/dist/GreyluneSetup.js +88 -0
  16. package/dist/GreyluneSetup.js.map +1 -0
  17. package/dist/Memory.d.ts +22 -0
  18. package/dist/Memory.d.ts.map +1 -0
  19. package/dist/Memory.js +23 -0
  20. package/dist/Memory.js.map +1 -0
  21. package/dist/PlayerColor.d.ts +7 -0
  22. package/dist/PlayerColor.d.ts.map +1 -0
  23. package/dist/PlayerColor.js +8 -0
  24. package/dist/PlayerColor.js.map +1 -0
  25. package/dist/Season.d.ts +7 -0
  26. package/dist/Season.d.ts.map +1 -0
  27. package/dist/Season.js +8 -0
  28. package/dist/Season.js.map +1 -0
  29. package/dist/Year.d.ts +8 -0
  30. package/dist/Year.d.ts.map +1 -0
  31. package/dist/Year.js +10 -0
  32. package/dist/Year.js.map +1 -0
  33. package/dist/ai/Evaluation.d.ts +118 -0
  34. package/dist/ai/Evaluation.d.ts.map +1 -0
  35. package/dist/ai/Evaluation.js +1069 -0
  36. package/dist/ai/Evaluation.js.map +1 -0
  37. package/dist/ai/GreyluneAI.d.ts +20 -0
  38. package/dist/ai/GreyluneAI.d.ts.map +1 -0
  39. package/dist/ai/GreyluneAI.js +113 -0
  40. package/dist/ai/GreyluneAI.js.map +1 -0
  41. package/dist/ai/Model.d.ts +38 -0
  42. package/dist/ai/Model.d.ts.map +1 -0
  43. package/dist/ai/Model.js +105 -0
  44. package/dist/ai/Model.js.map +1 -0
  45. package/dist/ai/Simulation.d.ts +13 -0
  46. package/dist/ai/Simulation.d.ts.map +1 -0
  47. package/dist/ai/Simulation.js +20 -0
  48. package/dist/ai/Simulation.js.map +1 -0
  49. package/dist/index.d.ts +5 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +5 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/material/Area.d.ts +9 -0
  54. package/dist/material/Area.d.ts.map +1 -0
  55. package/dist/material/Area.js +10 -0
  56. package/dist/material/Area.js.map +1 -0
  57. package/dist/material/Distance.d.ts +8 -0
  58. package/dist/material/Distance.d.ts.map +1 -0
  59. package/dist/material/Distance.js +9 -0
  60. package/dist/material/Distance.js.map +1 -0
  61. package/dist/material/Effect.d.ts +103 -0
  62. package/dist/material/Effect.d.ts.map +1 -0
  63. package/dist/material/Effect.js +83 -0
  64. package/dist/material/Effect.js.map +1 -0
  65. package/dist/material/EncounterCard.d.ts +61 -0
  66. package/dist/material/EncounterCard.d.ts.map +1 -0
  67. package/dist/material/EncounterCard.js +214 -0
  68. package/dist/material/EncounterCard.js.map +1 -0
  69. package/dist/material/EventTile.d.ts +17 -0
  70. package/dist/material/EventTile.d.ts.map +1 -0
  71. package/dist/material/EventTile.js +52 -0
  72. package/dist/material/EventTile.js.map +1 -0
  73. package/dist/material/LocationType.d.ts +42 -0
  74. package/dist/material/LocationType.d.ts.map +1 -0
  75. package/dist/material/LocationType.js +43 -0
  76. package/dist/material/LocationType.js.map +1 -0
  77. package/dist/material/MaterialSource.d.ts +8 -0
  78. package/dist/material/MaterialSource.d.ts.map +1 -0
  79. package/dist/material/MaterialSource.js +2 -0
  80. package/dist/material/MaterialSource.js.map +1 -0
  81. package/dist/material/MaterialType.d.ts +23 -0
  82. package/dist/material/MaterialType.d.ts.map +1 -0
  83. package/dist/material/MaterialType.js +24 -0
  84. package/dist/material/MaterialType.js.map +1 -0
  85. package/dist/material/Period.d.ts +6 -0
  86. package/dist/material/Period.d.ts.map +1 -0
  87. package/dist/material/Period.js +7 -0
  88. package/dist/material/Period.js.map +1 -0
  89. package/dist/material/PlayerState.d.ts +34 -0
  90. package/dist/material/PlayerState.d.ts.map +1 -0
  91. package/dist/material/PlayerState.js +106 -0
  92. package/dist/material/PlayerState.js.map +1 -0
  93. package/dist/material/QuestTile.d.ts +21 -0
  94. package/dist/material/QuestTile.d.ts.map +1 -0
  95. package/dist/material/QuestTile.js +32 -0
  96. package/dist/material/QuestTile.js.map +1 -0
  97. package/dist/material/Reaction.d.ts +49 -0
  98. package/dist/material/Reaction.d.ts.map +1 -0
  99. package/dist/material/Reaction.js +37 -0
  100. package/dist/material/Reaction.js.map +1 -0
  101. package/dist/material/Tokens.d.ts +29 -0
  102. package/dist/material/Tokens.d.ts.map +1 -0
  103. package/dist/material/Tokens.js +46 -0
  104. package/dist/material/Tokens.js.map +1 -0
  105. package/dist/material/Village.d.ts +23 -0
  106. package/dist/material/Village.d.ts.map +1 -0
  107. package/dist/material/Village.js +29 -0
  108. package/dist/material/Village.js.map +1 -0
  109. package/dist/material/VillageCard.d.ts +90 -0
  110. package/dist/material/VillageCard.d.ts.map +1 -0
  111. package/dist/material/VillageCard.js +359 -0
  112. package/dist/material/VillageCard.js.map +1 -0
  113. package/dist/material/Villager.d.ts +8 -0
  114. package/dist/material/Villager.d.ts.map +1 -0
  115. package/dist/material/Villager.js +7 -0
  116. package/dist/material/Villager.js.map +1 -0
  117. package/dist/material/VpToken.d.ts +10 -0
  118. package/dist/material/VpToken.d.ts.map +1 -0
  119. package/dist/material/VpToken.js +9 -0
  120. package/dist/material/VpToken.js.map +1 -0
  121. package/dist/rules/ActivateCardRule.d.ts +43 -0
  122. package/dist/rules/ActivateCardRule.d.ts.map +1 -0
  123. package/dist/rules/ActivateCardRule.js +183 -0
  124. package/dist/rules/ActivateCardRule.js.map +1 -0
  125. package/dist/rules/AutumnRule.d.ts +9 -0
  126. package/dist/rules/AutumnRule.d.ts.map +1 -0
  127. package/dist/rules/AutumnRule.js +42 -0
  128. package/dist/rules/AutumnRule.js.map +1 -0
  129. package/dist/rules/BonusTokenRule.d.ts +10 -0
  130. package/dist/rules/BonusTokenRule.d.ts.map +1 -0
  131. package/dist/rules/BonusTokenRule.js +20 -0
  132. package/dist/rules/BonusTokenRule.js.map +1 -0
  133. package/dist/rules/ChooseOutcomeRule.d.ts +9 -0
  134. package/dist/rules/ChooseOutcomeRule.d.ts.map +1 -0
  135. package/dist/rules/ChooseOutcomeRule.js +18 -0
  136. package/dist/rules/ChooseOutcomeRule.js.map +1 -0
  137. package/dist/rules/ChooseSkillRule.d.ts +10 -0
  138. package/dist/rules/ChooseSkillRule.d.ts.map +1 -0
  139. package/dist/rules/ChooseSkillRule.js +20 -0
  140. package/dist/rules/ChooseSkillRule.js.map +1 -0
  141. package/dist/rules/CustomMoveType.d.ts +17 -0
  142. package/dist/rules/CustomMoveType.d.ts.map +1 -0
  143. package/dist/rules/CustomMoveType.js +18 -0
  144. package/dist/rules/CustomMoveType.js.map +1 -0
  145. package/dist/rules/DiscardItemRule.d.ts +9 -0
  146. package/dist/rules/DiscardItemRule.d.ts.map +1 -0
  147. package/dist/rules/DiscardItemRule.js +19 -0
  148. package/dist/rules/DiscardItemRule.js.map +1 -0
  149. package/dist/rules/EncounterRule.d.ts +26 -0
  150. package/dist/rules/EncounterRule.d.ts.map +1 -0
  151. package/dist/rules/EncounterRule.js +75 -0
  152. package/dist/rules/EncounterRule.js.map +1 -0
  153. package/dist/rules/EventRule.d.ts +13 -0
  154. package/dist/rules/EventRule.d.ts.map +1 -0
  155. package/dist/rules/EventRule.js +39 -0
  156. package/dist/rules/EventRule.js.map +1 -0
  157. package/dist/rules/FinalScoringRule.d.ts +18 -0
  158. package/dist/rules/FinalScoringRule.d.ts.map +1 -0
  159. package/dist/rules/FinalScoringRule.js +30 -0
  160. package/dist/rules/FinalScoringRule.js.map +1 -0
  161. package/dist/rules/GreyluneRule.d.ts +87 -0
  162. package/dist/rules/GreyluneRule.d.ts.map +1 -0
  163. package/dist/rules/GreyluneRule.js +432 -0
  164. package/dist/rules/GreyluneRule.js.map +1 -0
  165. package/dist/rules/PlaceVillagerRule.d.ts +10 -0
  166. package/dist/rules/PlaceVillagerRule.d.ts.map +1 -0
  167. package/dist/rules/PlaceVillagerRule.js +17 -0
  168. package/dist/rules/PlaceVillagerRule.js.map +1 -0
  169. package/dist/rules/ReactionRule.d.ts +17 -0
  170. package/dist/rules/ReactionRule.d.ts.map +1 -0
  171. package/dist/rules/ReactionRule.js +48 -0
  172. package/dist/rules/ReactionRule.js.map +1 -0
  173. package/dist/rules/ResolveEffectsRule.d.ts +12 -0
  174. package/dist/rules/ResolveEffectsRule.d.ts.map +1 -0
  175. package/dist/rules/ResolveEffectsRule.js +85 -0
  176. package/dist/rules/ResolveEffectsRule.js.map +1 -0
  177. package/dist/rules/ResolveEncounterRule.d.ts +19 -0
  178. package/dist/rules/ResolveEncounterRule.d.ts.map +1 -0
  179. package/dist/rules/ResolveEncounterRule.js +86 -0
  180. package/dist/rules/ResolveEncounterRule.js.map +1 -0
  181. package/dist/rules/ResolveQuestRule.d.ts +17 -0
  182. package/dist/rules/ResolveQuestRule.d.ts.map +1 -0
  183. package/dist/rules/ResolveQuestRule.js +64 -0
  184. package/dist/rules/ResolveQuestRule.js.map +1 -0
  185. package/dist/rules/RuleId.d.ts +27 -0
  186. package/dist/rules/RuleId.d.ts.map +1 -0
  187. package/dist/rules/RuleId.js +28 -0
  188. package/dist/rules/RuleId.js.map +1 -0
  189. package/dist/rules/SeasonRule.d.ts +11 -0
  190. package/dist/rules/SeasonRule.d.ts.map +1 -0
  191. package/dist/rules/SeasonRule.js +32 -0
  192. package/dist/rules/SeasonRule.js.map +1 -0
  193. package/dist/rules/SpecialActionRule.d.ts +15 -0
  194. package/dist/rules/SpecialActionRule.d.ts.map +1 -0
  195. package/dist/rules/SpecialActionRule.js +32 -0
  196. package/dist/rules/SpecialActionRule.js.map +1 -0
  197. package/dist/rules/SpringRule.d.ts +7 -0
  198. package/dist/rules/SpringRule.d.ts.map +1 -0
  199. package/dist/rules/SpringRule.js +16 -0
  200. package/dist/rules/SpringRule.js.map +1 -0
  201. package/dist/rules/StraightenCardRule.d.ts +9 -0
  202. package/dist/rules/StraightenCardRule.d.ts.map +1 -0
  203. package/dist/rules/StraightenCardRule.js +11 -0
  204. package/dist/rules/StraightenCardRule.js.map +1 -0
  205. package/dist/rules/SummerRule.d.ts +30 -0
  206. package/dist/rules/SummerRule.d.ts.map +1 -0
  207. package/dist/rules/SummerRule.js +140 -0
  208. package/dist/rules/SummerRule.js.map +1 -0
  209. package/dist/rules/TellStoryRule.d.ts +22 -0
  210. package/dist/rules/TellStoryRule.d.ts.map +1 -0
  211. package/dist/rules/TellStoryRule.js +72 -0
  212. package/dist/rules/TellStoryRule.js.map +1 -0
  213. package/dist/rules/TheFirstStepRule.d.ts +5 -0
  214. package/dist/rules/TheFirstStepRule.d.ts.map +1 -0
  215. package/dist/rules/TheFirstStepRule.js +7 -0
  216. package/dist/rules/TheFirstStepRule.js.map +1 -0
  217. package/dist/rules/TravelRule.d.ts +13 -0
  218. package/dist/rules/TravelRule.d.ts.map +1 -0
  219. package/dist/rules/TravelRule.js +41 -0
  220. package/dist/rules/TravelRule.js.map +1 -0
  221. package/dist/rules/UseItemRule.d.ts +6 -0
  222. package/dist/rules/UseItemRule.d.ts.map +1 -0
  223. package/dist/rules/UseItemRule.js +35 -0
  224. package/dist/rules/UseItemRule.js.map +1 -0
  225. package/dist/rules/WinterRule.d.ts +24 -0
  226. package/dist/rules/WinterRule.d.ts.map +1 -0
  227. package/dist/rules/WinterRule.js +112 -0
  228. package/dist/rules/WinterRule.js.map +1 -0
  229. package/package.json +39 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GreyluneRule.js","sourceRoot":"","sources":["../../src/rules/GreyluneRule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { ItemMove } from '@gamepark/rules-api';
2
+ import { LocationType } from '../material/LocationType';
3
+ import { MaterialType } from '../material/MaterialType';
4
+ import { GreyluneMove, GreyluneRule } from './GreyluneRule';
5
+ export declare class PlaceVillagerRule extends GreyluneRule {
6
+ get gaps(): import("../material/Village").Gap[];
7
+ getPlayerMoves(): GreyluneMove[];
8
+ afterItemMove(move: ItemMove<number, MaterialType, LocationType>): GreyluneMove[];
9
+ }
10
+ //# sourceMappingURL=PlaceVillagerRule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlaceVillagerRule.d.ts","sourceRoot":"","sources":["../../src/rules/PlaceVillagerRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAO3D,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,IAAI,IAAI,wCAEP;IAED,cAAc,IAAI,YAAY,EAAE,CAG/B;IAED,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,GAAG,YAAY,EAAE,CAEhF;CACF"}
@@ -0,0 +1,17 @@
1
+ import { LocationType } from '../material/LocationType';
2
+ import { MaterialType } from '../material/MaterialType';
3
+ import { cardsAroundGap, villageGaps } from '../material/Village';
4
+ import { GreyluneRule } from './GreyluneRule';
5
+ export class PlaceVillagerRule extends GreyluneRule {
6
+ get gaps() {
7
+ return villageGaps.filter((gap) => cardsAroundGap(this, gap).length > 0);
8
+ }
9
+ getPlayerMoves() {
10
+ const villagers = this.activeVillagers;
11
+ return this.gaps.flatMap((gap) => villagers.moveItems({ type: LocationType.VillageGap, player: this.player, ...gap }));
12
+ }
13
+ afterItemMove(move) {
14
+ return move.itemType === MaterialType.Villager ? this.endOfAction() : [];
15
+ }
16
+ }
17
+ //# sourceMappingURL=PlaceVillagerRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlaceVillagerRule.js","sourceRoot":"","sources":["../../src/rules/PlaceVillagerRule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAgB,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAO3D,MAAM,OAAO,iBAAkB,SAAQ,YAAY;IACjD,IAAI,IAAI;QACN,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC1E,CAAC;IAED,cAAc;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAA;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAA;IACxH,CAAC;IAED,aAAa,CAAC,IAAkD;QAC9D,OAAO,IAAI,CAAC,QAAQ,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1E,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import { CustomMove } from '@gamepark/rules-api';
2
+ import { TriggerType } from '../material/Reaction';
3
+ import { ActivateCardRule } from './ActivateCardRule';
4
+ import { GreyluneMove, GreyluneRule, ReactionChoice } from './GreyluneRule';
5
+ import { RuleId } from './RuleId';
6
+ import { TellStoryRule } from './TellStoryRule';
7
+ export declare class ReactionRule extends GreyluneRule {
8
+ get triggers(): TriggerType[];
9
+ get resumeRule(): RuleId;
10
+ get activation(): ActivateCardRule | undefined;
11
+ get blocked(): ActivateCardRule | TellStoryRule | undefined;
12
+ get choices(): ReactionChoice[];
13
+ getPlayerMoves(): GreyluneMove[];
14
+ onCustomMove(move: CustomMove): GreyluneMove[];
15
+ private close;
16
+ }
17
+ //# sourceMappingURL=ReactionRule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactionRule.d.ts","sourceRoot":"","sources":["../../src/rules/ReactionRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,qBAAqB,CAAA;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAc/C,qBAAa,YAAa,SAAQ,YAAY;IAM5C,IAAI,QAAQ,IAAI,WAAW,EAAE,CAG5B;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAGD,IAAI,UAAU,IAAI,gBAAgB,GAAG,SAAS,CAE7C;IAGD,IAAI,OAAO,IAAI,gBAAgB,GAAG,aAAa,GAAG,SAAS,CAG1D;IAED,IAAI,OAAO,IAAI,cAAc,EAAE,CAG9B;IAED,cAAc,IAAI,YAAY,EAAE,CAK/B;IAED,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,EAAE,CAQ7C;IAED,OAAO,CAAC,KAAK;CAGd"}
@@ -0,0 +1,48 @@
1
+ import { isCustomMoveType } from '@gamepark/rules-api';
2
+ import { Memory } from '../Memory';
3
+ import { TriggerType } from '../material/Reaction';
4
+ import { ActivateCardRule } from './ActivateCardRule';
5
+ import { CustomMoveType } from './CustomMoveType';
6
+ import { GreyluneRule } from './GreyluneRule';
7
+ import { RuleId } from './RuleId';
8
+ import { TellStoryRule } from './TellStoryRule';
9
+ export class ReactionRule extends GreyluneRule {
10
+ get triggers() {
11
+ const triggers = this.remind(Memory.Trigger) ?? [];
12
+ return this.activation?.surcharge === 0 ? triggers.filter((trigger) => trigger !== TriggerType.PaySurcharge) : triggers;
13
+ }
14
+ get resumeRule() {
15
+ return this.remind(Memory.Resume) ?? RuleId.ResolveEffects;
16
+ }
17
+ get activation() {
18
+ return this.resumeRule === RuleId.ActivateCard ? new ActivateCardRule(this.game) : undefined;
19
+ }
20
+ get blocked() {
21
+ const next = this.resumeRule === RuleId.TellStory ? new TellStoryRule(this.game) : this.activation;
22
+ return next?.outOfReach ? next : undefined;
23
+ }
24
+ get choices() {
25
+ const blocked = this.blocked;
26
+ return this.reactionChoices(this.triggers).filter((choice) => !blocked || blocked.helps(choice.card, choice.option));
27
+ }
28
+ getPlayerMoves() {
29
+ return [
30
+ ...this.choices.map((choice) => this.customMove(CustomMoveType.UseReaction, choice)),
31
+ ...(this.blocked ? [] : [this.customMove(CustomMoveType.Pass)])
32
+ ];
33
+ }
34
+ onCustomMove(move) {
35
+ if (isCustomMoveType(CustomMoveType.Pass)(move))
36
+ return this.close();
37
+ if (!isCustomMoveType(CustomMoveType.UseReaction)(move))
38
+ return super.onCustomMove(move);
39
+ const { card, option } = move.data;
40
+ const moves = this.useReaction(card, option);
41
+ const left = this.choices.filter((choice) => choice.card !== card);
42
+ return left.length ? moves : [...moves, ...this.close()];
43
+ }
44
+ close() {
45
+ return [this.startRule(this.resumeRule)];
46
+ }
47
+ }
48
+ //# sourceMappingURL=ReactionRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactionRule.js","sourceRoot":"","sources":["../../src/rules/ReactionRule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { LocationType } from '../material/LocationType';
2
+ import { MaterialType } from '../material/MaterialType';
3
+ import { GreyluneMove, GreyluneRule } from './GreyluneRule';
4
+ export declare class ResolveEffectsRule extends GreyluneRule {
5
+ onRuleStart(): GreyluneMove[];
6
+ private travelDone;
7
+ private startGain;
8
+ get tiltedCards(): import("./GreyluneRule").GreyluneMaterial;
9
+ get bonusTokens(): import("@gamepark/rules-api").Material<import("../PlayerColor").PlayerColor, MaterialType, LocationType>;
10
+ get canPlaceVillager(): boolean;
11
+ }
12
+ //# sourceMappingURL=ResolveEffectsRule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResolveEffectsRule.d.ts","sourceRoot":"","sources":["../../src/rules/ResolveEffectsRule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAKvD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAc3D,qBAAa,kBAAmB,SAAQ,YAAY;IAMlD,WAAW,IAAI,YAAY,EAAE,CAY5B;IAQD,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,SAAS;IA4CjB,IAAI,WAAW,8CAEd;IAED,IAAI,WAAW,6GAEd;IAGD,IAAI,gBAAgB,IAAI,OAAO,CAE9B;CACF"}
@@ -0,0 +1,85 @@
1
+ import { Memory } from '../Memory';
2
+ import { GainType } from '../material/Effect';
3
+ import { LocationType } from '../material/LocationType';
4
+ import { MaterialType } from '../material/MaterialType';
5
+ import { MAX_SKILL } from '../Constants';
6
+ import { TriggerType } from '../material/Reaction';
7
+ import { villageGaps } from '../material/Village';
8
+ import { cardsAroundGap } from '../material/Village';
9
+ import { GreyluneRule } from './GreyluneRule';
10
+ import { RuleId } from './RuleId';
11
+ export class ResolveEffectsRule extends GreyluneRule {
12
+ onRuleStart() {
13
+ this.forget(Memory.CostReduction);
14
+ let gains = this.gains;
15
+ while (gains.length) {
16
+ const [gain, ...rest] = gains;
17
+ this.memorize(Memory.Gains, rest);
18
+ const moves = this.startGain(gain);
19
+ if (moves.length)
20
+ return moves;
21
+ gains = rest;
22
+ }
23
+ const journey = this.travelDone();
24
+ return journey.length ? journey : this.endOfTurn();
25
+ }
26
+ travelDone() {
27
+ if (!this.remind(Memory.WentAdventuring))
28
+ return [];
29
+ this.forget(Memory.WentAdventuring);
30
+ if (!this.reactionChoices([TriggerType.TravelDone]).length)
31
+ return [];
32
+ return this.openReactions([TriggerType.TravelDone], RuleId.ResolveEffects);
33
+ }
34
+ startGain(gain) {
35
+ const move = this.gainMove(gain);
36
+ if (move)
37
+ return [move];
38
+ switch (gain.type) {
39
+ case GainType.Force:
40
+ return this.gainSkill(MaterialType.StrengthMarker, this.amount(gain.count));
41
+ case GainType.Magic:
42
+ return this.gainSkill(MaterialType.MagicMarker, this.amount(gain.count));
43
+ case GainType.Villager: {
44
+ const villagers = this.gainVillagers(this.amount(gain.count));
45
+ return villagers.length ? [...villagers, this.startRule(RuleId.ResolveEffects)] : [];
46
+ }
47
+ case GainType.Skill:
48
+ if (this.force >= MAX_SKILL && this.magic >= MAX_SKILL)
49
+ return [];
50
+ this.memorize(Memory.CurrentGain, gain);
51
+ return [this.startRule(RuleId.ChooseSkill)];
52
+ case GainType.Travel:
53
+ this.forget(Memory.TemporaryForce);
54
+ this.forget(Memory.TemporaryMagic);
55
+ this.forget(Memory.IgnoredConditions);
56
+ this.memorize(Memory.TravelDistance, this.amount(gain.count));
57
+ this.memorize(Memory.WentAdventuring, true);
58
+ return this.openReactions([TriggerType.Travel], RuleId.Travel);
59
+ case GainType.Straighten:
60
+ return this.tiltedCards.length ? [this.startRule(RuleId.StraightenCard)] : [];
61
+ case GainType.PlaceVillager:
62
+ return this.canPlaceVillager ? [this.startRule(RuleId.PlaceVillager)] : [];
63
+ case GainType.TellStory:
64
+ this.memorize(Memory.StoryRewards, gain.rewards);
65
+ this.memorize(Memory.StoryTold, []);
66
+ return this.openReactions([TriggerType.TellStory], RuleId.TellStory);
67
+ case GainType.BonusToken:
68
+ return this.bonusTokens.length ? [this.startRule(RuleId.BonusToken)] : [];
69
+ case GainType.Reaction:
70
+ return this.openReactions([gain.trigger], RuleId.ResolveEffects);
71
+ default:
72
+ return [];
73
+ }
74
+ }
75
+ get tiltedCards() {
76
+ return this.playerCards.rotation(true);
77
+ }
78
+ get bonusTokens() {
79
+ return this.material(MaterialType.BonusToken).location(LocationType.BonusTokens).player(this.player);
80
+ }
81
+ get canPlaceVillager() {
82
+ return this.activeVillagers.length > 0 && villageGaps.some((gap) => cardsAroundGap(this, gap).length > 0);
83
+ }
84
+ }
85
+ //# sourceMappingURL=ResolveEffectsRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResolveEffectsRule.js","sourceRoot":"","sources":["../../src/rules/ResolveEffectsRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAQ,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAgB,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAajC,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IAMlD,WAAW;QACT,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QACjC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACtB,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAA;YAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACjC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAClC,IAAI,KAAK,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAA;YAC9B,KAAK,GAAG,IAAI,CAAA;QACd,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QACjC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;IACpD,CAAC;IAQO,UAAU;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAU,MAAM,CAAC,eAAe,CAAC;YAAE,OAAO,EAAE,CAAA;QAC5D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;QACnC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM;YAAE,OAAO,EAAE,CAAA;QACrE,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;IAC5E,CAAC;IAEO,SAAS,CAAC,IAAU;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QACvB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,QAAQ,CAAC,KAAK;gBACjB,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;YAC7E,KAAK,QAAQ,CAAC,KAAK;gBACjB,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;YAC1E,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACvB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC7D,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YACtF,CAAC;YACD,KAAK,QAAQ,CAAC,KAAK;gBACjB,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS;oBAAE,OAAO,EAAE,CAAA;gBACjE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;gBACvC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;YAC7C,KAAK,QAAQ,CAAC,MAAM;gBAElB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;gBAClC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;gBAClC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;gBACrC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC7D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;gBAC3C,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YAChE,KAAK,QAAQ,CAAC,UAAU;gBACtB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAC/E,KAAK,QAAQ,CAAC,aAAa;gBACzB,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAC5E,KAAK,QAAQ,CAAC,SAAS;gBACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;gBAChD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;gBACnC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;YACtE,KAAK,QAAQ,CAAC,UAAU;gBACtB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAC3E,KAAK,QAAQ,CAAC,QAAQ;gBACpB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;YAClE;gBAIE,OAAO,EAAE,CAAA;QACb,CAAC;IACH,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtG,CAAC;IAGD,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC3G,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ import { CustomMove } from '@gamepark/rules-api';
2
+ import { Area } from '../material/Area';
3
+ import { Gain } from '../material/Effect';
4
+ import { HeroicQuestArea, QuestTile } from '../material/QuestTile';
5
+ import { EncounterRule } from './EncounterRule';
6
+ import { GreyluneMove } from './GreyluneRule';
7
+ export declare class ResolveEncounterRule extends EncounterRule {
8
+ get area(): Area;
9
+ get row(): import("./GreyluneRule").GreyluneMaterial;
10
+ onRuleStart(): GreyluneMove[];
11
+ getPlayerMoves(): GreyluneMove[];
12
+ get spaceGain(): Gain | undefined;
13
+ get questSpace(): HeroicQuestArea | undefined;
14
+ get questTile(): QuestTile | undefined;
15
+ get canTakeQuest(): boolean;
16
+ onCustomMove(move: CustomMove): GreyluneMove[];
17
+ private designate;
18
+ }
19
+ //# sourceMappingURL=ResolveEncounterRule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResolveEncounterRule.d.ts","sourceRoot":"","sources":["../../src/rules/ResolveEncounterRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,qBAAqB,CAAA;AAElE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAS,IAAI,EAAM,MAAM,oBAAoB,CAAA;AAKpD,OAAO,EAAE,eAAe,EAAuC,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAGvG,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAiB7C,qBAAa,oBAAqB,SAAQ,aAAa;IAErD,IAAI,IAAI,IAAI,IAAI,CAEf;IAED,IAAI,GAAG,8CAEN;IAED,WAAW,IAAI,YAAY,EAAE,CAE5B;IAQD,cAAc,IAAI,YAAY,EAAE,CAS/B;IAGD,IAAI,SAAS,IAAI,IAAI,GAAG,SAAS,CAIhC;IAED,IAAI,UAAU,IAAI,eAAe,GAAG,SAAS,CAE5C;IAED,IAAI,SAAS,IAAI,SAAS,GAAG,SAAS,CAIrC;IAMD,IAAI,YAAY,IAAI,OAAO,CAO1B;IAED,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,EAAE,CAW7C;IAYD,OAAO,CAAC,SAAS;CAMlB"}
@@ -0,0 +1,86 @@
1
+ import { isCustomMoveType } from '@gamepark/rules-api';
2
+ import { Memory } from '../Memory';
3
+ import { Area } from '../material/Area';
4
+ import { coins, vp } from '../material/Effect';
5
+ import { encounterCardData } from '../material/EncounterCard';
6
+ import { LocationType } from '../material/LocationType';
7
+ import { MaterialType } from '../material/MaterialType';
8
+ import { adventurerArea } from '../material/PlayerState';
9
+ import { heroicQuestAreas, questRequirements } from '../material/QuestTile';
10
+ import { TriggerType } from '../material/Reaction';
11
+ import { CustomMoveType } from './CustomMoveType';
12
+ import { EncounterRule } from './EncounterRule';
13
+ import { RuleId } from './RuleId';
14
+ export class ResolveEncounterRule extends EncounterRule {
15
+ get area() {
16
+ return adventurerArea(this, this.player);
17
+ }
18
+ get row() {
19
+ return this.encounterCards.location(LocationType.EncounterRow).locationId(this.area);
20
+ }
21
+ onRuleStart() {
22
+ return this.area === 0 ? this.endOfAction() : [];
23
+ }
24
+ getPlayerMoves() {
25
+ const moves = this.row
26
+ .getIndexes()
27
+ .filter((card) => this.encounterMoves(card).length > 0)
28
+ .map((card) => this.customMove(CustomMoveType.ChooseEncounter, card));
29
+ if (this.spaceGain)
30
+ moves.push(this.customMove(CustomMoveType.SkipEncounter));
31
+ if (this.canTakeQuest)
32
+ moves.push(this.customMove(CustomMoveType.ResolveQuest));
33
+ if (!moves.length)
34
+ moves.push(this.customMove(CustomMoveType.Pass));
35
+ return moves;
36
+ }
37
+ get spaceGain() {
38
+ if (this.area === Area.Wand)
39
+ return coins(1);
40
+ if (this.area === Area.Bow)
41
+ return vp(1);
42
+ return undefined;
43
+ }
44
+ get questSpace() {
45
+ return heroicQuestAreas.find((area) => area === this.area);
46
+ }
47
+ get questTile() {
48
+ const space = this.questSpace;
49
+ if (space === undefined)
50
+ return undefined;
51
+ return this.material(MaterialType.QuestTile).location(LocationType.QuestTileSpace).locationId(space).getItem()?.id;
52
+ }
53
+ get canTakeQuest() {
54
+ const space = this.questSpace;
55
+ const tile = this.questTile;
56
+ if (space === undefined || tile === undefined)
57
+ return false;
58
+ if (!this.material(MaterialType.QuestMarker).id(this.player).location(LocationType.QuestMarkerSpace).length)
59
+ return false;
60
+ if (this.material(MaterialType.QuestMarker).id(this.player).location(LocationType.QuestRewardSpace).locationId(space).length)
61
+ return false;
62
+ return this.canPay(questRequirements[tile]);
63
+ }
64
+ onCustomMove(move) {
65
+ if (isCustomMoveType(CustomMoveType.Pass)(move))
66
+ return this.endOfAction();
67
+ if (isCustomMoveType(CustomMoveType.SkipEncounter)(move)) {
68
+ this.pushGains([this.spaceGain]);
69
+ return this.endOfAction();
70
+ }
71
+ if (isCustomMoveType(CustomMoveType.ResolveQuest)(move)) {
72
+ return this.openReactions([TriggerType.SpendForce], RuleId.ResolveQuest);
73
+ }
74
+ if (isCustomMoveType(CustomMoveType.ChooseEncounter)(move))
75
+ return this.designate(move.data);
76
+ return super.onCustomMove(move);
77
+ }
78
+ designate(card) {
79
+ const ways = this.encounterMoves(card);
80
+ if (ways.length === 1 && ways[0].outcomes.length === encounterCardData[this.front(card)].outcomes.length)
81
+ return this.resolve(ways[0]);
82
+ this.memorize(Memory.ResolvedEncounter, card);
83
+ return [this.startRule(RuleId.ChooseOutcome)];
84
+ }
85
+ }
86
+ //# sourceMappingURL=ResolveEncounterRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResolveEncounterRule.js","sourceRoot":"","sources":["../../src/rules/ResolveEncounterRule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { ItemMove } from '@gamepark/rules-api';
2
+ import { LocationType } from '../material/LocationType';
3
+ import { MaterialType } from '../material/MaterialType';
4
+ import { HeroicQuestArea, QuestTile } from '../material/QuestTile';
5
+ import { GreyluneMove, GreyluneRule } from './GreyluneRule';
6
+ export declare class ResolveQuestRule extends GreyluneRule {
7
+ get space(): HeroicQuestArea;
8
+ get tile(): QuestTile;
9
+ onRuleStart(): GreyluneMove[];
10
+ get storiesAsked(): number;
11
+ private placeMarker;
12
+ get told(): number[];
13
+ get storiesOwed(): number;
14
+ getPlayerMoves(): GreyluneMove[];
15
+ afterItemMove(move: ItemMove<number, MaterialType, LocationType>): GreyluneMove[];
16
+ }
17
+ //# sourceMappingURL=ResolveQuestRule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResolveQuestRule.d.ts","sourceRoot":"","sources":["../../src/rules/ResolveQuestRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAI9C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,OAAO,EAAE,eAAe,EAAqB,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACrF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAa3D,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,IAAI,KAAK,IAAI,eAAe,CAE3B;IAED,IAAI,IAAI,IAAI,SAAS,CAEpB;IAED,WAAW,IAAI,YAAY,EAAE,CAa5B;IAED,IAAI,YAAY,IAAI,MAAM,CAGzB;IAGD,OAAO,CAAC,WAAW;IASnB,IAAI,IAAI,IAAI,MAAM,EAAE,CAEnB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,cAAc,IAAI,YAAY,EAAE,CAM/B;IAED,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,GAAG,YAAY,EAAE,CAKhF;CACF"}
@@ -0,0 +1,64 @@
1
+ import { Memory } from '../Memory';
2
+ import { RequirementType } from '../material/Effect';
3
+ import { encounterCardData } from '../material/EncounterCard';
4
+ import { LocationType } from '../material/LocationType';
5
+ import { MaterialType } from '../material/MaterialType';
6
+ import { adventurerArea } from '../material/PlayerState';
7
+ import { questRequirements } from '../material/QuestTile';
8
+ import { GreyluneRule } from './GreyluneRule';
9
+ import { RuleId } from './RuleId';
10
+ export class ResolveQuestRule extends GreyluneRule {
11
+ get space() {
12
+ return adventurerArea(this, this.player);
13
+ }
14
+ get tile() {
15
+ return this.material(MaterialType.QuestTile).location(LocationType.QuestTileSpace).locationId(this.space).getItem().id;
16
+ }
17
+ onRuleStart() {
18
+ const requirements = questRequirements[this.tile];
19
+ const moves = [...this.payRequirements(requirements), ...this.placeMarker()];
20
+ if (requirements.some((requirement) => requirement.type === RequirementType.DiscardItem)) {
21
+ this.memorize(Memory.Resume, RuleId.ResolveEffects);
22
+ return [...moves, this.startRule(RuleId.DiscardItem)];
23
+ }
24
+ if (this.storiesAsked) {
25
+ this.memorize(Memory.StoryTold, []);
26
+ return moves;
27
+ }
28
+ return [...moves, ...this.endOfAction()];
29
+ }
30
+ get storiesAsked() {
31
+ const stories = questRequirements[this.tile].find((requirement) => requirement.type === RequirementType.TellStories);
32
+ return stories ? (stories.count ?? 1) : 0;
33
+ }
34
+ placeMarker() {
35
+ const taken = this.material(MaterialType.QuestMarker).location(LocationType.QuestRewardSpace).locationId(this.space).length;
36
+ return this.material(MaterialType.QuestMarker)
37
+ .id(this.player)
38
+ .location(LocationType.QuestMarkerSpace)
39
+ .limit(1)
40
+ .moveItems({ type: LocationType.QuestRewardSpace, id: this.space, x: taken ? 1 : 0 });
41
+ }
42
+ get told() {
43
+ return this.remind(Memory.StoryTold) ?? [];
44
+ }
45
+ get storiesOwed() {
46
+ return this.storiesAsked - this.told.length;
47
+ }
48
+ getPlayerMoves() {
49
+ if (this.storiesOwed <= 0)
50
+ return [];
51
+ return this.encounterCards
52
+ .location(LocationType.UntoldStories)
53
+ .player(this.player)
54
+ .moveItems({ type: LocationType.ToldStories, player: this.player });
55
+ }
56
+ afterItemMove(move) {
57
+ if (move.itemType !== MaterialType.EncounterCard || !('itemIndex' in move))
58
+ return [];
59
+ const story = encounterCardData[this.encounterCards.getItem(move.itemIndex).id.front].story;
60
+ this.memorize(Memory.StoryTold, [...this.told, story]);
61
+ return this.storiesOwed > 0 ? [] : this.endOfAction();
62
+ }
63
+ }
64
+ //# sourceMappingURL=ResolveQuestRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResolveQuestRule.js","sourceRoot":"","sources":["../../src/rules/ResolveQuestRule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export declare enum RuleId {
2
+ Winter = 1,
3
+ Spring = 2,
4
+ Summer = 3,
5
+ Autumn = 4,
6
+ ActivateCard = 5,
7
+ UseItem = 6,
8
+ DiscardItem = 7,
9
+ Event = 8,
10
+ SpecialAction = 9,
11
+ Travel = 10,
12
+ ResolveEncounter = 11,
13
+ ChooseOutcome = 12,
14
+ ResolveQuest = 13,
15
+ TellStory = 14,
16
+ StraightenCard = 15,
17
+ PlaceVillager = 16,
18
+ ChooseSkill = 17,
19
+ BonusToken = 18,
20
+ Reaction = 19,
21
+ ResolveEffects = 20,
22
+ QuestsScoring = 21,
23
+ CompanionsScoring = 22,
24
+ ItemsScoring = 23,
25
+ SkillsScoring = 24
26
+ }
27
+ //# sourceMappingURL=RuleId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuleId.d.ts","sourceRoot":"","sources":["../../src/rules/RuleId.ts"],"names":[],"mappings":"AAsBA,oBAAY,MAAM;IAWhB,MAAM,IAAI;IAOV,MAAM,IAAA;IAON,MAAM,IAAA;IASN,MAAM,IAAA;IAUN,YAAY,IAAA;IAGZ,OAAO,IAAA;IAMP,WAAW,IAAA;IAMX,KAAK,IAAA;IAQL,aAAa,IAAA;IASb,MAAM,KAAA;IAQN,gBAAgB,KAAA;IAQhB,aAAa,KAAA;IAOb,YAAY,KAAA;IAOZ,SAAS,KAAA;IAGT,cAAc,KAAA;IAGd,aAAa,KAAA;IAGb,WAAW,KAAA;IAMX,UAAU,KAAA;IAMV,QAAQ,KAAA;IAOR,cAAc,KAAA;IASd,aAAa,KAAA;IACb,iBAAiB,KAAA;IACjB,YAAY,KAAA;IACZ,aAAa,KAAA;CACd"}
@@ -0,0 +1,28 @@
1
+ export var RuleId;
2
+ (function (RuleId) {
3
+ RuleId[RuleId["Winter"] = 1] = "Winter";
4
+ RuleId[RuleId["Spring"] = 2] = "Spring";
5
+ RuleId[RuleId["Summer"] = 3] = "Summer";
6
+ RuleId[RuleId["Autumn"] = 4] = "Autumn";
7
+ RuleId[RuleId["ActivateCard"] = 5] = "ActivateCard";
8
+ RuleId[RuleId["UseItem"] = 6] = "UseItem";
9
+ RuleId[RuleId["DiscardItem"] = 7] = "DiscardItem";
10
+ RuleId[RuleId["Event"] = 8] = "Event";
11
+ RuleId[RuleId["SpecialAction"] = 9] = "SpecialAction";
12
+ RuleId[RuleId["Travel"] = 10] = "Travel";
13
+ RuleId[RuleId["ResolveEncounter"] = 11] = "ResolveEncounter";
14
+ RuleId[RuleId["ChooseOutcome"] = 12] = "ChooseOutcome";
15
+ RuleId[RuleId["ResolveQuest"] = 13] = "ResolveQuest";
16
+ RuleId[RuleId["TellStory"] = 14] = "TellStory";
17
+ RuleId[RuleId["StraightenCard"] = 15] = "StraightenCard";
18
+ RuleId[RuleId["PlaceVillager"] = 16] = "PlaceVillager";
19
+ RuleId[RuleId["ChooseSkill"] = 17] = "ChooseSkill";
20
+ RuleId[RuleId["BonusToken"] = 18] = "BonusToken";
21
+ RuleId[RuleId["Reaction"] = 19] = "Reaction";
22
+ RuleId[RuleId["ResolveEffects"] = 20] = "ResolveEffects";
23
+ RuleId[RuleId["QuestsScoring"] = 21] = "QuestsScoring";
24
+ RuleId[RuleId["CompanionsScoring"] = 22] = "CompanionsScoring";
25
+ RuleId[RuleId["ItemsScoring"] = 23] = "ItemsScoring";
26
+ RuleId[RuleId["SkillsScoring"] = 24] = "SkillsScoring";
27
+ })(RuleId || (RuleId = {}));
28
+ //# sourceMappingURL=RuleId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuleId.js","sourceRoot":"","sources":["../../src/rules/RuleId.ts"],"names":[],"mappings":"AAsBA,MAAM,CAAN,IAAY,MAmJX;AAnJD,WAAY,MAAM;IAWhB,uCAAU,CAAA;IAOV,uCAAM,CAAA;IAON,uCAAM,CAAA;IASN,uCAAM,CAAA;IAUN,mDAAY,CAAA;IAGZ,yCAAO,CAAA;IAMP,iDAAW,CAAA;IAMX,qCAAK,CAAA;IAQL,qDAAa,CAAA;IASb,wCAAM,CAAA;IAQN,4DAAgB,CAAA;IAQhB,sDAAa,CAAA;IAOb,oDAAY,CAAA;IAOZ,8CAAS,CAAA;IAGT,wDAAc,CAAA;IAGd,sDAAa,CAAA;IAGb,kDAAW,CAAA;IAMX,gDAAU,CAAA;IAMV,4CAAQ,CAAA;IAOR,wDAAc,CAAA;IASd,sDAAa,CAAA;IACb,8DAAiB,CAAA;IACjB,oDAAY,CAAA;IACZ,sDAAa,CAAA;AACf,CAAC,EAnJW,MAAM,KAAN,MAAM,QAmJjB"}
@@ -0,0 +1,11 @@
1
+ import { ItemMove } from '@gamepark/rules-api';
2
+ import { LocationType } from '../material/LocationType';
3
+ import { MaterialType } from '../material/MaterialType';
4
+ import { Season } from '../Season';
5
+ import { GreyluneMove, GreyluneRule } from './GreyluneRule';
6
+ export declare abstract class SeasonRule extends GreyluneRule {
7
+ eventMoves(from: LocationType): GreyluneMove[];
8
+ changeSeasonMoves(to: Season): GreyluneMove[];
9
+ afterItemMove(move: ItemMove<number, MaterialType, LocationType>): GreyluneMove[];
10
+ }
11
+ //# sourceMappingURL=SeasonRule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SeasonRule.d.ts","sourceRoot":"","sources":["../../src/rules/SeasonRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAO3D,8BAAsB,UAAW,SAAQ,YAAY;IAMnD,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,EAAE,CAG7C;IAMD,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,EAAE,CAE5C;IAQD,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,GAAG,YAAY,EAAE,CAWhF;CACF"}
@@ -0,0 +1,32 @@
1
+ import { isMoveItemType } from '@gamepark/rules-api';
2
+ import { eventTriggers } from '../material/EventTile';
3
+ import { LocationType } from '../material/LocationType';
4
+ import { MaterialType } from '../material/MaterialType';
5
+ import { Season } from '../Season';
6
+ import { GreyluneRule } from './GreyluneRule';
7
+ import { RuleId } from './RuleId';
8
+ export class SeasonRule extends GreyluneRule {
9
+ eventMoves(from) {
10
+ if (this.hasUsedEvent || !this.eventOptions.length)
11
+ return [];
12
+ return this.villagers.location(from).player(this.player).moveItems(this.eventSpace);
13
+ }
14
+ changeSeasonMoves(to) {
15
+ return this.material(MaterialType.SeasonMarker).id(this.player).moveItems({ type: LocationType.SeasonTrack, id: to });
16
+ }
17
+ afterItemMove(move) {
18
+ if (isMoveItemType(MaterialType.SeasonMarker)(move)) {
19
+ return [this.startRule(move.location.id === Season.Summer ? RuleId.Summer : RuleId.Autumn)];
20
+ }
21
+ if (!isMoveItemType(MaterialType.Villager)(move))
22
+ return [];
23
+ if (move.location.type === LocationType.EventSpace) {
24
+ const tile = this.eventTile;
25
+ return this.openReactions(tile === undefined ? [] : eventTriggers(tile), RuleId.Event);
26
+ }
27
+ if (move.location.type === LocationType.VillageGap)
28
+ return this.endOfAction();
29
+ return [];
30
+ }
31
+ }
32
+ //# sourceMappingURL=SeasonRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SeasonRule.js","sourceRoot":"","sources":["../../src/rules/SeasonRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAY,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAgB,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAMjC,MAAM,OAAgB,UAAW,SAAQ,YAAY;IAMnD,UAAU,CAAC,IAAkB;QAC3B,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM;YAAE,OAAO,EAAE,CAAA;QAC7D,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACrF,CAAC;IAMD,iBAAiB,CAAC,EAAU;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACvH,CAAC;IAQD,aAAa,CAAC,IAAkD;QAC9D,IAAI,cAAc,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QAC7F,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAA;QAC3D,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,UAAU,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAA;YAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QACxF,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;QAC7E,OAAO,EAAE,CAAA;IACX,CAAC;CACF"}