afnm-types 0.6.38 → 0.6.42
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/buff.d.ts +70 -4
- package/dist/character.d.ts +8 -0
- package/dist/entity.d.ts +22 -2
- package/dist/entity.js +1 -1
- package/dist/event.d.ts +7 -1
- package/dist/item.d.ts +7 -0
- package/dist/itemHarmonyType.js +1 -1
- package/dist/keybindings.js +12 -1
- package/dist/location.d.ts +15 -0
- package/dist/mine.d.ts +2 -0
- package/dist/mod.d.ts +0 -1
- package/dist/quest.d.ts +1 -0
- package/dist/reduxState.d.ts +4 -1
- package/dist/stat.js +1 -1
- package/dist/technique.d.ts +11 -3
- package/package.json +11 -2
package/dist/buff.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { TechniqueElement } from './element';
|
|
|
3
3
|
import { CombatStatistic, Scaling } from './stat';
|
|
4
4
|
import { DamageType } from './DamageType';
|
|
5
5
|
import type { CombatEntity } from './entity';
|
|
6
|
-
export type TechniqueCondition = ChanceTechniqueCondition | BuffTechniqueCondition | HpTechniqueCondition | ConditionTechniqueCondition;
|
|
6
|
+
export type TechniqueCondition = ChanceTechniqueCondition | BuffTechniqueCondition | HpTechniqueCondition | ConditionTechniqueCondition | InventoryItemTechniqueCondition;
|
|
7
7
|
export type DamageModifier = MultiplyDamageModifier | ReduceDamageModifier | ExpressionDamageModifier;
|
|
8
8
|
interface MultiplyDamageModifier {
|
|
9
9
|
kind: 'multiply';
|
|
@@ -38,6 +38,12 @@ interface ConditionTechniqueCondition {
|
|
|
38
38
|
condition: string;
|
|
39
39
|
tooltip?: string;
|
|
40
40
|
}
|
|
41
|
+
interface InventoryItemTechniqueCondition {
|
|
42
|
+
kind: 'inventoryItem';
|
|
43
|
+
itemName: string;
|
|
44
|
+
count: number;
|
|
45
|
+
mode: 'more' | 'less' | 'equal';
|
|
46
|
+
}
|
|
41
47
|
export interface Buff {
|
|
42
48
|
name: string;
|
|
43
49
|
displayName?: Translatable;
|
|
@@ -119,6 +125,7 @@ export interface Buff {
|
|
|
119
125
|
afterTechnique?: boolean;
|
|
120
126
|
combatImage?: BuffCombatImage;
|
|
121
127
|
maxStacks?: number;
|
|
128
|
+
upgradeKey?: string;
|
|
122
129
|
stacks: number;
|
|
123
130
|
stacksAreDays?: boolean;
|
|
124
131
|
stacksAreMonths?: boolean;
|
|
@@ -127,15 +134,26 @@ export interface Buff {
|
|
|
127
134
|
endurePercent?: number;
|
|
128
135
|
setupPercent?: number;
|
|
129
136
|
cantUpgrade?: boolean;
|
|
137
|
+
/** When set, this buff acts as a guardian that intercepts a percentage of incoming damage.
|
|
138
|
+
* Guardian HP is initialized from guardianIntercept.maxHp and stored on guardianHp / guardianMaxHp.
|
|
139
|
+
* When guardianHp reaches 0, the buff is permanently removed. */
|
|
140
|
+
guardianIntercept?: {
|
|
141
|
+
percent: Scaling;
|
|
142
|
+
maxHp: Scaling;
|
|
143
|
+
};
|
|
144
|
+
/** Runtime guardian HP — set automatically from guardianIntercept.maxHp at buff creation */
|
|
145
|
+
guardianHp?: number;
|
|
146
|
+
/** Runtime guardian max HP — set automatically from guardianIntercept.maxHp at buff creation */
|
|
147
|
+
guardianMaxHp?: number;
|
|
130
148
|
}
|
|
131
|
-
type BuffCombatImage = ScatterCombatImage | ArcCombatImage | FloatingCombatImage | OverlayCombatImage | CompanionCombatImage | GroundCombatImage | FormationCombatImage | TransformationCombatImage;
|
|
149
|
+
type BuffCombatImage = ScatterCombatImage | ArcCombatImage | FloatingCombatImage | OverlayCombatImage | CompanionCombatImage | GuardianCombatImage | GroundCombatImage | FormationCombatImage | ForegroundCombatImage | BackgroundCombatImage | TransformationCombatImage;
|
|
132
150
|
interface BaseCombatImage {
|
|
133
151
|
image: string;
|
|
134
152
|
imageOverrides?: {
|
|
135
153
|
stacks: number;
|
|
136
154
|
image: string;
|
|
137
155
|
}[];
|
|
138
|
-
position: 'scatter' | 'arc' | 'floating' | 'overlay' | 'companion' | 'ground' | 'formation';
|
|
156
|
+
position: 'scatter' | 'arc' | 'floating' | 'overlay' | 'companion' | 'guardian' | 'ground' | 'formation' | 'foreground' | 'background';
|
|
139
157
|
animations?: ('buff' | 'bump' | 'attack' | 'debuff')[];
|
|
140
158
|
animateOnEntity?: boolean;
|
|
141
159
|
}
|
|
@@ -186,6 +204,21 @@ export interface CompanionCombatImage extends BaseCombatImage {
|
|
|
186
204
|
};
|
|
187
205
|
};
|
|
188
206
|
}
|
|
207
|
+
/** Guardian combat image - positions the buff in front of the entity as a defensive line.
|
|
208
|
+
* Used for puppet guardians that intercept damage. Displayed in a zig-zag pattern. */
|
|
209
|
+
export interface GuardianCombatImage extends BaseCombatImage {
|
|
210
|
+
position: 'guardian';
|
|
211
|
+
scale?: number;
|
|
212
|
+
stacksScale?: number;
|
|
213
|
+
executeImage?: {
|
|
214
|
+
image: string;
|
|
215
|
+
scale: number;
|
|
216
|
+
imageOffset?: {
|
|
217
|
+
x: number;
|
|
218
|
+
y: number;
|
|
219
|
+
};
|
|
220
|
+
};
|
|
221
|
+
}
|
|
189
222
|
export interface GroundCombatImage extends BaseCombatImage {
|
|
190
223
|
position: 'ground';
|
|
191
224
|
scale?: number;
|
|
@@ -196,6 +229,24 @@ export interface FormationCombatImage extends BaseCombatImage {
|
|
|
196
229
|
scale?: number;
|
|
197
230
|
showSingleInstance?: boolean;
|
|
198
231
|
}
|
|
232
|
+
/** Foreground combat image - displays the entire image in front of the character.
|
|
233
|
+
* Unlike overlays which are masked to the character sprite, this displays the full image. */
|
|
234
|
+
export interface ForegroundCombatImage extends BaseCombatImage {
|
|
235
|
+
position: 'foreground';
|
|
236
|
+
scale?: number;
|
|
237
|
+
stacksScale?: number;
|
|
238
|
+
baseOpacity?: number;
|
|
239
|
+
stacksOpacity?: number;
|
|
240
|
+
}
|
|
241
|
+
/** Background combat image - displays the entire image behind the character.
|
|
242
|
+
* Unlike overlays which are masked to the character sprite, this displays the full image. */
|
|
243
|
+
export interface BackgroundCombatImage extends BaseCombatImage {
|
|
244
|
+
position: 'background';
|
|
245
|
+
scale?: number;
|
|
246
|
+
stacksScale?: number;
|
|
247
|
+
baseOpacity?: number;
|
|
248
|
+
stacksOpacity?: number;
|
|
249
|
+
}
|
|
199
250
|
/** Image configuration for a single avatar state in transformation */
|
|
200
251
|
export interface TransformationImageConfig {
|
|
201
252
|
image: string;
|
|
@@ -240,13 +291,15 @@ export interface TransformationCombatImage {
|
|
|
240
291
|
/** Whether animations should trigger on the entity. Defaults to true for transformation. */
|
|
241
292
|
animateOnEntity?: boolean;
|
|
242
293
|
}
|
|
243
|
-
export type
|
|
294
|
+
export type RepairRule = 'all' | 'lowestHealth' | 'highestHealth';
|
|
295
|
+
export type BuffEffect = DamageEffect | DamageSelfEffect | HealEffect | BarrierEffect | CreateBuffSelfEffect | ConsumeBuffSelfEffect | CreateBuffTargetEffect | ConsumeBuffTargetEffect | NegateEffect | AddEffect | MultiplyEffect | MergeEffect | TriggerEffect | ModifyBuffGroupEffect | CleanseToxicityEffect | SetStateEffect | ConvertSelfEffect | RepairEffect | ConsumeInventoryItemEffect;
|
|
244
296
|
interface BaseBuff {
|
|
245
297
|
condition?: TechniqueCondition;
|
|
246
298
|
triggerKey?: string;
|
|
247
299
|
statChanges?: Partial<{
|
|
248
300
|
[key in CombatStatistic]: Scaling;
|
|
249
301
|
}>;
|
|
302
|
+
hidden?: boolean;
|
|
250
303
|
}
|
|
251
304
|
interface DamageEffect extends BaseBuff {
|
|
252
305
|
kind: 'damage';
|
|
@@ -341,4 +394,17 @@ interface ConvertSelfEffect extends BaseBuff {
|
|
|
341
394
|
target: Buff;
|
|
342
395
|
amount: Scaling;
|
|
343
396
|
}
|
|
397
|
+
interface RepairEffect extends BaseBuff {
|
|
398
|
+
kind: 'repair';
|
|
399
|
+
amount: Scaling;
|
|
400
|
+
/** Matches buffs by name, buffType, or flag (same matching as modifyBuffGroup) */
|
|
401
|
+
group: string;
|
|
402
|
+
/** Which matching buff(s) to repair: 'all', 'lowestHealth', or 'highestHealth' */
|
|
403
|
+
rule: RepairRule;
|
|
404
|
+
}
|
|
405
|
+
interface ConsumeInventoryItemEffect extends BaseBuff {
|
|
406
|
+
kind: 'consumeInventoryItem';
|
|
407
|
+
itemName: string;
|
|
408
|
+
amount: Scaling;
|
|
409
|
+
}
|
|
344
410
|
export {};
|
package/dist/character.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export interface Character {
|
|
|
12
12
|
displayName?: Translatable;
|
|
13
13
|
allegiance: string | undefined;
|
|
14
14
|
bio?: string;
|
|
15
|
+
manualDescription?: string;
|
|
15
16
|
condition: string;
|
|
16
17
|
definitions: CharacterDefinition[];
|
|
17
18
|
relationship?: CharacterRelationshipDefinition[];
|
|
@@ -151,6 +152,13 @@ export interface ShopCharacterInteraction extends BaseCharacterInteraction {
|
|
|
151
152
|
costMultiplier: number;
|
|
152
153
|
introSteps: EventStep[];
|
|
153
154
|
exitSteps: EventStep[];
|
|
155
|
+
tokenCurrency?: {
|
|
156
|
+
currencyItem: Item;
|
|
157
|
+
tokenStock: Array<{
|
|
158
|
+
item: Item;
|
|
159
|
+
tokenCost: number;
|
|
160
|
+
}>;
|
|
161
|
+
};
|
|
154
162
|
}
|
|
155
163
|
export interface SparCharacterInteraction extends BaseCharacterInteraction {
|
|
156
164
|
introSteps: EventStep[];
|
package/dist/entity.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export interface CombatEffectTracking {
|
|
|
16
16
|
barrier: number;
|
|
17
17
|
damageTaken: number;
|
|
18
18
|
}
|
|
19
|
-
export declare const entityTypes: readonly ["Player", "Lifeform", "Enemy"];
|
|
19
|
+
export declare const entityTypes: readonly ["Player", "Lifeform", "Enemy", "PlayerParty", "EnemyParty", "System"];
|
|
20
20
|
export type EntityType = (typeof entityTypes)[number];
|
|
21
21
|
export declare const sexes: readonly ["male", "female"];
|
|
22
22
|
export type Sex = (typeof sexes)[number];
|
|
@@ -308,6 +308,8 @@ export interface CombatEntity {
|
|
|
308
308
|
party?: CombatEntity[];
|
|
309
309
|
isPartyMember?: boolean;
|
|
310
310
|
partyMemberIndex?: number;
|
|
311
|
+
/** UUID assigned at creation — only present on PlayerParty and EnemyParty entities */
|
|
312
|
+
partyId?: string;
|
|
311
313
|
}
|
|
312
314
|
export type StanceRule = SingleStance | RandomStance;
|
|
313
315
|
export interface SingleStance {
|
|
@@ -324,13 +326,26 @@ interface RandomStance {
|
|
|
324
326
|
repeatable?: boolean;
|
|
325
327
|
alternatives?: StanceRule[];
|
|
326
328
|
}
|
|
329
|
+
export interface ConditionalCycle {
|
|
330
|
+
id: string;
|
|
331
|
+
name: string;
|
|
332
|
+
position: number;
|
|
333
|
+
conditions: Array<{
|
|
334
|
+
condition: string;
|
|
335
|
+
check: '<' | '==' | '>' | '!=';
|
|
336
|
+
value: number;
|
|
337
|
+
}>;
|
|
338
|
+
operator: 'AND' | 'OR';
|
|
339
|
+
}
|
|
327
340
|
export interface StoredStyle {
|
|
328
341
|
name: string;
|
|
329
342
|
id: string;
|
|
330
343
|
autoName?: boolean;
|
|
331
344
|
stances: StoredStance[];
|
|
345
|
+
conditionalCycles?: ConditionalCycle[];
|
|
346
|
+
autoUseItems?: (string | undefined)[];
|
|
332
347
|
}
|
|
333
|
-
export type StoredRule = OpenerStoredRule | RotationStoredRule | ConditionalStoredRule;
|
|
348
|
+
export type StoredRule = OpenerStoredRule | RotationStoredRule | ConditionalStoredRule | ConditionalRotationStoredRule;
|
|
334
349
|
export interface OpenerStoredRule {
|
|
335
350
|
kind: 'opener';
|
|
336
351
|
position: number;
|
|
@@ -351,6 +366,11 @@ export interface ConditionalStoredRule {
|
|
|
351
366
|
}>;
|
|
352
367
|
operator?: 'AND' | 'OR';
|
|
353
368
|
}
|
|
369
|
+
export interface ConditionalRotationStoredRule {
|
|
370
|
+
kind: 'conditionalRotation';
|
|
371
|
+
position: number;
|
|
372
|
+
cycleId: string;
|
|
373
|
+
}
|
|
354
374
|
export interface StoredStance {
|
|
355
375
|
name: string;
|
|
356
376
|
autoName?: boolean;
|
package/dist/entity.js
CHANGED
package/dist/event.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export interface TriggeredEvent {
|
|
|
22
22
|
max: number;
|
|
23
23
|
};
|
|
24
24
|
usesCooldown?: boolean;
|
|
25
|
+
minLocationCharacters?: number;
|
|
25
26
|
}
|
|
26
27
|
export interface GameEvent {
|
|
27
28
|
location: string;
|
|
@@ -31,7 +32,7 @@ export interface GameEvent {
|
|
|
31
32
|
value: number;
|
|
32
33
|
}[];
|
|
33
34
|
}
|
|
34
|
-
export type EventStep = TextStep | SpeechStep | CombatStep | CraftingStep | ChoiceStep | ConditionalStep | SetFlagStep | ExitStep | CreateBuffStep | ConsumeBuffStep | ChangeLocationStep | AddItemStep | RemoveItemStep | AddQuestStep | ChangeMoneyStep | ChangeFavourStep | AddDestinyStep | ChangeReputationStep | QiStep | UnlockLocationStep | ClearCharacterStep | SetCharacterStep | LabelStep | GotoLabelStep | UnlockCraftingTechniqueStep | TalkToCharacterStep | TradeWithCharacterStep | CraftWithCharacterStep | FightCharacterStep | MarkBeatCharacterStep | MarkDidEncounterStep | ChangeHpStep | PassTimeStep | ReportAnalyticsStep | ApprovalStep | ProgressRelationshipStep | MarkGiftedStep | UpdateCharacterDefinitionStep | AuctionStep | MarkCalendarEventCompleteStep | AddMultipleItemStep | AdvanceMysticalRegionStep | CraftSkillStep | TournamentStep | TeamUpStep | AddFollowerStep | ClearTeamUpStep | UnlockAltarStep | DropItemStep | SetAltarCooldownStep | CompressCoreStep | ChangeScreenStep | UnlockTechniqueStep | UnlockAuctionTechniqueStep | AddRecipeStep | AddManualStep | ReplaceItemStep | DualCultivationStep | ChangeBGMStep | ClearChangeBGMStep | AddGuildApprovalStep | AdvanceGuildRankStep | OverridePlayerRealmStep | SetAidBreakthroughCooldownStep | StoneCuttingStep | GiveItemStep | ChangePhysicalStatStep | ChangeSocialStatStep;
|
|
35
|
+
export type EventStep = TextStep | SpeechStep | CombatStep | CraftingStep | ChoiceStep | ConditionalStep | SetFlagStep | ExitStep | CreateBuffStep | ConsumeBuffStep | ChangeLocationStep | AddItemStep | RemoveItemStep | AddQuestStep | ChangeMoneyStep | ChangeFavourStep | AddDestinyStep | ChangeReputationStep | QiStep | UnlockLocationStep | ClearCharacterStep | SetCharacterStep | LabelStep | GotoLabelStep | UnlockCraftingTechniqueStep | TalkToCharacterStep | TradeWithCharacterStep | CraftWithCharacterStep | FightCharacterStep | MarkBeatCharacterStep | MarkDidEncounterStep | ChangeHpStep | PassTimeStep | ReportAnalyticsStep | ApprovalStep | ProgressRelationshipStep | MarkGiftedStep | UpdateCharacterDefinitionStep | AuctionStep | MarkCalendarEventCompleteStep | AddMultipleItemStep | AdvanceMysticalRegionStep | CraftSkillStep | TournamentStep | TeamUpStep | AddFollowerStep | ClearTeamUpStep | UnlockAltarStep | DropItemStep | SetAltarCooldownStep | CompressCoreStep | ChangeScreenStep | UnlockTechniqueStep | UnlockAuctionTechniqueStep | AddRecipeStep | AddManualStep | LearnNpcStancesStep | ReplaceItemStep | DualCultivationStep | ChangeBGMStep | ClearChangeBGMStep | AddGuildApprovalStep | AdvanceGuildRankStep | OverridePlayerRealmStep | SetAidBreakthroughCooldownStep | StoneCuttingStep | GiveItemStep | ChangePhysicalStatStep | ChangeSocialStatStep;
|
|
35
36
|
export interface TextStep {
|
|
36
37
|
kind: 'text';
|
|
37
38
|
condition?: string;
|
|
@@ -295,6 +296,11 @@ export interface AddManualStep {
|
|
|
295
296
|
condition?: string;
|
|
296
297
|
manual: string;
|
|
297
298
|
}
|
|
299
|
+
export interface LearnNpcStancesStep {
|
|
300
|
+
kind: 'learnNpcStances';
|
|
301
|
+
condition?: string;
|
|
302
|
+
characterName: string;
|
|
303
|
+
}
|
|
298
304
|
export interface TalkToCharacterStep {
|
|
299
305
|
kind: 'talkToCharacter';
|
|
300
306
|
condition?: string;
|
package/dist/item.d.ts
CHANGED
|
@@ -90,6 +90,8 @@ export interface DeviceItem extends ItemBase {
|
|
|
90
90
|
export interface ManualItem extends ItemBase {
|
|
91
91
|
kind: 'manual';
|
|
92
92
|
style: ManualStyle;
|
|
93
|
+
/** Unique identifier for NPC manuals; deduplication key separate from the display name. */
|
|
94
|
+
id?: string;
|
|
93
95
|
}
|
|
94
96
|
export interface ManualStyle {
|
|
95
97
|
name: string;
|
|
@@ -129,6 +131,7 @@ export interface ClothingEnchantment extends Enchantment {
|
|
|
129
131
|
}
|
|
130
132
|
export interface TalismanItem extends ItemBase {
|
|
131
133
|
kind: 'talisman';
|
|
134
|
+
combatStats?: Partial<CombatStatsMap>;
|
|
132
135
|
buffs: {
|
|
133
136
|
buff: Buff;
|
|
134
137
|
buffStacks: Scaling;
|
|
@@ -148,6 +151,10 @@ export interface ArtefactItem extends ItemBase {
|
|
|
148
151
|
combatStats?: Partial<CombatStatsMap>;
|
|
149
152
|
charisma?: number;
|
|
150
153
|
techniques: ArtefactTechnique[];
|
|
154
|
+
buffs?: {
|
|
155
|
+
buff: Buff;
|
|
156
|
+
buffStacks: Scaling;
|
|
157
|
+
}[];
|
|
151
158
|
}
|
|
152
159
|
export interface ArtefactEnchantment extends Enchantment {
|
|
153
160
|
itemKind: 'artefact';
|
package/dist/itemHarmonyType.js
CHANGED
package/dist/keybindings.js
CHANGED
|
@@ -821,6 +821,17 @@ const codeToBaseKey = {
|
|
|
821
821
|
Digit7: '7',
|
|
822
822
|
Digit8: '8',
|
|
823
823
|
Digit9: '9',
|
|
824
|
+
// Numpad numbers
|
|
825
|
+
Numpad0: '0',
|
|
826
|
+
Numpad1: '1',
|
|
827
|
+
Numpad2: '2',
|
|
828
|
+
Numpad3: '3',
|
|
829
|
+
Numpad4: '4',
|
|
830
|
+
Numpad5: '5',
|
|
831
|
+
Numpad6: '6',
|
|
832
|
+
Numpad7: '7',
|
|
833
|
+
Numpad8: '8',
|
|
834
|
+
Numpad9: '9',
|
|
824
835
|
// Letters
|
|
825
836
|
KeyA: 'a',
|
|
826
837
|
KeyB: 'b',
|
|
@@ -940,7 +951,7 @@ export function parseKeybindingString(keybinding) {
|
|
|
940
951
|
// Check if a keyboard event matches a keybinding string
|
|
941
952
|
export function matchesKeybinding(event, keybinding) {
|
|
942
953
|
const parsed = parseKeybindingString(keybinding);
|
|
943
|
-
return (event
|
|
954
|
+
return (getBaseKeyFromEvent(event) === parsed.key &&
|
|
944
955
|
event.ctrlKey === parsed.ctrl &&
|
|
945
956
|
event.altKey === parsed.alt &&
|
|
946
957
|
event.shiftKey === parsed.shift);
|
package/dist/location.d.ts
CHANGED
|
@@ -9,6 +9,15 @@ import { ItemDesc } from './item';
|
|
|
9
9
|
import { House, HouseData } from './house';
|
|
10
10
|
import { Buff } from './buff';
|
|
11
11
|
import { AmbienceName, MusicName } from './audio';
|
|
12
|
+
export interface LocationGatheringEvent {
|
|
13
|
+
steps: EventStep[];
|
|
14
|
+
triggerChance?: number;
|
|
15
|
+
resetMonths?: {
|
|
16
|
+
min: number;
|
|
17
|
+
max: number;
|
|
18
|
+
};
|
|
19
|
+
minCharacters?: number;
|
|
20
|
+
}
|
|
12
21
|
export interface GameLocation {
|
|
13
22
|
name: string;
|
|
14
23
|
displayName?: Translatable;
|
|
@@ -35,6 +44,7 @@ export interface GameLocation {
|
|
|
35
44
|
realm?: Realm;
|
|
36
45
|
realmProgress?: RealmProgress;
|
|
37
46
|
reputationName?: string;
|
|
47
|
+
gatheringEvent?: LocationGatheringEvent;
|
|
38
48
|
}
|
|
39
49
|
/**
|
|
40
50
|
* A root location that serves as an entry point for location discovery.
|
|
@@ -81,6 +91,11 @@ export interface LocationEvent {
|
|
|
81
91
|
rarity: Rarity;
|
|
82
92
|
triggerChance?: number;
|
|
83
93
|
condition: string;
|
|
94
|
+
cooldown?: {
|
|
95
|
+
key: string;
|
|
96
|
+
min: number;
|
|
97
|
+
max: number;
|
|
98
|
+
};
|
|
84
99
|
}
|
|
85
100
|
export interface LocationMapEvent {
|
|
86
101
|
event: EventStep[];
|
package/dist/mine.d.ts
CHANGED
|
@@ -48,6 +48,8 @@ interface BaseChamber {
|
|
|
48
48
|
isUnique?: boolean;
|
|
49
49
|
/** If set, the chamber is only considered completed for pathing purposes when this game flag is truthy */
|
|
50
50
|
completeFlag?: string;
|
|
51
|
+
/** If set, quantity-based drops are scaled: Middle = ×1.5, Late = ×2 */
|
|
52
|
+
realmProgress?: RealmProgress;
|
|
51
53
|
}
|
|
52
54
|
export interface OreChamber extends BaseChamber {
|
|
53
55
|
kind: 'ore';
|
package/dist/mod.d.ts
CHANGED
package/dist/quest.d.ts
CHANGED
package/dist/reduxState.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PlayerEntity, EnemyEntity, CombatEntity, Sex } from './entity';
|
|
2
|
-
import { ItemDesc, EnchantmentDesc, ItemKind } from './item';
|
|
2
|
+
import { ItemDesc, EnchantmentDesc, ItemKind, ManualItem } from './item';
|
|
3
3
|
import { BreakthroughState } from './breakthrough';
|
|
4
4
|
import { ScreenEffectType } from './ScreenEffectType';
|
|
5
5
|
import { CalendarEvent } from './calendar';
|
|
@@ -30,6 +30,7 @@ export interface PlayerState {
|
|
|
30
30
|
name: string;
|
|
31
31
|
}[];
|
|
32
32
|
numStancesSeen: number;
|
|
33
|
+
learnedNpcManuals?: ManualItem[];
|
|
33
34
|
}
|
|
34
35
|
export interface InventoryItemState {
|
|
35
36
|
name: string;
|
|
@@ -181,6 +182,7 @@ export interface CropReference {
|
|
|
181
182
|
export interface LocationHerbFieldState {
|
|
182
183
|
formation?: string;
|
|
183
184
|
upgradeLevel?: number;
|
|
185
|
+
currentGardenLayoutId?: string;
|
|
184
186
|
cropGrid?: {
|
|
185
187
|
x: number;
|
|
186
188
|
y: number;
|
|
@@ -384,6 +386,7 @@ export interface RecipeFilters {
|
|
|
384
386
|
selectedRecipe: string;
|
|
385
387
|
pinnedRecipes: string[];
|
|
386
388
|
category: 'all' | ItemKind;
|
|
389
|
+
realmFilter: 'all' | Realm;
|
|
387
390
|
}
|
|
388
391
|
export interface CharacterUiPreferencesState {
|
|
389
392
|
techniqueFilter: string;
|
package/dist/stat.js
CHANGED
|
@@ -285,7 +285,7 @@ export const physicalStatToName = {
|
|
|
285
285
|
};
|
|
286
286
|
export const physicalStatToDescription = {
|
|
287
287
|
flesh: 'Your ability to withstand damage. Affects <b>Max Health</b> and <b>Barrier Effectiveness</b>.',
|
|
288
|
-
digestion: 'Your ability to handle the effects of alchemical creations. Affects your <b>Toxicity Handling</b> (<b>Toxicity Resistance</b> and <b>Item Effectiveness</b
|
|
288
|
+
digestion: 'Your ability to handle the effects of alchemical creations. Affects your <b>Toxicity Handling</b> (<b>Toxicity Resistance</b>) and <b>Item Effectiveness</b>.',
|
|
289
289
|
muscles: 'Your ability to use your body to project force. Affects your crafting <b>Qi Intensity</b> and combat <b>Power</b>.',
|
|
290
290
|
dantian: 'Your ability to store and channel Qi. Affects your combat <b>Max Barrier</b>, crafting <b>Max Qi Pool</b>, <b>Qi Absorption</b>, and <b>Technique Mastery Points</b>.',
|
|
291
291
|
meridians: 'Your ability to control Qi. Affects crafting <b>Qi Control</b> and combat <b>Artefact Power</b>.',
|
package/dist/technique.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Translatable } from './translatable';
|
|
2
|
-
import { Buff, TechniqueCondition } from './buff';
|
|
2
|
+
import { Buff, RepairRule, TechniqueCondition } from './buff';
|
|
3
3
|
import { DamageType } from './DamageType';
|
|
4
4
|
import { TechniqueElement } from './element';
|
|
5
5
|
import { Rarity } from './rarity';
|
|
@@ -62,8 +62,8 @@ export interface Technique {
|
|
|
62
62
|
enhancement?: number;
|
|
63
63
|
i?: number;
|
|
64
64
|
}
|
|
65
|
-
export type TechniqueEffectKind = 'buffSelf' | 'consumeSelf' | 'buffTarget' | 'consumeTarget' | 'damage' | 'damageSelf' | 'barrier' | 'heal' | 'convertSelf' | 'mergeSelf' | 'cleanseToxicity' | 'modifyBuffGroup' | 'trigger';
|
|
66
|
-
export type TechniqueEffect = BuffSelfTechniqueEffect | ConsumeSelfTechniqueEffect | BuffTargetTechniqueEffect | ConsumeTargetTechniqueEffect | DamageTechniqueEffect | BarrierTechniqueEffect | HealTechniqueEffect | DamageSelfTechniqueEffect | ConvertSelfTechniqueEffect | MergeSelfTechniqueEffect | CleanseToxicityTechniqueEffect | ModifyBuffGroupEffect | TriggerEffect;
|
|
65
|
+
export type TechniqueEffectKind = 'buffSelf' | 'consumeSelf' | 'buffTarget' | 'consumeTarget' | 'damage' | 'damageSelf' | 'barrier' | 'heal' | 'convertSelf' | 'mergeSelf' | 'cleanseToxicity' | 'modifyBuffGroup' | 'trigger' | 'repair';
|
|
66
|
+
export type TechniqueEffect = BuffSelfTechniqueEffect | ConsumeSelfTechniqueEffect | BuffTargetTechniqueEffect | ConsumeTargetTechniqueEffect | DamageTechniqueEffect | BarrierTechniqueEffect | HealTechniqueEffect | DamageSelfTechniqueEffect | ConvertSelfTechniqueEffect | MergeSelfTechniqueEffect | CleanseToxicityTechniqueEffect | ModifyBuffGroupEffect | TriggerEffect | RepairTechniqueEffect;
|
|
67
67
|
interface BaseTechniqueEffect {
|
|
68
68
|
kind: TechniqueEffectKind;
|
|
69
69
|
condition?: TechniqueCondition;
|
|
@@ -146,6 +146,14 @@ interface TriggerEffect extends BaseTechniqueEffect {
|
|
|
146
146
|
amount: Scaling;
|
|
147
147
|
triggerTooltip?: string;
|
|
148
148
|
}
|
|
149
|
+
interface RepairTechniqueEffect extends BaseTechniqueEffect {
|
|
150
|
+
kind: 'repair';
|
|
151
|
+
amount: Scaling;
|
|
152
|
+
/** Matches buffs by name, buffType, or flag (same matching as modifyBuffGroup) */
|
|
153
|
+
group: string;
|
|
154
|
+
/** Which matching buff(s) to repair: 'all', 'lowestHealth', or 'highestHealth' */
|
|
155
|
+
rule: RepairRule;
|
|
156
|
+
}
|
|
149
157
|
export type TechniqueMastery = PowerTechniqueMastery | EffectTechniqueMastery | CritChanceTechniqueMastery | CritMultiplierTechniqueMastery | UpgradeTechniqueMastery;
|
|
150
158
|
interface BaseTechniqueMastery {
|
|
151
159
|
condition?: TechniqueCondition;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "afnm-types",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.42",
|
|
4
4
|
"description": "Type definitions for Ascend From Nine Mountains",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
"@mui/material": "^7.3.6"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
+
"@mui/icons-material": "^7.3.6",
|
|
24
|
+
"@mui/material": "^7.3.6",
|
|
25
|
+
"@types/react": "^19.0.0",
|
|
26
|
+
"react": "^19.0.0",
|
|
23
27
|
"typescript": "^5.9.3"
|
|
24
28
|
},
|
|
25
29
|
"scripts": {
|
|
@@ -27,5 +31,10 @@
|
|
|
27
31
|
"prepublishOnly": "npm run build"
|
|
28
32
|
},
|
|
29
33
|
"author": "Lyeeedar",
|
|
30
|
-
"license": "MIT"
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "git+https://github.com/Lyeeedar/AscendFromNineMountains.git",
|
|
38
|
+
"directory": "typesPackage"
|
|
39
|
+
}
|
|
31
40
|
}
|