mirror of
https://github.com/Kvan7/Exiled-Exchange-2.git
synced 2025-12-12 02:56:36 +00:00
291 lines
6.1 KiB
TypeScript
291 lines
6.1 KiB
TypeScript
import { ItemCategory } from "@/parser";
|
|
|
|
export interface StatMatcher {
|
|
string: string;
|
|
advanced?: string;
|
|
negate?: true;
|
|
value?: number;
|
|
oils?: string; // Amulet anointment
|
|
}
|
|
|
|
export interface StatTier {
|
|
ilvl: number;
|
|
id: string;
|
|
name: string;
|
|
values: number[][];
|
|
items: string[];
|
|
}
|
|
|
|
export interface StatTierMod {
|
|
id: string;
|
|
generation?: string;
|
|
items: {
|
|
[type: string]: number;
|
|
};
|
|
mods: StatTier[];
|
|
}
|
|
|
|
export enum StatBetter {
|
|
NegativeRoll = -1,
|
|
PositiveRoll = 1,
|
|
NotComparable = 0,
|
|
}
|
|
|
|
export interface Stat {
|
|
ref: string;
|
|
dp?: true;
|
|
matchers: StatMatcher[];
|
|
better: StatBetter;
|
|
fromAreaMods?: true;
|
|
fromUberAreaMods?: true;
|
|
fromHeistAreaMods?: true;
|
|
anointments?: Array<{ roll: number; oils: string }>; // Ring anointments
|
|
trade: {
|
|
inverted?: true;
|
|
option?: true;
|
|
ids: {
|
|
[type: string]: string[];
|
|
};
|
|
};
|
|
}
|
|
|
|
export interface DropEntry {
|
|
query: string[];
|
|
items: string[];
|
|
}
|
|
|
|
export interface BaseType {
|
|
name: string;
|
|
refName: string;
|
|
namespace: "DIVINATION_CARD" | "CAPTURED_BEAST" | "UNIQUE" | "ITEM" | "GEM";
|
|
icon: string;
|
|
w?: number;
|
|
h?: number;
|
|
tradeTag?: string;
|
|
tradeDisc?: string;
|
|
disc?: {
|
|
propAR?: true;
|
|
propEV?: true;
|
|
propES?: true;
|
|
hasImplicit?: { ref: Stat["ref"] };
|
|
hasExplicit?: { ref: Stat["ref"] };
|
|
sectionText?: string;
|
|
mapTier?: "W" | "Y" | "R";
|
|
};
|
|
// extra info
|
|
craftable?: {
|
|
category: ItemCategory;
|
|
corrupted?: true;
|
|
uniqueOnly?: true;
|
|
};
|
|
unique?: {
|
|
base: BaseType["refName"];
|
|
fixedStats?: string[];
|
|
};
|
|
map?: {
|
|
screenshot?: string;
|
|
};
|
|
gem?: {
|
|
vaal?: true;
|
|
awakened?: true;
|
|
transfigured?: true;
|
|
normalVariant?: BaseType["refName"];
|
|
};
|
|
armour?: {
|
|
ar?: [min: number, max: number];
|
|
ev?: [min: number, max: number];
|
|
es?: [min: number, max: number];
|
|
};
|
|
rune?: Array<{
|
|
categories: ItemCategory[];
|
|
string: string;
|
|
values: number[];
|
|
tradeId?: string[];
|
|
}>;
|
|
tags: string[];
|
|
}
|
|
|
|
export interface TranslationDict {
|
|
RARITY_NORMAL: string;
|
|
RARITY_MAGIC: string;
|
|
RARITY_RARE: string;
|
|
RARITY_UNIQUE: string;
|
|
RARITY_GEM: string;
|
|
RARITY_CURRENCY: string;
|
|
RARITY_DIVCARD: string;
|
|
RARITY_QUEST: string;
|
|
MAP_TIER: string;
|
|
RARITY: string;
|
|
ITEM_CLASS: string;
|
|
ITEM_LEVEL: string;
|
|
CORPSE_LEVEL: string;
|
|
TALISMAN_TIER: string;
|
|
GEM_LEVEL: string;
|
|
STACK_SIZE: string;
|
|
SOCKETS: string;
|
|
QUALITY: string;
|
|
PHYSICAL_DAMAGE: string;
|
|
ELEMENTAL_DAMAGE: string;
|
|
CRIT_CHANCE: string;
|
|
ATTACK_SPEED: string;
|
|
ARMOUR: string;
|
|
EVASION: string;
|
|
ENERGY_SHIELD: string;
|
|
BLOCK_CHANCE: string;
|
|
CORRUPTED: string;
|
|
UNIDENTIFIED: string;
|
|
ITEM_SUPERIOR: RegExp;
|
|
ITEM_EXCEPTIONAL: RegExp;
|
|
MAP_BLIGHTED: RegExp;
|
|
MAP_BLIGHT_RAVAGED: RegExp;
|
|
INFLUENCE_SHAPER: string;
|
|
INFLUENCE_ELDER: string;
|
|
INFLUENCE_CRUSADER: string;
|
|
INFLUENCE_HUNTER: string;
|
|
INFLUENCE_REDEEMER: string;
|
|
INFLUENCE_WARLORD: string;
|
|
SECTION_SYNTHESISED: string;
|
|
ITEM_SYNTHESISED: RegExp;
|
|
VEILED_PREFIX: string;
|
|
VEILED_SUFFIX: string;
|
|
FLASK_CHARGES: RegExp;
|
|
METAMORPH_HELP: string;
|
|
BEAST_HELP: string;
|
|
VOIDSTONE_HELP: string;
|
|
METAMORPH_BRAIN: RegExp;
|
|
METAMORPH_EYE: RegExp;
|
|
METAMORPH_LUNG: RegExp;
|
|
METAMORPH_HEART: RegExp;
|
|
METAMORPH_LIVER: RegExp;
|
|
CANNOT_USE_ITEM: string;
|
|
QUALITY_ANOMALOUS: RegExp;
|
|
QUALITY_DIVERGENT: RegExp;
|
|
QUALITY_PHANTASMAL: RegExp;
|
|
AREA_LEVEL: string;
|
|
HEIST_WINGS_REVEALED: string;
|
|
HEIST_TARGET: string;
|
|
HEIST_BLUEPRINT_ENCHANTS: string;
|
|
HEIST_BLUEPRINT_TRINKETS: string;
|
|
HEIST_BLUEPRINT_GEMS: string;
|
|
HEIST_BLUEPRINT_REPLICAS: string;
|
|
MIRRORED: string;
|
|
MODIFIER_LINE: RegExp;
|
|
PREFIX_MODIFIER: string;
|
|
SUFFIX_MODIFIER: string;
|
|
CRAFTED_PREFIX: string;
|
|
CRAFTED_SUFFIX: string;
|
|
UNSCALABLE_VALUE: string;
|
|
CORRUPTED_IMPLICIT: string;
|
|
MODIFIER_INCREASED: RegExp;
|
|
INCURSION_OPEN: string;
|
|
INCURSION_OBSTRUCTED: string;
|
|
EATER_IMPLICIT: RegExp;
|
|
EXARCH_IMPLICIT: RegExp;
|
|
ELDRITCH_MOD_R1: string;
|
|
ELDRITCH_MOD_R2: string;
|
|
ELDRITCH_MOD_R3: string;
|
|
ELDRITCH_MOD_R4: string;
|
|
ELDRITCH_MOD_R5: string;
|
|
ELDRITCH_MOD_R6: string;
|
|
SENTINEL_CHARGE: string;
|
|
SHAPER_MODS: string[];
|
|
ELDER_MODS: string[];
|
|
CRUSADER_MODS: string[];
|
|
HUNTER_MODS: string[];
|
|
REDEEMER_MODS: string[];
|
|
WARLORD_MODS: string[];
|
|
DELVE_MODS: string[];
|
|
VEILED_MODS: string[];
|
|
INCURSION_MODS: string[];
|
|
FOIL_UNIQUE: string;
|
|
UNMODIFIABLE: string;
|
|
REQUIREMENTS: string;
|
|
REQUIRES: string;
|
|
CHARM_SLOTS: string;
|
|
BASE_SPIRIT: string;
|
|
QUIVER_HELP_TEXT: string;
|
|
FLASK_HELP_TEXT: string;
|
|
CHARM_HELP_TEXT: string;
|
|
// ---
|
|
CHAT_SYSTEM: RegExp;
|
|
CHAT_TRADE: RegExp;
|
|
CHAT_GLOBAL: RegExp;
|
|
CHAT_PARTY: RegExp;
|
|
CHAT_GUILD: RegExp;
|
|
CHAT_WHISPER_TO: RegExp;
|
|
CHAT_WHISPER_FROM: RegExp;
|
|
CHAT_WEBTRADE_GEM: RegExp;
|
|
// ---
|
|
FIRE_DAMAGE: string;
|
|
LIGHTNING_DAMAGE: string;
|
|
COLD_DAMAGE: string;
|
|
PRICE_NOTE: string;
|
|
WAYSTONE_TIER: string;
|
|
WAYSTONE_HELP: string;
|
|
JEWEL_HELP: string;
|
|
SANCTUM_HELP: string;
|
|
TIMELESS_RADIUS: string;
|
|
PRECURSOR_TABLET_HELP: string;
|
|
LOGBOOK_HELP: string;
|
|
TIMELESS_SMALL_PASSIVES: string;
|
|
TIMELESS_NOTABLE_PASSIVES: string;
|
|
GRANTS_SKILL: string;
|
|
RELOAD_SPEED: string;
|
|
FRACTURED_ITEM: string;
|
|
SANCTIFIED: string;
|
|
}
|
|
|
|
export interface Filter {
|
|
id: string;
|
|
value: {
|
|
weight: number;
|
|
};
|
|
disabled: boolean;
|
|
}
|
|
|
|
export interface ItemCategoryToEmptyPrefix {
|
|
[id: string]: {
|
|
filters: Filter[];
|
|
type: "not";
|
|
disabled?: boolean;
|
|
};
|
|
}
|
|
|
|
export interface RuneSingleValue {
|
|
[id: string]: {
|
|
rune: string;
|
|
baseStat: string;
|
|
values: number[];
|
|
id: string;
|
|
type: "armour" | "weapon";
|
|
};
|
|
}
|
|
|
|
export interface RuneData {
|
|
rune: string;
|
|
refName: string;
|
|
baseStat: string;
|
|
values: number[];
|
|
id: string;
|
|
categories: ItemCategory[];
|
|
icon: string;
|
|
}
|
|
/**
|
|
* Key for each rune, Iron, Lesser Rebirth, Soul core of xx
|
|
*
|
|
* Value is each option that the value could be for, ie stat for armour or weapon.
|
|
*/
|
|
export interface RuneDataByRune {
|
|
[rune: string]: RuneData[];
|
|
}
|
|
export interface RuneDataByTradeId {
|
|
[tradeId: string]: Array<{
|
|
rune: string;
|
|
baseStat: string;
|
|
values: number[];
|
|
id: string;
|
|
categories: ItemCategory[];
|
|
icon: string;
|
|
}>;
|
|
}
|