afnm-types 0.6.29 → 0.6.31
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/alternativeStart.d.ts +2 -1
- package/dist/auction.d.ts +4 -3
- package/dist/background.d.ts +2 -1
- package/dist/breakthrough.d.ts +31 -11
- package/dist/buff.d.ts +25 -3
- package/dist/character.d.ts +5 -4
- package/dist/crafting.d.ts +3 -2
- package/dist/craftingTechnique.d.ts +3 -2
- package/dist/destiny.d.ts +2 -1
- package/dist/dualCultivation.d.ts +3 -2
- package/dist/entity.d.ts +17 -2
- package/dist/event.d.ts +5 -4
- package/dist/guild.d.ts +2 -1
- package/dist/house.d.ts +3 -2
- package/dist/item.d.ts +3 -2
- package/dist/keybindings.js +1 -1
- package/dist/life.d.ts +0 -3
- package/dist/location.d.ts +2 -1
- package/dist/mine.d.ts +2 -1
- package/dist/quest.d.ts +3 -2
- package/dist/simpleEvent.d.ts +4 -3
- package/dist/stat.d.ts +1 -1
- package/dist/stat.js +11 -1
- package/dist/technique.d.ts +3 -2
- package/dist/trainingGround.d.ts +2 -1
- package/dist/translatable.d.ts +28 -0
- package/dist/translatable.js +1 -0
- package/dist/tutorial.d.ts +3 -2
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
import { Tutorial } from './tutorial';
|
|
2
3
|
import { TriggeredEvent, GameEvent } from './event';
|
|
3
4
|
import { ItemDesc } from './item';
|
|
@@ -19,7 +20,7 @@ export interface AlternativeStart {
|
|
|
19
20
|
/**
|
|
20
21
|
* Description shown in the selection UI explaining this start option
|
|
21
22
|
*/
|
|
22
|
-
description:
|
|
23
|
+
description: Translatable;
|
|
23
24
|
/**
|
|
24
25
|
* The root event that plays when starting the game.
|
|
25
26
|
* This replaces the default newGameEvent.
|
package/dist/auction.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
import { Item, ItemDesc } from './item';
|
|
2
3
|
export interface Auction {
|
|
3
4
|
characters: AuctionCharacterData[];
|
|
@@ -46,7 +47,7 @@ export interface AuctionCharacterData {
|
|
|
46
47
|
speech?: Speech;
|
|
47
48
|
}
|
|
48
49
|
export interface Speech {
|
|
49
|
-
text:
|
|
50
|
+
text: Translatable;
|
|
50
51
|
id: number;
|
|
51
52
|
persistent: boolean;
|
|
52
53
|
}
|
|
@@ -59,7 +60,7 @@ export interface AuctionAbility {
|
|
|
59
60
|
name: string;
|
|
60
61
|
amount: number;
|
|
61
62
|
};
|
|
62
|
-
tooltip:
|
|
63
|
+
tooltip: Translatable;
|
|
63
64
|
effects: AuctionAbilityEffect[];
|
|
64
65
|
}
|
|
65
66
|
export type AuctionAbilityEffect = DesireAbilityEffect | BuildResourceAbilityEffect | EliminateAbilityEffect;
|
|
@@ -82,7 +83,7 @@ export interface AuctionResource {
|
|
|
82
83
|
name: string;
|
|
83
84
|
icon: string;
|
|
84
85
|
colour: string;
|
|
85
|
-
tooltip:
|
|
86
|
+
tooltip: Translatable;
|
|
86
87
|
bidMult?: number;
|
|
87
88
|
degeneration?: 'bid' | 'item';
|
|
88
89
|
}
|
package/dist/background.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
import { Destiny } from './destiny';
|
|
2
3
|
import { Item } from './item';
|
|
3
4
|
import { CombatStatistic, CraftingStatistic, PhysicalStatistic, Scaling, SocialStatistic } from './stat';
|
|
4
5
|
export interface Background {
|
|
5
6
|
name: string;
|
|
6
|
-
description:
|
|
7
|
+
description: Translatable;
|
|
7
8
|
physicalStats?: Partial<Record<PhysicalStatistic, number>>;
|
|
8
9
|
socialStats?: Partial<Record<SocialStatistic, number>>;
|
|
9
10
|
rawStats?: Partial<Record<CombatStatistic | CraftingStatistic, Scaling>>;
|
package/dist/breakthrough.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
import { ReactNode } from 'react';
|
|
2
3
|
import { CombatEntity, CraftingEntity, PlayerEntity, StoredStance, StoredStyle } from './entity';
|
|
3
4
|
import { ItemDesc } from './item';
|
|
@@ -12,6 +13,34 @@ export interface Position {
|
|
|
12
13
|
export interface PositionAndRotation extends Position {
|
|
13
14
|
rotation: number;
|
|
14
15
|
}
|
|
16
|
+
/** Tracks which of the 6 core essences have been placed in the gate */
|
|
17
|
+
export interface EssenceGate {
|
|
18
|
+
breath: boolean;
|
|
19
|
+
pulse: boolean;
|
|
20
|
+
echo: boolean;
|
|
21
|
+
growth: boolean;
|
|
22
|
+
marrow: boolean;
|
|
23
|
+
scar: boolean;
|
|
24
|
+
}
|
|
25
|
+
/** A lifeform stored in the player's soul realm */
|
|
26
|
+
export interface StoredLifeform {
|
|
27
|
+
id: string;
|
|
28
|
+
baseForm: string;
|
|
29
|
+
currentForm: string;
|
|
30
|
+
slottedEssences: string[];
|
|
31
|
+
stances: StoredStance[];
|
|
32
|
+
currentStyle?: StoredStyle;
|
|
33
|
+
storedStyles?: StoredStyle[];
|
|
34
|
+
evolutionPath: string[];
|
|
35
|
+
}
|
|
36
|
+
/** State for the Life Flourishing breakthrough system */
|
|
37
|
+
export interface LifeFlourishingState {
|
|
38
|
+
essenceGate: EssenceGate;
|
|
39
|
+
storedLifeforms: StoredLifeform[];
|
|
40
|
+
manifestedLifeformId?: string;
|
|
41
|
+
fightsInstead?: boolean;
|
|
42
|
+
creatingNewLifeform?: boolean;
|
|
43
|
+
}
|
|
15
44
|
export interface BreakthroughState {
|
|
16
45
|
mundane?: {
|
|
17
46
|
pill?: string;
|
|
@@ -45,16 +74,7 @@ export interface BreakthroughState {
|
|
|
45
74
|
}[];
|
|
46
75
|
tilePool?: number;
|
|
47
76
|
};
|
|
48
|
-
lifeFlourishing?:
|
|
49
|
-
slottedEssences: string[];
|
|
50
|
-
selectedLifeform?: string;
|
|
51
|
-
fightsInstead?: boolean;
|
|
52
|
-
lifeformEntity?: {
|
|
53
|
-
stances: StoredStance[];
|
|
54
|
-
currentStyle?: StoredStyle;
|
|
55
|
-
storedStyles?: StoredStyle[];
|
|
56
|
-
};
|
|
57
|
-
};
|
|
77
|
+
lifeFlourishing?: LifeFlourishingState;
|
|
58
78
|
previous: Partial<{
|
|
59
79
|
[key in Realm]: BreakthroughBase;
|
|
60
80
|
}>;
|
|
@@ -66,7 +86,7 @@ export interface BreakthroughState {
|
|
|
66
86
|
}
|
|
67
87
|
export interface BreakthroughBase {
|
|
68
88
|
name: string;
|
|
69
|
-
description:
|
|
89
|
+
description: Translatable;
|
|
70
90
|
physicalStats: Partial<{
|
|
71
91
|
[key in PhysicalStatistic]: number;
|
|
72
92
|
}>;
|
package/dist/buff.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
import { TechniqueElement } from './element';
|
|
2
3
|
import { CombatStatistic, Scaling } from './stat';
|
|
3
4
|
import { DamageType } from './DamageType';
|
|
@@ -42,12 +43,12 @@ export interface Buff {
|
|
|
42
43
|
colour?: string;
|
|
43
44
|
canStack: boolean;
|
|
44
45
|
effectHint?: string;
|
|
45
|
-
tooltip?:
|
|
46
|
-
additionalTooltip?:
|
|
46
|
+
tooltip?: Translatable;
|
|
47
|
+
additionalTooltip?: Translatable;
|
|
47
48
|
flag?: string;
|
|
48
49
|
condition?: TechniqueCondition;
|
|
49
50
|
removeOnConditionFailed?: boolean;
|
|
50
|
-
statsTooltip?:
|
|
51
|
+
statsTooltip?: Translatable;
|
|
51
52
|
stats: Partial<{
|
|
52
53
|
[key in CombatStatistic]: Scaling;
|
|
53
54
|
}> | undefined;
|
|
@@ -92,6 +93,27 @@ export interface Buff {
|
|
|
92
93
|
damageModifier: DamageModifier;
|
|
93
94
|
effects?: BuffEffect[];
|
|
94
95
|
}[];
|
|
96
|
+
/** Amplifies outgoing damage/barrier/heal effects. Runs before the effect is applied. */
|
|
97
|
+
techniqueAmplifierEffects?: {
|
|
98
|
+
trigger?: TechniqueCondition;
|
|
99
|
+
amplifier: {
|
|
100
|
+
kind: 'multiply';
|
|
101
|
+
value: number;
|
|
102
|
+
};
|
|
103
|
+
effects?: BuffEffect[];
|
|
104
|
+
appliesTo: ('damage' | 'barrier' | 'heal')[];
|
|
105
|
+
}[];
|
|
106
|
+
/** Amplifies buff creation. Modifies stack count when matching buffs are created on self. */
|
|
107
|
+
buffAmplifierEffects?: {
|
|
108
|
+
trigger?: TechniqueCondition;
|
|
109
|
+
/** Matches buffs by name, buffType, or flag */
|
|
110
|
+
target: string;
|
|
111
|
+
modifier: {
|
|
112
|
+
kind: 'add' | 'multiply';
|
|
113
|
+
value: number;
|
|
114
|
+
};
|
|
115
|
+
effects?: BuffEffect[];
|
|
116
|
+
}[];
|
|
95
117
|
priority?: number;
|
|
96
118
|
afterTechnique?: boolean;
|
|
97
119
|
combatImage?: BuffCombatImage;
|
package/dist/character.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
import { SvgIconTypeMap } from '@mui/material';
|
|
2
3
|
import { OverridableComponent } from '@mui/material/OverridableComponent';
|
|
3
4
|
import { Buff } from './buff';
|
|
@@ -189,7 +190,7 @@ export interface AidBreakthroughCharacterInteraction extends BaseCharacterIntera
|
|
|
189
190
|
export interface CustomCharacterInteractionBlock {
|
|
190
191
|
condition: string;
|
|
191
192
|
name: string;
|
|
192
|
-
tooltip:
|
|
193
|
+
tooltip: Translatable;
|
|
193
194
|
icon: OverridableComponent<SvgIconTypeMap<{}, 'svg'>>;
|
|
194
195
|
interaction: CustomCharacterInteraction;
|
|
195
196
|
cooldown?: number;
|
|
@@ -254,17 +255,17 @@ export interface CharacterRelationshipDefinition {
|
|
|
254
255
|
requiredApproval: number;
|
|
255
256
|
relationshipCategory: CharacterRelationship;
|
|
256
257
|
name: string;
|
|
257
|
-
tooltip:
|
|
258
|
+
tooltip: Translatable;
|
|
258
259
|
followCharacter?: FollowCharacterDefinition;
|
|
259
260
|
dualCultivation?: DualCultivationDefinition;
|
|
260
261
|
progressionEvent: {
|
|
261
262
|
name: string;
|
|
262
|
-
tooltip:
|
|
263
|
+
tooltip: Translatable;
|
|
263
264
|
event: EventStep[];
|
|
264
265
|
locationOverride?: string;
|
|
265
266
|
requirement?: {
|
|
266
267
|
condition: string;
|
|
267
|
-
tooltip:
|
|
268
|
+
tooltip: Translatable;
|
|
268
269
|
};
|
|
269
270
|
};
|
|
270
271
|
}
|
package/dist/crafting.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
import { ReactNode } from 'react';
|
|
2
3
|
import { SvgIconTypeMap } from '@mui/material';
|
|
3
4
|
import { OverridableComponent } from '@mui/material/OverridableComponent';
|
|
@@ -18,14 +19,14 @@ export interface RecipeConditionEffect {
|
|
|
18
19
|
name: string;
|
|
19
20
|
colour: string;
|
|
20
21
|
conditionEffects: Record<CraftingCondition, {
|
|
21
|
-
tooltip:
|
|
22
|
+
tooltip: Translatable;
|
|
22
23
|
effects: CraftingConditionEffect[];
|
|
23
24
|
}>;
|
|
24
25
|
}
|
|
25
26
|
export type RecipeHarmonyType = 'forge' | 'alchemical' | 'inscription' | 'resonance';
|
|
26
27
|
export interface HarmonyTypeConfig {
|
|
27
28
|
name: string;
|
|
28
|
-
description:
|
|
29
|
+
description: Translatable;
|
|
29
30
|
processEffect: (harmonyData: HarmonyData, technique: CraftingTechnique, progressState: ProgressState, entity: CraftingEntity, state: CraftingState) => void;
|
|
30
31
|
initEffect: (harmonyData: HarmonyData, entity: CraftingEntity) => void;
|
|
31
32
|
renderComponent: (harmonyData: HarmonyData) => ReactNode;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
import { CraftingBuff, CraftingTechniqueCondition } from './craftingBuff';
|
|
2
3
|
import { Rarity } from './rarity';
|
|
3
4
|
import { Realm } from './realm';
|
|
@@ -116,7 +117,7 @@ export interface CraftingRecipeStats {
|
|
|
116
117
|
export type CraftingTechniqueMastery = ControlMastery | IntensityMastery | CritChanceTechniqueMastery | CritMultiplierTechniqueMastery | EffectTechniqueMastery | UpgradeCraftingTechniqueMastery | PoolCostMastery | StabilityCostMastery | SuccessChanceMastery;
|
|
117
118
|
interface BaseCraftingTechniqueMastery {
|
|
118
119
|
condition?: CraftingTechniqueCondition;
|
|
119
|
-
tooltip?:
|
|
120
|
+
tooltip?: Translatable;
|
|
120
121
|
rarity?: Rarity;
|
|
121
122
|
}
|
|
122
123
|
interface ControlMastery extends BaseCraftingTechniqueMastery {
|
|
@@ -153,7 +154,7 @@ export interface SuccessChanceMastery extends BaseCraftingTechniqueMastery {
|
|
|
153
154
|
}
|
|
154
155
|
export interface UpgradeCraftingTechniqueMastery extends BaseCraftingTechniqueMastery {
|
|
155
156
|
kind: 'upgrade';
|
|
156
|
-
tooltip:
|
|
157
|
+
tooltip: Translatable;
|
|
157
158
|
upgradeKey: string;
|
|
158
159
|
change: number;
|
|
159
160
|
shouldMultiply?: boolean;
|
package/dist/destiny.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
import { CombatStatistic, CraftingStatistic, Scaling } from './stat';
|
|
2
3
|
export interface Destiny {
|
|
3
4
|
name: string;
|
|
4
|
-
description:
|
|
5
|
+
description: Translatable;
|
|
5
6
|
combatStats?: Partial<{
|
|
6
7
|
[key in CombatStatistic]: Scaling;
|
|
7
8
|
}>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
declare const intimateStats: readonly ["satisfaction", "energy", "painThreshold"];
|
|
2
3
|
export type IntimateStat = (typeof intimateStats)[number];
|
|
3
4
|
declare const intimateResources: readonly ["pain", "harmony", "excitement", "rhythm"];
|
|
@@ -6,7 +7,7 @@ declare const intimateTechniqueTypes: string[];
|
|
|
6
7
|
export type IntimateTechniqueType = (typeof intimateTechniqueTypes)[number];
|
|
7
8
|
export type IntimateTrait = {
|
|
8
9
|
name: string;
|
|
9
|
-
description:
|
|
10
|
+
description: Translatable;
|
|
10
11
|
stats: Partial<Record<IntimateStat, number>>;
|
|
11
12
|
typeMultiplier: Partial<Record<IntimateTechniqueType, number>>;
|
|
12
13
|
};
|
|
@@ -34,7 +35,7 @@ interface ResourceEffect {
|
|
|
34
35
|
}
|
|
35
36
|
export interface DualCultivationMessage {
|
|
36
37
|
id: number;
|
|
37
|
-
text:
|
|
38
|
+
text: Translatable;
|
|
38
39
|
bindPoint: 'energy' | 'satisfaction' | 'resource' | 'player' | 'partner';
|
|
39
40
|
color: string;
|
|
40
41
|
position?: {
|
package/dist/entity.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
import { SoundEffectName } from './audio';
|
|
2
3
|
import { Buff } from './buff';
|
|
3
4
|
import { CraftingBuff } from './craftingBuff';
|
|
@@ -13,6 +14,7 @@ export interface CombatEffectTracking {
|
|
|
13
14
|
damage: number;
|
|
14
15
|
healing: number;
|
|
15
16
|
barrier: number;
|
|
17
|
+
damageTaken: number;
|
|
16
18
|
}
|
|
17
19
|
export declare const entityTypes: readonly ["Player", "Lifeform", "Enemy"];
|
|
18
20
|
export type EntityType = (typeof entityTypes)[number];
|
|
@@ -20,6 +22,7 @@ export declare const sexes: readonly ["male", "female"];
|
|
|
20
22
|
export type Sex = (typeof sexes)[number];
|
|
21
23
|
export interface PlayerEntity {
|
|
22
24
|
imageIndex: number;
|
|
25
|
+
originalImageIndex?: number;
|
|
23
26
|
customImagePath?: string;
|
|
24
27
|
customImages?: {
|
|
25
28
|
idle?: string;
|
|
@@ -70,6 +73,7 @@ export interface PlayerEntity {
|
|
|
70
73
|
background: string[];
|
|
71
74
|
monthBuffs?: Buff[];
|
|
72
75
|
injured?: boolean;
|
|
76
|
+
party?: PartyMemberConfig[];
|
|
73
77
|
}
|
|
74
78
|
export type EnemyDifficulty = 'veryeasy' | 'easy' | 'mediumEasy' | 'medium' | 'medium+' | 'mediumhard' | 'hard' | 'hard+' | 'veryhard' | 'veryhard+' | 'veryhard++' | 'veryhard+++' | 'veryhard++++';
|
|
75
79
|
export type BattleLength = 'halfround' | '1round' | 'veryshort' | 'short' | 'medium' | 'long' | 'verylong' | 'verylong+' | 'verylong++' | 'verylong+++' | 'verylong++++';
|
|
@@ -168,10 +172,13 @@ export interface EnemyEntity {
|
|
|
168
172
|
};
|
|
169
173
|
preconfiguredCombatEntity?: CombatEntity;
|
|
170
174
|
phases?: EnemyEntity[];
|
|
175
|
+
party?: PartyMemberConfig[];
|
|
176
|
+
preservePartyMembers?: boolean;
|
|
171
177
|
}
|
|
178
|
+
export type PartyMemberConfig = EnemyEntity;
|
|
172
179
|
export interface CombatMessage {
|
|
173
180
|
id: number;
|
|
174
|
-
text:
|
|
181
|
+
text: Translatable;
|
|
175
182
|
bindPoint: 'hp' | 'buff' | 'technique';
|
|
176
183
|
color: string;
|
|
177
184
|
position?: {
|
|
@@ -204,7 +211,7 @@ export interface CraftingEntity {
|
|
|
204
211
|
}
|
|
205
212
|
export interface CraftingMessage {
|
|
206
213
|
id: number;
|
|
207
|
-
text:
|
|
214
|
+
text: Translatable;
|
|
208
215
|
bindPoint: 'pool' | 'stability' | 'perfection' | 'completion' | 'buff' | 'technique';
|
|
209
216
|
color: string;
|
|
210
217
|
position?: {
|
|
@@ -219,6 +226,7 @@ export interface CombatArtefact extends ArtefactItem {
|
|
|
219
226
|
}
|
|
220
227
|
export interface CombatEntity {
|
|
221
228
|
entityType: EntityType;
|
|
229
|
+
name?: string;
|
|
222
230
|
image: string;
|
|
223
231
|
supportImage?: {
|
|
224
232
|
image: string;
|
|
@@ -269,9 +277,13 @@ export interface CombatEntity {
|
|
|
269
277
|
};
|
|
270
278
|
};
|
|
271
279
|
realm: Realm;
|
|
280
|
+
realmProgress: RealmProgress;
|
|
272
281
|
stats: CombatStatsMap;
|
|
273
282
|
stance: Stance;
|
|
283
|
+
stances?: Stance[];
|
|
274
284
|
stanceRotationIndex: number;
|
|
285
|
+
stanceRotation: StanceRule[];
|
|
286
|
+
rotationOverrides?: StanceRule[];
|
|
275
287
|
usedOverrides: boolean[];
|
|
276
288
|
usedPills: boolean[];
|
|
277
289
|
defenseFactor: number;
|
|
@@ -288,6 +300,9 @@ export interface CombatEntity {
|
|
|
288
300
|
};
|
|
289
301
|
disableBreathing?: boolean;
|
|
290
302
|
effectTracking: Record<string, CombatEffectTracking>;
|
|
303
|
+
party?: CombatEntity[];
|
|
304
|
+
isPartyMember?: boolean;
|
|
305
|
+
partyMemberIndex?: number;
|
|
291
306
|
}
|
|
292
307
|
export type StanceRule = SingleStance | RandomStance;
|
|
293
308
|
export interface SingleStance {
|
package/dist/event.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
import { GameScreen } from './GameScreen';
|
|
2
3
|
import { MusicName, SoundEffectName } from './audio';
|
|
3
4
|
import { Buff } from './buff';
|
|
@@ -34,14 +35,14 @@ export type EventStep = TextStep | SpeechStep | CombatStep | CraftingStep | Choi
|
|
|
34
35
|
export interface TextStep {
|
|
35
36
|
kind: 'text';
|
|
36
37
|
condition?: string;
|
|
37
|
-
text:
|
|
38
|
+
text: Translatable;
|
|
38
39
|
sfx?: SoundEffectName;
|
|
39
40
|
}
|
|
40
41
|
export interface SpeechStep {
|
|
41
42
|
kind: 'speech';
|
|
42
43
|
condition?: string;
|
|
43
44
|
character: string;
|
|
44
|
-
text:
|
|
45
|
+
text: Translatable;
|
|
45
46
|
}
|
|
46
47
|
export interface CombatStep {
|
|
47
48
|
kind: 'combat';
|
|
@@ -75,7 +76,7 @@ export interface ChoiceStep {
|
|
|
75
76
|
choices: ChoiceStepChoice[];
|
|
76
77
|
}
|
|
77
78
|
export interface ChoiceStepChoice {
|
|
78
|
-
text:
|
|
79
|
+
text: Translatable;
|
|
79
80
|
showCondition?: string;
|
|
80
81
|
condition?: EventChoiceCondition;
|
|
81
82
|
hideIfDisabled?: boolean;
|
|
@@ -483,7 +484,7 @@ export interface StoneCuttingStep {
|
|
|
483
484
|
export interface GiveItemStep {
|
|
484
485
|
kind: 'giveItem';
|
|
485
486
|
condition?: string;
|
|
486
|
-
description:
|
|
487
|
+
description: Translatable;
|
|
487
488
|
itemNames: string[];
|
|
488
489
|
branches: {
|
|
489
490
|
item: string;
|
package/dist/guild.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
import { SvgIconTypeMap } from '@mui/material';
|
|
2
3
|
import { OverridableComponent } from '@mui/material/OverridableComponent';
|
|
3
4
|
import { EventStep } from './event';
|
|
@@ -9,7 +10,7 @@ export interface GuildMission {
|
|
|
9
10
|
}
|
|
10
11
|
export interface Guild {
|
|
11
12
|
name: string;
|
|
12
|
-
description:
|
|
13
|
+
description: Translatable;
|
|
13
14
|
icon: string;
|
|
14
15
|
image: string;
|
|
15
16
|
backgroundLocation: string;
|
package/dist/house.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
import { SvgIconTypeMap } from '@mui/material';
|
|
2
3
|
import { OverridableComponent } from '@mui/material/OverridableComponent';
|
|
3
4
|
import { ScreenEffectType } from './ScreenEffectType';
|
|
@@ -8,7 +9,7 @@ import { Rarity } from './rarity';
|
|
|
8
9
|
import { Realm } from './realm';
|
|
9
10
|
export interface House {
|
|
10
11
|
name: string;
|
|
11
|
-
description:
|
|
12
|
+
description: Translatable;
|
|
12
13
|
background: string;
|
|
13
14
|
screenEffect: ScreenEffectType;
|
|
14
15
|
transportSeal: TransportSealItem;
|
|
@@ -27,7 +28,7 @@ export interface RoomDef {
|
|
|
27
28
|
export type Room = BuffRoom | CultivationRoom | CraftingRoom | CompendiumRoom | HealerRoom | TeleportRoom;
|
|
28
29
|
interface RoomBase {
|
|
29
30
|
name: string;
|
|
30
|
-
description:
|
|
31
|
+
description: Translatable;
|
|
31
32
|
realm: Realm | 'any';
|
|
32
33
|
rarity: Rarity;
|
|
33
34
|
icon: OverridableComponent<SvgIconTypeMap<{}, 'svg'>>;
|
package/dist/item.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
import { Buff } from './buff';
|
|
2
3
|
import { CraftingBuff } from './craftingBuff';
|
|
3
4
|
import { CraftingTechniqueEffect } from './craftingTechnique';
|
|
@@ -22,7 +23,7 @@ export type Item = TechniqueItem | TechniqueCrystalItem | TechniqueShardItem | T
|
|
|
22
23
|
interface ItemBase {
|
|
23
24
|
kind: ItemKind;
|
|
24
25
|
name: string;
|
|
25
|
-
description:
|
|
26
|
+
description: Translatable;
|
|
26
27
|
icon: string;
|
|
27
28
|
stacks: number;
|
|
28
29
|
rarity: Rarity;
|
|
@@ -410,7 +411,7 @@ export interface PillarShardVariant {
|
|
|
410
411
|
}
|
|
411
412
|
export interface PillarShardItem extends ItemBase {
|
|
412
413
|
kind: 'pillar_shard';
|
|
413
|
-
tooltip:
|
|
414
|
+
tooltip: Translatable;
|
|
414
415
|
maxInstances?: number;
|
|
415
416
|
variants?: PillarShardVariant[];
|
|
416
417
|
stability?: number;
|
package/dist/keybindings.js
CHANGED
|
@@ -28,7 +28,7 @@ export const keybindingDefinitions = [
|
|
|
28
28
|
{
|
|
29
29
|
action: 'pause',
|
|
30
30
|
category: 'general',
|
|
31
|
-
displayName: 'Pause/Menu',
|
|
31
|
+
displayName: 'Pause / Menu',
|
|
32
32
|
description: 'Open pause menu or settings (not rebindable)',
|
|
33
33
|
defaultKey: 'Escape',
|
|
34
34
|
allowRebind: false,
|
package/dist/life.d.ts
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { Buff } from './buff';
|
|
2
2
|
import { StoredStance, StoredStyle } from './entity';
|
|
3
3
|
import { Realm } from './realm';
|
|
4
|
-
import { PhysicalStatistic } from './stat';
|
|
5
4
|
import { Technique } from './technique';
|
|
6
5
|
export interface LifeForm {
|
|
7
6
|
name: string;
|
|
8
|
-
description: string;
|
|
9
7
|
image: string;
|
|
10
8
|
realm: Realm;
|
|
11
|
-
baseStats: Record<PhysicalStatistic, number>;
|
|
12
9
|
buffs: Buff[];
|
|
13
10
|
techniques: Technique[];
|
|
14
11
|
}
|
package/dist/location.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
import { ScreenEffectType } from './ScreenEffectType';
|
|
2
3
|
import { EventStep } from './event';
|
|
3
4
|
import { Rarity } from './rarity';
|
|
@@ -11,7 +12,7 @@ import { AmbienceName, MusicName } from './audio';
|
|
|
11
12
|
export interface GameLocation {
|
|
12
13
|
name: string;
|
|
13
14
|
displayName?: string;
|
|
14
|
-
description:
|
|
15
|
+
description: Translatable;
|
|
15
16
|
image: string;
|
|
16
17
|
icon: string;
|
|
17
18
|
screenEffect: ScreenEffectType;
|
package/dist/mine.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
import { EventStep } from './event';
|
|
2
3
|
import { ItemDesc } from './item';
|
|
3
4
|
import { Rarity } from './rarity';
|
|
@@ -40,7 +41,7 @@ export type MineChamber = OreChamber | EventChamber | RandomDropChamber | Releas
|
|
|
40
41
|
interface BaseChamber {
|
|
41
42
|
icon: string;
|
|
42
43
|
name: string;
|
|
43
|
-
description:
|
|
44
|
+
description: Translatable;
|
|
44
45
|
rarity: Rarity;
|
|
45
46
|
condition: string;
|
|
46
47
|
isUnique?: boolean;
|
package/dist/quest.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
import { EventStep, GameEvent } from './event';
|
|
2
3
|
import { ItemDesc } from './item';
|
|
3
4
|
export interface Quest {
|
|
4
5
|
name: string;
|
|
5
|
-
description:
|
|
6
|
+
description: Translatable;
|
|
6
7
|
category: 'main' | 'side' | 'missionHall' | 'craftingHall' | 'requestBoard' | 'guild';
|
|
7
8
|
guild?: string;
|
|
8
9
|
steps: QuestStep[];
|
|
@@ -45,7 +46,7 @@ interface GuildApprovalQuestReward {
|
|
|
45
46
|
}
|
|
46
47
|
export type QuestStep = EventQuestStep | ConditionQuestStep | CollectQuestStep | MissionHallQuestStep | FlagValueQuestStep | SpeakToCharacterQuestStep | KillQuestStep | WaitQuestStep | RaidQuestStep;
|
|
47
48
|
interface QuestStepBase {
|
|
48
|
-
hint:
|
|
49
|
+
hint: Translatable;
|
|
49
50
|
}
|
|
50
51
|
interface EventQuestStep extends QuestStepBase {
|
|
51
52
|
kind: 'event';
|
package/dist/simpleEvent.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
export interface SimpleGameEvent {
|
|
2
3
|
location: string;
|
|
3
4
|
steps: SimpleEventStep[];
|
|
@@ -5,19 +6,19 @@ export interface SimpleGameEvent {
|
|
|
5
6
|
export type SimpleEventStep = TextStep | SpeechStep | ChoiceStep;
|
|
6
7
|
interface TextStep {
|
|
7
8
|
kind: 'text';
|
|
8
|
-
text:
|
|
9
|
+
text: Translatable;
|
|
9
10
|
}
|
|
10
11
|
interface SpeechStep {
|
|
11
12
|
kind: 'speech';
|
|
12
13
|
character: string;
|
|
13
|
-
text:
|
|
14
|
+
text: Translatable;
|
|
14
15
|
}
|
|
15
16
|
interface ChoiceStep {
|
|
16
17
|
kind: `choice`;
|
|
17
18
|
choices: ChoiceStepChoice[];
|
|
18
19
|
}
|
|
19
20
|
export interface ChoiceStepChoice {
|
|
20
|
-
text:
|
|
21
|
+
text: Translatable;
|
|
21
22
|
children: SimpleEventStep[];
|
|
22
23
|
}
|
|
23
24
|
export {};
|
package/dist/stat.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { TechniqueElement } from './element';
|
|
|
3
3
|
export declare const physicalStatistics: readonly ["eyes", "meridians", "dantian", "muscles", "digestion", "flesh"];
|
|
4
4
|
export declare const socialStatistics: readonly ["age", "lifespan", "charisma", "battlesense", "craftskill", "artefactslots", "talismanslots", "condenseEfficiency", "pillsPerRound"];
|
|
5
5
|
export declare const craftingStatistics: readonly ["maxpool", "pool", "maxtoxicity", "toxicity", "resistance", "itemEffectiveness", "control", "intensity", "critchance", "critmultiplier", "pillsPerRound", "poolCostPercentage", "stabilityCostPercentage", "successChanceBonus"];
|
|
6
|
-
export declare const combatStatistics: readonly ["maxhp", "hp", "maxbarrier", "barrier", "maxtoxicity", "toxicity", "resistance", "pillsPerRound", "itemEffectiveness", "power", "artefactpower", "critchance", "defense", "dr", "barrierMitigation", "lifesteal", "critmultiplier", "vulnerability", "weakness", "fistBoost", "blossomBoost", "weaponBoost", "cloudBoost", "bloodBoost", "celestialBoost", "fistAffinity", "blossomAffinity", "weaponAffinity", "cloudAffinity", "bloodAffinity", "celestialAffinity", "noneAffinity", "qiDroplets", "fistDisabled", "bloodDisabled", "blossomDisabled", "cloudDisabled", "celestialDisabled", "weaponDisabled", "fistResistance", "blossomResistance", "weaponResistance", "cloudResistance", "bloodResistance", "celestialResistance", "damageBoost", "healingBoost", "barrierBoost", "overheal"];
|
|
6
|
+
export declare const combatStatistics: readonly ["maxhp", "hp", "maxbarrier", "barrier", "maxtoxicity", "toxicity", "resistance", "pillsPerRound", "itemEffectiveness", "power", "artefactpower", "critchance", "defense", "protection", "dr", "barrierMitigation", "lifesteal", "critmultiplier", "vulnerability", "weakness", "fistBoost", "blossomBoost", "weaponBoost", "cloudBoost", "bloodBoost", "celestialBoost", "fistAffinity", "blossomAffinity", "weaponAffinity", "cloudAffinity", "bloodAffinity", "celestialAffinity", "noneAffinity", "qiDroplets", "fistDisabled", "bloodDisabled", "blossomDisabled", "cloudDisabled", "celestialDisabled", "weaponDisabled", "fistResistance", "blossomResistance", "weaponResistance", "cloudResistance", "bloodResistance", "celestialResistance", "damageBoost", "healingBoost", "barrierBoost", "overheal", "barrierBleed"];
|
|
7
7
|
export type PhysicalStatistic = (typeof physicalStatistics)[number];
|
|
8
8
|
export type SocialStatistic = (typeof socialStatistics)[number];
|
|
9
9
|
export type CraftingStatistic = (typeof craftingStatistics)[number];
|
package/dist/stat.js
CHANGED
|
@@ -47,6 +47,7 @@ export const combatStatistics = [
|
|
|
47
47
|
'artefactpower',
|
|
48
48
|
'critchance',
|
|
49
49
|
'defense',
|
|
50
|
+
'protection',
|
|
50
51
|
'dr',
|
|
51
52
|
'barrierMitigation',
|
|
52
53
|
'lifesteal',
|
|
@@ -83,6 +84,7 @@ export const combatStatistics = [
|
|
|
83
84
|
'healingBoost',
|
|
84
85
|
'barrierBoost',
|
|
85
86
|
'overheal',
|
|
87
|
+
'barrierBleed',
|
|
86
88
|
];
|
|
87
89
|
export const baseStatNumber = 10;
|
|
88
90
|
export const expectedHpPerFlesh = 1000;
|
|
@@ -108,6 +110,7 @@ export const combatStatToName = {
|
|
|
108
110
|
artefactpower: 'Artefact Power',
|
|
109
111
|
critchance: 'Crit Chance',
|
|
110
112
|
defense: 'Defense',
|
|
113
|
+
protection: 'Protection',
|
|
111
114
|
dr: 'Damage Resistance',
|
|
112
115
|
barrierMitigation: 'Barrier Effectiveness',
|
|
113
116
|
lifesteal: 'Life Steal',
|
|
@@ -146,6 +149,7 @@ export const combatStatToName = {
|
|
|
146
149
|
healingBoost: 'Healing Boost',
|
|
147
150
|
barrierBoost: 'Barrier Boost',
|
|
148
151
|
overheal: 'Overheal',
|
|
152
|
+
barrierBleed: 'Barrier Bleed',
|
|
149
153
|
};
|
|
150
154
|
export const combatStatToDescription = {
|
|
151
155
|
maxhp: 'The amount of damage you can take before you are unable to continue.',
|
|
@@ -156,7 +160,8 @@ export const combatStatToDescription = {
|
|
|
156
160
|
resistance: 'Your resistance to the effects of pill toxicity, increasing the number of pills you can digest.',
|
|
157
161
|
toxicity: '',
|
|
158
162
|
power: 'The strength of your techniques. This affects damage dealt, healing, barrier gained, and the strength of your buffs and debuffs.',
|
|
159
|
-
defense: 'Your resistance to damage.',
|
|
163
|
+
defense: 'Your base resistance to damage.',
|
|
164
|
+
protection: '',
|
|
160
165
|
dr: '',
|
|
161
166
|
lifesteal: '',
|
|
162
167
|
critchance: 'Your chance to get a critical effect on damage, healing, and barrier. Crit chance over 100% converts to bonus crit damage at a 1:3 ratio.',
|
|
@@ -197,6 +202,7 @@ export const combatStatToDescription = {
|
|
|
197
202
|
healingBoost: '',
|
|
198
203
|
barrierBoost: '',
|
|
199
204
|
overheal: '',
|
|
205
|
+
barrierBleed: '',
|
|
200
206
|
};
|
|
201
207
|
// Uncommon stats that need auxiliary tooltips when they appear on buffs
|
|
202
208
|
// These descriptions only show as aux tooltips in buff tooltips, not in the stats dialog
|
|
@@ -205,6 +211,10 @@ export const uncommonStatTooltips = {
|
|
|
205
211
|
healingBoost: '<n>Healing Boost</n> increases all healing received by a percentage.',
|
|
206
212
|
barrierBoost: '<n>Barrier Boost</n> increases all barrier gained by a percentage.',
|
|
207
213
|
overheal: '<n>Overheal</n> converts a percentage of healing beyond your maximum health into barrier.',
|
|
214
|
+
protection: '<n>Protection</n> reduces damage taken to your health. Does not affect damage taken to your barrier.',
|
|
215
|
+
weakness: '<n>Weakness</n> reduces your power.',
|
|
216
|
+
vulnerability: '<n>Vulnerability</n> increases damage taken to your <n>health</n>. Does not affect damage taken to your barrier.',
|
|
217
|
+
barrierBleed: '<n>Barrier Bleed</n> causes a percentage of your damage to bypass the enemy barrier and strike their health directly.',
|
|
208
218
|
};
|
|
209
219
|
export const craftingStatToName = {
|
|
210
220
|
maxpool: 'Max Qi Pool',
|
package/dist/technique.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
import { Buff, TechniqueCondition } from './buff';
|
|
2
3
|
import { DamageType } from './DamageType';
|
|
3
4
|
import { TechniqueElement } from './element';
|
|
@@ -143,7 +144,7 @@ interface TriggerEffect extends BaseTechniqueEffect {
|
|
|
143
144
|
export type TechniqueMastery = PowerTechniqueMastery | EffectTechniqueMastery | CritChanceTechniqueMastery | CritMultiplierTechniqueMastery | UpgradeTechniqueMastery;
|
|
144
145
|
interface BaseTechniqueMastery {
|
|
145
146
|
condition?: TechniqueCondition;
|
|
146
|
-
tooltip?:
|
|
147
|
+
tooltip?: Translatable;
|
|
147
148
|
rarity?: Rarity;
|
|
148
149
|
}
|
|
149
150
|
interface PowerTechniqueMastery extends BaseTechniqueMastery {
|
|
@@ -164,7 +165,7 @@ interface EffectTechniqueMastery extends BaseTechniqueMastery {
|
|
|
164
165
|
}
|
|
165
166
|
export interface UpgradeTechniqueMastery extends BaseTechniqueMastery {
|
|
166
167
|
kind: 'upgrade';
|
|
167
|
-
tooltip:
|
|
168
|
+
tooltip: Translatable;
|
|
168
169
|
upgradeKey: string;
|
|
169
170
|
change: number;
|
|
170
171
|
shouldMultiply?: boolean;
|
package/dist/trainingGround.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
import { EnemyEntity, Realm, RealmProgress } from '.';
|
|
2
3
|
export interface PuppetType {
|
|
3
4
|
id: string;
|
|
4
5
|
name: string;
|
|
5
|
-
description:
|
|
6
|
+
description: Translatable;
|
|
6
7
|
image: string;
|
|
7
8
|
baseMultiplier: number;
|
|
8
9
|
multiplierGrowth: number;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A deferred translation object. Instead of calling t() immediately,
|
|
3
|
+
* store the key and variables to be resolved at render time.
|
|
4
|
+
* This ensures language changes take effect without reload.
|
|
5
|
+
*/
|
|
6
|
+
export interface TranslatableString {
|
|
7
|
+
readonly _translatable: true;
|
|
8
|
+
readonly key: string;
|
|
9
|
+
readonly variables?: Record<string, string | number>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A deferred plural translation object. Stores both singular and plural keys
|
|
13
|
+
* to be resolved at render time based on a count value.
|
|
14
|
+
*/
|
|
15
|
+
export interface TranslatablePlural {
|
|
16
|
+
readonly _translatable: true;
|
|
17
|
+
readonly _plural: true;
|
|
18
|
+
readonly countVar: string;
|
|
19
|
+
readonly one: string;
|
|
20
|
+
readonly other: string;
|
|
21
|
+
readonly variables?: Record<string, string | number>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* A value that can be either a plain string or a deferred translation object.
|
|
25
|
+
* Plain strings are translated as-is. TranslatableString objects are resolved
|
|
26
|
+
* at render time with their stored variables.
|
|
27
|
+
*/
|
|
28
|
+
export type Translatable = string | TranslatableString | TranslatablePlural;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/tutorial.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Translatable } from './translatable';
|
|
1
2
|
export interface Tutorial {
|
|
2
3
|
name: string;
|
|
3
4
|
steps: TutorialStep[];
|
|
@@ -12,11 +13,11 @@ export interface ClickTutorialStep {
|
|
|
12
13
|
export interface DescribeTutorialStep {
|
|
13
14
|
kind: 'describe';
|
|
14
15
|
elementId: string;
|
|
15
|
-
description:
|
|
16
|
+
description: Translatable;
|
|
16
17
|
}
|
|
17
18
|
export interface GeneralTutorialStep {
|
|
18
19
|
kind: 'general';
|
|
19
|
-
description:
|
|
20
|
+
description: Translatable;
|
|
20
21
|
elementId?: undefined;
|
|
21
22
|
}
|
|
22
23
|
export interface SuspendContStep {
|