@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.
- package/dist/Constants.d.ts +23 -0
- package/dist/Constants.d.ts.map +1 -0
- package/dist/Constants.js +17 -0
- package/dist/Constants.js.map +1 -0
- package/dist/GreyluneOptions.d.ts +11 -0
- package/dist/GreyluneOptions.d.ts.map +1 -0
- package/dist/GreyluneOptions.js +8 -0
- package/dist/GreyluneOptions.js.map +1 -0
- package/dist/GreyluneRules.d.ts +123 -0
- package/dist/GreyluneRules.d.ts.map +1 -0
- package/dist/GreyluneRules.js +122 -0
- package/dist/GreyluneRules.js.map +1 -0
- package/dist/GreyluneSetup.d.ts +18 -0
- package/dist/GreyluneSetup.d.ts.map +1 -0
- package/dist/GreyluneSetup.js +88 -0
- package/dist/GreyluneSetup.js.map +1 -0
- package/dist/Memory.d.ts +22 -0
- package/dist/Memory.d.ts.map +1 -0
- package/dist/Memory.js +23 -0
- package/dist/Memory.js.map +1 -0
- package/dist/PlayerColor.d.ts +7 -0
- package/dist/PlayerColor.d.ts.map +1 -0
- package/dist/PlayerColor.js +8 -0
- package/dist/PlayerColor.js.map +1 -0
- package/dist/Season.d.ts +7 -0
- package/dist/Season.d.ts.map +1 -0
- package/dist/Season.js +8 -0
- package/dist/Season.js.map +1 -0
- package/dist/Year.d.ts +8 -0
- package/dist/Year.d.ts.map +1 -0
- package/dist/Year.js +10 -0
- package/dist/Year.js.map +1 -0
- package/dist/ai/Evaluation.d.ts +118 -0
- package/dist/ai/Evaluation.d.ts.map +1 -0
- package/dist/ai/Evaluation.js +1069 -0
- package/dist/ai/Evaluation.js.map +1 -0
- package/dist/ai/GreyluneAI.d.ts +20 -0
- package/dist/ai/GreyluneAI.d.ts.map +1 -0
- package/dist/ai/GreyluneAI.js +113 -0
- package/dist/ai/GreyluneAI.js.map +1 -0
- package/dist/ai/Model.d.ts +38 -0
- package/dist/ai/Model.d.ts.map +1 -0
- package/dist/ai/Model.js +105 -0
- package/dist/ai/Model.js.map +1 -0
- package/dist/ai/Simulation.d.ts +13 -0
- package/dist/ai/Simulation.d.ts.map +1 -0
- package/dist/ai/Simulation.js +20 -0
- package/dist/ai/Simulation.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/material/Area.d.ts +9 -0
- package/dist/material/Area.d.ts.map +1 -0
- package/dist/material/Area.js +10 -0
- package/dist/material/Area.js.map +1 -0
- package/dist/material/Distance.d.ts +8 -0
- package/dist/material/Distance.d.ts.map +1 -0
- package/dist/material/Distance.js +9 -0
- package/dist/material/Distance.js.map +1 -0
- package/dist/material/Effect.d.ts +103 -0
- package/dist/material/Effect.d.ts.map +1 -0
- package/dist/material/Effect.js +83 -0
- package/dist/material/Effect.js.map +1 -0
- package/dist/material/EncounterCard.d.ts +61 -0
- package/dist/material/EncounterCard.d.ts.map +1 -0
- package/dist/material/EncounterCard.js +214 -0
- package/dist/material/EncounterCard.js.map +1 -0
- package/dist/material/EventTile.d.ts +17 -0
- package/dist/material/EventTile.d.ts.map +1 -0
- package/dist/material/EventTile.js +52 -0
- package/dist/material/EventTile.js.map +1 -0
- package/dist/material/LocationType.d.ts +42 -0
- package/dist/material/LocationType.d.ts.map +1 -0
- package/dist/material/LocationType.js +43 -0
- package/dist/material/LocationType.js.map +1 -0
- package/dist/material/MaterialSource.d.ts +8 -0
- package/dist/material/MaterialSource.d.ts.map +1 -0
- package/dist/material/MaterialSource.js +2 -0
- package/dist/material/MaterialSource.js.map +1 -0
- package/dist/material/MaterialType.d.ts +23 -0
- package/dist/material/MaterialType.d.ts.map +1 -0
- package/dist/material/MaterialType.js +24 -0
- package/dist/material/MaterialType.js.map +1 -0
- package/dist/material/Period.d.ts +6 -0
- package/dist/material/Period.d.ts.map +1 -0
- package/dist/material/Period.js +7 -0
- package/dist/material/Period.js.map +1 -0
- package/dist/material/PlayerState.d.ts +34 -0
- package/dist/material/PlayerState.d.ts.map +1 -0
- package/dist/material/PlayerState.js +106 -0
- package/dist/material/PlayerState.js.map +1 -0
- package/dist/material/QuestTile.d.ts +21 -0
- package/dist/material/QuestTile.d.ts.map +1 -0
- package/dist/material/QuestTile.js +32 -0
- package/dist/material/QuestTile.js.map +1 -0
- package/dist/material/Reaction.d.ts +49 -0
- package/dist/material/Reaction.d.ts.map +1 -0
- package/dist/material/Reaction.js +37 -0
- package/dist/material/Reaction.js.map +1 -0
- package/dist/material/Tokens.d.ts +29 -0
- package/dist/material/Tokens.d.ts.map +1 -0
- package/dist/material/Tokens.js +46 -0
- package/dist/material/Tokens.js.map +1 -0
- package/dist/material/Village.d.ts +23 -0
- package/dist/material/Village.d.ts.map +1 -0
- package/dist/material/Village.js +29 -0
- package/dist/material/Village.js.map +1 -0
- package/dist/material/VillageCard.d.ts +90 -0
- package/dist/material/VillageCard.d.ts.map +1 -0
- package/dist/material/VillageCard.js +359 -0
- package/dist/material/VillageCard.js.map +1 -0
- package/dist/material/Villager.d.ts +8 -0
- package/dist/material/Villager.d.ts.map +1 -0
- package/dist/material/Villager.js +7 -0
- package/dist/material/Villager.js.map +1 -0
- package/dist/material/VpToken.d.ts +10 -0
- package/dist/material/VpToken.d.ts.map +1 -0
- package/dist/material/VpToken.js +9 -0
- package/dist/material/VpToken.js.map +1 -0
- package/dist/rules/ActivateCardRule.d.ts +43 -0
- package/dist/rules/ActivateCardRule.d.ts.map +1 -0
- package/dist/rules/ActivateCardRule.js +183 -0
- package/dist/rules/ActivateCardRule.js.map +1 -0
- package/dist/rules/AutumnRule.d.ts +9 -0
- package/dist/rules/AutumnRule.d.ts.map +1 -0
- package/dist/rules/AutumnRule.js +42 -0
- package/dist/rules/AutumnRule.js.map +1 -0
- package/dist/rules/BonusTokenRule.d.ts +10 -0
- package/dist/rules/BonusTokenRule.d.ts.map +1 -0
- package/dist/rules/BonusTokenRule.js +20 -0
- package/dist/rules/BonusTokenRule.js.map +1 -0
- package/dist/rules/ChooseOutcomeRule.d.ts +9 -0
- package/dist/rules/ChooseOutcomeRule.d.ts.map +1 -0
- package/dist/rules/ChooseOutcomeRule.js +18 -0
- package/dist/rules/ChooseOutcomeRule.js.map +1 -0
- package/dist/rules/ChooseSkillRule.d.ts +10 -0
- package/dist/rules/ChooseSkillRule.d.ts.map +1 -0
- package/dist/rules/ChooseSkillRule.js +20 -0
- package/dist/rules/ChooseSkillRule.js.map +1 -0
- package/dist/rules/CustomMoveType.d.ts +17 -0
- package/dist/rules/CustomMoveType.d.ts.map +1 -0
- package/dist/rules/CustomMoveType.js +18 -0
- package/dist/rules/CustomMoveType.js.map +1 -0
- package/dist/rules/DiscardItemRule.d.ts +9 -0
- package/dist/rules/DiscardItemRule.d.ts.map +1 -0
- package/dist/rules/DiscardItemRule.js +19 -0
- package/dist/rules/DiscardItemRule.js.map +1 -0
- package/dist/rules/EncounterRule.d.ts +26 -0
- package/dist/rules/EncounterRule.d.ts.map +1 -0
- package/dist/rules/EncounterRule.js +75 -0
- package/dist/rules/EncounterRule.js.map +1 -0
- package/dist/rules/EventRule.d.ts +13 -0
- package/dist/rules/EventRule.d.ts.map +1 -0
- package/dist/rules/EventRule.js +39 -0
- package/dist/rules/EventRule.js.map +1 -0
- package/dist/rules/FinalScoringRule.d.ts +18 -0
- package/dist/rules/FinalScoringRule.d.ts.map +1 -0
- package/dist/rules/FinalScoringRule.js +30 -0
- package/dist/rules/FinalScoringRule.js.map +1 -0
- package/dist/rules/GreyluneRule.d.ts +87 -0
- package/dist/rules/GreyluneRule.d.ts.map +1 -0
- package/dist/rules/GreyluneRule.js +432 -0
- package/dist/rules/GreyluneRule.js.map +1 -0
- package/dist/rules/PlaceVillagerRule.d.ts +10 -0
- package/dist/rules/PlaceVillagerRule.d.ts.map +1 -0
- package/dist/rules/PlaceVillagerRule.js +17 -0
- package/dist/rules/PlaceVillagerRule.js.map +1 -0
- package/dist/rules/ReactionRule.d.ts +17 -0
- package/dist/rules/ReactionRule.d.ts.map +1 -0
- package/dist/rules/ReactionRule.js +48 -0
- package/dist/rules/ReactionRule.js.map +1 -0
- package/dist/rules/ResolveEffectsRule.d.ts +12 -0
- package/dist/rules/ResolveEffectsRule.d.ts.map +1 -0
- package/dist/rules/ResolveEffectsRule.js +85 -0
- package/dist/rules/ResolveEffectsRule.js.map +1 -0
- package/dist/rules/ResolveEncounterRule.d.ts +19 -0
- package/dist/rules/ResolveEncounterRule.d.ts.map +1 -0
- package/dist/rules/ResolveEncounterRule.js +86 -0
- package/dist/rules/ResolveEncounterRule.js.map +1 -0
- package/dist/rules/ResolveQuestRule.d.ts +17 -0
- package/dist/rules/ResolveQuestRule.d.ts.map +1 -0
- package/dist/rules/ResolveQuestRule.js +64 -0
- package/dist/rules/ResolveQuestRule.js.map +1 -0
- package/dist/rules/RuleId.d.ts +27 -0
- package/dist/rules/RuleId.d.ts.map +1 -0
- package/dist/rules/RuleId.js +28 -0
- package/dist/rules/RuleId.js.map +1 -0
- package/dist/rules/SeasonRule.d.ts +11 -0
- package/dist/rules/SeasonRule.d.ts.map +1 -0
- package/dist/rules/SeasonRule.js +32 -0
- package/dist/rules/SeasonRule.js.map +1 -0
- package/dist/rules/SpecialActionRule.d.ts +15 -0
- package/dist/rules/SpecialActionRule.d.ts.map +1 -0
- package/dist/rules/SpecialActionRule.js +32 -0
- package/dist/rules/SpecialActionRule.js.map +1 -0
- package/dist/rules/SpringRule.d.ts +7 -0
- package/dist/rules/SpringRule.d.ts.map +1 -0
- package/dist/rules/SpringRule.js +16 -0
- package/dist/rules/SpringRule.js.map +1 -0
- package/dist/rules/StraightenCardRule.d.ts +9 -0
- package/dist/rules/StraightenCardRule.d.ts.map +1 -0
- package/dist/rules/StraightenCardRule.js +11 -0
- package/dist/rules/StraightenCardRule.js.map +1 -0
- package/dist/rules/SummerRule.d.ts +30 -0
- package/dist/rules/SummerRule.d.ts.map +1 -0
- package/dist/rules/SummerRule.js +140 -0
- package/dist/rules/SummerRule.js.map +1 -0
- package/dist/rules/TellStoryRule.d.ts +22 -0
- package/dist/rules/TellStoryRule.d.ts.map +1 -0
- package/dist/rules/TellStoryRule.js +72 -0
- package/dist/rules/TellStoryRule.js.map +1 -0
- package/dist/rules/TheFirstStepRule.d.ts +5 -0
- package/dist/rules/TheFirstStepRule.d.ts.map +1 -0
- package/dist/rules/TheFirstStepRule.js +7 -0
- package/dist/rules/TheFirstStepRule.js.map +1 -0
- package/dist/rules/TravelRule.d.ts +13 -0
- package/dist/rules/TravelRule.d.ts.map +1 -0
- package/dist/rules/TravelRule.js +41 -0
- package/dist/rules/TravelRule.js.map +1 -0
- package/dist/rules/UseItemRule.d.ts +6 -0
- package/dist/rules/UseItemRule.d.ts.map +1 -0
- package/dist/rules/UseItemRule.js +35 -0
- package/dist/rules/UseItemRule.js.map +1 -0
- package/dist/rules/WinterRule.d.ts +24 -0
- package/dist/rules/WinterRule.d.ts.map +1 -0
- package/dist/rules/WinterRule.js +112 -0
- package/dist/rules/WinterRule.js.map +1 -0
- 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":"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"}
|
|
@@ -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"}
|