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

+309
View File
@@ -2690,5 +2690,314 @@ input:checked + .slider:before {
flex: 1;
}
/* ========================================================
Honkai: Star Rail In-Game Authentic Attributes Panel
======================================================== */
.hsr-attributes-panel {
display: flex;
flex-direction: column;
gap: 0.75rem;
background: rgba(13, 19, 31, 0.75);
border: 1px solid rgba(56, 189, 248, 0.15);
border-radius: var(--radius-sm);
padding: 0.85rem;
}
.hsr-attr-section {
display: flex;
flex-direction: column;
gap: 0.25rem;
}
.hsr-attr-header {
font-size: 0.8rem;
font-weight: 800;
color: #94a3b8;
letter-spacing: 0.04em;
padding: 0.2rem 0.4rem;
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
margin-bottom: 0.25rem;
}
.hsr-attr-list {
display: flex;
flex-direction: column;
gap: 0.15rem;
}
.hsr-attr-row {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0.35rem 0.5rem;
border-radius: 4px;
transition: background 0.15s ease;
}
.hsr-attr-row:hover {
background: rgba(255, 255, 255, 0.04);
}
.hsr-attr-left {
display: flex;
align-items: center;
gap: 0.55rem;
}
.hsr-attr-icon {
width: 22px;
height: 22px;
min-width: 22px;
object-fit: contain;
filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));
}
.hsr-attr-name {
font-size: 0.85rem;
color: #e2e8f0;
font-weight: 600;
}
.hsr-attr-right {
display: flex;
align-items: baseline;
gap: 0.5rem;
text-align: right;
}
.hsr-attr-total {
font-size: 0.95rem;
font-weight: 800;
color: #ffffff;
min-width: 50px;
}
.hsr-attr-breakdown {
font-size: 0.75rem;
display: inline-flex;
gap: 0.2rem;
align-items: baseline;
}
.hsr-attr-base {
color: #94a3b8;
}
.hsr-attr-extra {
color: #38bdf8;
font-weight: 700;
}
/* ========================================================
Spacious Relic Slot Picker Modal Styles
======================================================== */
.relic-picker-modal-content {
width: 95vw;
max-width: 960px;
max-height: 88vh;
display: flex;
flex-direction: column;
overflow: hidden;
padding: 1.25rem;
}
.slot-picker-current-banner {
background: rgba(15, 23, 42, 0.7);
border: 1px solid var(--border-color);
border-radius: var(--radius-sm);
padding: 0.75rem 1rem;
margin-bottom: 0.85rem;
display: flex;
justify-content: space-between;
align-items: center;
gap: 1rem;
flex-wrap: wrap;
}
.slot-picker-current-banner.empty {
border-style: dashed;
color: var(--text-muted);
justify-content: center;
padding: 1rem;
}
.slot-picker-tabs {
display: flex;
gap: 0.5rem;
border-bottom: 1px solid var(--border-color);
margin-bottom: 1rem;
padding-bottom: 0.25rem;
}
.slot-picker-tab-btn {
background: transparent;
border: none;
color: var(--text-muted);
font-weight: 700;
font-size: 0.9rem;
padding: 0.5rem 1rem;
border-radius: var(--radius-sm) var(--radius-sm) 0 0;
cursor: pointer;
transition: all 0.2s ease;
position: relative;
}
.slot-picker-tab-btn:hover {
color: var(--text-color);
}
.slot-picker-tab-btn.active {
color: var(--accent-cyan);
}
.slot-picker-tab-btn.active::after {
content: '';
position: absolute;
bottom: -0.25rem;
left: 0;
right: 0;
height: 2px;
background: var(--accent-cyan);
box-shadow: 0 0 8px var(--accent-cyan);
}
.slot-picker-tab-pane {
flex: 1;
overflow-y: auto;
padding-right: 0.35rem;
display: flex;
flex-direction: column;
gap: 1rem;
}
.slot-picker-rec-highlight {
background: linear-gradient(135deg, rgba(56, 189, 248, 0.12) 0%, rgba(14, 165, 233, 0.05) 100%);
border: 1px solid rgba(56, 189, 248, 0.4);
border-radius: var(--radius-md);
padding: 1rem 1.25rem;
display: flex;
justify-content: space-between;
align-items: center;
gap: 1rem;
flex-wrap: wrap;
box-shadow: 0 4px 16px rgba(56, 189, 248, 0.1);
}
.slot-picker-set-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
gap: 0.65rem;
max-height: 220px;
overflow-y: auto;
padding: 0.35rem 0.2rem;
}
.slot-picker-set-card {
background: rgba(18, 24, 38, 0.7);
border: 1px solid var(--border-color);
border-radius: var(--radius-sm);
padding: 0.65rem 0.5rem;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
gap: 0.35rem;
cursor: pointer;
transition: all 0.2s ease;
user-select: none;
}
.slot-picker-set-card:hover {
border-color: rgba(56, 189, 248, 0.5);
background: rgba(30, 41, 59, 0.8);
transform: translateY(-2px);
}
.slot-picker-set-card.selected {
border-color: var(--accent-cyan);
background: rgba(56, 189, 248, 0.15);
box-shadow: 0 0 10px rgba(56, 189, 248, 0.3);
}
.slot-picker-set-card img {
width: 44px;
height: 44px;
object-fit: contain;
}
.slot-picker-set-card span {
font-size: 0.725rem;
font-weight: 700;
line-height: 1.25;
color: var(--text-color);
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.slot-picker-mainstat-pills {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
.slot-picker-pill {
padding: 0.45rem 0.85rem;
border-radius: 20px;
background: rgba(18, 24, 38, 0.75);
border: 1px solid var(--border-color);
color: var(--text-color);
font-size: 0.8rem;
font-weight: 600;
cursor: pointer;
transition: all 0.15s ease;
display: flex;
align-items: center;
gap: 0.4rem;
}
.slot-picker-pill:hover {
border-color: rgba(56, 189, 248, 0.5);
background: rgba(30, 41, 59, 0.9);
}
.slot-picker-pill.selected {
background: rgba(56, 189, 248, 0.2);
border-color: var(--accent-cyan);
color: #fff;
font-weight: 700;
box-shadow: 0 0 8px rgba(56, 189, 248, 0.3);
}
.slot-picker-pill.recommended {
border-color: rgba(251, 191, 36, 0.6);
}
.slot-picker-inv-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
gap: 0.75rem;
max-height: 440px;
overflow-y: auto;
padding: 0.35rem 0.2rem;
}
.slot-picker-inv-card {
background: rgba(18, 24, 38, 0.85);
border: 1px solid var(--border-color);
border-radius: var(--radius-sm);
padding: 0.85rem;
display: flex;
flex-direction: column;
gap: 0.5rem;
transition: all 0.2s ease;
}
.slot-picker-inv-card:hover {
border-color: rgba(56, 189, 248, 0.4);
}
.slot-picker-inv-card.active-wearer {
border-color: var(--accent-gold);
}
+63 -23
View File
@@ -689,7 +689,7 @@
<!-- Character Detail / Build Modal -->
<div class="modal-overlay" id="modal-avatar-detail">
<div class="modal-content" style="max-width: 760px;">
<div class="modal-content" style="max-width: 860px;">
<!-- Modal Header -->
<div class="modal-header">
<h3 id="modal-char-title" style="font-weight: 800; font-size: 1.15rem; color: var(--text-highlight);" data-i18n="modalTitleCharEdit">
@@ -698,11 +698,6 @@
<button class="btn btn-sm btn-secondary" id="btn-close-avatar-modal">✕</button>
</div>
<!-- Quick Avatar Switcher Bar (like neonteam) -->
<div id="modal-char-switcher" class="modal-char-switcher-strip">
<!-- Injected character icons for instant switching -->
</div>
<!-- Character Top Banner & Quick Max All -->
<div style="display: flex; gap: 1.25rem; align-items: center; margin-bottom: 1.25rem; flex-wrap: wrap;">
<div class="avatar-image-container" style="width: 76px; height: 76px;">
@@ -1378,30 +1373,75 @@
</div>
</div>
<!-- Modal: Select Relic for Specific Slot -->
<!-- Modal: Select Relic for Specific Slot (Large, Spacious & Easy to Use) -->
<div class="modal-overlay" id="modal-select-relic-slot">
<div class="modal-content" style="max-width: 620px;">
<div class="modal-header">
<h3 id="modal-slot-picker-title" style="font-weight: 800;" data-i18n="slotPickerTitle">
🛡️ เลือกสวมใส่รีลิกส์
</h3>
<div class="modal-content relic-picker-modal-content">
<div class="modal-header" style="margin-bottom: 0.75rem;">
<div style="display: flex; align-items: center; gap: 0.65rem;">
<img id="modal-slot-picker-icon" src="" alt="Slot" style="width: 28px; height: 28px; object-fit: contain;">
<div>
<h3 id="modal-slot-picker-title" style="font-weight: 800; font-size: 1.15rem; margin: 0;" data-i18n="slotPickerTitle">
🛡️ เลือกสวมใส่รีลิกส์
</h3>
<div id="modal-slot-picker-subtitle" style="font-size: 0.75rem; color: var(--text-muted); margin-top: 2px;">
เลือกสวมใส่ชิ้นที่มีอยู่ หรือสร้างชิ้นใหม่ตรงตามบิลด์ที่แนะนำ
</div>
</div>
</div>
<button type="button" class="btn btn-sm btn-secondary" id="btn-close-slot-picker">✕</button>
</div>
<!-- Quick Option: Auto-generate recommended piece -->
<div style="background: rgba(56, 189, 248, 0.08); border: 1px dashed rgba(56, 189, 248, 0.4); border-radius: var(--radius-sm); padding: 0.85rem; margin-bottom: 1rem; display: flex; justify-content: space-between; align-items: center; gap: 0.75rem;">
<div>
<div style="font-weight: 700; font-size: 0.875rem; color: var(--accent-cyan);" data-i18n="quickGenRecTitle">⚡ สร้างชิ้นแนะนำสำหรับช่องนี้</div>
<div style="font-size: 0.75rem; color: var(--text-muted);" data-i18n="quickGenRecDesc">สร้างรีลิกส์ 5★ +15 สเตตัสหลักและรองที่เหมาะสมที่สุด</div>
</div>
<button type="button" class="btn btn-sm btn-primary" id="btn-slot-picker-quick-gen" data-i18n="btnGenAndEquip">สร้าง & สวมใส่</button>
<!-- Current Equipped Relic Banner with Unequip Button -->
<div id="slot-picker-current-box" class="slot-picker-current-banner">
<!-- Injected currently equipped relic or empty status -->
</div>
<div style="font-weight: 700; font-size: 0.85rem; color: var(--text-highlight); margin-bottom: 0.5rem;" data-i18n="selectFromInventory">
เลือกจากคลังรีลิกส์ที่มีอยู่ (ตรงช่อง)
<!-- Tabs Navigation -->
<div class="slot-picker-tabs">
<button type="button" class="slot-picker-tab-btn active" id="tab-btn-relic-quick" data-pickertab="slot-picker-quick-tab">
<span data-i18n="tabQuickGen">⚡ สวมใส่ / สร้างชิ้นแนะนำ</span>
</button>
<button type="button" class="slot-picker-tab-btn" id="tab-btn-relic-inventory" data-pickertab="slot-picker-inventory-tab">
<span data-i18n="tabFromInventory">📦 เลือกจากคลัง</span> (<span id="slot-picker-inv-count">0</span>)
</button>
</div>
<div id="slot-picker-inventory-list" style="max-height: 280px; overflow-y: auto; display: flex; flex-direction: column; gap: 0.5rem; padding-right: 0.35rem;">
<!-- Injected list of matching slot relics -->
<!-- Tab 1: Quick & Recommended Builder -->
<div id="slot-picker-quick-tab" class="slot-picker-tab-pane">
<!-- Recommended Fast Equip Card -->
<div class="slot-picker-rec-highlight" id="slot-picker-rec-highlight">
<!-- Injected recommended set card and instant equip button -->
</div>
<!-- Custom Relic Creator -->
<div>
<div style="font-weight: 700; font-size: 0.85rem; color: var(--text-highlight); margin-bottom: 0.5rem;" data-i18n="chooseSet">
เลือกเซ็ตที่ต้องการ:
</div>
<div class="slot-picker-set-grid" id="slot-picker-set-grid">
<!-- Injected set cards for this slot -->
</div>
<div style="font-weight: 700; font-size: 0.85rem; color: var(--text-highlight); margin-top: 0.85rem; margin-bottom: 0.5rem;" data-i18n="chooseMainStat">
เลือกสเตตัสหลัก (Main Stat):
</div>
<div class="slot-picker-mainstat-pills" id="slot-picker-mainstat-pills">
<!-- Injected main stat pill buttons -->
</div>
<div style="margin-top: 1rem; display: flex; justify-content: flex-end;">
<button type="button" class="btn btn-primary" id="btn-slot-picker-confirm-custom" style="padding: 0.65rem 1.4rem; font-weight: 800; font-size: 0.9rem;" data-i18n="btnEquipInstant">
⚡ สวมใส่ชิ้นนี้ทันที (+15 5★ ออฟเทพ)
</button>
</div>
</div>
</div>
<!-- Tab 2: Inventory Grid -->
<div id="slot-picker-inventory-tab" class="slot-picker-tab-pane" style="display: none;">
<div id="slot-picker-inventory-list" class="slot-picker-inv-grid">
<!-- Injected cards of matching slot relics -->
</div>
</div>
</div>
</div>
+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",