mirror of
https://github.com/Kvan7/Exiled-Exchange-2.git
synced 2025-10-30 14:17:55 +00:00
Add options to choose which numbering system to use #357
This commit is contained in:
@@ -174,7 +174,8 @@
|
||||
"tag_explicit_incursion": "穿越",
|
||||
"tag_rune": "符文",
|
||||
"tag_sanctum": "Sanctum",
|
||||
"fill_rune_iron": "Fill Runes(Iron)"
|
||||
"fill_rune_iron": "Fill Runes(Iron)",
|
||||
"grade": "Grade {0}"
|
||||
},
|
||||
"online_filter": {
|
||||
"offline_toggle": "離線 & 在線",
|
||||
@@ -358,7 +359,11 @@
|
||||
"use_tooltip_hover": "將滑鼠懸停在價格上時顯示物品",
|
||||
"use_tooltip_keybind": "SHIFT + 懸停",
|
||||
"use_tooltip_always": "始終懸停顯示",
|
||||
"use_tooltip_off": "關閉"
|
||||
"use_tooltip_off": "關閉",
|
||||
"tier_numbering": "Tier numbering style",
|
||||
"tier_numbering_poe1": "PoE1 (lower is better)",
|
||||
"tier_numbering_poe2": "PoE2 (higher is better)",
|
||||
"tier_numbering_help": "To try to reduce confusion due to conflicting naming conventions with the game, PoE1 tiers will use the name \"Grade\" instead of \"Tier\". "
|
||||
},
|
||||
"poe2_new": {
|
||||
"beta_warning": "這是 POE2 的測試版,某些功能可能無法正常運作。",
|
||||
|
||||
@@ -178,7 +178,8 @@
|
||||
"tag_explicit_incursion": "Incursion",
|
||||
"tag_rune": "Rune",
|
||||
"tag_sanctum": "Sanctum",
|
||||
"fill_rune_iron": "Fill Runes(Iron)"
|
||||
"fill_rune_iron": "Fill Runes(Iron)",
|
||||
"grade": "Grade {0}"
|
||||
},
|
||||
"online_filter": {
|
||||
"offline_toggle": "Offline & Online",
|
||||
@@ -347,7 +348,11 @@
|
||||
"use_tooltip_hover": "Show item when hovering over price",
|
||||
"use_tooltip_keybind": "SHIFT + hover",
|
||||
"use_tooltip_always": "hover",
|
||||
"use_tooltip_off": "off"
|
||||
"use_tooltip_off": "off",
|
||||
"tier_numbering": "Tier numbering style",
|
||||
"tier_numbering_poe1": "PoE1 (lower is better)",
|
||||
"tier_numbering_poe2": "PoE2 (higher is better)",
|
||||
"tier_numbering_help": "To try to reduce confusion due to conflicting naming conventions with the game, PoE1 tiers will use the name \"Grade\" instead of \"Tier\". "
|
||||
},
|
||||
"poe2_new": {
|
||||
"beta_warning": "Dies ist eine BETA für POE2, es wird nicht immer wie erwartet funktionieren.",
|
||||
|
||||
@@ -178,7 +178,8 @@
|
||||
"tag_explicit_incursion": "Incursion",
|
||||
"tag_rune": "Rune",
|
||||
"tag_sanctum": "Sanctum",
|
||||
"fill_rune_iron": "Fill Runes(Iron)"
|
||||
"fill_rune_iron": "Fill Runes(Iron)",
|
||||
"grade": "Grade {0}"
|
||||
},
|
||||
"online_filter": {
|
||||
"offline_toggle": "Offline & Online",
|
||||
@@ -374,7 +375,11 @@
|
||||
"use_tooltip_hover": "Show item when hovering over price",
|
||||
"use_tooltip_keybind": "SHIFT + hover",
|
||||
"use_tooltip_always": "hover",
|
||||
"use_tooltip_off": "off"
|
||||
"use_tooltip_off": "off",
|
||||
"tier_numbering": "Tier numbering style",
|
||||
"tier_numbering_poe1": "PoE1 (lower is better)",
|
||||
"tier_numbering_poe2": "PoE2 (higher is better)",
|
||||
"tier_numbering_help": "To try to reduce confusion due to conflicting naming conventions with the game, PoE1 tiers will use the name \"Grade\" instead of \"Tier\". "
|
||||
},
|
||||
"poe2_new": {
|
||||
"beta_warning": "This is in BETA for POE2, things will not work always as expected.",
|
||||
|
||||
@@ -178,7 +178,8 @@
|
||||
"tag_explicit_incursion": "Incursión",
|
||||
"tag_rune": "Runa",
|
||||
"tag_sanctum": "Sanctum",
|
||||
"fill_rune_iron": "Fill Runes(Iron)"
|
||||
"fill_rune_iron": "Fill Runes(Iron)",
|
||||
"grade": "Grade {0}"
|
||||
},
|
||||
"online_filter": {
|
||||
"offline_toggle": "Desconectado & En línea",
|
||||
@@ -374,7 +375,11 @@
|
||||
"use_tooltip_hover": "Show item when hovering over price",
|
||||
"use_tooltip_keybind": "SHIFT + hover",
|
||||
"use_tooltip_always": "hover",
|
||||
"use_tooltip_off": "off"
|
||||
"use_tooltip_off": "off",
|
||||
"tier_numbering": "Tier numbering style",
|
||||
"tier_numbering_poe1": "PoE1 (lower is better)",
|
||||
"tier_numbering_poe2": "PoE2 (higher is better)",
|
||||
"tier_numbering_help": "To try to reduce confusion due to conflicting naming conventions with the game, PoE1 tiers will use the name \"Grade\" instead of \"Tier\". "
|
||||
},
|
||||
"poe2_new": {
|
||||
"beta_warning": "Esto está en BETA para POE2, las cosas no siempre funcionarán como se espera.",
|
||||
|
||||
@@ -174,7 +174,8 @@
|
||||
"tag_explicit_incursion": "インカージョン",
|
||||
"tag_rune": "ルーン",
|
||||
"tag_sanctum": "Sanctum",
|
||||
"fill_rune_iron": "Fill Runes(Iron)"
|
||||
"fill_rune_iron": "Fill Runes(Iron)",
|
||||
"grade": "Grade {0}"
|
||||
},
|
||||
"online_filter": {
|
||||
"offline_toggle": "オフライン & オンライン",
|
||||
@@ -358,7 +359,11 @@
|
||||
"use_tooltip_hover": "Show item when hovering over price",
|
||||
"use_tooltip_keybind": "SHIFT + hover",
|
||||
"use_tooltip_always": "hover",
|
||||
"use_tooltip_off": "off"
|
||||
"use_tooltip_off": "off",
|
||||
"tier_numbering": "Tier numbering style",
|
||||
"tier_numbering_poe1": "PoE1 (lower is better)",
|
||||
"tier_numbering_poe2": "PoE2 (higher is better)",
|
||||
"tier_numbering_help": "To try to reduce confusion due to conflicting naming conventions with the game, PoE1 tiers will use the name \"Grade\" instead of \"Tier\". "
|
||||
},
|
||||
"poe2_new": {
|
||||
"beta_warning": "これはPOE2のベータ版です、期待通りに動作しないことがあります。",
|
||||
|
||||
@@ -171,7 +171,8 @@
|
||||
"tag_explicit_incursion": "기습",
|
||||
"tag_rune": "룬",
|
||||
"tag_sanctum": "Sanctum",
|
||||
"fill_rune_iron": "Fill Runes(Iron)"
|
||||
"fill_rune_iron": "Fill Runes(Iron)",
|
||||
"grade": "Grade {0}"
|
||||
},
|
||||
"online_filter": {
|
||||
"offline_toggle": "오프라인 & 온라인",
|
||||
@@ -354,7 +355,11 @@
|
||||
"use_tooltip_hover": "Show item when hovering over price",
|
||||
"use_tooltip_keybind": "SHIFT + hover",
|
||||
"use_tooltip_always": "hover",
|
||||
"use_tooltip_off": "off"
|
||||
"use_tooltip_off": "off",
|
||||
"tier_numbering": "Tier numbering style",
|
||||
"tier_numbering_poe1": "PoE1 (lower is better)",
|
||||
"tier_numbering_poe2": "PoE2 (higher is better)",
|
||||
"tier_numbering_help": "To try to reduce confusion due to conflicting naming conventions with the game, PoE1 tiers will use the name \"Grade\" instead of \"Tier\". "
|
||||
},
|
||||
"poe2_new": {
|
||||
"beta_warning": "이 버전은 베타버전입니다. 예기치 못한 버그가 있을 수 있습니다.",
|
||||
|
||||
@@ -190,7 +190,8 @@
|
||||
"tag_explicit_incursion": "Вмешательство",
|
||||
"tag_rune": "Руна",
|
||||
"tag_sanctum": "Sanctum",
|
||||
"fill_rune_iron": "Fill Runes(Iron)"
|
||||
"fill_rune_iron": "Fill Runes(Iron)",
|
||||
"grade": "Grade {0}"
|
||||
},
|
||||
"online_filter": {
|
||||
"offline_toggle": "Офлайн и Онлайн",
|
||||
@@ -373,7 +374,11 @@
|
||||
"use_tooltip_hover": "Show item when hovering over price",
|
||||
"use_tooltip_keybind": "SHIFT + hover",
|
||||
"use_tooltip_always": "hover",
|
||||
"use_tooltip_off": "off"
|
||||
"use_tooltip_off": "off",
|
||||
"tier_numbering": "Tier numbering style",
|
||||
"tier_numbering_poe1": "PoE1 (lower is better)",
|
||||
"tier_numbering_poe2": "PoE2 (higher is better)",
|
||||
"tier_numbering_help": "To try to reduce confusion due to conflicting naming conventions with the game, PoE1 tiers will use the name \"Grade\" instead of \"Tier\". "
|
||||
},
|
||||
"poe2_new": {
|
||||
"beta_warning": "Функционал для PoE2 находится в стадии бета тестирования и не всегда работает так, как задумано.",
|
||||
|
||||
@@ -1401,7 +1401,8 @@ function parseStatsFromMod(
|
||||
const { stat: parsedStat, tier } = parsedStatAndTier;
|
||||
modifier.stats.push(parsedStat);
|
||||
if (tier) {
|
||||
modifier.info.tier = tier;
|
||||
modifier.info.tier = tier.poe1;
|
||||
modifier.info.rank = tier.poe2;
|
||||
}
|
||||
stat = statIterator.next(true);
|
||||
} else {
|
||||
|
||||
@@ -295,15 +295,15 @@ export function getTierNumber(
|
||||
mod: StatTierMod,
|
||||
itemCategory: ItemCategory,
|
||||
tierArray: StatTierMod[],
|
||||
): number {
|
||||
): { poe1: number; poe2: number } | undefined {
|
||||
if (mod === undefined || mod.mods === undefined || !mod.mods) {
|
||||
console.warn("No mods found for mod", mod);
|
||||
return -1;
|
||||
return;
|
||||
}
|
||||
|
||||
if (tier === undefined || itemCategory === undefined) {
|
||||
console.warn("No tier or itemCategory found");
|
||||
return -1;
|
||||
return;
|
||||
}
|
||||
|
||||
// Map the itemCategory to its corresponding key(s)
|
||||
@@ -315,7 +315,7 @@ export function getTierNumber(
|
||||
);
|
||||
|
||||
if (!categoryExists || !primaryCategoryKey) {
|
||||
return -1; // Return -1 if the category is not found in any mod
|
||||
return; // Return if the category is not found in any mod
|
||||
}
|
||||
|
||||
// Find the index of the given tier in mod.mods
|
||||
@@ -331,5 +331,5 @@ export function getTierNumber(
|
||||
.filter((t) => t.items.includes(primaryCategoryKey)).length;
|
||||
|
||||
// Return the tier number (1-based)
|
||||
return matchingTiersAfter + 1;
|
||||
return { poe1: matchingTiersAfter + 1, poe2: tierIndex + 1 };
|
||||
}
|
||||
|
||||
@@ -161,7 +161,9 @@ export function tryParseTranslation(
|
||||
stat: StatString,
|
||||
modType: ModifierType,
|
||||
item?: ParsedItem,
|
||||
): { stat: ParsedStat; tier: number | undefined } | undefined {
|
||||
):
|
||||
| { stat: ParsedStat; tier: { poe1: number; poe2: number } | undefined }
|
||||
| undefined {
|
||||
let itemRarity: ItemRarity | undefined;
|
||||
let itemCategory: ItemCategory | undefined;
|
||||
if (item) {
|
||||
@@ -195,7 +197,7 @@ export function tryParseTranslation(
|
||||
};
|
||||
}
|
||||
|
||||
let foundTier: number | undefined;
|
||||
let foundTier: { poe1: number; poe2: number } | undefined;
|
||||
|
||||
if (
|
||||
modType === ModifierType.Explicit &&
|
||||
@@ -226,7 +228,7 @@ export function tryParseTranslation(
|
||||
const tierNumber = getTierNumber(tierMatch, modTiers, itemCategory, [
|
||||
modTiers,
|
||||
]);
|
||||
if (tierNumber !== -1) {
|
||||
if (tierNumber) {
|
||||
foundTier = tierNumber;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -490,6 +490,7 @@ function upgradeConfig(_config: Config): Config {
|
||||
}
|
||||
|
||||
if (config.configVersion < 22) {
|
||||
// NOTE: v0.7.0
|
||||
config.widgets.find(
|
||||
(w) => w.wmType === "price-check",
|
||||
)!.autoFillEmptyRuneSockets = "Iron Rune";
|
||||
@@ -518,6 +519,9 @@ function upgradeConfig(_config: Config): Config {
|
||||
return 0;
|
||||
});
|
||||
|
||||
config.widgets.find((w) => w.wmType === "price-check")!.tierNumbering =
|
||||
"poe2";
|
||||
|
||||
config.configVersion = 22;
|
||||
}
|
||||
|
||||
|
||||
@@ -55,6 +55,7 @@ export interface PriceCheckWidget extends Widget {
|
||||
defaultAllSelected: boolean;
|
||||
itemHoverTooltip: "off" | "keybind" | "always";
|
||||
autoFillEmptyRuneSockets: "Iron Rune" | false;
|
||||
tierNumbering: "poe1" | "poe2";
|
||||
}
|
||||
|
||||
export interface StopwatchWidget extends Widget {
|
||||
|
||||
@@ -191,6 +191,7 @@ export default defineComponent({
|
||||
defaultAllSelected: false,
|
||||
itemHoverTooltip: "keybind",
|
||||
autoFillEmptyRuneSockets: false,
|
||||
tierNumbering: "poe2",
|
||||
};
|
||||
},
|
||||
} satisfies WidgetSpec,
|
||||
|
||||
@@ -14,6 +14,8 @@ import { defineComponent, PropType, computed } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { ItemCategory, ParsedItem } from "@/parser";
|
||||
import { FilterTag, StatFilter } from "./interfaces";
|
||||
import { AppConfig } from "@/web/Config";
|
||||
import { PriceCheckWidget } from "@/web/overlay/widgets";
|
||||
|
||||
export default defineComponent({
|
||||
props: {
|
||||
@@ -27,12 +29,18 @@ export default defineComponent({
|
||||
},
|
||||
},
|
||||
setup(props) {
|
||||
const tierOption = computed(
|
||||
() => AppConfig<PriceCheckWidget>("price-check")!.tierNumbering,
|
||||
);
|
||||
|
||||
const tags = computed(() => {
|
||||
const { filter, item } = props;
|
||||
const out: Array<{ type: string; tier: number }> = [];
|
||||
for (const source of filter.sources) {
|
||||
const tier = source.modifier.info.tier;
|
||||
if (!tier) continue;
|
||||
const rank = source.modifier.info.rank;
|
||||
if (!tier || !rank) continue;
|
||||
const usedTier = tierOption.value === "poe1" ? tier : rank;
|
||||
|
||||
if (
|
||||
(filter.tag === FilterTag.Explicit ||
|
||||
@@ -42,11 +50,11 @@ export default defineComponent({
|
||||
item.category !== ItemCategory.ClusterJewel &&
|
||||
item.category !== ItemCategory.MemoryLine
|
||||
) {
|
||||
if (tier === 1) out.push({ type: "tier-1", tier });
|
||||
else if (tier === 2) out.push({ type: "tier-2", tier });
|
||||
if (tier === 1) out.push({ type: "tier-1", tier: usedTier });
|
||||
else if (tier === 2) out.push({ type: "tier-2", tier: usedTier });
|
||||
} else if (tier >= 2) {
|
||||
// fractured, explicit-* filters
|
||||
out.push({ type: "not-tier-1", tier });
|
||||
out.push({ type: "not-tier-1", tier: usedTier });
|
||||
}
|
||||
}
|
||||
out.sort((a, b) => a.tier - b.tier);
|
||||
@@ -54,7 +62,7 @@ export default defineComponent({
|
||||
});
|
||||
|
||||
const { t } = useI18n();
|
||||
return { t, tags };
|
||||
return { t, tags, tierOption };
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -82,6 +82,21 @@
|
||||
}}</ui-radio>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-4">
|
||||
<div class="flex-1 mb-1">{{ t(":tier_numbering") }}</div>
|
||||
<div class="mb-1 flex">
|
||||
<ui-radio v-model="tierNumbering" value="poe1" class="mr-4">{{
|
||||
t(":tier_numbering_poe1")
|
||||
}}</ui-radio>
|
||||
<ui-radio v-model="tierNumbering" value="poe2" class="mr-4">{{
|
||||
t(":tier_numbering_poe2")
|
||||
}}</ui-radio>
|
||||
</div>
|
||||
<div class="mb-4 italic text-gray-500">
|
||||
{{ t(":tier_numbering_help") }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ui-checkbox class="mb-4" v-model="rememberCurrency">{{
|
||||
t(":remember_currency")
|
||||
}}</ui-checkbox>
|
||||
@@ -296,6 +311,10 @@ export default defineComponent({
|
||||
() => configWidget.value,
|
||||
"autoFillEmptyRuneSockets",
|
||||
),
|
||||
tierNumbering: configModelValue(
|
||||
() => configWidget.value,
|
||||
"tierNumbering",
|
||||
),
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user