From d23e4da48f9cbf987b34e9e13797ef6960a0faf2 Mon Sep 17 00:00:00 2001 From: Alexander Drozdov Date: Thu, 20 Feb 2020 03:29:17 +0200 Subject: [PATCH] reason of hidding, tmp disable local prop on uniques --- src/components/filters/FilterModifier.vue | 15 +++++-- src/components/trade/interfaces.ts | 48 +++++++++++++---------- 2 files changed, 39 insertions(+), 24 deletions(-) diff --git a/src/components/filters/FilterModifier.vue b/src/components/filters/FilterModifier.vue index 7ae386ac..9857759a 100644 --- a/src/components/filters/FilterModifier.vue +++ b/src/components/filters/FilterModifier.vue @@ -23,10 +23,17 @@
-
- - - +
+ + +
+
{{ filter.hidden }}
+
+
[] - +function filtersFromLocalProp (item: ParsedItem, modFilters: Writeable[]) { if (item.props.armour) { const totalQ20 = Math.floor(propAt20Quality(item.props.armour, QUALITY_STATS.ARMOUR, item)) - modFilters.unshift({ + modFilters.push({ tradeId: 'armour.armour' as INTERNAL_TRADE_ID, text: 'Armour', type: 'armour', @@ -58,7 +55,7 @@ export function initUiModFilters (item: ParsedItem): UiModFilter[] { if (item.props.evasion) { const totalQ20 = Math.floor(propAt20Quality(item.props.evasion, QUALITY_STATS.EVASION, item)) - modFilters.unshift({ + modFilters.push({ tradeId: 'armour.evasion_rating' as INTERNAL_TRADE_ID, text: 'Evasion Rating', type: 'armour', @@ -74,7 +71,7 @@ export function initUiModFilters (item: ParsedItem): UiModFilter[] { if (item.props.energyShield) { const totalQ20 = Math.floor(propAt20Quality(item.props.energyShield, QUALITY_STATS.ENERGY_SHIELD, item)) - modFilters.unshift({ + modFilters.push({ tradeId: 'armour.energy_shield' as INTERNAL_TRADE_ID, text: 'Energy Shield', type: 'armour', @@ -92,7 +89,7 @@ export function initUiModFilters (item: ParsedItem): UiModFilter[] { const dpsQ20 = Math.floor((damageQ20[0] + damageQ20[1]) / 2 * item.props.attackSpeed!) - modFilters.unshift({ + modFilters.push({ tradeId: 'weapon.physical_dps' as INTERNAL_TRADE_ID, text: 'Physical DPS', type: 'weapon', @@ -104,21 +101,16 @@ export function initUiModFilters (item: ParsedItem): UiModFilter[] { max: undefined }) } +} - if ( - item.props.armour || - item.props.evasion || - item.props.energyShield || - item.props.blockChance || - item.props.attackSpeed || - item.props.critChance || - item.props.elementalDamage || - item.props.physicalDamage - ) { - parsedMods = parsedMods.filter(mod => !localStats.has(mod.modInfo.text)) +export function initUiModFilters (item: ParsedItem): UiModFilter[] { + const modFilters = [] as Writeable[] + + if (item.rarity !== ItemRarity.Unique) { + filtersFromLocalProp(item, modFilters) } - modFilters.push(...parsedMods.map(mod => { + modFilters.push(...item.modifiers.map(mod => { const filter: Writeable = { tradeId: mod.modInfo.types.find(type => type.name === mod.type)!.tradeId, text: mod.modInfo.text, @@ -142,6 +134,22 @@ export function initUiModFilters (item: ParsedItem): UiModFilter[] { return filter })) + if ( + item.rarity !== ItemRarity.Unique && + (item.props.armour || + item.props.evasion || + item.props.energyShield || + item.props.blockChance || + item.props.attackSpeed || + item.props.critChance || + item.props.elementalDamage || + item.props.physicalDamage) + ) { + modFilters + .filter(f => localStats.has(f.text)) + .forEach(f => { f.hidden = 'Contributes to the item property' }) + } + return modFilters }