@zhin.js/plugin-text-adventure 1.1.14 → 1.1.16
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/commands/adv/[[action]]/index.js +4 -4
- package/commands/adv/[[action]]/index.ts +4 -4
- package/lib/achievements.d.ts +4 -1
- package/lib/achievements.js +18 -17
- package/lib/achievements.js.map +1 -1
- package/lib/adv-command.d.ts +1 -0
- package/lib/adv-command.js +31 -20
- package/lib/adv-command.js.map +1 -1
- package/lib/game-flow.d.ts +1 -1
- package/lib/game-flow.js +50 -21
- package/lib/game-flow.js.map +1 -1
- package/lib/models.d.ts +4 -1
- package/lib/models.js +2 -1
- package/lib/models.js.map +1 -1
- package/lib/profile-format.d.ts +4 -3
- package/lib/profile-format.js +14 -13
- package/lib/profile-format.js.map +1 -1
- package/lib/scene-view.js +5 -3
- package/lib/scene-view.js.map +1 -1
- package/lib/session-service.js +1 -0
- package/lib/session-service.js.map +1 -1
- package/lib/story-catalog.d.ts +4 -2
- package/lib/story-catalog.js +59 -9
- package/lib/story-catalog.js.map +1 -1
- package/lib/story-items.d.ts +2 -1
- package/lib/story-items.js +19 -2
- package/lib/story-items.js.map +1 -1
- package/lib/story-scenes.d.ts +2 -1
- package/lib/story-scenes.js +1358 -464
- package/lib/story-scenes.js.map +1 -1
- package/lib/story.d.ts +4 -3
- package/lib/story.js +8 -8
- package/lib/story.js.map +1 -1
- package/middlewares/adv-alias/index.js +5 -3
- package/middlewares/adv-alias/index.ts +5 -3
- package/package.json +7 -7
- package/plugin.js +4 -0
- package/src/achievements.ts +21 -17
- package/src/adv-command.ts +35 -24
- package/src/game-flow.ts +51 -22
- package/src/models.ts +4 -2
- package/src/profile-format.ts +15 -13
- package/src/scene-view.ts +5 -3
- package/src/session-service.ts +1 -0
- package/src/story-catalog.ts +63 -10
- package/src/story-items.ts +21 -2
- package/src/story-scenes.ts +1103 -206
- package/src/story.ts +9 -8
package/lib/scene-view.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene-view.js","sourceRoot":"","sources":["../src/scene-view.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scene-view.js","sourceRoot":"","sources":["../src/scene-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EACL,UAAU,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,MAAM,UAAU,qBAAqB,CACnC,OAAsB,EACtB,cAAc,GAAG,EAAE,EACnB,OAAuB,EACvB,WAAoB;IAEpB,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC;IAE/D,IAAI,SAAS,GAAG,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,SAAS,GAAG,GAAG,qBAAqB,CAAC,OAAO,CAAC,OAAO,SAAS,EAAE,CAAC;IAClE,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACnB,SAAS,IAAI,cAAc,CAAC;IAC9B,CAAC;IAED,OAAO,mBAAmB,CAAC;QACzB,UAAU,EAAE,UAAU;QACtB,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,SAAS;QACT,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC,CAAC;QACH,QAAQ;QACR,aAAa,EAAE,CAAC;QAChB,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,aAAa;QACnF,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;QACtD,WAAW;KACZ,CAAC,CAAC;AACL,CAAC"}
|
package/lib/session-service.js
CHANGED
|
@@ -19,6 +19,7 @@ export class SessionService extends BaseSessionService {
|
|
|
19
19
|
const id = generateSessionId();
|
|
20
20
|
const row = {
|
|
21
21
|
id,
|
|
22
|
+
locale: message.locale ?? 'zh-CN',
|
|
22
23
|
adapter: String(message.$adapter),
|
|
23
24
|
endpoint: message.$endpoint,
|
|
24
25
|
channel_type: message.$channel.type,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-service.js","sourceRoot":"","sources":["../src/session-service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,iBAAiB,GAGlB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,oBAAoB,EAAkB,MAAM,sBAAsB,CAAC;AAK5E,SAAS,QAAQ,CAAyB,EAAe,EAAE,IAAO;IAChE,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,oBAAoB,CAAC,CAAC;IAC/D,OAAO,KAAoB,CAAC;AAC9B,CAAC;AAOD,MAAM,OAAO,cAAe,SAAQ,kBAAiC;IACnE,YAAY,EAAe;QACzB,KAAK,CAAC,EAAmD,EAAE;YACzD,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,cAAc;YACrB,UAAU,EAAE,CAAC,WAAW,CAAC;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAwB;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAkB;YACzB,EAAE;YACF,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;YACjC,QAAQ,EAAE,OAAO,CAAC,SAAS;YAC3B,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;YACnC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC/B,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC;YAChC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;YAC7B,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAC/D,QAAQ,EAAE,OAAO;YACjB,EAAE,EAAE,GAAG;YACP,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,GAAG;YACf,UAAU,EAAE,GAAG;SAChB,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAAC,EAAe;IAC5C,OAAO;QACL,QAAQ,EAAE,IAAI,cAAc,CAAC,EAAE,CAAC;QAChC,QAAQ,EAAE,oBAAoB,CAAC,EAAE,CAAC;KACnC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"session-service.js","sourceRoot":"","sources":["../src/session-service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,iBAAiB,GAGlB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,oBAAoB,EAAkB,MAAM,sBAAsB,CAAC;AAK5E,SAAS,QAAQ,CAAyB,EAAe,EAAE,IAAO;IAChE,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,oBAAoB,CAAC,CAAC;IAC/D,OAAO,KAAoB,CAAC;AAC9B,CAAC;AAOD,MAAM,OAAO,cAAe,SAAQ,kBAAiC;IACnE,YAAY,EAAe;QACzB,KAAK,CAAC,EAAmD,EAAE;YACzD,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,cAAc;YACrB,UAAU,EAAE,CAAC,WAAW,CAAC;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAwB;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAkB;YACzB,EAAE;YACF,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO;YACjC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;YACjC,QAAQ,EAAE,OAAO,CAAC,SAAS;YAC3B,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;YACnC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC/B,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC;YAChC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;YAC7B,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAC/D,QAAQ,EAAE,OAAO;YACjB,EAAE,EAAE,GAAG;YACP,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,GAAG;YACf,UAAU,EAAE,GAAG;SAChB,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAAC,EAAe;IAC5C,OAAO;QACL,QAAQ,EAAE,IAAI,cAAc,CAAC,EAAE,CAAC;QAChC,QAAQ,EAAE,oBAAoB,CAAC,EAAE,CAAC;KACnC,CAAC;AACJ,CAAC"}
|
package/lib/story-catalog.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
import { type Locale } from 'zhin.js/i18n';
|
|
1
2
|
/** 区域中文名(用于地图 / 成就展示) */
|
|
2
3
|
export declare const REGION_LABELS: Record<string, string>;
|
|
3
4
|
export declare const ENDING_LABELS: Record<string, string>;
|
|
4
5
|
/** 地图分区(便于 adv map 分组展示) */
|
|
5
6
|
export declare const MAP_ZONES: Array<{
|
|
6
7
|
name: string;
|
|
8
|
+
nameEn: string;
|
|
7
9
|
sceneIds: string[];
|
|
8
10
|
}>;
|
|
9
11
|
export declare function playableSceneIds(): string[];
|
|
10
12
|
export declare function endingIds(): string[];
|
|
11
|
-
export declare function regionLabel(id: string): string;
|
|
12
|
-
export declare function endingLabel(id: string): string;
|
|
13
|
+
export declare function regionLabel(id: string, locale?: Locale): string;
|
|
14
|
+
export declare function endingLabel(id: string, locale?: Locale): string;
|
package/lib/story-catalog.js
CHANGED
|
@@ -53,23 +53,23 @@ export const ENDING_LABELS = {
|
|
|
53
53
|
/** 地图分区(便于 adv map 分组展示) */
|
|
54
54
|
export const MAP_ZONES = [
|
|
55
55
|
{
|
|
56
|
-
name: '入口与塔',
|
|
56
|
+
name: '入口与塔', nameEn: 'Entrance and Tower',
|
|
57
57
|
sceneIds: ['start', 'rubble', 'watchtower', 'observatory', 'vine_path'],
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
|
-
name: '主廊与泉',
|
|
60
|
+
name: '主廊与泉', nameEn: 'Corridor and Spring',
|
|
61
61
|
sceneIds: ['corridor', 'mural_room', 'whisper_gallery', 'spring', 'flooded_hall', 'bell_tower'],
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
|
-
name: '庭院书库',
|
|
64
|
+
name: '庭院书库', nameEn: 'Garden and Library',
|
|
65
65
|
sceneIds: ['garden', 'greenhouse', 'library', 'ember_forge'],
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
|
-
name: '冥域水线',
|
|
68
|
+
name: '冥域水线', nameEn: 'River of the Dead',
|
|
69
69
|
sceneIds: ['market_ruins', 'ghost_bridge', 'crystal_cave', 'moon_pool', 'sunken_shrine'],
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
|
-
name: '墓穴深处',
|
|
72
|
+
name: '墓穴深处', nameEn: 'Deep Tombs',
|
|
73
73
|
sceneIds: [
|
|
74
74
|
'depths',
|
|
75
75
|
'crypt_entry',
|
|
@@ -95,10 +95,60 @@ export function endingIds() {
|
|
|
95
95
|
.filter((s) => s.terminal)
|
|
96
96
|
.map((s) => s.id);
|
|
97
97
|
}
|
|
98
|
-
export function regionLabel(id) {
|
|
99
|
-
return REGION_LABELS[id] ??
|
|
98
|
+
export function regionLabel(id, locale = 'zh-CN') {
|
|
99
|
+
return (locale === 'en' ? EN_REGION_LABELS : REGION_LABELS)[id] ?? endingLabel(id, locale);
|
|
100
100
|
}
|
|
101
|
-
export function endingLabel(id) {
|
|
102
|
-
return ENDING_LABELS[id] ?? id;
|
|
101
|
+
export function endingLabel(id, locale = 'zh-CN') {
|
|
102
|
+
return (locale === 'en' ? EN_ENDING_LABELS : ENDING_LABELS)[id] ?? id;
|
|
103
103
|
}
|
|
104
|
+
const EN_REGION_LABELS = {
|
|
105
|
+
"start": "Entrance to the Ruins",
|
|
106
|
+
"rubble": "Rubble Passage",
|
|
107
|
+
"watchtower": "Watchtower",
|
|
108
|
+
"observatory": "Observatory",
|
|
109
|
+
"vine_path": "Hidden Path",
|
|
110
|
+
"corridor": "Dark Corridor",
|
|
111
|
+
"mural_room": "Inscribed Mural",
|
|
112
|
+
"whisper_gallery": "Whispering Gallery",
|
|
113
|
+
"spring": "Spirit Spring",
|
|
114
|
+
"flooded_hall": "Flooded Hall",
|
|
115
|
+
"bell_tower": "Bell Tower",
|
|
116
|
+
"garden": "Ancient Garden",
|
|
117
|
+
"greenhouse": "Greenhouse",
|
|
118
|
+
"library": "Dusty Library",
|
|
119
|
+
"ember_forge": "Forge",
|
|
120
|
+
"market_ruins": "Ruined Market",
|
|
121
|
+
"ghost_bridge": "Ghost Bridge",
|
|
122
|
+
"crystal_cave": "Crystal Cave",
|
|
123
|
+
"moon_pool": "Moon Pool",
|
|
124
|
+
"sunken_shrine": "Sunken Shrine",
|
|
125
|
+
"depths": "Tomb Crossroads",
|
|
126
|
+
"crypt_entry": "Crypt Entrance",
|
|
127
|
+
"catacombs": "Catacombs",
|
|
128
|
+
"ossuary": "Ossuary",
|
|
129
|
+
"prison_cell": "Prison Cell",
|
|
130
|
+
"spider_nest": "Spider Nest",
|
|
131
|
+
"shadow_maze": "Shadow Maze",
|
|
132
|
+
"sealed_gates": "Sealed Chamber",
|
|
133
|
+
"vault": "Treasure Antechamber",
|
|
134
|
+
"vault_open": "Vault",
|
|
135
|
+
"throne_room": "Throne Room"
|
|
136
|
+
};
|
|
137
|
+
const EN_ENDING_LABELS = {
|
|
138
|
+
"treasure": "Treasure of the Ruins",
|
|
139
|
+
"ascension": "Starlight Restored",
|
|
140
|
+
"wisdom": "A Scholar's Return",
|
|
141
|
+
"curse": "The Price of Greed",
|
|
142
|
+
"escape": "Survival",
|
|
143
|
+
"defeat": "Fallen",
|
|
144
|
+
"coward": "A Coward's Return",
|
|
145
|
+
"hermit": "Garden Hermit",
|
|
146
|
+
"redemption": "A Spirit Set Free",
|
|
147
|
+
"drowned": "Cold-Water Slumber",
|
|
148
|
+
"spider": "Soul in a Cocoon",
|
|
149
|
+
"labyrinth": "Lost in the Maze",
|
|
150
|
+
"star_keeper": "Star Keeper's Oath",
|
|
151
|
+
"mask_king": "King of Masks",
|
|
152
|
+
"merchant": "The Merchant's Ending"
|
|
153
|
+
};
|
|
104
154
|
//# sourceMappingURL=story-catalog.js.map
|
package/lib/story-catalog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"story-catalog.js","sourceRoot":"","sources":["../src/story-catalog.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"story-catalog.js","sourceRoot":"","sources":["../src/story-catalog.ts"],"names":[],"mappings":"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"}
|
package/lib/story-items.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import { type Locale } from 'zhin.js/i18n';
|
|
1
2
|
/** 15 种可收集道具 */
|
|
2
3
|
export declare const ITEM_LABELS: Record<string, string>;
|
|
3
4
|
export declare const ITEM_IDS: string[];
|
|
4
|
-
export declare function itemLabel(id: string): string;
|
|
5
|
+
export declare function itemLabel(id: string, locale?: Locale): string;
|
package/lib/story-items.js
CHANGED
|
@@ -17,7 +17,24 @@ export const ITEM_LABELS = {
|
|
|
17
17
|
star_chart: '星图残页',
|
|
18
18
|
};
|
|
19
19
|
export const ITEM_IDS = Object.keys(ITEM_LABELS);
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
const EN_ITEM_LABELS = {
|
|
21
|
+
"torch": "Torch",
|
|
22
|
+
"key": "Rusty key",
|
|
23
|
+
"gem": "Blue gem",
|
|
24
|
+
"herb": "Luminous herb",
|
|
25
|
+
"scroll": "Torn scroll",
|
|
26
|
+
"amulet": "Elven amulet",
|
|
27
|
+
"silver_coin": "Ancient silver coin",
|
|
28
|
+
"rusted_blade": "Rusty blade",
|
|
29
|
+
"moon_shard": "Moon shard",
|
|
30
|
+
"elixir": "Healing elixir",
|
|
31
|
+
"compass": "Astral compass",
|
|
32
|
+
"spirit_bell": "Echo bell",
|
|
33
|
+
"elf_feather": "Silver feather",
|
|
34
|
+
"masquerade_mask": "Ritual mask",
|
|
35
|
+
"star_chart": "Star chart fragment"
|
|
36
|
+
};
|
|
37
|
+
export function itemLabel(id, locale = 'zh-CN') {
|
|
38
|
+
return (locale === 'en' ? EN_ITEM_LABELS : ITEM_LABELS)[id] ?? id;
|
|
22
39
|
}
|
|
23
40
|
//# sourceMappingURL=story-items.js.map
|
package/lib/story-items.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"story-items.js","sourceRoot":"","sources":["../src/story-items.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"story-items.js","sourceRoot":"","sources":["../src/story-items.ts"],"names":[],"mappings":"AACA,gBAAgB;AAChB,MAAM,CAAC,MAAM,WAAW,GAA2B;IACjD,KAAK,EAAE,IAAI;IACX,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,MAAM;IACd,WAAW,EAAE,KAAK;IAClB,YAAY,EAAE,MAAM;IACpB,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,MAAM;IACvB,UAAU,EAAE,MAAM;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAEjD,MAAM,cAAc,GAAqC;IACvD,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,eAAe;IACvB,QAAQ,EAAE,aAAa;IACvB,QAAQ,EAAE,cAAc;IACxB,aAAa,EAAE,qBAAqB;IACpC,cAAc,EAAE,aAAa;IAC7B,YAAY,EAAE,YAAY;IAC1B,QAAQ,EAAE,gBAAgB;IAC1B,SAAS,EAAE,gBAAgB;IAC3B,aAAa,EAAE,WAAW;IAC1B,aAAa,EAAE,gBAAgB;IAC/B,iBAAiB,EAAE,aAAa;IAChC,YAAY,EAAE,qBAAqB;CACpC,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,EAAU,EAAE,SAAiB,OAAO;IAC5D,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;AACpE,CAAC"}
|
package/lib/story-scenes.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { type Locale } from 'zhin.js/i18n';
|
|
1
2
|
import type { Scene } from './story-types.js';
|
|
2
|
-
/** 非终局场景 28 个 + 终局 12 个 */
|
|
3
3
|
export declare const SCENES: Record<string, Scene>;
|
|
4
|
+
export declare function sceneCatalog(locale?: Locale): Readonly<Record<string, Scene>>;
|
|
4
5
|
export declare function countScenes(): {
|
|
5
6
|
total: number;
|
|
6
7
|
playable: number;
|