parse relic unique

This commit is contained in:
Alexander Drozdov
2022-08-23 01:08:42 +03:00
parent 30a1f7c82d
commit 6a58cd97b0
11 changed files with 32 additions and 2 deletions
@@ -90,6 +90,7 @@ export default {
DELVE_MODS: ['地下的', '地下之', '地底之'],
VEILED_MODS: ['被選召的', '教團之'],
INCURSION_MODS: ['瓜特利斯的', '柔派克的', '塔普塔特的', '特卡蒂的', '麥塔爾的', '麥塔爾之', '希特克拉多的', '希特克拉多之', '特卡蒂之', '瓜特利斯之', '普希瓦爾之'],
RELIC_UNIQUE: '古典傳奇',
// ---
CHAT_SYSTEM: /^: (?<body>.+)$/,
CHAT_TRADE: /^\$(?:<(?<guild_tag>.+?)> )?(?<char_name>.+?): (?<body>.+)$/,
@@ -90,6 +90,7 @@ export default {
DELVE_MODS: ['Subterranean', 'of the Underground'],
VEILED_MODS: ['Chosen', 'of the Order'],
INCURSION_MODS: ["Guatelitzi's", "Xopec's", "Topotante's", "Tacati's", "Matatl's", 'of Matatl', "Citaqualotl's", 'of Citaqualotl', 'of Tacati', 'of Guatelitzi', 'of Puhuarte'],
RELIC_UNIQUE: 'Relic Unique',
// ---
CHAT_SYSTEM: /^: (?<body>.+)$/,
CHAT_TRADE: /^\$(?:<(?<guild_tag>.+?)> )?(?<char_name>.+?): (?<body>.+)$/,
@@ -124,6 +124,7 @@ export default {
'Плодовитый', 'Плодовитая', 'Плодовитое', 'Плодовитые', 'Плодовитые', 'Плодовитые',
'Ситаквалотля', 'Мататля', 'Такати', 'Гвателитзи', 'Пухварте'
],
RELIC_UNIQUE: 'Уникальная Реликвия',
// ---
CHAT_SYSTEM: /^: (?<body>.+)$/,
CHAT_TRADE: /^\$(?:<(?<guild_tag>.+?)> )?(?<char_name>.+?): (?<body>.+)$/,
+1
View File
@@ -169,6 +169,7 @@ export interface TranslationDict {
DELVE_MODS: string[]
VEILED_MODS: string[]
INCURSION_MODS: string[]
RELIC_UNIQUE: string
// ---
CHAT_SYSTEM: RegExp
CHAT_TRADE: RegExp
+1
View File
@@ -52,6 +52,7 @@ export interface ParsedItem {
isSynthesised?: boolean
isFractured?: boolean
isVeiled?: boolean
isRelic?: boolean
statsByType: StatCalculated[]
newMods: ParsedModifier[]
unknownModifiers: Array<{
+12
View File
@@ -45,6 +45,7 @@ const parsers: Array<ParserFn | { virtual: VirtualParserFn }> = [
parseFlask,
parseStackSize,
parseCorrupted,
parseRelic,
parseInfluence,
parseMap,
parseSockets,
@@ -358,6 +359,17 @@ function parseCorrupted (section: string[], item: ParsedItem) {
return 'SECTION_SKIPPED'
}
function parseRelic (section: string[], item: ParsedItem) {
if (item.rarity !== ItemRarity.Unique) {
return 'PARSER_SKIPPED'
}
if (section[0] === _$.RELIC_UNIQUE) {
item.isRelic = true
return 'SECTION_PARSED'
}
return 'SECTION_SKIPPED'
}
function parseUnidentified (section: string[], item: ParsedItem) {
if (section[0] === _$.UNIDENTIFIED) {
item.isUnidentified = true
@@ -80,6 +80,7 @@ export default defineComponent({
"Blight-ravaged": "Разорённая Скверной",
"Mirrored": "Отражено",
"Not Mirrored": "Не отражено",
"Relic Unique": "Реликвия",
"Shaper": "Создатель",
"Elder": "Древний",
@@ -100,6 +101,7 @@ export default defineComponent({
"Blight-ravaged": "凋落蔓延的",
"Mirrored": "已複製",
"Not Mirrored": "未複製",
"Relic Unique": "古典傳奇",
"Shaper": "塑界者",
"Elder": "尊師",
@@ -35,6 +35,8 @@
:filter="filters.unidentified" text="Unidentified" />
<filter-btn-logical v-if="filters.veiled"
:filter="filters.veiled" text="Veiled" />
<filter-btn-logical v-if="filters.relic"
:filter="filters.relic" text="Relic Unique" />
<filter-btn-logical v-if="filters.mirrored" active
:filter="filters.mirrored" :text="filters.mirrored.disabled ? 'Not Mirrored' : 'Mirrored'" />
<filter-btn-logical v-if="hasStats"
@@ -227,6 +227,10 @@ export function createFilters (
filters.mirrored = { disabled: false }
}
if (item.isRelic) {
filters.relic = { disabled: false }
}
if (item.influences.length && item.influences.length <= 2) {
filters.influences = item.influences.map(influence => ({
value: influence,
@@ -34,6 +34,9 @@ export interface ItemFilters {
mirrored?: {
disabled: boolean
}
relic?: {
disabled: boolean
}
influences?: Array<{
value: ItemInfluence
disabled: boolean
@@ -101,7 +101,7 @@ interface TradeRequest { /* eslint-disable camelcase */
type_filters?: {
filters: {
rarity?: {
option?: 'unique'
option?: 'nonunique' | 'uniquefoil'
}
category?: {
option?: string
@@ -284,7 +284,9 @@ export function createTradeRequest (filters: ItemFilters, stats: StatFilter[], i
query.type = nameToQuery(activeSearch.baseType, filters)
}
if (filters.rarity) {
if (filters.relic && !filters.relic.disabled) {
propSet(query.filters, 'type_filters.filters.rarity.option', 'uniquefoil')
} else if (filters.rarity) {
propSet(query.filters, 'type_filters.filters.rarity.option', filters.rarity.value)
}