feat(ui): overhaul character attributes panel, spacious relic picker, and accurate meta builds

- Implement authentic in-game HSR attributes panel with official icons, 3 sections, and Base + Extra = Total layout
- Overhaul relic slot picker modal with spacious tabbed layout, quick meta builder, and visual set selection
- Fix signature Light Cone IDs and optimal relic sets/stats for all characters in Auto Relic & E0S1/E6S5
- Remove redundant avatar carousel switcher from character detail modal
- Add comprehensive 13-language localization support
This commit is contained in:
CAtlas0784 committed 2026-10-17 11:52:20 +07:00
1 parent ffaa0100e7
commit ba4398fe42
4 files changed
+1610 -259

No files matched your search

+887 -236
View File
File diff suppressed because it is too large. Load diff
+351
View File
@@ -328,6 +328,33 @@ export const TRANSLATIONS = {
"lblPersistenceInfo": "ระบบจัดการไฟล์เซฟและข้อมูลฝั่งเซิร์ฟเวอร์",
"modalTabOverview": "ภาพรวม",
"modalTabRelics": "รีลิกส์ & อุปกรณ์",
"attrBasic": "◆ คุณสมบัติพื้นฐาน",
"attrAdvanced": "◆ คุณสมบัติขั้นสูง",
"attrElemental": "◆ คุณสมบัติประเภท",
"statMaxHp": "HP สูงสุด",
"statAtk": "พลังโจมตี",
"statDef": "พลังป้องกัน",
"statSpd": "ความเร็ว",
"statCritRate": "อัตราคริ",
"statCritDmg": "ดาเมจคริ",
"statBreakEffect": "ทำลายจุดอ่อน",
"statHealBoost": "เพิ่มการรักษา",
"statMaxEnergy": "พลังงานสูงสุด",
"statEnergyRegen": "อัตราการฟื้นฟูพลังงาน",
"statEhr": "อัตราสร้างสถานะ",
"statRes": "ต้านทานสถานะ",
"statDmgBoost": "เพิ่มความเสียหาย {element}",
"relicPickerTitle": "🛡️ จัดการรีลิกส์: {slot}",
"tabQuickGen": "⚡ สวมใส่ / สร้างชิ้นแนะนำ",
"tabFromInventory": "📦 เลือกจากคลัง",
"btnEquipInstant": "⚡ สวมใส่ชิ้นนี้ทันที (+15 5★ ออฟเทพ)",
"btnUnequip": "❌ ถอดชิ้นนี้ออก",
"currentEquipped": "ชิ้นที่กำลังสวมใส่อยู่ในปัจจุบัน",
"noRelicEquipped": "ยังไม่ได้สวมใส่รีลิกส์ในช่องนี้",
"chooseMainStat": "เลือกสเตตัสหลัก (Main Stat):",
"chooseSet": "เลือกเซ็ตที่ต้องการ:",
"recommendedBadge": "แนะนำ",
"overviewStatsTitle": "⚔️ ค่าพลังการต่อสู้ (Combat Stats)",
"overviewStatsNote": "รวมโบนัสกรวยแสงและรีลิกส์",
"overviewEquippedLc": "🗡️ กรวยแสงที่สวมใส่",
@@ -653,6 +680,33 @@ export const TRANSLATIONS = {
"lblPersistenceInfo": "Server save file & data management",
"modalTabOverview": "Overview",
"modalTabRelics": "Relics & Gear",
"attrBasic": "◆ Basic Attributes",
"attrAdvanced": "◆ Advanced Attributes",
"attrElemental": "◆ Damage Type",
"statMaxHp": "Max HP",
"statAtk": "ATK",
"statDef": "DEF",
"statSpd": "SPD",
"statCritRate": "CRIT Rate",
"statCritDmg": "CRIT DMG",
"statBreakEffect": "Break Effect",
"statHealBoost": "Outgoing Healing Boost",
"statMaxEnergy": "Max Energy",
"statEnergyRegen": "Energy Regeneration Rate",
"statEhr": "Effect Hit Rate",
"statRes": "Effect RES",
"statDmgBoost": "{element} DMG Boost",
"relicPickerTitle": "🛡️ Manage Relic: {slot}",
"tabQuickGen": "⚡ Quick & Recommended",
"tabFromInventory": "📦 From Inventory",
"btnEquipInstant": "⚡ Equip This Piece (+15 5★ God Rolls)",
"btnUnequip": "❌ Unequip Relic",
"currentEquipped": "Currently Equipped",
"noRelicEquipped": "No relic equipped in this slot",
"chooseMainStat": "Select Main Stat:",
"chooseSet": "Select Relic Set:",
"recommendedBadge": "Recommended",
"overviewStatsTitle": "⚔️ Combat Stats",
"overviewStatsNote": "Includes Lightcone & Relic bonuses",
"overviewEquippedLc": "🗡️ Equipped Lightcone",
@@ -975,6 +1029,33 @@ export const TRANSLATIONS = {
"lblPersistenceInfo": "服务端存档与数据管理",
"modalTabOverview": "角色总览",
"modalTabRelics": "遗器与配装",
"attrBasic": "◆ 基础属性",
"attrAdvanced": "◆ 进阶属性",
"attrElemental": "◆ 伤害属性",
"statMaxHp": "生命上限",
"statAtk": "攻击力",
"statDef": "防御力",
"statSpd": "速度",
"statCritRate": "暴击率",
"statCritDmg": "暴击伤害",
"statBreakEffect": "击破特攻",
"statHealBoost": "治疗量加成",
"statMaxEnergy": "能量上限",
"statEnergyRegen": "能量恢复效率",
"statEhr": "效果命中",
"statRes": "效果抵抗",
"statDmgBoost": "{element}属性伤害提高",
"relicPickerTitle": "🛡️ 遗器管理: {slot}",
"tabQuickGen": "⚡ 快速生成与推荐",
"tabFromInventory": "📦 仓库选择",
"btnEquipInstant": "⚡ 立即装备此件 (+15 5★ 完美副词条)",
"btnUnequip": "❌ 卸下此遗器",
"currentEquipped": "当前装备中",
"noRelicEquipped": "该部位尚未装备遗器",
"chooseMainStat": "选择主词条:",
"chooseSet": "选择遗器套装:",
"recommendedBadge": "推荐",
"overviewStatsTitle": "⚔️ 战斗面板 (Combat Stats)",
"overviewStatsNote": "已计入光锥与遗器属性加成",
"overviewEquippedLc": "🗡️ 当前装备光锥",
@@ -1298,6 +1379,33 @@ export const TRANSLATIONS = {
"lblPersistenceInfo": "伺服端存檔與資料管理",
"modalTabOverview": "角色總覽",
"modalTabRelics": "遺器與配裝",
"attrBasic": "◆ 基礎屬性",
"attrAdvanced": "◆ 進階屬性",
"attrElemental": "◆ 傷害屬性",
"statMaxHp": "生命上限",
"statAtk": "攻擊力",
"statDef": "防禦力",
"statSpd": "速度",
"statCritRate": "暴擊率",
"statCritDmg": "暴擊傷害",
"statBreakEffect": "擊破特攻",
"statHealBoost": "治療量加成",
"statMaxEnergy": "能量上限",
"statEnergyRegen": "能量恢復效率",
"statEhr": "效果命中",
"statRes": "效果抵抗",
"statDmgBoost": "{element}屬性傷害提高",
"relicPickerTitle": "🛡️ 遺器管理: {slot}",
"tabQuickGen": "⚡ 快速生成與推薦",
"tabFromInventory": "📦 倉庫選擇",
"btnEquipInstant": "⚡ 立即裝備此件 (+15 5★ 完美副詞條)",
"btnUnequip": "❌ 卸下此遺器",
"currentEquipped": "當前裝備中",
"noRelicEquipped": "該部位尚未裝備遺器",
"chooseMainStat": "選擇主詞條:",
"chooseSet": "選擇遺器套裝:",
"recommendedBadge": "推薦",
"overviewStatsTitle": "⚔️ 戰鬥面板 (Combat Stats)",
"overviewStatsNote": "已計入光錐與遺器屬性加成",
"overviewEquippedLc": "🗡️ 當前裝備光錐",
@@ -1621,6 +1729,33 @@ export const TRANSLATIONS = {
"lblPersistenceInfo": "サーバーセーブデータ&ファイル管理",
"modalTabOverview": "キャラクター概要",
"modalTabRelics": "遺物&装備",
"attrBasic": "◆ 基礎ステータス",
"attrAdvanced": "◆ 上級ステータス",
"attrElemental": "◆ 属性ステータス",
"statMaxHp": "最大HP",
"statAtk": "攻撃力",
"statDef": "防御力",
"statSpd": "速度",
"statCritRate": "会心率",
"statCritDmg": "会心ダメージ",
"statBreakEffect": "撃破特効",
"statHealBoost": "治癒量バフ",
"statMaxEnergy": "最大EP",
"statEnergyRegen": "EP回復効率",
"statEhr": "効果命中",
"statRes": "効果抵抗",
"statDmgBoost": "{element}属性与ダメージ増加",
"relicPickerTitle": "🛡️ 遺物管理: {slot}",
"tabQuickGen": "⚡ クイック生成とおすすめ",
"tabFromInventory": "📦 所持品から選択",
"btnEquipInstant": "⚡ 今すぐ装備 (+15 5★ 神サブ)",
"btnUnequip": "❌ この遺物を外す",
"currentEquipped": "現在装備中",
"noRelicEquipped": "この部位には何も装備されていません",
"chooseMainStat": "メインステータスを選択:",
"chooseSet": "遺物セットを選択:",
"recommendedBadge": "推奨",
"overviewStatsTitle": "⚔️ 戦闘ステータス (Combat Stats)",
"overviewStatsNote": "光円錐および遺物のボーナスを含みます",
"overviewEquippedLc": "🗡️ 装備中の光円錐",
@@ -1944,6 +2079,33 @@ export const TRANSLATIONS = {
"lblPersistenceInfo": "서버 세이브 파일 및 데이터 관리",
"modalTabOverview": "캐릭터 개요",
"modalTabRelics": "유물 및 장비",
"attrBasic": "◆ 기본 속성",
"attrAdvanced": "◆ 고급 속성",
"attrElemental": "◆ 속성 피해",
"statMaxHp": "최대 HP",
"statAtk": "공격력",
"statDef": "방어력",
"statSpd": "속도",
"statCritRate": "치명타 확률",
"statCritDmg": "치명타 피해",
"statBreakEffect": "격파 특수효과",
"statHealBoost": "치유량 보너스",
"statMaxEnergy": "에너지 최대치",
"statEnergyRegen": "에너지 회복효율",
"statEhr": "효과 명중",
"statRes": "효과 저항",
"statDmgBoost": "{element} 속성 피해 증가",
"relicPickerTitle": "🛡️ 유물 관리: {slot}",
"tabQuickGen": "⚡ 빠른 생성 및 추천",
"tabFromInventory": "📦 보관함에서 선택",
"btnEquipInstant": "⚡ 즉시 장착 (+15 5★ 종결옵)",
"btnUnequip": "❌ 유물 해제",
"currentEquipped": "현재 장착 중",
"noRelicEquipped": "이 부위에 유물이 장착되지 않음",
"chooseMainStat": "메인 옵션 선택:",
"chooseSet": "유물 세트 선택:",
"recommendedBadge": "추천",
"overviewStatsTitle": "⚔️ 전투 스탯 (Combat Stats)",
"overviewStatsNote": "광추 및 유물 보너스 포함",
"overviewEquippedLc": "🗡️ 장착 중인 광추",
@@ -2267,6 +2429,33 @@ export const TRANSLATIONS = {
"lblPersistenceInfo": "Quản lý tệp lưu và dữ liệu máy chủ",
"modalTabOverview": "Tổng quan",
"modalTabRelics": "Di Vật & Trang bị",
"attrBasic": "◆ Thuộc Tính Cơ Bản",
"attrAdvanced": "◆ Thuộc Tính Nâng Cao",
"attrElemental": "◆ Thuộc Tính Sát Thương",
"statMaxHp": "HP Tối Đa",
"statAtk": "Tấn Công",
"statDef": "Phòng Thủ",
"statSpd": "Tốc Độ",
"statCritRate": "Tỷ Lệ Bạo Kích",
"statCritDmg": "Sát Thương Bạo Kích",
"statBreakEffect": "Tấn Công Kích Phá",
"statHealBoost": "Tăng Trị Liệu",
"statMaxEnergy": "Giới Hạn Năng Lượng",
"statEnergyRegen": "Hiệu Suất Hồi Năng Lượng",
"statEhr": "Chính Xác Hiệu Ứng",
"statRes": "Kháng Hiệu Ứng",
"statDmgBoost": "Tăng Sát Thương {element}",
"relicPickerTitle": "🛡️ Quản Lý Di Vật: {slot}",
"tabQuickGen": "⚡ Tạo Nhanh & Đề Xuất",
"tabFromInventory": "📦 Chọn Từ Kho",
"btnEquipInstant": "⚡ Trang Bị Ngay (+15 5★ Dòng Siêu Đỉnh)",
"btnUnequip": "❌ Tháo Di Vật Này",
"currentEquipped": "Đang Trang Bị Hiện Tại",
"noRelicEquipped": "Chưa trang bị di vật ở ô này",
"chooseMainStat": "Chọn Chỉ Số Chính:",
"chooseSet": "Chọn Bộ Di Vật:",
"recommendedBadge": "Đề Xuất",
"overviewStatsTitle": "⚔️ Chỉ số chiến đấu (Combat Stats)",
"overviewStatsNote": "Bao gồm chỉ số từ Nón Ánh Sáng và Di Vật",
"overviewEquippedLc": "🗡️ Nón Ánh Sáng đang trang bị",
@@ -2590,6 +2779,33 @@ export const TRANSLATIONS = {
"lblPersistenceInfo": "Manajemen file simpan dan data server",
"modalTabOverview": "Ringkasan",
"modalTabRelics": "Relic & Perlengkapan",
"attrBasic": "◆ Atribut Dasar",
"attrAdvanced": "◆ Atribut Lanjutan",
"attrElemental": "◆ Tipe Damage",
"statMaxHp": "Max HP",
"statAtk": "ATK",
"statDef": "DEF",
"statSpd": "SPD",
"statCritRate": "CRIT Rate",
"statCritDmg": "CRIT DMG",
"statBreakEffect": "Break Effect",
"statHealBoost": "Outgoing Healing Boost",
"statMaxEnergy": "Max Energy",
"statEnergyRegen": "Energy Regeneration Rate",
"statEhr": "Effect Hit Rate",
"statRes": "Effect RES",
"statDmgBoost": "{element} DMG Boost",
"relicPickerTitle": "🛡️ Kelola Relic: {slot}",
"tabQuickGen": "⚡ Buat Cepat & Rekomendasi",
"tabFromInventory": "📦 Dari Inventaris",
"btnEquipInstant": "⚡ Pasang Sekarang (+15 5★ Stat Dewa)",
"btnUnequip": "❌ Lepas Relic",
"currentEquipped": "Sedang Dipasang",
"noRelicEquipped": "Belum ada relic terpasang",
"chooseMainStat": "Pilih Main Stat:",
"chooseSet": "Pilih Set Relic:",
"recommendedBadge": "Rekomendasi",
"overviewStatsTitle": "⚔️ Statistik Tempur (Combat Stats)",
"overviewStatsNote": "Termasuk bonus Light Cone & Relic",
"overviewEquippedLc": "🗡️ Light Cone Terpasang",
@@ -2913,6 +3129,33 @@ export const TRANSLATIONS = {
"lblPersistenceInfo": "Gestión de datos y archivos de guardado",
"modalTabOverview": "Resumen",
"modalTabRelics": "Artefactos y equipo",
"attrBasic": "◆ Atributos básicos",
"attrAdvanced": "◆ Atributos avanzados",
"attrElemental": "◆ Tipo de daño",
"statMaxHp": "PV máx.",
"statAtk": "ATQ",
"statDef": "DEF",
"statSpd": "VEL",
"statCritRate": "Prob. CRIT",
"statCritDmg": "Daño CRIT",
"statBreakEffect": "Efecto de Ruptura",
"statHealBoost": "Bonif. curación realizada",
"statMaxEnergy": "Energía máx.",
"statEnergyRegen": "Recuperación de energía",
"statEhr": "Acierto de efecto",
"statRes": "Resistencia a efecto",
"statDmgBoost": "Daño {element} aumentado",
"relicPickerTitle": "🛡️ Administrar artefacto: {slot}",
"tabQuickGen": "⚡ Creación rápida y recomendada",
"tabFromInventory": "📦 Del inventario",
"btnEquipInstant": "⚡ Equipar ahora (+15 5★ Substats perfectos)",
"btnUnequip": "❌ Desequipar artefacto",
"currentEquipped": "Equipado actualmente",
"noRelicEquipped": "Ningún artefacto equipado en esta casilla",
"chooseMainStat": "Elegir stat principal:",
"chooseSet": "Elegir conjunto:",
"recommendedBadge": "Recomendado",
"overviewStatsTitle": "⚔️ Estadísticas de combate",
"overviewStatsNote": "Incluye bonificaciones de Cono y Artefactos",
"overviewEquippedLc": "🗡️ Cono de Luz equipado",
@@ -3236,6 +3479,33 @@ export const TRANSLATIONS = {
"lblPersistenceInfo": "Gestion des sauvegardes et données serveur",
"modalTabOverview": "Aperçu",
"modalTabRelics": "Reliques & Équipement",
"attrBasic": "◆ Caractéristiques de base",
"attrAdvanced": "◆ Caractéristiques avancées",
"attrElemental": "◆ Type de dégâts",
"statMaxHp": "PV max",
"statAtk": "ATQ",
"statDef": "DÉF",
"statSpd": "VIT",
"statCritRate": "Chances de coup critique",
"statCritDmg": "Dégâts critiques",
"statBreakEffect": "Effet de rupture",
"statHealBoost": "Augmentation des soins prodigués",
"statMaxEnergy": "Énergie max",
"statEnergyRegen": "Régénération d'énergie",
"statEhr": "Chances d'appliquer des effets",
"statRes": "Résistance aux effets",
"statDmgBoost": "Augmentation des dégâts {element}",
"relicPickerTitle": "🛡️ Gérer la relique : {slot}",
"tabQuickGen": "⚡ Création rapide et recommandée",
"tabFromInventory": "📦 Depuis l'inventaire",
"btnEquipInstant": "⚡ Équiper maintenant (+15 5★ Stats parfaites)",
"btnUnequip": "❌ Déséquiper",
"currentEquipped": "Actuellement équipé",
"noRelicEquipped": "Aucune relique équipée dans cet emplacement",
"chooseMainStat": "Choisir la stat principale :",
"chooseSet": "Choisir le set :",
"recommendedBadge": "Recommandé",
"overviewStatsTitle": "⚔️ Statistiques de combat",
"overviewStatsNote": "Inclut les bonus de Cône et de Reliques",
"overviewEquippedLc": "🗡️ Cône de Lumière équipé",
@@ -3559,6 +3829,33 @@ export const TRANSLATIONS = {
"lblPersistenceInfo": "Server-Speicherdatei & Datenverwaltung",
"modalTabOverview": "Übersicht",
"modalTabRelics": "Relikte & Ausrüstung",
"attrBasic": "◆ Basiswerte",
"attrAdvanced": "◆ Erweiterte Werte",
"attrElemental": "◆ Schadenstyp",
"statMaxHp": "Max. LP",
"statAtk": "ANG",
"statDef": "VER",
"statSpd": "GES",
"statCritRate": "KRIT-Rate",
"statCritDmg": "KRIT-SCH",
"statBreakEffect": "Bruch-Effekt",
"statHealBoost": "Ausgehender Heilungsbonus",
"statMaxEnergy": "Max. Energie",
"statEnergyRegen": "Energie-Regenerationsrate",
"statEhr": "Effekt-Trefferquote",
"statRes": "Effekt-WDS",
"statDmgBoost": "{element}-Schadensbonus",
"relicPickerTitle": "🛡️ Relikt verwalten: {slot}",
"tabQuickGen": "⚡ Schnellherstellung & Empfohlen",
"tabFromInventory": "📦 Aus Inventar",
"btnEquipInstant": "⚡ Sofort ausrüsten (+15 5★ Perfekte Werte)",
"btnUnequip": "❌ Relikt ablegen",
"currentEquipped": "Aktuell ausgerüstet",
"noRelicEquipped": "Kein Relikt in diesem Platz ausgerüstet",
"chooseMainStat": "Hauptwert wählen:",
"chooseSet": "Set auswählen:",
"recommendedBadge": "Empfohlen",
"overviewStatsTitle": "⚔️ Kampfwerte (Combat Stats)",
"overviewStatsNote": "Enthält Boni von Lichtkegel und Relikten",
"overviewEquippedLc": "🗡️ Ausgerüsteter Lichtkegel",
@@ -3882,6 +4179,33 @@ export const TRANSLATIONS = {
"lblPersistenceInfo": "Управление сохранениями и данными сервера",
"modalTabOverview": "Обзор",
"modalTabRelics": "Реликвии и снаряжение",
"attrBasic": "◆ Базовые характеристики",
"attrAdvanced": "◆ Продвинутые характеристики",
"attrElemental": "◆ Тип урона",
"statMaxHp": "Макс. HP",
"statAtk": "Сила атаки",
"statDef": "Защита",
"statSpd": "Скорость",
"statCritRate": "Крит. шанс",
"statCritDmg": "Крит. урон",
"statBreakEffect": "Эффект пробития",
"statHealBoost": "Бонус исцеления",
"statMaxEnergy": "Макс. энергия",
"statEnergyRegen": "Скорость восстановления энергии",
"statEhr": "Шанс попадания эффектов",
"statRes": "Сопротивление эффектам",
"statDmgBoost": "Бонус {element} урона",
"relicPickerTitle": "🛡️ Управление реликвией: {slot}",
"tabQuickGen": "⚡ Быстрое создание и рекомендации",
"tabFromInventory": "📦 Из инвентаря",
"btnEquipInstant": "⚡ Экипировать сейчас (+15 5★ Идеальные сабы)",
"btnUnequip": "❌ Снять реликвию",
"currentEquipped": "Сейчас экипировано",
"noRelicEquipped": "В этом слоте нет реликвии",
"chooseMainStat": "Выберите основной стат:",
"chooseSet": "Выберите набор:",
"recommendedBadge": "Рекомендуется",
"overviewStatsTitle": "⚔️ Боевые характеристики",
"overviewStatsNote": "Включает бонусы конуса и реликвий",
"overviewEquippedLc": "🗡️ Надетый Световой конус",
@@ -4205,6 +4529,33 @@ export const TRANSLATIONS = {
"lblPersistenceInfo": "Gerenciamento de saves e dados do servidor",
"modalTabOverview": "Visão Geral",
"modalTabRelics": "Relíquias & Equipamentos",
"attrBasic": "◆ Atributos Básicos",
"attrAdvanced": "◆ Atributos Avançados",
"attrElemental": "◆ Tipo de Dano",
"statMaxHp": "PV Máx.",
"statAtk": "ATQ",
"statDef": "DEF",
"statSpd": "VEL",
"statCritRate": "Taxa Crítica",
"statCritDmg": "Dano Crítico",
"statBreakEffect": "Efeito de Quebra",
"statHealBoost": "Bônus de Cura Realizada",
"statMaxEnergy": "Energia Máx.",
"statEnergyRegen": "Taxa de Regeneração de Energia",
"statEhr": "Taxa de Acerto de Efeito",
"statRes": "RES a Efeito",
"statDmgBoost": "Aumento de Dano {element}",
"relicPickerTitle": "🛡️ Gerenciar Relíquia: {slot}",
"tabQuickGen": "⚡ Criação Rápida e Recomendada",
"tabFromInventory": "📦 Do Inventário",
"btnEquipInstant": "⚡ Equipar Agora (+15 5★ Substats Perfeitos)",
"btnUnequip": "❌ Desequipar",
"currentEquipped": "Atualmente Equipado",
"noRelicEquipped": "Nenhuma relíquia equipada neste espaço",
"chooseMainStat": "Escolha o Stat Principal:",
"chooseSet": "Escolher Conjunto:",
"recommendedBadge": "Recomendado",
"overviewStatsTitle": "⚔️ Atributos de Combate",
"overviewStatsNote": "Inclui bônus de Cone de Luz e Relíquias",
"overviewEquippedLc": "🗡️ Cone de Luz Equipado",