afnm-types 0.6.13 → 0.6.20

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.
@@ -1 +1 @@
1
- export type GameScreen = 'location' | 'recipe' | 'mission' | 'craftingHall' | 'manual' | 'cultivation' | 'map' | 'healer' | 'market' | 'favour' | 'herbField' | 'mine' | 'recipeLibrary' | 'requestBoard' | 'compendium' | 'library' | 'altar' | 'research' | 'pillarGrid' | 'fallenStar' | 'trainingGround';
1
+ export type GameScreen = 'location' | 'recipe' | 'mission' | 'craftingHall' | 'manual' | 'cultivation' | 'map' | 'healer' | 'market' | 'favour' | 'herbField' | 'mine' | 'recipeLibrary' | 'requestBoard' | 'compendium' | 'library' | 'altar' | 'research' | 'reforge' | 'pillarGrid' | 'fallenStar' | 'trainingGround';
@@ -1,11 +1,12 @@
1
1
  import { Destiny } from './destiny';
2
2
  import { Item } from './item';
3
- import { PhysicalStatistic, SocialStatistic } from './stat';
3
+ import { CombatStatistic, CraftingStatistic, PhysicalStatistic, Scaling, SocialStatistic } from './stat';
4
4
  export interface Background {
5
5
  name: string;
6
6
  description: string;
7
7
  physicalStats?: Partial<Record<PhysicalStatistic, number>>;
8
8
  socialStats?: Partial<Record<SocialStatistic, number>>;
9
+ rawStats?: Partial<Record<CombatStatistic | CraftingStatistic, Scaling>>;
9
10
  reputation?: Record<string, number>;
10
11
  spiritualRoot?: number;
11
12
  spiritStones?: number;
package/dist/buff.d.ts CHANGED
@@ -117,6 +117,14 @@ export interface CompanionCombatImage extends BaseCombatImage {
117
117
  position: 'companion';
118
118
  scale?: number;
119
119
  stacksScale?: number;
120
+ executeImage?: {
121
+ image: string;
122
+ scale: number;
123
+ imageOffset?: {
124
+ x: number;
125
+ y: number;
126
+ };
127
+ };
120
128
  }
121
129
  export interface GroundCombatImage extends BaseCombatImage {
122
130
  position: 'ground';
@@ -18,6 +18,59 @@ export interface Character {
18
18
  portrait: string;
19
19
  image: string;
20
20
  imageScale?: number;
21
+ supportImage?: {
22
+ image: string;
23
+ scale: number;
24
+ };
25
+ defensiveImage?: {
26
+ image: string;
27
+ scale: number;
28
+ };
29
+ utilityImage?: {
30
+ image: string;
31
+ scale: number;
32
+ };
33
+ aggressiveImage?: {
34
+ image: string;
35
+ scale: number;
36
+ };
37
+ offensiveImage?: {
38
+ image: string;
39
+ scale: number;
40
+ };
41
+ hitImage?: {
42
+ image: string;
43
+ scale: number;
44
+ };
45
+ imageOverride?: {
46
+ image: string;
47
+ portrait: string;
48
+ supportImage?: {
49
+ image: string;
50
+ scale: number;
51
+ };
52
+ defensiveImage?: {
53
+ image: string;
54
+ scale: number;
55
+ };
56
+ utilityImage?: {
57
+ image: string;
58
+ scale: number;
59
+ };
60
+ aggressiveImage?: {
61
+ image: string;
62
+ scale: number;
63
+ };
64
+ offensiveImage?: {
65
+ image: string;
66
+ scale: number;
67
+ };
68
+ hitImage?: {
69
+ image: string;
70
+ scale: number;
71
+ };
72
+ condition: string;
73
+ }[];
21
74
  }
22
75
  export declare const characterRelationships: readonly ["Hostile", "Neutral", "Friendly", "Intimate"];
23
76
  export type CharacterRelationship = (typeof characterRelationships)[number];
@@ -80,6 +133,7 @@ export interface CharacterState {
80
133
  followCooldown: number;
81
134
  aidBreakthroughCooldown: number;
82
135
  dualCultivationCooldown: number;
136
+ customCooldowns: Record<string, number>;
83
137
  }
84
138
  interface BaseCharacterInteraction {
85
139
  condition: string;
@@ -137,7 +191,8 @@ export interface CustomCharacterInteractionBlock {
137
191
  name: string;
138
192
  tooltip: string;
139
193
  icon: OverridableComponent<SvgIconTypeMap<{}, 'svg'>>;
140
- interactions: CustomCharacterInteraction[];
194
+ interaction: CustomCharacterInteraction;
195
+ cooldown?: number;
141
196
  }
142
197
  export interface CustomCharacterInteraction extends BaseCharacterInteraction {
143
198
  disableCondition?: string;
@@ -17,12 +17,14 @@ interface GameDialogProps {
17
17
  allowKeybinding?: boolean;
18
18
  backgroundPaper?: ReactNode;
19
19
  title?: string;
20
+ removeBorder?: boolean;
20
21
  }
21
22
  export type GameDialogFC = React.FC<PropsWithChildren<GameDialogProps>>;
22
23
  export type GameButtonFC = React.ForwardRefRenderFunction<HTMLButtonElement, ButtonProps & {
23
24
  keybinding?: string;
24
25
  keyPriority?: number;
25
26
  fancyBorder?: boolean;
27
+ keyContext?: string;
26
28
  }>;
27
29
  export type GameIconButtonFC = React.ForwardRefRenderFunction<HTMLButtonElement, IconButtonProps & {
28
30
  hoverSfx?: SoundEffectName;
@@ -16,6 +16,7 @@ export declare const craftingConditionToColour: Record<CraftingCondition, string
16
16
  export declare const craftingConditionToIcon: Record<CraftingCondition, OverridableComponent<SvgIconTypeMap<{}, 'svg'>>>;
17
17
  export interface RecipeConditionEffect {
18
18
  name: string;
19
+ colour: string;
19
20
  conditionEffects: Record<CraftingCondition, {
20
21
  tooltip: string;
21
22
  effects: CraftingConditionEffect[];
@@ -42,6 +42,7 @@ export interface CraftingBuff {
42
42
  stacksScaling?: number;
43
43
  animations?: ('bump' | 'buff' | 'completion' | 'perfection' | 'stabilityup' | 'stabilitydown' | 'pool')[];
44
44
  cantUpgrade?: boolean;
45
+ bonusHiddenPotential?: Scaling;
45
46
  }
46
47
  export type CraftingBuffEffect = CompletionEffect | PerfectionEffect | StabilityEffect | PoolEffect | NegateEffect | CreateBuffEffect | AddStackEffect | ChangeToxicityEffect | MaxStabilityEffect;
47
48
  interface BaseEffect {
@@ -55,6 +55,7 @@ export interface ProgressState {
55
55
  effectTracking: Record<string, CraftingEffectTracking>;
56
56
  actionTracking: Record<string, ActionTracking>;
57
57
  pillTracking: Record<string, number>;
58
+ lastActionType?: CraftingTechniqueType;
58
59
  }
59
60
  export interface FailedCraftingResult {
60
61
  state: 'failed';
@@ -57,6 +57,7 @@ export interface CraftingTechnique {
57
57
  type: CraftingTechniqueType;
58
58
  realm: Realm;
59
59
  tooltip?: string;
60
+ showCreatesBuff?: boolean;
60
61
  currentCooldown: number;
61
62
  justClicked?: true;
62
63
  mastery?: CraftingTechniqueMastery[];
package/dist/destiny.d.ts CHANGED
@@ -1,9 +1,13 @@
1
- import { CombatStatistic, CraftingStatistic } from './stat';
1
+ import { CombatStatistic, CraftingStatistic, Scaling } from './stat';
2
2
  export interface Destiny {
3
3
  name: string;
4
4
  description: string;
5
- combatStats?: Partial<Record<CombatStatistic, number>>;
6
- craftingStats?: Partial<Record<CraftingStatistic, number>>;
5
+ combatStats?: Partial<{
6
+ [key in CombatStatistic]: Scaling;
7
+ }>;
8
+ craftingStats?: Partial<{
9
+ [key in CraftingStatistic]: Scaling;
10
+ }>;
7
11
  qiAbsorption?: number;
8
12
  charisma?: number;
9
13
  lifespan?: number;
package/dist/entity.d.ts CHANGED
@@ -6,11 +6,21 @@ import { TechniqueElement } from './element';
6
6
  import { ArtefactItem, CombatItem, CombatPillItem, ConcoctionItem, CraftingEquipmentItem, Item, ItemDesc } from './item';
7
7
  import { Realm, RealmProgress } from './realm';
8
8
  import { CombatStatsMap, CraftingStatsMap, PhysicalStatistic, SocialStatistic } from './stat';
9
- import { KnownTechnique, Technique } from './technique';
9
+ import { KnownTechnique, Technique, TechniquePriority } from './technique';
10
10
  export declare const sexes: readonly ["male", "female"];
11
11
  export type Sex = (typeof sexes)[number];
12
12
  export interface PlayerEntity {
13
13
  imageIndex: number;
14
+ customImagePath?: string;
15
+ customImages?: {
16
+ idle?: string;
17
+ hit?: string;
18
+ support?: string;
19
+ defensive?: string;
20
+ utility?: string;
21
+ offensive?: string;
22
+ aggressive?: string;
23
+ };
14
24
  realm: Realm;
15
25
  realmOverride?: Realm;
16
26
  realmProgress: RealmProgress;
@@ -41,7 +51,14 @@ export interface PlayerEntity {
41
51
  storedCraftingLoadouts?: StoredCraftingLoadout[];
42
52
  craftingQuickAccess?: (string | undefined)[];
43
53
  craftingTechniques: KnownCraftingTechnique[];
54
+ currentEquipmentLoadout?: StoredEquipmentLoadout;
55
+ storedEquipmentLoadouts?: StoredEquipmentLoadout[];
56
+ currentGardenLayout?: StoredGardenLayout;
57
+ storedGardenLayouts?: StoredGardenLayout[];
58
+ currentPillarLayout?: StoredPillarLayout;
59
+ storedPillarLayouts?: StoredPillarLayout[];
44
60
  destiny: string[];
61
+ background: string[];
45
62
  monthBuffs?: Buff[];
46
63
  injured?: boolean;
47
64
  }
@@ -50,6 +67,54 @@ export type BattleLength = 'halfround' | '1round' | 'veryshort' | 'short' | 'med
50
67
  export interface EnemyEntity {
51
68
  name: string;
52
69
  image: string;
70
+ supportImage?: {
71
+ image: string;
72
+ scale?: number;
73
+ imageOffset?: {
74
+ x: number;
75
+ y: number;
76
+ };
77
+ };
78
+ defensiveImage?: {
79
+ image: string;
80
+ scale?: number;
81
+ imageOffset?: {
82
+ x: number;
83
+ y: number;
84
+ };
85
+ };
86
+ utilityImage?: {
87
+ image: string;
88
+ scale?: number;
89
+ imageOffset?: {
90
+ x: number;
91
+ y: number;
92
+ };
93
+ };
94
+ aggressiveImage?: {
95
+ image: string;
96
+ scale?: number;
97
+ imageOffset?: {
98
+ x: number;
99
+ y: number;
100
+ };
101
+ };
102
+ offensiveImage?: {
103
+ image: string;
104
+ scale?: number;
105
+ imageOffset?: {
106
+ x: number;
107
+ y: number;
108
+ };
109
+ };
110
+ hitImage?: {
111
+ image: string;
112
+ scale?: number;
113
+ imageOffset?: {
114
+ x: number;
115
+ y: number;
116
+ };
117
+ };
53
118
  imageScale: number;
54
119
  imageOffset?: {
55
120
  x: number;
@@ -121,6 +186,10 @@ export interface CraftingEntity {
121
186
  inactiveBuffs?: CraftingBuff[];
122
187
  messages: CraftingMessage[];
123
188
  animations: ('bump' | 'buff' | 'completion' | 'perfection' | 'stabilityup' | 'stabilitydown' | 'pool' | 'failedAction')[];
189
+ supportImage?: string;
190
+ defensiveImage?: string;
191
+ utilityImage?: string;
192
+ aggressiveImage?: string;
124
193
  }
125
194
  export interface CraftingMessage {
126
195
  id: number;
@@ -140,6 +209,54 @@ export interface CombatArtefact extends ArtefactItem {
140
209
  export interface CombatEntity {
141
210
  isPlayer: boolean;
142
211
  image: string;
212
+ supportImage?: {
213
+ image: string;
214
+ scale: number;
215
+ imageOffset?: {
216
+ x: number;
217
+ y: number;
218
+ };
219
+ };
220
+ defensiveImage?: {
221
+ image: string;
222
+ scale: number;
223
+ imageOffset?: {
224
+ x: number;
225
+ y: number;
226
+ };
227
+ };
228
+ utilityImage?: {
229
+ image: string;
230
+ scale: number;
231
+ imageOffset?: {
232
+ x: number;
233
+ y: number;
234
+ };
235
+ };
236
+ aggressiveImage?: {
237
+ image: string;
238
+ scale: number;
239
+ imageOffset?: {
240
+ x: number;
241
+ y: number;
242
+ };
243
+ };
244
+ offensiveImage?: {
245
+ image: string;
246
+ scale: number;
247
+ imageOffset?: {
248
+ x: number;
249
+ y: number;
250
+ };
251
+ };
252
+ hitImage?: {
253
+ image: string;
254
+ scale: number;
255
+ imageOffset?: {
256
+ x: number;
257
+ y: number;
258
+ };
259
+ };
143
260
  realm: Realm;
144
261
  stats: CombatStatsMap;
145
262
  stance: Stance;
@@ -152,7 +269,7 @@ export interface CombatEntity {
152
269
  buffs: Buff[];
153
270
  artefacts: CombatArtefact[];
154
271
  messages: CombatMessage[];
155
- animations: ('bump' | 'attack' | 'hurt' | 'barrier' | 'cleanse' | 'heal' | 'block' | 'buff' | 'debuff' | 'exhausted' | 'spawn' | 'failedTechnique' | 'droplet')[];
272
+ animations: ('bump' | 'attack' | 'hurt' | 'barrier' | 'cleanse' | 'heal' | 'block' | 'buff' | 'debuff' | 'exhausted' | 'spawn' | 'failedTechnique' | 'droplet' | TechniquePriority)[];
156
273
  renderScale: number;
157
274
  imageOffset?: {
158
275
  x: number;
@@ -212,4 +329,46 @@ export interface StoredCraftingLoadout {
212
329
  autoName?: boolean;
213
330
  loadout: string[];
214
331
  }
332
+ export interface StoredEquipmentLoadout {
333
+ name: string;
334
+ id: string;
335
+ autoName?: boolean;
336
+ equipment: {
337
+ clothing?: ItemDesc;
338
+ talismans: (ItemDesc | undefined)[];
339
+ artefacts: (ItemDesc | undefined)[];
340
+ mount?: ItemDesc;
341
+ cauldron?: ItemDesc;
342
+ flame?: ItemDesc;
343
+ };
344
+ }
345
+ export interface StoredGardenLayout {
346
+ name: string;
347
+ id: string;
348
+ autoName?: boolean;
349
+ layout: {
350
+ x: number;
351
+ y: number;
352
+ cropItemName?: string;
353
+ cropRealm?: string;
354
+ device?: ItemDesc;
355
+ }[];
356
+ }
357
+ export interface StoredPillarLayout {
358
+ name: string;
359
+ id: string;
360
+ autoName?: boolean;
361
+ layout: {
362
+ grid: string[];
363
+ shards: {
364
+ shard: string;
365
+ pos: {
366
+ x: number;
367
+ y: number;
368
+ rotation: number;
369
+ };
370
+ variantIndex?: number;
371
+ }[];
372
+ };
373
+ }
215
374
  export {};
package/dist/guild.d.ts CHANGED
@@ -3,6 +3,10 @@ import { OverridableComponent } from '@mui/material/OverridableComponent';
3
3
  import { EventStep } from './event';
4
4
  import { ShopItem } from './location';
5
5
  import { ScreenEffectType } from './ScreenEffectType';
6
+ export interface GuildMission {
7
+ quest: string;
8
+ condition: string;
9
+ }
6
10
  export interface Guild {
7
11
  name: string;
8
12
  description: string;
@@ -12,7 +16,7 @@ export interface Guild {
12
16
  screenEffect: ScreenEffectType;
13
17
  ranks: Record<number, string>;
14
18
  rankShop: Record<number, ShopItem[]>;
15
- rankQuests: Record<number, string[]>;
19
+ rankQuests: Record<number, GuildMission[]>;
16
20
  reputationToPromote: Record<number, number>;
17
21
  promotionQuests: Record<number, {
18
22
  title: string;
@@ -8,12 +8,16 @@ export interface Crop {
8
8
  item: string;
9
9
  yield: number;
10
10
  growthDays: number;
11
- cost?: {
12
- condition: string;
13
- amount: number;
14
- };
15
- change?: {
16
- condition: string;
17
- amount: number;
18
- };
11
+ cost?: string;
12
+ change: string;
13
+ }
14
+ export type DeviceEffectType = 'harvester' | 'growthBoost' | 'yieldBoost' | 'universalSoil';
15
+ export interface DeviceEffect {
16
+ type: DeviceEffectType;
17
+ harvestInterval?: number;
18
+ boostAmount?: number;
19
+ soilConditions?: string[];
20
+ }
21
+ export interface DeviceProperties {
22
+ effects: DeviceEffect[];
19
23
  }
package/dist/house.d.ts CHANGED
@@ -14,7 +14,7 @@ export interface House {
14
14
  transportSeal: TransportSealItem;
15
15
  qiDensity: number;
16
16
  fixedRooms: Room[];
17
- freeRooms: number;
17
+ freeRooms: string;
18
18
  }
19
19
  export interface HouseData {
20
20
  densityFormation: ItemDesc | undefined;
package/dist/item.d.ts CHANGED
@@ -10,15 +10,15 @@ import { Rarity } from './rarity';
10
10
  import { Realm, RealmProgress } from './realm';
11
11
  import { RecipeDifficulty } from './RecipeDifficulty';
12
12
  import { CombatStatsMap, CraftingStatsMap, PhysicalStatistic, Scaling, SocialStatistic } from './stat';
13
- import { TechniqueEffect } from './technique';
14
- export declare const itemKinds: readonly ["clothing", "talisman", "artefact", "mount", "cauldron", "flame", "upgrade", "fruit", "elixir", "recipe", "technique", "action", "transport_seal", "enchantment", "pill", "reagent", "concoction", "consumable", "recuperation", "formation", "breakthrough", "pillar_shard", "material", "flare", "mystical_key", "condensation_art", "blueprint", "trophy", "treasure", "token"];
13
+ import { Technique, TechniqueEffect } from './technique';
14
+ export declare const itemKinds: readonly ["clothing", "talisman", "artefact", "mount", "cauldron", "flame", "upgrade", "fruit", "elixir", "recipe", "technique", "action", "transport_seal", "enchantment", "pill", "reagent", "concoction", "consumable", "recuperation", "formation", "breakthrough", "pillar_shard", "material", "flare", "mystical_key", "condensation_art", "blueprint", "trophy", "treasure", "token", "life_essence", "device"];
15
15
  export type ItemKind = (typeof itemKinds)[number];
16
16
  export type ItemCostMap = {
17
17
  [key in ItemKind]: number;
18
18
  };
19
19
  export declare const buyItemCostMap: ItemCostMap;
20
20
  export declare const sellItemCostMap: ItemCostMap;
21
- export type Item = TechniqueItem | TechniqueCrystalItem | TechniqueShardItem | TechniqueEnhancementDust | TransportSealItem | SpiritFruitItem | RecipeItem | ElixirItem | TreasureItem | CraftingItem | ClothingItem | TalismanItem | ArtefactItem | PillItem | ConcoctionItem | CombatItem | CauldronItem | FlameItem | BreakthroughItem | RecuperationItem | MountItem | FlareItem | CraftingTechniqueItem | EnchantmentItem | MysticalKeyItem | CondensationArtItem | FormationItem | PillarShardItem | TrophyItem | BlueprintItem | TokenItem | UpgradeItem | CraftingReagentItem;
21
+ export type Item = TechniqueItem | TechniqueCrystalItem | TechniqueShardItem | TechniqueEnhancementDust | TransportSealItem | SpiritFruitItem | RecipeItem | ElixirItem | TreasureItem | CraftingItem | ClothingItem | TalismanItem | ArtefactItem | PillItem | ConcoctionItem | CombatItem | CauldronItem | FlameItem | BreakthroughItem | RecuperationItem | MountItem | FlareItem | CraftingTechniqueItem | EnchantmentItem | MysticalKeyItem | CondensationArtItem | FormationItem | PillarShardItem | TrophyItem | BlueprintItem | TokenItem | UpgradeItem | CraftingReagentItem | LifeEssenceItem | DeviceItem;
22
22
  interface ItemBase {
23
23
  kind: ItemKind;
24
24
  name: string;
@@ -32,12 +32,15 @@ interface ItemBase {
32
32
  enchantment?: Enchantment;
33
33
  upgradedFrom?: Item;
34
34
  qualityTier?: number;
35
+ hiddenPotential?: number;
36
+ minimumPotential?: number;
35
37
  }
36
38
  export interface ItemDesc {
37
39
  name: string;
38
40
  stacks?: number;
39
41
  enchantment?: EnchantmentDesc;
40
42
  qualityTier?: number;
43
+ hiddenPotential?: number;
41
44
  }
42
45
  export type TechniqueItemKind = 'technique' | 'crystal' | 'shard' | 'enhance';
43
46
  export interface BaseTechniqueItem extends ItemBase {
@@ -67,6 +70,15 @@ export interface TreasureItem extends ItemBase {
67
70
  kind: 'treasure';
68
71
  isCollectible?: boolean;
69
72
  }
73
+ export interface DeviceItem extends ItemBase {
74
+ kind: 'device';
75
+ deviceEffects: Array<{
76
+ type: 'harvester' | 'growthBoost' | 'yieldBoost' | 'universalSoil';
77
+ harvestInterval?: number;
78
+ boostAmount?: number;
79
+ soilConditions?: string[];
80
+ }>;
81
+ }
70
82
  export interface CraftingItem extends ItemBase {
71
83
  kind: 'material';
72
84
  }
@@ -168,6 +180,7 @@ export interface CombatItem extends ItemBase {
168
180
  kind: 'consumable';
169
181
  effects: TechniqueEffect[];
170
182
  tooltip?: string;
183
+ affinity?: TechniqueElement;
171
184
  }
172
185
  export interface ConsumablePillItem extends BasePillItem {
173
186
  pillKind: 'consumable';
@@ -345,16 +358,12 @@ export interface CondensationArtEnchantment extends Enchantment {
345
358
  speed?: number;
346
359
  restoredDroplets?: number;
347
360
  }
348
- export type FormationKind = 'herbField' | 'qiDensity';
349
- export type FormationItem = HerbFieldFormationItem | QiDensityFormationItem;
361
+ export type FormationKind = 'qiDensity';
362
+ export type FormationItem = QiDensityFormationItem;
350
363
  interface FormationItemBase extends ItemBase {
351
364
  kind: 'formation';
352
365
  subkind: FormationKind;
353
366
  }
354
- export interface HerbFieldFormationItem extends FormationItemBase {
355
- subkind: 'herbField';
356
- speed: number;
357
- }
358
367
  export interface QiDensityFormationItem extends FormationItemBase {
359
368
  subkind: 'qiDensity';
360
369
  qi: number;
@@ -415,4 +424,12 @@ export interface UncutStonePool {
415
424
  fallback: Item[];
416
425
  items: Item[];
417
426
  }
427
+ export interface LifeEssenceItem extends ItemBase {
428
+ kind: 'life_essence';
429
+ thresholds: {
430
+ level: number;
431
+ buffs: Buff[];
432
+ techniques: Technique[];
433
+ }[];
434
+ }
418
435
  export {};
package/dist/item.js CHANGED
@@ -29,6 +29,8 @@ export const itemKinds = [
29
29
  'trophy',
30
30
  'treasure',
31
31
  'token',
32
+ 'life_essence',
33
+ 'device',
32
34
  ];
33
35
  export const buyItemCostMap = {
34
36
  technique: 3000,
@@ -61,6 +63,8 @@ export const buyItemCostMap = {
61
63
  token: 500,
62
64
  upgrade: 4000,
63
65
  reagent: 500,
66
+ life_essence: 5000,
67
+ device: 2500,
64
68
  };
65
69
  export const sellItemCostMap = {
66
70
  technique: 400,
@@ -93,4 +97,6 @@ export const sellItemCostMap = {
93
97
  token: 0,
94
98
  upgrade: 1000,
95
99
  reagent: 150,
100
+ life_essence: 1000,
101
+ device: 600,
96
102
  };
@@ -20,6 +20,7 @@ export const itemTypeToHarmonyType = {
20
20
  pillar_shard: 'resonance',
21
21
  flare: 'resonance',
22
22
  material: 'resonance',
23
+ device: 'resonance',
23
24
  // Non craftable stuff
24
25
  formation: 'forge',
25
26
  recipe: 'forge',
@@ -34,4 +35,5 @@ export const itemTypeToHarmonyType = {
34
35
  treasure: 'forge',
35
36
  token: 'forge',
36
37
  upgrade: 'forge',
38
+ life_essence: 'resonance',
37
39
  };
@@ -0,0 +1,20 @@
1
+ export type KeybindingCategory = 'general' | 'navigation' | 'ui' | 'world' | 'combat' | 'crafting' | 'dialogs' | 'gamepad';
2
+ export type KeybindingAction = 'confirm' | 'cancel' | 'pause' | 'alternateConfirm' | 'moveUp' | 'moveDown' | 'moveLeft' | 'moveRight' | 'openInventory' | 'openQuests' | 'openCharacterStats' | 'openTechniques' | 'openCalendar' | 'openWorldMap' | 'combatSelectStance0' | 'combatSelectStance1' | 'combatSelectStance2' | 'combatSelectStance3' | 'combatSelectStance4' | 'combatSelectStance5' | 'combatSelectStance6' | 'combatSelectStance7' | 'combatSelectStance8' | 'combatSelectStance9' | 'combatToggleSpeed' | 'combatToggleLog' | 'combatShowStats' | 'combatAutoBattle' | 'craftingAction1' | 'craftingAction2' | 'craftingAction3' | 'craftingAction4' | 'craftingAction5' | 'craftingAction6' | 'craftingAction7' | 'craftingAction8' | 'craftingAction9' | 'craftingAction10' | 'dialogChoice1' | 'dialogChoice2' | 'dialogChoice3' | 'dialogChoice4' | 'dialogChoice5' | 'dialogChoice6' | 'dialogChoice7' | 'dialogChoice8' | 'dialogChoice9' | 'gamepadConfirm' | 'gamepadCancel' | 'gamepadUp' | 'gamepadDown' | 'gamepadLeft' | 'gamepadRight';
3
+ export interface KeybindingDefinition {
4
+ action: KeybindingAction;
5
+ category: KeybindingCategory;
6
+ displayName: string;
7
+ description: string;
8
+ defaultKey: string;
9
+ allowRebind: boolean;
10
+ }
11
+ export type KeybindingsMap = Record<KeybindingAction, string>;
12
+ export declare const keybindingDefinitions: KeybindingDefinition[];
13
+ export declare const keybindingCategoryInfo: Record<KeybindingCategory, {
14
+ name: string;
15
+ description: string;
16
+ }>;
17
+ export declare const defaultKeybindings: KeybindingsMap;
18
+ export declare function getKeyDisplayName(key: string): string;
19
+ export declare function isKeyAllowed(key: string): boolean;
20
+ export declare function getKeybindingsByCategory(category: KeybindingCategory): KeybindingDefinition[];