From bcbb68f5606b499abf0dfd0de3a855aa7a150ee4 Mon Sep 17 00:00:00 2001 From: JpnAlone <58026898+JpnAlone@users.noreply.github.com> Date: Thu, 9 Jun 2022 17:02:33 +0200 Subject: [PATCH] Show anointments with Golden/Silver oil (#633) Co-authored-by: Alexander Drozdov --- .../filters/create-stat-filters.ts | 22 ++++--------------- .../price-check/filters/pseudo/anointments.ts | 17 ++++++++++++++ 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/renderer/src/web/price-check/filters/create-stat-filters.ts b/renderer/src/web/price-check/filters/create-stat-filters.ts index 6b8cf701..f38d3f73 100644 --- a/renderer/src/web/price-check/filters/create-stat-filters.ts +++ b/renderer/src/web/price-check/filters/create-stat-filters.ts @@ -5,7 +5,7 @@ import { FilterTag, ItemHasEmptyModifier, StatFilter } from './interfaces' import { filterPseudo } from './pseudo' import { applyRules as applyAtzoatlRules } from './pseudo/atzoatl-rules' import { filterItemProp } from './pseudo/item-property' -import { decodeOils } from './pseudo/anointments' +import { decodeOils, applyAnointmentRules } from './pseudo/anointments' import { StatBetter } from '@/assets/data' export interface FiltersCreationContext { @@ -27,13 +27,7 @@ export function createExactStatFilters ( !item.isSynthesised ) return [] - const keepByType = [ModifierType.Pseudo, ModifierType.Fractured] - if ( - item.category !== ItemCategory.Amulet && - item.category !== ItemCategory.Ring - ) { - keepByType.push(ModifierType.Enchant) - } + const keepByType = [ModifierType.Pseudo, ModifierType.Fractured, ModifierType.Enchant] if ( !item.influences.length && @@ -338,16 +332,8 @@ function finalFilterTweaks (ctx: FiltersCreationContext) { }) } - if (item.category === ItemCategory.Amulet) { - const anointment = ctx.filters.find(filter => filter.statRef === 'Allocates #') - if (anointment) { - if (item.talismanTier) { - anointment.disabled = false - } else if (!item.isCorrupted && !item.isMirrored) { - anointment.hidden = 'Buyer will likely change anointment' - anointment.disabled = true - } - } + if (item.category === ItemCategory.Amulet || item.category === ItemCategory.Ring) { + applyAnointmentRules(ctx.filters, ctx.item) } for (const filter of ctx.filters) { diff --git a/renderer/src/web/price-check/filters/pseudo/anointments.ts b/renderer/src/web/price-check/filters/pseudo/anointments.ts index 7262c6a9..09791be1 100644 --- a/renderer/src/web/price-check/filters/pseudo/anointments.ts +++ b/renderer/src/web/price-check/filters/pseudo/anointments.ts @@ -1,4 +1,6 @@ import { ModifierType, StatCalculated } from '@/parser/modifiers' +import type { ParsedItem } from '@/parser' +import type { StatFilter } from '../interfaces' const OILS = [ 'Clear Oil', @@ -40,3 +42,18 @@ export function decodeOils (calc: StatCalculated): string[] | undefined { return decoded } + +export function applyAnointmentRules (filters: StatFilter[], item: ParsedItem) { + const anointment = filters.find(filter => filter.oils) + if (!anointment) return + + if (item.talismanTier) { + anointment.disabled = false + } else if (!item.isCorrupted && !item.isMirrored) { + const oils = anointment.oils! + if (oils[0] !== 'Golden Oil' && oils[0] !== 'Silver Oil') { + anointment.hidden = 'Buyer will likely change anointment' + anointment.disabled = true + } + } +}