diff --git a/src/assets/influence/Crusader.png b/src/assets/influence/Crusader.png new file mode 100644 index 00000000..ba7f8d6f Binary files /dev/null and b/src/assets/influence/Crusader.png differ diff --git a/src/assets/influence/Elder.png b/src/assets/influence/Elder.png new file mode 100644 index 00000000..7232527d Binary files /dev/null and b/src/assets/influence/Elder.png differ diff --git a/src/assets/influence/Hunter.png b/src/assets/influence/Hunter.png new file mode 100644 index 00000000..d41b8ddd Binary files /dev/null and b/src/assets/influence/Hunter.png differ diff --git a/src/assets/influence/Redeemer.png b/src/assets/influence/Redeemer.png new file mode 100644 index 00000000..8877c681 Binary files /dev/null and b/src/assets/influence/Redeemer.png differ diff --git a/src/assets/influence/Shaper.png b/src/assets/influence/Shaper.png new file mode 100644 index 00000000..021d21bd Binary files /dev/null and b/src/assets/influence/Shaper.png differ diff --git a/src/assets/influence/Warlord.png b/src/assets/influence/Warlord.png new file mode 100644 index 00000000..68a71ee4 Binary files /dev/null and b/src/assets/influence/Warlord.png differ diff --git a/src/components/Parser.ts b/src/components/Parser.ts index 5e9bf2f7..ea30f597 100644 --- a/src/components/Parser.ts +++ b/src/components/Parser.ts @@ -33,7 +33,7 @@ export interface ParsedItem { isUnidentified: boolean isCorrupted: boolean gemLevel?: number - influence: ItemInfluence // @TODO items can have second transfered influence type + influences: ItemInfluence[] rawText: string computed: { type?: WellKnownType @@ -179,7 +179,7 @@ function parseNamePlate (section: string[]) { baseType: section[2], isUnidentified: false, isCorrupted: false, - influence: ItemInfluence.Normal, + influences: [] as ItemInfluence[], computed: {} } as ParsedItem default: @@ -189,17 +189,19 @@ function parseNamePlate (section: string[]) { function parseInfluence (section: string[], item: ParsedItem) { if (section[0].endsWith(SUFFIX_INFLUENCE)) { - const influence = section[0].slice(0, -SUFFIX_INFLUENCE.length) - switch (influence) { - case ItemInfluence.Crusader: - case ItemInfluence.Elder: - case ItemInfluence.Shaper: - case ItemInfluence.Hunter: - case ItemInfluence.Redeemer: - case ItemInfluence.Warlord: - item.influence = influence - return SECTION_PARSED + for (const line of section) { + const influence = line.slice(0, -SUFFIX_INFLUENCE.length) + switch (influence) { + case ItemInfluence.Crusader: + case ItemInfluence.Elder: + case ItemInfluence.Shaper: + case ItemInfluence.Hunter: + case ItemInfluence.Redeemer: + case ItemInfluence.Warlord: + item.influences.push(influence) + } } + return SECTION_PARSED } return SECTION_SKIPPED } diff --git a/src/components/TradeListing.vue b/src/components/TradeListing.vue index 023db59c..5d8ffe7c 100644 --- a/src/components/TradeListing.vue +++ b/src/components/TradeListing.vue @@ -4,11 +4,35 @@ Requesting search results...
-
+
Links: {{ socket_filters.links.min }}
Map Tier: {{ map_filters.map_tier.min }}
Level: {{ misc_filters.gem_level.min }}
Quality: {{ misc_filters.quality.min }}%
+
+ + Shaper +
+
+ + Elder +
+
+ + Crusader +
+
+ + Hunter +
+
+ + Redeemer +
+
+ + Warlord +
Corrupted Not Corrupted @@ -117,6 +141,6 @@ export default { diff --git a/src/components/parser-constants.ts b/src/components/parser-constants.ts index 2470baa2..14865d12 100644 --- a/src/components/parser-constants.ts +++ b/src/components/parser-constants.ts @@ -9,7 +9,6 @@ export enum ItemRarity { } export enum ItemInfluence { - Normal = 'Normal', Crusader = 'Crusader', Elder = 'Elder', Hunter = 'Hunter', diff --git a/src/components/pathofexile-trade.ts b/src/components/pathofexile-trade.ts index b86e8ac0..6fd8e5fa 100644 --- a/src/components/pathofexile-trade.ts +++ b/src/components/pathofexile-trade.ts @@ -1,5 +1,5 @@ import { ParsedItem, WellKnownType } from './Parser' -import { ItemRarity } from './parser-constants' +import { ItemRarity, ItemInfluence } from './parser-constants' import { Leagues } from './Leagues' const TradeOpts = { @@ -44,6 +44,12 @@ interface TradeRequest { /* eslint-disable camelcase */ corrupted: { option?: 'true' | 'false' } + shaper_item: { option?: 'true' | 'false' } + crusader_item: { option?: 'true' | 'false' } + hunter_item: { option?: 'true' | 'false' } + elder_item: { option?: 'true' | 'false' } + redeemer_item: { option?: 'true' | 'false' } + warlord_item: { option?: 'true' | 'false' } } } map_filters: { @@ -115,7 +121,13 @@ export function createTradeRequest (item: ParsedItem) { filters: { quality: {}, gem_level: {}, - corrupted: {} + corrupted: {}, + crusader_item: {}, + elder_item: {}, + hunter_item: {}, + redeemer_item: {}, + shaper_item: {}, + warlord_item: {} } }, map_filters: { @@ -192,6 +204,29 @@ export function createTradeRequest (item: ParsedItem) { query.filters.socket_filters.filters.links.min = item.linkedSockets } + for (const influence of item.influences) { + switch (influence) { + case ItemInfluence.Shaper: + query.filters.misc_filters.filters.shaper_item.option = 'true' + break + case ItemInfluence.Elder: + query.filters.misc_filters.filters.elder_item.option = 'true' + break + case ItemInfluence.Crusader: + query.filters.misc_filters.filters.crusader_item.option = 'true' + break + case ItemInfluence.Hunter: + query.filters.misc_filters.filters.hunter_item.option = 'true' + break + case ItemInfluence.Redeemer: + query.filters.misc_filters.filters.redeemer_item.option = 'true' + break + case ItemInfluence.Warlord: + query.filters.misc_filters.filters.warlord_item.option = 'true' + break + } + } + return body }