feat: mirrored filter

This commit is contained in:
Alexander Drozdov
2021-01-19 20:54:21 +02:00
parent 030cf136ad
commit 65b2f04620
4 changed files with 25 additions and 2 deletions
+5 -1
View File
@@ -51,6 +51,8 @@
<button v-if="filters.unidentified" class="trade-tag" :class="{ disabled: filters.unidentified.disabled }"
@click="filters.unidentified.disabled = !filters.unidentified.disabled">{{ t('Unidentified') }}</button>
<filter-veiled :item="item" :filters="filters" />
<button v-if="filters.mirrored" class="trade-tag"
@click="filters.mirrored.value = !filters.mirrored.value">{{ t(filters.mirrored.value ? 'Mirrored' : 'Not Mirrored') }}</button>
<button v-if="stats.length" class="trade-tag" :class="{ disabled: totalSelectedMods === 0 }" @click="toggleStatsBlock">
<span v-if="totalSelectedMods === 0">{{ t('Stats ignored') }}</span>
<span v-else>{{ t('{0} of {1}, stats', [totalSelectedMods, stats.length]) }}</span>
@@ -207,7 +209,9 @@ export default defineComponent({
"Engineering (lvl {0})": "Инженерное дело ({0} ур.)",
"Trap Disarmament (lvl {0})": "Разминирование ({0} ур.)",
"Demolition (lvl {0})": "Взрывное дело ({0} ур.)",
"Brute Force (lvl {0})": "Грубая сила ({0} ур.)"
"Brute Force (lvl {0})": "Грубая сила ({0} ур.)",
"Mirrored": "Отражено",
"Not Mirrored": "Не отражено"
}
}
</i18n>
@@ -170,6 +170,12 @@ export function createFilters (item: ParsedItem): ItemFilters {
value: 'nonunique'
}
}
if (item.isMirrored) {
filters.mirrored = {
value: true
}
}
if (item.influences.length) {
filters.influences = item.influences.map(influecne => ({
@@ -23,6 +23,9 @@ export interface ItemFilters {
corrupted?: {
value: boolean
}
mirrored?: {
value: boolean
}
influences?: Array<{
value: ItemInfluence
disabled: boolean
+11 -1
View File
@@ -1,4 +1,4 @@
import { ItemInfluence, ItemCategory, ParsedItem } from '@/parser'
import { ItemInfluence, ItemCategory, ParsedItem, ItemRarity } from '@/parser'
import { ItemFilters, StatFilter, INTERNAL_TRADE_ID } from '../filters/interfaces'
import prop from 'dot-prop'
import { MainProcess } from '@/ipc/main-process-bindings'
@@ -94,6 +94,7 @@ interface TradeRequest { /* eslint-disable camelcase */
quality?: FilterRange
gem_level?: FilterRange
corrupted?: FilterBoolean
mirrored?: FilterBoolean
identified?: FilterBoolean
shaper_item?: FilterBoolean
crusader_item?: FilterBoolean
@@ -256,6 +257,15 @@ export function createTradeRequest (filters: ItemFilters, stats: StatFilter[], i
if (filters.corrupted) {
prop.set(query.filters, 'misc_filters.filters.corrupted.option', String(filters.corrupted.value))
}
if (filters.mirrored) {
prop.set(query.filters, 'misc_filters.filters.mirrored.option', String(filters.mirrored.value))
} else if (
item.rarity === ItemRarity.Normal ||
item.rarity === ItemRarity.Magic ||
item.rarity === ItemRarity.Rare
) {
prop.set(query.filters, 'misc_filters.filters.mirrored.option', String(false))
}
if (filters.gemLevel && !filters.gemLevel.disabled) {
prop.set(query.filters, 'misc_filters.filters.gem_level.min', filters.gemLevel.min)