mirror of
https://github.com/Kvan7/Exiled-Exchange-2.git
synced 2026-09-25 14:15:42 +00:00
WIP parse advanced mod desc
This commit is contained in:
@@ -71,7 +71,12 @@ const dict = {
|
||||
'Trap Disarmament': 'Trap Disarmament',
|
||||
'Demolition': 'Demolition',
|
||||
'Brute Force': 'Brute Force',
|
||||
'Mirrored': 'Mirrored'
|
||||
'Mirrored': 'Mirrored',
|
||||
'MODIFIER_LINE': /^(?<type>[^"]+)(?:\s+"(?<name>[^"]+)")?(?:\s+\(Tier: (?<tier>\d+)\))?(?:\s+\(Rank: (?<rank>\d+)\))?$/,
|
||||
'PREFIX_MODIFIER': 'Prefix Modifier',
|
||||
'SUFFIX_MODIFIER': 'Suffix Modifier',
|
||||
'CRAFTED_PREFIX': 'Master Crafted Prefix Modifier',
|
||||
'CRAFTED_SUFFIX': 'Master Crafted Suffix Modifier'
|
||||
}
|
||||
|
||||
export default dict
|
||||
|
||||
@@ -73,7 +73,12 @@ const dict: TranslationDict = {
|
||||
'Trap Disarmament': 'разминирование',
|
||||
'Demolition': 'взрывное дело',
|
||||
'Brute Force': 'грубая сила',
|
||||
'Mirrored': 'Отражено'
|
||||
'Mirrored': 'Отражено',
|
||||
'MODIFIER_LINE': /^(?<type>[^"]+)(?:\s+"(?<name>[^"]+)")?(?:\s+\(Уровень: (?<tier>\d+)\))?(?:\s+\(Ранг: (?<rank>\d+)\))?$/,
|
||||
'PREFIX_MODIFIER': 'Префикс',
|
||||
'SUFFIX_MODIFIER': 'Суффикс',
|
||||
'CRAFTED_PREFIX': 'Мастерский префикс',
|
||||
'CRAFTED_SUFFIX': 'Мастерский суффикс'
|
||||
}
|
||||
|
||||
export default dict
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
import { CLIENT_STRINGS as _$ } from '@/assets/data'
|
||||
|
||||
// TODO "— Unscalable Value"
|
||||
|
||||
interface ModifierInfo {
|
||||
generation?: 'suffix' | 'prefix'
|
||||
name?: string
|
||||
tier?: number
|
||||
rank?: number
|
||||
tags?: string[]
|
||||
catalystIncr?: number
|
||||
}
|
||||
|
||||
export function parseModInfoLine (line: string): ModifierInfo {
|
||||
const [modText, tagsText, catalystText] = line
|
||||
.slice(1, -1)
|
||||
.split('\u2014')
|
||||
.map(_ => _.trim())
|
||||
|
||||
const match = modText.match(_$.MODIFIER_LINE)
|
||||
if (!match) {
|
||||
throw new Error('Invalid regex for mod info line')
|
||||
}
|
||||
|
||||
let generation: ModifierInfo['generation']
|
||||
switch (match.groups!.type) {
|
||||
case _$.PREFIX_MODIFIER:
|
||||
case _$.CRAFTED_PREFIX:
|
||||
generation = 'prefix'; break
|
||||
case _$.SUFFIX_MODIFIER:
|
||||
case _$.CRAFTED_SUFFIX:
|
||||
generation = 'suffix'; break
|
||||
}
|
||||
|
||||
const name = match.groups!.name || undefined
|
||||
const tier = Number(match.groups!.tier) || undefined
|
||||
const rank = Number(match.groups!.rank) || undefined
|
||||
const tags = tagsText ? tagsText.split(', ') : []
|
||||
const catalystIncr = parseInt(catalystText, 10) || undefined
|
||||
|
||||
return { generation, name, tier, rank, tags, catalystIncr }
|
||||
}
|
||||
Reference in New Issue
Block a user