@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,23 @@
|
|
|
1
|
+
export declare const VILLAGE_GRID_SIDE = 3;
|
|
2
|
+
export declare const VILLAGE_CARDS_REMOVED = 2;
|
|
3
|
+
export declare const EVENT_TILES_REMOVED = 1;
|
|
4
|
+
export declare const QUEST_MARKERS = 3;
|
|
5
|
+
export declare const SEALS_PER_VALUE = 8;
|
|
6
|
+
export declare const ACTIVE_VILLAGERS = 3;
|
|
7
|
+
export declare const STARTING_COINS = 8;
|
|
8
|
+
export declare const MAX_COMPANIONS = 3;
|
|
9
|
+
export declare const MAX_ITEMS = 3;
|
|
10
|
+
export declare const MAX_SKILL = 5;
|
|
11
|
+
export declare const SCORE_TRACK_SIZE = 25;
|
|
12
|
+
export declare const MAX_STORY_VALUE = 3;
|
|
13
|
+
export declare const BONUS_TOKEN_SCORES: number[];
|
|
14
|
+
export declare const BASE_INCOME = 3;
|
|
15
|
+
export declare const SKILLED_SCORE: {
|
|
16
|
+
level: number;
|
|
17
|
+
vp: number;
|
|
18
|
+
};
|
|
19
|
+
export declare const MASTER_SCORE: {
|
|
20
|
+
level: number;
|
|
21
|
+
vp: number;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=Constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../src/Constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAGlC,eAAO,MAAM,qBAAqB,IAAI,CAAA;AAGtC,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAGpC,eAAO,MAAM,aAAa,IAAI,CAAA;AAG9B,eAAO,MAAM,eAAe,IAAI,CAAA;AAGhC,eAAO,MAAM,gBAAgB,IAAI,CAAA;AAEjC,eAAO,MAAM,cAAc,IAAI,CAAA;AAG/B,eAAO,MAAM,cAAc,IAAI,CAAA;AAC/B,eAAO,MAAM,SAAS,IAAI,CAAA;AAG1B,eAAO,MAAM,SAAS,IAAI,CAAA;AAG1B,eAAO,MAAM,gBAAgB,KAAK,CAAA;AAGlC,eAAO,MAAM,eAAe,IAAI,CAAA;AAGhC,eAAO,MAAM,kBAAkB,UAAU,CAAA;AAGzC,eAAO,MAAM,WAAW,IAAI,CAAA;AAG5B,eAAO,MAAM,aAAa;IAAK,KAAK;IAAK,EAAE;CAAK,CAAA;AAChD,eAAO,MAAM,YAAY;;;CAA8B,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const VILLAGE_GRID_SIDE = 3;
|
|
2
|
+
export const VILLAGE_CARDS_REMOVED = 2;
|
|
3
|
+
export const EVENT_TILES_REMOVED = 1;
|
|
4
|
+
export const QUEST_MARKERS = 3;
|
|
5
|
+
export const SEALS_PER_VALUE = 8;
|
|
6
|
+
export const ACTIVE_VILLAGERS = 3;
|
|
7
|
+
export const STARTING_COINS = 8;
|
|
8
|
+
export const MAX_COMPANIONS = 3;
|
|
9
|
+
export const MAX_ITEMS = 3;
|
|
10
|
+
export const MAX_SKILL = 5;
|
|
11
|
+
export const SCORE_TRACK_SIZE = 25;
|
|
12
|
+
export const MAX_STORY_VALUE = 3;
|
|
13
|
+
export const BONUS_TOKEN_SCORES = [8, 20];
|
|
14
|
+
export const BASE_INCOME = 3;
|
|
15
|
+
export const SKILLED_SCORE = { level: 3, vp: 2 };
|
|
16
|
+
export const MASTER_SCORE = { level: MAX_SKILL, vp: 5 };
|
|
17
|
+
//# sourceMappingURL=Constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Constants.js","sourceRoot":"","sources":["../src/Constants.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAGlC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAA;AAGtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAA;AAGpC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAA;AAG9B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAA;AAGhC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAA;AAEjC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAA;AAG/B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAA;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAA;AAG1B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAA;AAG1B,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAGlC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAA;AAGhC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAGzC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAA;AAG5B,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;AAChD,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { OptionsSpecV2 } from '@gamepark/rules-api';
|
|
2
|
+
import { PlayerColor } from './PlayerColor';
|
|
3
|
+
type PlayerOptions = {
|
|
4
|
+
id: PlayerColor;
|
|
5
|
+
};
|
|
6
|
+
export type GreyluneOptions = {
|
|
7
|
+
players: PlayerOptions[];
|
|
8
|
+
};
|
|
9
|
+
export declare const GreyluneOptionsSpecV2: OptionsSpecV2;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=GreyluneOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GreyluneOptions.d.ts","sourceRoot":"","sources":["../src/GreyluneOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAK3C,KAAK,aAAa,GAAG;IAAE,EAAE,EAAE,WAAW,CAAA;CAAE,CAAA;AAMxC,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,aAAa,EAAE,CAAA;CACzB,CAAA;AAmBD,eAAO,MAAM,qBAAqB,EAAE,aAInC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { getEnumValues } from '@gamepark/rules-api';
|
|
2
|
+
import { PlayerColor } from './PlayerColor';
|
|
3
|
+
export const GreyluneOptionsSpecV2 = {
|
|
4
|
+
specVersion: 2,
|
|
5
|
+
players: { min: 2, max: 4 },
|
|
6
|
+
identities: { values: getEnumValues(PlayerColor) }
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=GreyluneOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GreyluneOptions.js","sourceRoot":"","sources":["../src/GreyluneOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiB,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAgC3C,MAAM,CAAC,MAAM,qBAAqB,GAAkB;IAClD,WAAW,EAAE,CAAC;IACd,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;IAC3B,UAAU,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE;CACnD,CAAA"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { FillGapStrategy, HiddenMaterialRules, HidingStrategy, MaterialGame, MaterialMove, PositiveSequenceStrategy, StackingStrategy, TimeLimit } from '@gamepark/rules-api';
|
|
2
|
+
import { LocationType } from './material/LocationType';
|
|
3
|
+
import { MaterialType } from './material/MaterialType';
|
|
4
|
+
import { PlayerColor } from './PlayerColor';
|
|
5
|
+
import { ActivateCardRule } from './rules/ActivateCardRule';
|
|
6
|
+
import { AutumnRule } from './rules/AutumnRule';
|
|
7
|
+
import { BonusTokenRule } from './rules/BonusTokenRule';
|
|
8
|
+
import { ChooseOutcomeRule } from './rules/ChooseOutcomeRule';
|
|
9
|
+
import { ChooseSkillRule } from './rules/ChooseSkillRule';
|
|
10
|
+
import { DiscardItemRule } from './rules/DiscardItemRule';
|
|
11
|
+
import { EventRule } from './rules/EventRule';
|
|
12
|
+
import { FinalScoringRule } from './rules/FinalScoringRule';
|
|
13
|
+
import { PlaceVillagerRule } from './rules/PlaceVillagerRule';
|
|
14
|
+
import { ReactionRule } from './rules/ReactionRule';
|
|
15
|
+
import { ResolveEffectsRule } from './rules/ResolveEffectsRule';
|
|
16
|
+
import { ResolveEncounterRule } from './rules/ResolveEncounterRule';
|
|
17
|
+
import { ResolveQuestRule } from './rules/ResolveQuestRule';
|
|
18
|
+
import { RuleId } from './rules/RuleId';
|
|
19
|
+
import { SpecialActionRule } from './rules/SpecialActionRule';
|
|
20
|
+
import { SpringRule } from './rules/SpringRule';
|
|
21
|
+
import { StraightenCardRule } from './rules/StraightenCardRule';
|
|
22
|
+
import { SummerRule } from './rules/SummerRule';
|
|
23
|
+
import { TellStoryRule } from './rules/TellStoryRule';
|
|
24
|
+
import { TravelRule } from './rules/TravelRule';
|
|
25
|
+
import { UseItemRule } from './rules/UseItemRule';
|
|
26
|
+
import { WinterRule } from './rules/WinterRule';
|
|
27
|
+
export declare class GreyluneRules extends HiddenMaterialRules<PlayerColor, MaterialType, LocationType> implements TimeLimit<MaterialGame<PlayerColor, MaterialType, LocationType>, MaterialMove<PlayerColor, MaterialType, LocationType>, PlayerColor> {
|
|
28
|
+
rules: {
|
|
29
|
+
1: typeof WinterRule;
|
|
30
|
+
2: typeof SpringRule;
|
|
31
|
+
3: typeof SummerRule;
|
|
32
|
+
4: typeof AutumnRule;
|
|
33
|
+
5: typeof ActivateCardRule;
|
|
34
|
+
6: typeof UseItemRule;
|
|
35
|
+
7: typeof DiscardItemRule;
|
|
36
|
+
8: typeof EventRule;
|
|
37
|
+
9: typeof SpecialActionRule;
|
|
38
|
+
10: typeof TravelRule;
|
|
39
|
+
11: typeof ResolveEncounterRule;
|
|
40
|
+
12: typeof ChooseOutcomeRule;
|
|
41
|
+
13: typeof ResolveQuestRule;
|
|
42
|
+
14: typeof TellStoryRule;
|
|
43
|
+
15: typeof StraightenCardRule;
|
|
44
|
+
16: typeof PlaceVillagerRule;
|
|
45
|
+
17: typeof ChooseSkillRule;
|
|
46
|
+
18: typeof BonusTokenRule;
|
|
47
|
+
19: typeof ReactionRule;
|
|
48
|
+
20: typeof ResolveEffectsRule;
|
|
49
|
+
21: typeof FinalScoringRule;
|
|
50
|
+
22: typeof FinalScoringRule;
|
|
51
|
+
23: typeof FinalScoringRule;
|
|
52
|
+
24: typeof FinalScoringRule;
|
|
53
|
+
};
|
|
54
|
+
locationsStrategies: {
|
|
55
|
+
1: {
|
|
56
|
+
4: PositiveSequenceStrategy<number, number, number>;
|
|
57
|
+
25: PositiveSequenceStrategy<number, number, number>;
|
|
58
|
+
26: PositiveSequenceStrategy<number, number, number>;
|
|
59
|
+
};
|
|
60
|
+
2: {
|
|
61
|
+
7: PositiveSequenceStrategy<number, number, number>;
|
|
62
|
+
8: PositiveSequenceStrategy<number, number, number>;
|
|
63
|
+
27: PositiveSequenceStrategy<number, number, number>;
|
|
64
|
+
28: PositiveSequenceStrategy<number, number, number>;
|
|
65
|
+
};
|
|
66
|
+
3: {
|
|
67
|
+
9: PositiveSequenceStrategy<number, number, number>;
|
|
68
|
+
};
|
|
69
|
+
9: {
|
|
70
|
+
29: PositiveSequenceStrategy<number, number, number>;
|
|
71
|
+
22: PositiveSequenceStrategy<number, number, number>;
|
|
72
|
+
6: StackingStrategy;
|
|
73
|
+
10: StackingStrategy;
|
|
74
|
+
};
|
|
75
|
+
8: {
|
|
76
|
+
13: PositiveSequenceStrategy<number, number, number>;
|
|
77
|
+
};
|
|
78
|
+
11: {
|
|
79
|
+
14: StackingStrategy;
|
|
80
|
+
};
|
|
81
|
+
10: {
|
|
82
|
+
23: PositiveSequenceStrategy<number, number, number>;
|
|
83
|
+
};
|
|
84
|
+
12: {
|
|
85
|
+
32: FillGapStrategy<number, number, number>;
|
|
86
|
+
12: StackingStrategy;
|
|
87
|
+
};
|
|
88
|
+
17: {
|
|
89
|
+
17: PositiveSequenceStrategy<number, number, number>;
|
|
90
|
+
18: PositiveSequenceStrategy<number, number, number>;
|
|
91
|
+
20: FillGapStrategy<number, number, number>;
|
|
92
|
+
};
|
|
93
|
+
18: {
|
|
94
|
+
19: PositiveSequenceStrategy<number, number, number>;
|
|
95
|
+
33: PositiveSequenceStrategy<number, number, number>;
|
|
96
|
+
};
|
|
97
|
+
15: {
|
|
98
|
+
35: FillGapStrategy<number, number, number>;
|
|
99
|
+
};
|
|
100
|
+
19: {
|
|
101
|
+
15: PositiveSequenceStrategy<number, number, number>;
|
|
102
|
+
37: PositiveSequenceStrategy<number, number, number>;
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
hidingStrategies: {
|
|
106
|
+
1: {
|
|
107
|
+
4: HidingStrategy<number, number>;
|
|
108
|
+
};
|
|
109
|
+
2: {
|
|
110
|
+
7: HidingStrategy<number, number>;
|
|
111
|
+
};
|
|
112
|
+
3: {
|
|
113
|
+
9: HidingStrategy<PlayerColor, LocationType>;
|
|
114
|
+
};
|
|
115
|
+
17: {
|
|
116
|
+
17: HidingStrategy<number, number>;
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
isUnpredictableMove(move: MaterialMove<PlayerColor, MaterialType, LocationType, RuleId>, player: PlayerColor): boolean;
|
|
120
|
+
getScore(player: PlayerColor): number;
|
|
121
|
+
giveTime(): number;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=GreyluneRules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GreyluneRules.d.ts","sourceRoot":"","sources":["../src/GreyluneRules.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEf,mBAAmB,EACnB,cAAc,EAGd,YAAY,EACZ,YAAY,EACZ,wBAAwB,EACxB,gBAAgB,EAChB,SAAS,EACV,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAqB,MAAM,0BAA0B,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAa/C,qBAAa,aACX,SAAQ,mBAAmB,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CACnE,YAAW,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC;IAE/I,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;MAyBJ;IAsCD,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAkDlB;IAMD,gBAAgB;;;;;;;;;;;;;MAKf;IAOD,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAErH;IAQD,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAEpC;IAED,QAAQ,IAAI,MAAM,CAEjB;CACF"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { FillGapStrategy, hideFront, HiddenMaterialRules, hideItemId, isStartRule, PositiveSequenceStrategy, StackingStrategy } from '@gamepark/rules-api';
|
|
2
|
+
import { LocationType } from './material/LocationType';
|
|
3
|
+
import { MaterialType } from './material/MaterialType';
|
|
4
|
+
import { playerVp } from './material/PlayerState';
|
|
5
|
+
import { ActivateCardRule } from './rules/ActivateCardRule';
|
|
6
|
+
import { AutumnRule } from './rules/AutumnRule';
|
|
7
|
+
import { BonusTokenRule } from './rules/BonusTokenRule';
|
|
8
|
+
import { ChooseOutcomeRule } from './rules/ChooseOutcomeRule';
|
|
9
|
+
import { ChooseSkillRule } from './rules/ChooseSkillRule';
|
|
10
|
+
import { DiscardItemRule } from './rules/DiscardItemRule';
|
|
11
|
+
import { EventRule } from './rules/EventRule';
|
|
12
|
+
import { FinalScoringRule, scoreStillToCount } from './rules/FinalScoringRule';
|
|
13
|
+
import { PlaceVillagerRule } from './rules/PlaceVillagerRule';
|
|
14
|
+
import { ReactionRule } from './rules/ReactionRule';
|
|
15
|
+
import { ResolveEffectsRule } from './rules/ResolveEffectsRule';
|
|
16
|
+
import { ResolveEncounterRule } from './rules/ResolveEncounterRule';
|
|
17
|
+
import { ResolveQuestRule } from './rules/ResolveQuestRule';
|
|
18
|
+
import { RuleId } from './rules/RuleId';
|
|
19
|
+
import { SpecialActionRule } from './rules/SpecialActionRule';
|
|
20
|
+
import { SpringRule } from './rules/SpringRule';
|
|
21
|
+
import { StraightenCardRule } from './rules/StraightenCardRule';
|
|
22
|
+
import { SummerRule } from './rules/SummerRule';
|
|
23
|
+
import { TellStoryRule } from './rules/TellStoryRule';
|
|
24
|
+
import { TravelRule } from './rules/TravelRule';
|
|
25
|
+
import { UseItemRule } from './rules/UseItemRule';
|
|
26
|
+
import { WinterRule } from './rules/WinterRule';
|
|
27
|
+
const hideEventTile = (item) => (item.location.rotation ? [] : hideItemId(item));
|
|
28
|
+
export class GreyluneRules extends HiddenMaterialRules {
|
|
29
|
+
rules = {
|
|
30
|
+
[RuleId.Winter]: WinterRule,
|
|
31
|
+
[RuleId.Spring]: SpringRule,
|
|
32
|
+
[RuleId.Summer]: SummerRule,
|
|
33
|
+
[RuleId.Autumn]: AutumnRule,
|
|
34
|
+
[RuleId.ActivateCard]: ActivateCardRule,
|
|
35
|
+
[RuleId.UseItem]: UseItemRule,
|
|
36
|
+
[RuleId.DiscardItem]: DiscardItemRule,
|
|
37
|
+
[RuleId.Event]: EventRule,
|
|
38
|
+
[RuleId.SpecialAction]: SpecialActionRule,
|
|
39
|
+
[RuleId.Travel]: TravelRule,
|
|
40
|
+
[RuleId.ResolveEncounter]: ResolveEncounterRule,
|
|
41
|
+
[RuleId.ChooseOutcome]: ChooseOutcomeRule,
|
|
42
|
+
[RuleId.ResolveQuest]: ResolveQuestRule,
|
|
43
|
+
[RuleId.TellStory]: TellStoryRule,
|
|
44
|
+
[RuleId.StraightenCard]: StraightenCardRule,
|
|
45
|
+
[RuleId.PlaceVillager]: PlaceVillagerRule,
|
|
46
|
+
[RuleId.ChooseSkill]: ChooseSkillRule,
|
|
47
|
+
[RuleId.BonusToken]: BonusTokenRule,
|
|
48
|
+
[RuleId.Reaction]: ReactionRule,
|
|
49
|
+
[RuleId.ResolveEffects]: ResolveEffectsRule,
|
|
50
|
+
[RuleId.QuestsScoring]: FinalScoringRule,
|
|
51
|
+
[RuleId.CompanionsScoring]: FinalScoringRule,
|
|
52
|
+
[RuleId.ItemsScoring]: FinalScoringRule,
|
|
53
|
+
[RuleId.SkillsScoring]: FinalScoringRule
|
|
54
|
+
};
|
|
55
|
+
locationsStrategies = {
|
|
56
|
+
[MaterialType.VillageCard]: {
|
|
57
|
+
[LocationType.VillageDeck]: new PositiveSequenceStrategy(),
|
|
58
|
+
[LocationType.Companions]: new PositiveSequenceStrategy(),
|
|
59
|
+
[LocationType.Items]: new PositiveSequenceStrategy()
|
|
60
|
+
},
|
|
61
|
+
[MaterialType.EncounterCard]: {
|
|
62
|
+
[LocationType.EncounterDeck]: new PositiveSequenceStrategy(),
|
|
63
|
+
[LocationType.EncounterRow]: new PositiveSequenceStrategy(),
|
|
64
|
+
[LocationType.UntoldStories]: new PositiveSequenceStrategy(),
|
|
65
|
+
[LocationType.ToldStories]: new PositiveSequenceStrategy()
|
|
66
|
+
},
|
|
67
|
+
[MaterialType.EventTile]: {
|
|
68
|
+
[LocationType.EventPile]: new PositiveSequenceStrategy()
|
|
69
|
+
},
|
|
70
|
+
[MaterialType.Villager]: {
|
|
71
|
+
[LocationType.ActiveVillagers]: new PositiveSequenceStrategy(),
|
|
72
|
+
[LocationType.VillagerReserve]: new PositiveSequenceStrategy(),
|
|
73
|
+
[LocationType.VillageGap]: new StackingStrategy(),
|
|
74
|
+
[LocationType.EventSpace]: new StackingStrategy()
|
|
75
|
+
},
|
|
76
|
+
[MaterialType.Adventurer]: {
|
|
77
|
+
[LocationType.Area]: new PositiveSequenceStrategy()
|
|
78
|
+
},
|
|
79
|
+
[MaterialType.ScoreMarker]: {
|
|
80
|
+
[LocationType.ScoreTrack]: new StackingStrategy()
|
|
81
|
+
},
|
|
82
|
+
[MaterialType.SeasonMarker]: {
|
|
83
|
+
[LocationType.SeasonTrack]: new PositiveSequenceStrategy()
|
|
84
|
+
},
|
|
85
|
+
[MaterialType.QuestMarker]: {
|
|
86
|
+
[LocationType.QuestMarkerSpace]: new FillGapStrategy(),
|
|
87
|
+
[LocationType.QuestRewardSpace]: new StackingStrategy()
|
|
88
|
+
},
|
|
89
|
+
[MaterialType.Seal]: {
|
|
90
|
+
[LocationType.SealStack]: new PositiveSequenceStrategy(),
|
|
91
|
+
[LocationType.SealDiscard]: new PositiveSequenceStrategy(),
|
|
92
|
+
[LocationType.CardSeal]: new FillGapStrategy()
|
|
93
|
+
},
|
|
94
|
+
[MaterialType.IncomeToken]: {
|
|
95
|
+
[LocationType.IncomeTokenStock]: new PositiveSequenceStrategy(),
|
|
96
|
+
[LocationType.IncomeTokenSpace]: new PositiveSequenceStrategy()
|
|
97
|
+
},
|
|
98
|
+
[MaterialType.BonusToken]: {
|
|
99
|
+
[LocationType.BonusTokens]: new FillGapStrategy()
|
|
100
|
+
},
|
|
101
|
+
[MaterialType.VpToken]: {
|
|
102
|
+
[LocationType.VpTokenStack]: new PositiveSequenceStrategy(),
|
|
103
|
+
[LocationType.PlayerVpTokens]: new PositiveSequenceStrategy()
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
hidingStrategies = {
|
|
107
|
+
[MaterialType.VillageCard]: { [LocationType.VillageDeck]: hideFront },
|
|
108
|
+
[MaterialType.EncounterCard]: { [LocationType.EncounterDeck]: hideFront },
|
|
109
|
+
[MaterialType.EventTile]: { [LocationType.EventPile]: hideEventTile },
|
|
110
|
+
[MaterialType.Seal]: { [LocationType.SealStack]: hideItemId }
|
|
111
|
+
};
|
|
112
|
+
isUnpredictableMove(move, player) {
|
|
113
|
+
return (isStartRule(move) && move.id === RuleId.Winter) || super.isUnpredictableMove(move, player);
|
|
114
|
+
}
|
|
115
|
+
getScore(player) {
|
|
116
|
+
return playerVp(this, player) + scoreStillToCount(this, player, this.game.rule?.id);
|
|
117
|
+
}
|
|
118
|
+
giveTime() {
|
|
119
|
+
return 60;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=GreyluneRules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GreyluneRules.js","sourceRoot":"","sources":["../src/GreyluneRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { MaterialGameSetup } from '@gamepark/rules-api';
|
|
2
|
+
import { GreyluneOptions } from './GreyluneOptions';
|
|
3
|
+
import { GreyluneRules } from './GreyluneRules';
|
|
4
|
+
import { LocationType } from './material/LocationType';
|
|
5
|
+
import { MaterialType } from './material/MaterialType';
|
|
6
|
+
import { PlayerColor } from './PlayerColor';
|
|
7
|
+
export declare class GreyluneSetup extends MaterialGameSetup<PlayerColor, MaterialType, LocationType, GreyluneOptions> {
|
|
8
|
+
Rules: typeof GreyluneRules;
|
|
9
|
+
setupMaterial(): void;
|
|
10
|
+
private setupVillageCards;
|
|
11
|
+
private setupEncounterCards;
|
|
12
|
+
private setupEventTiles;
|
|
13
|
+
private setupQuestTiles;
|
|
14
|
+
private setupBank;
|
|
15
|
+
private setupPlayer;
|
|
16
|
+
start(): void;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=GreyluneSetup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GreyluneSetup.d.ts","sourceRoot":"","sources":["../src/GreyluneSetup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAGtE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAI/C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAOtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAe3C,qBAAa,aAAc,SAAQ,iBAAiB,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,CAAC;IAC5G,KAAK,uBAAgB;IAErB,aAAa,SAcZ;IAQD,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,WAAW;IAmCnB,KAAK,SAEJ;CACF"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { getEnumValues, MaterialGameSetup } from '@gamepark/rules-api';
|
|
2
|
+
import { range, shuffle } from 'es-toolkit';
|
|
3
|
+
import { ACTIVE_VILLAGERS, EVENT_TILES_REMOVED, QUEST_MARKERS, SEALS_PER_VALUE, STARTING_COINS, VILLAGE_CARDS_REMOVED } from './Constants';
|
|
4
|
+
import { GreyluneRules } from './GreyluneRules';
|
|
5
|
+
import { Area } from './material/Area';
|
|
6
|
+
import { encounterCardsOfPeriod, getEncounterCardPeriod } from './material/EncounterCard';
|
|
7
|
+
import { EventTile } from './material/EventTile';
|
|
8
|
+
import { LocationType } from './material/LocationType';
|
|
9
|
+
import { MaterialType } from './material/MaterialType';
|
|
10
|
+
import { Period } from './material/Period';
|
|
11
|
+
import { heroicQuestAreas, QuestTile } from './material/QuestTile';
|
|
12
|
+
import { BonusToken, coinUnits, IncomeToken, Seal } from './material/Tokens';
|
|
13
|
+
import { getVillageCardPeriod, villageCardsOfPeriod } from './material/VillageCard';
|
|
14
|
+
import { playerVillagers } from './material/Villager';
|
|
15
|
+
import { getVpToken, VpTokenValue } from './material/VpToken';
|
|
16
|
+
import { RuleId } from './rules/RuleId';
|
|
17
|
+
import { Season } from './Season';
|
|
18
|
+
import { encounterRowSize } from './Year';
|
|
19
|
+
export class GreyluneSetup extends MaterialGameSetup {
|
|
20
|
+
Rules = GreyluneRules;
|
|
21
|
+
setupMaterial() {
|
|
22
|
+
this.setupBank();
|
|
23
|
+
this.setupVillageCards();
|
|
24
|
+
this.setupEncounterCards();
|
|
25
|
+
this.setupEventTiles();
|
|
26
|
+
this.setupQuestTiles();
|
|
27
|
+
for (const player of this.players)
|
|
28
|
+
this.setupPlayer(player);
|
|
29
|
+
this.material(MaterialType.FirstPlayerToken).createItem({
|
|
30
|
+
location: { type: LocationType.FirstPlayerTokenSpace, player: this.players[this.players.length - 1] }
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
setupVillageCards() {
|
|
34
|
+
const cards = [
|
|
35
|
+
...shuffle(villageCardsOfPeriod[Period.III]),
|
|
36
|
+
...shuffle(villageCardsOfPeriod[Period.II]).slice(VILLAGE_CARDS_REMOVED),
|
|
37
|
+
...shuffle(villageCardsOfPeriod[Period.I]).slice(VILLAGE_CARDS_REMOVED)
|
|
38
|
+
];
|
|
39
|
+
this.material(MaterialType.VillageCard).createItems(cards.map((card) => ({ id: villageCardId(card), location: { type: LocationType.VillageDeck } })));
|
|
40
|
+
}
|
|
41
|
+
setupEncounterCards() {
|
|
42
|
+
const row = encounterRowSize(this.players.length);
|
|
43
|
+
const cards = [
|
|
44
|
+
...shuffle(encounterCardsOfPeriod[Period.III]).slice(0, row),
|
|
45
|
+
...shuffle(encounterCardsOfPeriod[Period.II]).slice(0, 2 * row),
|
|
46
|
+
...shuffle(encounterCardsOfPeriod[Period.I]).slice(0, 2 * row)
|
|
47
|
+
];
|
|
48
|
+
this.material(MaterialType.EncounterCard).createItems(cards.map((card) => ({ id: encounterCardId(card), location: { type: LocationType.EncounterDeck } })));
|
|
49
|
+
}
|
|
50
|
+
setupEventTiles() {
|
|
51
|
+
const tiles = shuffle(getEnumValues(EventTile)).slice(EVENT_TILES_REMOVED);
|
|
52
|
+
this.material(MaterialType.EventTile).createItems(tiles.map((id) => ({ id, location: { type: LocationType.EventPile } })));
|
|
53
|
+
}
|
|
54
|
+
setupQuestTiles() {
|
|
55
|
+
const quests = shuffle(getEnumValues(QuestTile));
|
|
56
|
+
this.material(MaterialType.QuestTile).createItems(heroicQuestAreas.map((area, index) => ({
|
|
57
|
+
id: quests[index],
|
|
58
|
+
location: { type: LocationType.QuestTileSpace, id: area }
|
|
59
|
+
})));
|
|
60
|
+
}
|
|
61
|
+
setupBank() {
|
|
62
|
+
const seals = shuffle(getEnumValues(Seal).flatMap((seal) => range(SEALS_PER_VALUE).map(() => seal)));
|
|
63
|
+
this.material(MaterialType.Seal).createItems(seals.map((id) => ({ id, location: { type: LocationType.SealStack } })));
|
|
64
|
+
this.material(MaterialType.IncomeToken).createItems(getEnumValues(IncomeToken).map((id) => ({ id, location: { type: LocationType.IncomeTokenStock } })));
|
|
65
|
+
}
|
|
66
|
+
setupPlayer(player) {
|
|
67
|
+
this.material(MaterialType.Adventurer).createItem({ id: player, location: { type: LocationType.Area, id: Area.Village } });
|
|
68
|
+
this.material(MaterialType.ScoreMarker).createItem({ id: player, location: { type: LocationType.ScoreTrack, x: 0 } });
|
|
69
|
+
this.material(MaterialType.SeasonMarker).createItem({ id: player, location: { type: LocationType.SeasonTrack, id: Season.Spring } });
|
|
70
|
+
this.material(MaterialType.StrengthMarker).createItem({ location: { type: LocationType.StrengthTrack, player, x: 0 } });
|
|
71
|
+
this.material(MaterialType.MagicMarker).createItem({ location: { type: LocationType.MagicTrack, player, x: 0 } });
|
|
72
|
+
this.material(MaterialType.QuestMarker).createItems(range(QUEST_MARKERS).map(() => ({ id: player, location: { type: LocationType.QuestMarkerSpace, player } })));
|
|
73
|
+
const villagers = shuffle(playerVillagers(player));
|
|
74
|
+
this.material(MaterialType.Villager).createItems([
|
|
75
|
+
...villagers.slice(0, ACTIVE_VILLAGERS).map((id) => ({ id, location: { type: LocationType.ActiveVillagers, player } })),
|
|
76
|
+
...villagers.slice(ACTIVE_VILLAGERS).map((id) => ({ id, location: { type: LocationType.VillagerReserve, player } }))
|
|
77
|
+
]);
|
|
78
|
+
this.material(MaterialType.BonusToken).createItems(getEnumValues(BonusToken).map((id) => ({ id, location: { type: LocationType.BonusTokens, player } })));
|
|
79
|
+
this.material(MaterialType.VpToken).createItems(getEnumValues(VpTokenValue).map((value) => ({ id: getVpToken(player, value), location: { type: LocationType.VpTokenStack, id: value } })));
|
|
80
|
+
this.material(MaterialType.Coin).money(coinUnits).addMoney(STARTING_COINS, { type: LocationType.PlayerCoins, player });
|
|
81
|
+
}
|
|
82
|
+
start() {
|
|
83
|
+
this.startRule(RuleId.Winter);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
const villageCardId = (front) => ({ front, back: getVillageCardPeriod(front) });
|
|
87
|
+
const encounterCardId = (front) => ({ front, back: getEncounterCardPeriod(front) });
|
|
88
|
+
//# sourceMappingURL=GreyluneSetup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GreyluneSetup.js","sourceRoot":"","sources":["../src/GreyluneSetup.ts"],"names":[],"mappings":"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"}
|
package/dist/Memory.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare enum Memory {
|
|
2
|
+
Gains = 1,
|
|
3
|
+
CurrentGain = 2,
|
|
4
|
+
ActivatedCard = 3,
|
|
5
|
+
ResolvedEncounter = 4,
|
|
6
|
+
LastTilted = 5,
|
|
7
|
+
Ability = 6,
|
|
8
|
+
SpentVillager = 7,
|
|
9
|
+
TravelDistance = 8,
|
|
10
|
+
WentAdventuring = 9,
|
|
11
|
+
StoryRewards = 10,
|
|
12
|
+
StoryTold = 11,
|
|
13
|
+
StoryBoost = 12,
|
|
14
|
+
TemporaryForce = 13,
|
|
15
|
+
TemporaryMagic = 14,
|
|
16
|
+
IgnoredConditions = 15,
|
|
17
|
+
Trigger = 16,
|
|
18
|
+
Resume = 17,
|
|
19
|
+
CostReduction = 18,
|
|
20
|
+
SealValue = 19
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=Memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Memory.d.ts","sourceRoot":"","sources":["../src/Memory.ts"],"names":[],"mappings":"AAOA,oBAAY,MAAM;IAKhB,KAAK,IAAI;IAGT,WAAW,IAAA;IAGX,aAAa,IAAA;IAGb,iBAAiB,IAAA;IAGjB,UAAU,IAAA;IAGV,OAAO,IAAA;IAGP,aAAa,IAAA;IAGb,cAAc,IAAA;IAOd,eAAe,IAAA;IAMf,YAAY,KAAA;IACZ,SAAS,KAAA;IAET,UAAU,KAAA;IAOV,cAAc,KAAA;IACd,cAAc,KAAA;IACd,iBAAiB,KAAA;IAGjB,OAAO,KAAA;IAGP,MAAM,KAAA;IAMN,aAAa,KAAA;IAOb,SAAS,KAAA;CACV"}
|
package/dist/Memory.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export var Memory;
|
|
2
|
+
(function (Memory) {
|
|
3
|
+
Memory[Memory["Gains"] = 1] = "Gains";
|
|
4
|
+
Memory[Memory["CurrentGain"] = 2] = "CurrentGain";
|
|
5
|
+
Memory[Memory["ActivatedCard"] = 3] = "ActivatedCard";
|
|
6
|
+
Memory[Memory["ResolvedEncounter"] = 4] = "ResolvedEncounter";
|
|
7
|
+
Memory[Memory["LastTilted"] = 5] = "LastTilted";
|
|
8
|
+
Memory[Memory["Ability"] = 6] = "Ability";
|
|
9
|
+
Memory[Memory["SpentVillager"] = 7] = "SpentVillager";
|
|
10
|
+
Memory[Memory["TravelDistance"] = 8] = "TravelDistance";
|
|
11
|
+
Memory[Memory["WentAdventuring"] = 9] = "WentAdventuring";
|
|
12
|
+
Memory[Memory["StoryRewards"] = 10] = "StoryRewards";
|
|
13
|
+
Memory[Memory["StoryTold"] = 11] = "StoryTold";
|
|
14
|
+
Memory[Memory["StoryBoost"] = 12] = "StoryBoost";
|
|
15
|
+
Memory[Memory["TemporaryForce"] = 13] = "TemporaryForce";
|
|
16
|
+
Memory[Memory["TemporaryMagic"] = 14] = "TemporaryMagic";
|
|
17
|
+
Memory[Memory["IgnoredConditions"] = 15] = "IgnoredConditions";
|
|
18
|
+
Memory[Memory["Trigger"] = 16] = "Trigger";
|
|
19
|
+
Memory[Memory["Resume"] = 17] = "Resume";
|
|
20
|
+
Memory[Memory["CostReduction"] = 18] = "CostReduction";
|
|
21
|
+
Memory[Memory["SealValue"] = 19] = "SealValue";
|
|
22
|
+
})(Memory || (Memory = {}));
|
|
23
|
+
//# sourceMappingURL=Memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Memory.js","sourceRoot":"","sources":["../src/Memory.ts"],"names":[],"mappings":"AAOA,MAAM,CAAN,IAAY,MAuEX;AAvED,WAAY,MAAM;IAKhB,qCAAS,CAAA;IAGT,iDAAW,CAAA;IAGX,qDAAa,CAAA;IAGb,6DAAiB,CAAA;IAGjB,+CAAU,CAAA;IAGV,yCAAO,CAAA;IAGP,qDAAa,CAAA;IAGb,uDAAc,CAAA;IAOd,yDAAe,CAAA;IAMf,oDAAY,CAAA;IACZ,8CAAS,CAAA;IAET,gDAAU,CAAA;IAOV,wDAAc,CAAA;IACd,wDAAc,CAAA;IACd,8DAAiB,CAAA;IAGjB,0CAAO,CAAA;IAGP,wCAAM,CAAA;IAMN,sDAAa,CAAA;IAOb,8CAAS,CAAA;AACX,CAAC,EAvEW,MAAM,KAAN,MAAM,QAuEjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayerColor.d.ts","sourceRoot":"","sources":["../src/PlayerColor.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,IAAI,IAAI;IACR,MAAM,IAAA;IACN,GAAG,IAAA;IACH,MAAM,IAAA;CACP"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export var PlayerColor;
|
|
2
|
+
(function (PlayerColor) {
|
|
3
|
+
PlayerColor[PlayerColor["Blue"] = 1] = "Blue";
|
|
4
|
+
PlayerColor[PlayerColor["Orange"] = 2] = "Orange";
|
|
5
|
+
PlayerColor[PlayerColor["Red"] = 3] = "Red";
|
|
6
|
+
PlayerColor[PlayerColor["Purple"] = 4] = "Purple";
|
|
7
|
+
})(PlayerColor || (PlayerColor = {}));
|
|
8
|
+
//# sourceMappingURL=PlayerColor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayerColor.js","sourceRoot":"","sources":["../src/PlayerColor.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,6CAAQ,CAAA;IACR,iDAAM,CAAA;IACN,2CAAG,CAAA;IACH,iDAAM,CAAA;AACR,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB"}
|
package/dist/Season.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Season.d.ts","sourceRoot":"","sources":["../src/Season.ts"],"names":[],"mappings":"AAIA,oBAAY,MAAM;IAChB,MAAM,IAAI;IACV,MAAM,IAAA;IACN,MAAM,IAAA;IACN,MAAM,IAAA;CACP"}
|
package/dist/Season.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export var Season;
|
|
2
|
+
(function (Season) {
|
|
3
|
+
Season[Season["Winter"] = 1] = "Winter";
|
|
4
|
+
Season[Season["Spring"] = 2] = "Spring";
|
|
5
|
+
Season[Season["Summer"] = 3] = "Summer";
|
|
6
|
+
Season[Season["Autumn"] = 4] = "Autumn";
|
|
7
|
+
})(Season || (Season = {}));
|
|
8
|
+
//# sourceMappingURL=Season.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Season.js","sourceRoot":"","sources":["../src/Season.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,MAKX;AALD,WAAY,MAAM;IAChB,uCAAU,CAAA;IACV,uCAAM,CAAA;IACN,uCAAM,CAAA;IACN,uCAAM,CAAA;AACR,CAAC,EALW,MAAM,KAAN,MAAM,QAKjB"}
|
package/dist/Year.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { MaterialSource } from './material/MaterialSource';
|
|
2
|
+
import { Period } from './material/Period';
|
|
3
|
+
export declare const YEARS = 5;
|
|
4
|
+
export declare const encounterRowSize: (players: number) => number;
|
|
5
|
+
export declare const isLastYear: (source: MaterialSource) => boolean;
|
|
6
|
+
export declare const currentYear: (source: MaterialSource, players: number) => number;
|
|
7
|
+
export declare const yearPeriod: (year: number) => Period;
|
|
8
|
+
//# sourceMappingURL=Year.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Year.d.ts","sourceRoot":"","sources":["../src/Year.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG1C,eAAO,MAAM,KAAK,IAAI,CAAA;AAGtB,eAAO,MAAM,gBAAgB,YAAa,MAAM,KAAG,MAAqB,CAAA;AAaxE,eAAO,MAAM,UAAU,WAAY,cAAc,KAAG,OAA6C,CAAA;AAGjG,eAAO,MAAM,WAAW,WAAY,cAAc,WAAW,MAAM,KAAG,MACQ,CAAA;AAG9E,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,MAAqE,CAAA"}
|
package/dist/Year.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { LocationType } from './material/LocationType';
|
|
2
|
+
import { MaterialType } from './material/MaterialType';
|
|
3
|
+
import { Period } from './material/Period';
|
|
4
|
+
export const YEARS = 5;
|
|
5
|
+
export const encounterRowSize = (players) => players + 3;
|
|
6
|
+
const encounterDeck = (source) => source.material(MaterialType.EncounterCard).location(LocationType.EncounterDeck);
|
|
7
|
+
export const isLastYear = (source) => encounterDeck(source).length === 0;
|
|
8
|
+
export const currentYear = (source, players) => YEARS - Math.floor(encounterDeck(source).length / encounterRowSize(players));
|
|
9
|
+
export const yearPeriod = (year) => (year <= 2 ? Period.I : year <= 4 ? Period.II : Period.III);
|
|
10
|
+
//# sourceMappingURL=Year.js.map
|
package/dist/Year.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Year.js","sourceRoot":"","sources":["../src/Year.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG1C,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAA;AAGtB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAU,EAAE,CAAC,OAAO,GAAG,CAAC,CAAA;AAUxE,MAAM,aAAa,GAAG,CAAC,MAAsB,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;AAGlI,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAsB,EAAW,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;AAGjG,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAsB,EAAE,OAAe,EAAU,EAAE,CAC7E,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;AAG9E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA"}
|