feat: redesign Quick Actions with 6 practical tools and set 50% default starting energy
This commit is contained in:
1 parent
caa29bdd30
commit
139ba95421
3 files changed
+590
-33
No files matched your search
+59
-9
@@ -134,14 +134,64 @@
|
||||
|
||||
<!-- Quick Actions Card -->
|
||||
<div class="card">
|
||||
<div class="card-title" data-i18n="quickActionsTitle">⚡ ดำเนินการด่วน</div>
|
||||
<p class="card-subtitle" data-i18n="quickActionsSubtitle">ส่งคำสั่งไปยังเซิร์ฟเวอร์ทันที</p>
|
||||
<div style="display: flex; flex-direction: column; gap: 0.75rem;">
|
||||
<button class="btn btn-gold" id="btn-quick-max-all" data-i18n="btnMaxAll">
|
||||
⭐ ปรับเลเวล 80 & ปลด E6 ตัวละครทั้งหมด
|
||||
<div class="card-title" style="display: flex; justify-content: space-between; align-items: center;">
|
||||
<span data-i18n="quickActionsTitle">⚡ ดำเนินการด่วน</span>
|
||||
<span class="btn-sm btn-secondary" style="font-size: 0.75rem;" data-i18n="quickActionsBadge">คำสั่งด่วน</span>
|
||||
</div>
|
||||
<p class="card-subtitle" data-i18n="quickActionsSubtitle">เครื่องมือจัดการทีมและเซิร์ฟเวอร์แบบทันที</p>
|
||||
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 0.75rem;">
|
||||
<!-- 1. Set Team Energy to 50% (Standard) -->
|
||||
<button type="button" class="btn btn-secondary" id="btn-quick-energy-50" style="display: flex; align-items: center; justify-content: flex-start; gap: 0.6rem; text-align: left; padding: 0.75rem 0.9rem;">
|
||||
<span style="font-size: 1.35rem; line-height: 1;">🔋</span>
|
||||
<div>
|
||||
<div style="font-weight: 700; font-size: 0.875rem;" data-i18n="qaEnergy50Title">พลังงานทีม 50%</div>
|
||||
<div style="font-size: 0.725rem; color: var(--text-muted);" data-i18n="qaEnergy50Desc">ค่าเริ่มต้นมาตรฐานเมื่อเข้าสู้</div>
|
||||
</div>
|
||||
</button>
|
||||
<button class="btn btn-secondary" id="btn-quick-sync-persistent" data-i18n="btnSyncPersistent">
|
||||
💾 ซิงค์ข้อมูล Persistent ล่าสุด
|
||||
|
||||
<!-- 2. Set Team Energy to 100% (Instant Burst) -->
|
||||
<button type="button" class="btn btn-primary" id="btn-quick-energy-100" style="display: flex; align-items: center; justify-content: flex-start; gap: 0.6rem; text-align: left; padding: 0.75rem 0.9rem;">
|
||||
<span style="font-size: 1.35rem; line-height: 1;">💥</span>
|
||||
<div>
|
||||
<div style="font-weight: 700; font-size: 0.875rem;" data-i18n="qaEnergy100Title">พลังงานทีม 100%</div>
|
||||
<div style="font-size: 0.725rem; opacity: 0.85;" data-i18n="qaEnergy100Desc">พร้อมกดท่าไม้ตายทันที</div>
|
||||
</div>
|
||||
</button>
|
||||
|
||||
<!-- 3. Unlock All Avatars -->
|
||||
<button type="button" class="btn btn-gold" id="btn-quick-unlock-all-avatars" style="display: flex; align-items: center; justify-content: flex-start; gap: 0.6rem; text-align: left; padding: 0.75rem 0.9rem;">
|
||||
<span style="font-size: 1.35rem; line-height: 1;">👥</span>
|
||||
<div>
|
||||
<div style="font-weight: 700; font-size: 0.875rem;" data-i18n="qaUnlockAllTitle">ปลดล็อกตัวละครครบทุกตัว</div>
|
||||
<div style="font-size: 0.725rem; opacity: 0.85;" data-i18n="qaUnlockAllDesc">เพิ่มครบ 70+ ตัว E6 เต็มคลัง</div>
|
||||
</div>
|
||||
</button>
|
||||
|
||||
<!-- 4. Add All 5-Star Light Cones -->
|
||||
<button type="button" class="btn btn-secondary" id="btn-quick-add-all-lcs" style="display: flex; align-items: center; justify-content: flex-start; gap: 0.6rem; text-align: left; padding: 0.75rem 0.9rem;">
|
||||
<span style="font-size: 1.35rem; line-height: 1;">🗡️</span>
|
||||
<div>
|
||||
<div style="font-weight: 700; font-size: 0.875rem;" data-i18n="qaAddLcsTitle">เพิ่มกรวยแสง 5★ ทั้งหมด</div>
|
||||
<div style="font-size: 0.725rem; color: var(--text-muted);" data-i18n="qaAddLcsDesc">กรวยแสงประจำตัว S5 เข้าคลัง</div>
|
||||
</div>
|
||||
</button>
|
||||
|
||||
<!-- 5. Teleport to Astral Express -->
|
||||
<button type="button" class="btn btn-secondary" id="btn-quick-teleport-train" style="display: flex; align-items: center; justify-content: flex-start; gap: 0.6rem; text-align: left; padding: 0.75rem 0.9rem;">
|
||||
<span style="font-size: 1.35rem; line-height: 1;">🚂</span>
|
||||
<div>
|
||||
<div style="font-weight: 700; font-size: 0.875rem;" data-i18n="qaTeleportTitle">วาร์ปกลับรถไฟ Astral Express</div>
|
||||
<div style="font-size: 0.725rem; color: var(--text-muted);" data-i18n="qaTeleportDesc">กลับสู่ Parlor Car จุดปลอดภัย</div>
|
||||
</div>
|
||||
</button>
|
||||
|
||||
<!-- 6. Clear Lineup Slots -->
|
||||
<button type="button" class="btn btn-danger" id="btn-quick-clear-lineup" style="display: flex; align-items: center; justify-content: flex-start; gap: 0.6rem; text-align: left; padding: 0.75rem 0.9rem;">
|
||||
<span style="font-size: 1.35rem; line-height: 1;">🧹</span>
|
||||
<div>
|
||||
<div style="font-weight: 700; font-size: 0.875rem;" data-i18n="qaClearLineupTitle">ล้างตัวละครในทีม</div>
|
||||
<div style="font-size: 0.725rem; opacity: 0.85;" data-i18n="qaClearLineupDesc">เคลียร์ทุกช่องเพื่อจัดทีมใหม่</div>
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -599,8 +649,8 @@
|
||||
</div>
|
||||
</div>
|
||||
<div style="display: flex; gap: 0.75rem; align-items: center;">
|
||||
<input type="range" id="range-char-energy" min="0" max="140" value="140" class="skill-range" style="flex: 1;">
|
||||
<span id="val-char-energy" style="font-weight: 800; font-family: monospace; min-width: 60px; text-align: right;">140/140</span>
|
||||
<input type="range" id="range-char-energy" min="0" max="140" value="70" class="skill-range" style="flex: 1;">
|
||||
<span id="val-char-energy" style="font-weight: 800; font-family: monospace; min-width: 60px; text-align: right;">70/140</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -46,8 +46,12 @@ const el = {
|
||||
lineupContainer: document.getElementById('lineup-container'),
|
||||
toggleCreativeMode: document.getElementById('toggle-creative-mode'),
|
||||
badgeCreativeMode: document.getElementById('badge-creative-mode'),
|
||||
btnQuickMaxAll: document.getElementById('btn-quick-max-all'),
|
||||
btnQuickSyncPersistent: document.getElementById('btn-quick-sync-persistent'),
|
||||
btnQuickEnergy50: document.getElementById('btn-quick-energy-50'),
|
||||
btnQuickEnergy100: document.getElementById('btn-quick-energy-100'),
|
||||
btnQuickUnlockAllAvatars: document.getElementById('btn-quick-unlock-all-avatars'),
|
||||
btnQuickAddAllLcs: document.getElementById('btn-quick-add-all-lcs'),
|
||||
btnQuickTeleportTrain: document.getElementById('btn-quick-teleport-train'),
|
||||
btnQuickClearLineup: document.getElementById('btn-quick-clear-lineup'),
|
||||
|
||||
// Avatars
|
||||
avatarsGrid: document.getElementById('avatars-grid'),
|
||||
@@ -1112,9 +1116,10 @@ function openAvatarDetailModal(avatarItem) {
|
||||
el.checkTraceStats.checked = (anchorSkills['9'] ?? skills[`${aid}201`] ?? 1) > 0;
|
||||
}
|
||||
|
||||
// Ultimate Energy
|
||||
// Ultimate Energy (Default 50% as standard in Star Rail)
|
||||
const maxSp = av?.sp_max ?? 140;
|
||||
const currentSp = av?.sp_value ?? maxSp;
|
||||
const defaultStartingSp = Math.floor(maxSp * 0.5);
|
||||
const currentSp = (av?.sp_value !== undefined && av?.sp_value !== null) ? av.sp_value : defaultStartingSp;
|
||||
if (el.rangeCharEnergy && el.valCharEnergy) {
|
||||
el.rangeCharEnergy.max = maxSp;
|
||||
el.rangeCharEnergy.value = currentSp;
|
||||
@@ -1233,10 +1238,11 @@ async function maxAllBuildForCurrentAvatar() {
|
||||
// Skills & Traces
|
||||
maxSkillsForAvatar();
|
||||
|
||||
// Energy 100%
|
||||
// Energy (Default 50% standard starting energy)
|
||||
if (el.rangeCharEnergy && el.valCharEnergy) {
|
||||
el.rangeCharEnergy.value = el.rangeCharEnergy.max;
|
||||
el.valCharEnergy.textContent = `${el.rangeCharEnergy.max}/${el.rangeCharEnergy.max}`;
|
||||
const half = Math.floor(parseInt(el.rangeCharEnergy.max, 10) * 0.5);
|
||||
el.rangeCharEnergy.value = half;
|
||||
el.valCharEnergy.textContent = `${half}/${el.rangeCharEnergy.max}`;
|
||||
}
|
||||
|
||||
// Lightcone
|
||||
@@ -1266,6 +1272,10 @@ async function saveAvatarDetails() {
|
||||
target.rank = rank;
|
||||
}
|
||||
|
||||
const maxSp = parseInt(el.rangeCharEnergy?.max, 10) || 140;
|
||||
const defaultSp = Math.floor(maxSp * 0.5);
|
||||
const currentSp = el.rangeCharEnergy ? parseInt(el.rangeCharEnergy.value, 10) : defaultSp;
|
||||
|
||||
if (!state.fullFreesrData) {
|
||||
state.fullFreesrData = { avatars: {}, lightcones: [], relics: [] };
|
||||
}
|
||||
@@ -1279,8 +1289,8 @@ async function saveAvatarDetails() {
|
||||
level,
|
||||
promotion,
|
||||
techniques: [],
|
||||
sp_value: parseInt(el.rangeCharEnergy?.value, 10) || 140,
|
||||
sp_max: parseInt(el.rangeCharEnergy?.max, 10) || 140,
|
||||
sp_value: currentSp,
|
||||
sp_max: maxSp,
|
||||
data: {
|
||||
rank,
|
||||
skills: {},
|
||||
@@ -1294,9 +1304,8 @@ async function saveAvatarDetails() {
|
||||
av.promotion = promotion;
|
||||
av.data = av.data || {};
|
||||
av.data.rank = rank;
|
||||
if (el.rangeCharEnergy) {
|
||||
av.sp_value = parseInt(el.rangeCharEnergy.value, 10) || av.sp_max || 140;
|
||||
}
|
||||
av.sp_max = maxSp;
|
||||
av.sp_value = currentSp;
|
||||
|
||||
// Extract skills values
|
||||
const basicVal = parseInt(el.rangeSkillBasic?.value, 10) || 6;
|
||||
@@ -1393,6 +1402,262 @@ async function saveAvatarDetails() {
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// Quick Action Functions
|
||||
// ============================================================================
|
||||
|
||||
// 1. Quick Set Team Energy (50% or 100%)
|
||||
async function quickSetTeamEnergy(ratio = 0.5) {
|
||||
try {
|
||||
state.statusData = state.statusData || {};
|
||||
const lineups = state.statusData.lineups || DEFAULT_LINEUP;
|
||||
if (!state.fullFreesrData) {
|
||||
state.fullFreesrData = { avatars: {}, lightcones: [], relics: [] };
|
||||
}
|
||||
state.fullFreesrData.avatars = state.fullFreesrData.avatars || {};
|
||||
|
||||
const lineupIds = Object.values(lineups).filter(id => id && id > 0);
|
||||
if (lineupIds.length === 0) {
|
||||
showToast(t('slotEmpty') || 'ไม่มีตัวละครในทีม', 'warning');
|
||||
return;
|
||||
}
|
||||
|
||||
lineupIds.forEach(aid => {
|
||||
if (!state.fullFreesrData.avatars[aid]) {
|
||||
state.fullFreesrData.avatars[aid] = {
|
||||
owner_uid: 0,
|
||||
avatar_id: aid,
|
||||
level: 80,
|
||||
promotion: 6,
|
||||
techniques: [],
|
||||
sp_max: 140,
|
||||
sp_value: 70,
|
||||
data: { rank: 6, skills: {} }
|
||||
};
|
||||
}
|
||||
const av = state.fullFreesrData.avatars[aid];
|
||||
const maxSp = av.sp_max || 140;
|
||||
av.sp_max = maxSp;
|
||||
av.sp_value = Math.floor(maxSp * ratio);
|
||||
});
|
||||
|
||||
if (state.isConnected) {
|
||||
await saveFreesrChangesToServer();
|
||||
}
|
||||
|
||||
if (ratio === 0.5) {
|
||||
showToast(t('toastEnergy50') || 'ตั้งค่าพลังงานทีม 50% (มาตรฐานเกม) เรียบร้อยแล้ว', 'success');
|
||||
} else {
|
||||
showToast(t('toastEnergy100') || 'ตั้งค่าพลังงานทีม 100% (อัลติพร้อมใช้) เรียบร้อยแล้ว', 'success');
|
||||
}
|
||||
} catch (err) {
|
||||
showToast(err.message, 'error');
|
||||
}
|
||||
}
|
||||
|
||||
// 2. Quick Unlock All 70+ Avatars
|
||||
async function quickUnlockAllAvatars() {
|
||||
try {
|
||||
if (!state.fullFreesrData) {
|
||||
state.fullFreesrData = { avatars: {}, lightcones: [], relics: [] };
|
||||
}
|
||||
state.fullFreesrData.avatars = state.fullFreesrData.avatars || {};
|
||||
|
||||
const allIds = Object.keys(AVATAR_METADATA).map(id => parseInt(id, 10));
|
||||
allIds.forEach(aid => {
|
||||
if (!state.fullFreesrData.avatars[aid]) {
|
||||
state.fullFreesrData.avatars[aid] = {
|
||||
owner_uid: 0,
|
||||
avatar_id: aid,
|
||||
level: 80,
|
||||
promotion: 6,
|
||||
techniques: [],
|
||||
sp_max: 140,
|
||||
sp_value: 70, // 50% standard starting energy
|
||||
data: {
|
||||
rank: 6,
|
||||
skills: {
|
||||
[`${aid}001`]: 6,
|
||||
[`${aid}002`]: 10,
|
||||
[`${aid}003`]: 10,
|
||||
[`${aid}004`]: 10,
|
||||
[`${aid}007`]: 1,
|
||||
[`${aid}101`]: 1,
|
||||
[`${aid}102`]: 1,
|
||||
[`${aid}103`]: 1,
|
||||
[`${aid}201`]: 1
|
||||
},
|
||||
skills_by_anchor_type: {
|
||||
"1": 6, "2": 10, "3": 10, "4": 10, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1
|
||||
}
|
||||
}
|
||||
};
|
||||
} else {
|
||||
const av = state.fullFreesrData.avatars[aid];
|
||||
av.level = 80;
|
||||
av.promotion = 6;
|
||||
av.data = av.data || {};
|
||||
av.data.rank = 6;
|
||||
if (!av.sp_value) av.sp_value = 70;
|
||||
}
|
||||
});
|
||||
|
||||
initAvatarsList();
|
||||
state.avatarsList.forEach(a => {
|
||||
a.level = 80;
|
||||
a.promotion = 6;
|
||||
a.rank = 6;
|
||||
});
|
||||
|
||||
if (state.isConnected) {
|
||||
if (state.serverMode === 'gac') {
|
||||
await apiCall('/api/avatar/max_all', 'POST', {}).catch(() => {});
|
||||
await saveFreesrChangesToServer().catch(() => {});
|
||||
} else {
|
||||
await saveFreesrChangesToServer();
|
||||
}
|
||||
}
|
||||
|
||||
renderAvatarsGrid();
|
||||
if (el.statAvatars) el.statAvatars.textContent = Object.keys(state.fullFreesrData.avatars).length;
|
||||
showToast(t('toastUnlockedAll') || 'ปลดล็อกตัวละครครบทุกตัว (70+ ตัว E6) เรียบร้อยแล้ว', 'success');
|
||||
} catch (err) {
|
||||
showToast(err.message, 'error');
|
||||
}
|
||||
}
|
||||
|
||||
// 3. Quick Add All 5-Star Signature Light Cones
|
||||
async function quickAddAll5StarLightcones() {
|
||||
try {
|
||||
if (!state.fullFreesrData) {
|
||||
state.fullFreesrData = { avatars: {}, lightcones: [], relics: [] };
|
||||
}
|
||||
state.fullFreesrData.lightcones = state.fullFreesrData.lightcones || [];
|
||||
|
||||
const existingLcIds = new Set(state.fullFreesrData.lightcones.map(lc => lc.item_id));
|
||||
let nextUniqueId = 1000;
|
||||
state.fullFreesrData.lightcones.forEach(lc => {
|
||||
if (lc.unique_id >= nextUniqueId) nextUniqueId = lc.unique_id + 1;
|
||||
});
|
||||
|
||||
let addedCount = 0;
|
||||
for (const idStr in LIGHTCONE_METADATA) {
|
||||
const meta = LIGHTCONE_METADATA[idStr];
|
||||
const itemId = parseInt(idStr, 10);
|
||||
if (meta.rarity === 5 && !existingLcIds.has(itemId)) {
|
||||
state.fullFreesrData.lightcones.push({
|
||||
unique_id: nextUniqueId++,
|
||||
item_id: itemId,
|
||||
level: 80,
|
||||
promotion: 6,
|
||||
rank: 5,
|
||||
equip_avatar: 0
|
||||
});
|
||||
existingLcIds.add(itemId);
|
||||
addedCount++;
|
||||
}
|
||||
}
|
||||
|
||||
if (state.isConnected) {
|
||||
await saveFreesrChangesToServer();
|
||||
}
|
||||
loadEquipment();
|
||||
showToast(t('toastAddedAllLcs') || `เพิ่มกรวยแสง 5 ดาวทั้งหมด (${addedCount} ชิ้น) เข้าคลังแล้ว`, 'success');
|
||||
} catch (err) {
|
||||
showToast(err.message, 'error');
|
||||
}
|
||||
}
|
||||
|
||||
// 4. Quick Teleport to Astral Express Parlor Car
|
||||
async function quickTeleportAstralExpress() {
|
||||
const trainLoc = {
|
||||
plane_id: 20001,
|
||||
floor_id: 20001001,
|
||||
entry_id: 2000101,
|
||||
x: 0,
|
||||
y: 0,
|
||||
z: 0,
|
||||
rot_y: 0
|
||||
};
|
||||
try {
|
||||
if (state.fullFreesrData) {
|
||||
state.fullFreesrData.scene = {
|
||||
plane_id: trainLoc.plane_id,
|
||||
floor_id: trainLoc.floor_id,
|
||||
entry_id: trainLoc.entry_id
|
||||
};
|
||||
state.fullFreesrData.position = {
|
||||
x: trainLoc.x,
|
||||
y: trainLoc.y,
|
||||
z: trainLoc.z,
|
||||
rot_y: trainLoc.rot_y
|
||||
};
|
||||
}
|
||||
|
||||
if (state.isConnected) {
|
||||
if (state.serverMode === 'gac') {
|
||||
await apiCall('/api/teleport', 'POST', trainLoc).catch(async () => {
|
||||
await apiCall('/api/persistent', 'POST', {
|
||||
scene: { plane_id: trainLoc.plane_id, floor_id: trainLoc.floor_id, entry_id: trainLoc.entry_id },
|
||||
position: { x: trainLoc.x, y: trainLoc.y, z: trainLoc.z, rot_y: trainLoc.rot_y }
|
||||
});
|
||||
});
|
||||
} else {
|
||||
await saveFreesrChangesToServer();
|
||||
}
|
||||
}
|
||||
|
||||
if (el.lblPlaneId) el.lblPlaneId.textContent = trainLoc.plane_id;
|
||||
if (el.lblFloorId) el.lblFloorId.textContent = trainLoc.floor_id;
|
||||
if (el.lblCoordinates) el.lblCoordinates.textContent = `X: ${trainLoc.x}, Y: ${trainLoc.y}, Z: ${trainLoc.z}`;
|
||||
showToast(t('toastTeleportedTrain') || 'วาร์ปกลับสู่ Astral Express Parlor Car เรียบร้อยแล้ว', 'success');
|
||||
} catch (err) {
|
||||
showToast(err.message, 'error');
|
||||
}
|
||||
}
|
||||
|
||||
// 5. Quick Clear Lineup Slots
|
||||
async function quickClearLineup() {
|
||||
try {
|
||||
state.statusData = state.statusData || {};
|
||||
let currentLineup = state.statusData.lineups || DEFAULT_LINEUP;
|
||||
if (Array.isArray(currentLineup)) {
|
||||
const mapped = {};
|
||||
currentLineup.forEach((id, idx) => { mapped[idx] = id; });
|
||||
currentLineup = mapped;
|
||||
}
|
||||
|
||||
const cleared = {};
|
||||
Object.keys(currentLineup).forEach(k => {
|
||||
cleared[k] = 0;
|
||||
});
|
||||
if (!state.creativeMode) {
|
||||
cleared[0] = 0; cleared[1] = 0; cleared[2] = 0; cleared[3] = 0;
|
||||
}
|
||||
|
||||
state.statusData.lineups = cleared;
|
||||
if (state.fullFreesrData) {
|
||||
state.fullFreesrData.lineups = cleared;
|
||||
if (state.fullFreesrData.battle_config) {
|
||||
state.fullFreesrData.battle_config.custom_battle_lineup = cleared;
|
||||
}
|
||||
}
|
||||
|
||||
if (state.isConnected) {
|
||||
if (state.serverMode === 'gac') {
|
||||
await apiCall('/api/persistent', 'POST', { lineups: cleared });
|
||||
} else {
|
||||
await saveFreesrChangesToServer();
|
||||
}
|
||||
}
|
||||
|
||||
renderLineup(cleared);
|
||||
showToast(t('toastLineupCleared') || 'ล้างตัวละครในทีมเรียบร้อยแล้ว', 'info');
|
||||
} catch (err) {
|
||||
showToast(err.message, 'error');
|
||||
}
|
||||
}
|
||||
|
||||
// Max all avatars
|
||||
async function maxAllAvatars() {
|
||||
if (!confirm(t('confirmMaxAll'))) return;
|
||||
@@ -2101,18 +2366,13 @@ function setupEvents() {
|
||||
}
|
||||
|
||||
// Quick Action Buttons on Dashboard
|
||||
el.btnQuickMaxAll.addEventListener('click', maxAllAvatars);
|
||||
el.btnMaxAllAvatars.addEventListener('click', maxAllAvatars);
|
||||
|
||||
el.btnQuickSyncPersistent.addEventListener('click', async () => {
|
||||
try {
|
||||
await apiCall('/api/persistent');
|
||||
showToast('ซิงค์ข้อมูล Persistent เรียบร้อย', 'success');
|
||||
refreshStatus();
|
||||
} catch (err) {
|
||||
showToast(`Sync failed: ${err.message}`, 'error');
|
||||
}
|
||||
});
|
||||
el.btnQuickEnergy50?.addEventListener('click', () => quickSetTeamEnergy(0.5));
|
||||
el.btnQuickEnergy100?.addEventListener('click', () => quickSetTeamEnergy(1.0));
|
||||
el.btnQuickUnlockAllAvatars?.addEventListener('click', quickUnlockAllAvatars);
|
||||
el.btnQuickAddAllLcs?.addEventListener('click', quickAddAll5StarLightcones);
|
||||
el.btnQuickTeleportTrain?.addEventListener('click', quickTeleportAstralExpress);
|
||||
el.btnQuickClearLineup?.addEventListener('click', quickClearLineup);
|
||||
el.btnMaxAllAvatars?.addEventListener('click', maxAllAvatars);
|
||||
|
||||
// Persistent Form Submit
|
||||
el.formPersistentChars.addEventListener('submit', async (e) => {
|
||||
|
||||
+247
@@ -26,6 +26,25 @@ export const TRANSLATIONS = {
|
||||
"lblCreativeMode": "โหมดสร้างสรรค์",
|
||||
"badgeCreative": "โหมดสร้างสรรค์",
|
||||
"toastSlotRemoved": "ลบ Slot {slot} เรียบร้อยแล้ว",
|
||||
"quickActionsBadge": "คำสั่งด่วน",
|
||||
"qaEnergy50Title": "พลังงานทีม 50%",
|
||||
"qaEnergy50Desc": "ค่าเริ่มต้นมาตรฐานเมื่อเข้าสู้",
|
||||
"qaEnergy100Title": "พลังงานทีม 100%",
|
||||
"qaEnergy100Desc": "พร้อมกดท่าไม้ตายทันที",
|
||||
"qaUnlockAllTitle": "ปลดล็อกตัวละครครบทุกตัว",
|
||||
"qaUnlockAllDesc": "เพิ่มครบ 70+ ตัว E6 เต็มคลัง",
|
||||
"qaAddLcsTitle": "เพิ่มกรวยแสง 5★ ทั้งหมด",
|
||||
"qaAddLcsDesc": "กรวยแสงประจำตัว S5 เข้าคลัง",
|
||||
"qaTeleportTitle": "วาร์ปกลับรถไฟ Astral Express",
|
||||
"qaTeleportDesc": "กลับสู่ Parlor Car จุดปลอดภัย",
|
||||
"qaClearLineupTitle": "ล้างตัวละครในทีม",
|
||||
"qaClearLineupDesc": "เคลียร์ทุกช่องเพื่อจัดทีมใหม่",
|
||||
"toastEnergy50": "ตั้งค่าพลังงานทีม 50% (มาตรฐานเกม) เรียบร้อยแล้ว",
|
||||
"toastEnergy100": "ตั้งค่าพลังงานทีม 100% (อัลติพร้อมใช้) เรียบร้อยแล้ว",
|
||||
"toastUnlockedAll": "ปลดล็อกตัวละครครบทุกตัว (70+ ตัว E6) เรียบร้อยแล้ว",
|
||||
"toastAddedAllLcs": "เพิ่มกรวยแสง 5 ดาวประจำตัวละครทั้งหมดเข้าคลังแล้ว",
|
||||
"toastTeleportedTrain": "วาร์ปตัวละครกลับสู่ Astral Express Parlor Car เรียบร้อยแล้ว",
|
||||
"toastLineupCleared": "ล้างตัวละครในทีมเรียบร้อยแล้ว",
|
||||
"modalAddLcTitle": "🗡️ เพิ่มกรวยแสงลง FreeSR",
|
||||
"modalAddRelicTitle": "🛡️ เพิ่มรีลิกส์ลง FreeSR",
|
||||
"lblSelectLc": "เลือกกรวยแสง",
|
||||
@@ -224,6 +243,25 @@ export const TRANSLATIONS = {
|
||||
"lblCreativeMode": "Creative Mode",
|
||||
"badgeCreative": "Creative",
|
||||
"toastSlotRemoved": "Removed Slot {slot}",
|
||||
"quickActionsBadge": "Quick Tools",
|
||||
"qaEnergy50Title": "Team Energy 50%",
|
||||
"qaEnergy50Desc": "Standard starting battle energy",
|
||||
"qaEnergy100Title": "Team Energy 100%",
|
||||
"qaEnergy100Desc": "Instant Ultimate ready",
|
||||
"qaUnlockAllTitle": "Unlock All Avatars",
|
||||
"qaUnlockAllDesc": "Add all 70+ characters at E6",
|
||||
"qaAddLcsTitle": "Add All 5★ Light Cones",
|
||||
"qaAddLcsDesc": "All signature S5 light cones to inventory",
|
||||
"qaTeleportTitle": "Teleport to Astral Express",
|
||||
"qaTeleportDesc": "Return to Parlor Car safe hub",
|
||||
"qaClearLineupTitle": "Clear Team Lineup",
|
||||
"qaClearLineupDesc": "Empty all slots to rebuild team",
|
||||
"toastEnergy50": "Team energy set to 50% (standard)",
|
||||
"toastEnergy100": "Team energy set to 100% (instant burst)",
|
||||
"toastUnlockedAll": "Unlocked all 70+ characters at E6",
|
||||
"toastAddedAllLcs": "Added all 5★ signature light cones to inventory",
|
||||
"toastTeleportedTrain": "Teleported to Astral Express Parlor Car",
|
||||
"toastLineupCleared": "Lineup cleared successfully",
|
||||
"modalAddLcTitle": "🗡️ Add Light Cone to FreeSR",
|
||||
"modalAddRelicTitle": "🛡️ Add Relic to FreeSR",
|
||||
"lblSelectLc": "Select Light Cone",
|
||||
@@ -422,6 +460,25 @@ export const TRANSLATIONS = {
|
||||
"lblCreativeMode": "创造模式",
|
||||
"badgeCreative": "创造模式",
|
||||
"toastSlotRemoved": "已移除槽位 {slot}",
|
||||
"quickActionsBadge": "快捷指令",
|
||||
"qaEnergy50Title": "全队能量 50%",
|
||||
"qaEnergy50Desc": "进战标准初始能量",
|
||||
"qaEnergy100Title": "全队能量 100%",
|
||||
"qaEnergy100Desc": "立即释放终结技",
|
||||
"qaUnlockAllTitle": "解锁全角色",
|
||||
"qaUnlockAllDesc": "添加全部 70+ 角色满魂",
|
||||
"qaAddLcsTitle": "添加全部五星光锥",
|
||||
"qaAddLcsDesc": "专武叠影5阶入库",
|
||||
"qaTeleportTitle": "传送至星穹列车",
|
||||
"qaTeleportDesc": "返回车厢安全区",
|
||||
"qaClearLineupTitle": "清空编队",
|
||||
"qaClearLineupDesc": "重置全部槽位重新配队",
|
||||
"toastEnergy50": "已将全队能量设为 50%",
|
||||
"toastEnergy100": "已将全队能量设为 100%",
|
||||
"toastUnlockedAll": "已解锁全部角色(满魂)",
|
||||
"toastAddedAllLcs": "已添加全部五星光锥至背包",
|
||||
"toastTeleportedTrain": "已传送至星穹列车观景车厢",
|
||||
"toastLineupCleared": "已清空编队角色",
|
||||
"modalAddLcTitle": "🗡️ 添加光锥至 FreeSR",
|
||||
"modalAddRelicTitle": "🛡️ 添加遗器至 FreeSR",
|
||||
"lblSelectLc": "选择光锥",
|
||||
@@ -620,6 +677,25 @@ export const TRANSLATIONS = {
|
||||
"lblCreativeMode": "創造模式",
|
||||
"badgeCreative": "創造模式",
|
||||
"toastSlotRemoved": "已移除槽位 {slot}",
|
||||
"quickActionsBadge": "快捷指令",
|
||||
"qaEnergy50Title": "全隊能量 50%",
|
||||
"qaEnergy50Desc": "進戰標準初始能量",
|
||||
"qaEnergy100Title": "全隊能量 100%",
|
||||
"qaEnergy100Desc": "立即施放終結技",
|
||||
"qaUnlockAllTitle": "解鎖全角色",
|
||||
"qaUnlockAllDesc": "新增全部 70+ 角色滿魂",
|
||||
"qaAddLcsTitle": "新增全部五星光錐",
|
||||
"qaAddLcsDesc": "專武疊影5階入庫",
|
||||
"qaTeleportTitle": "傳送至星穹列車",
|
||||
"qaTeleportDesc": "返回車廂安全區",
|
||||
"qaClearLineupTitle": "清空隊伍",
|
||||
"qaClearLineupDesc": "重設全部槽位重新組隊",
|
||||
"toastEnergy50": "已將全隊能量設為 50%",
|
||||
"toastEnergy100": "已將全隊能量設為 100%",
|
||||
"toastUnlockedAll": "已解鎖全部角色(滿魂)",
|
||||
"toastAddedAllLcs": "已新增全部五星光錐至背包",
|
||||
"toastTeleportedTrain": "已傳送至星穹列車觀景車廂",
|
||||
"toastLineupCleared": "已清空隊伍角色",
|
||||
"modalAddLcTitle": "🗡️ 新增光錐至 FreeSR",
|
||||
"modalAddRelicTitle": "🛡️ 新增遺器至 FreeSR",
|
||||
"lblSelectLc": "選擇光錐",
|
||||
@@ -818,6 +894,25 @@ export const TRANSLATIONS = {
|
||||
"lblCreativeMode": "クリエイティブモード",
|
||||
"badgeCreative": "クリエイティブ",
|
||||
"toastSlotRemoved": "スロット {slot} を削除しました",
|
||||
"quickActionsBadge": "クイックツール",
|
||||
"qaEnergy50Title": "チームEP 50%",
|
||||
"qaEnergy50Desc": "戦闘開始時の標準EP",
|
||||
"qaEnergy100Title": "チームEP 100%",
|
||||
"qaEnergy100Desc": "必殺技即時発動可能",
|
||||
"qaUnlockAllTitle": "全キャラ解放",
|
||||
"qaUnlockAllDesc": "70体以上の全キャラを完凸で追加",
|
||||
"qaAddLcsTitle": "全★5光円錐を追加",
|
||||
"qaAddLcsDesc": "モチーフ光円錐(重畳5)を倉庫に追加",
|
||||
"qaTeleportTitle": "星穹列車へテレポート",
|
||||
"qaTeleportDesc": "安全エリアの客車へ帰還",
|
||||
"qaClearLineupTitle": "編成をクリア",
|
||||
"qaClearLineupDesc": "全スロットをリセットして再編成",
|
||||
"toastEnergy50": "チームEPを50%に設定しました",
|
||||
"toastEnergy100": "チームEPを100%に設定しました",
|
||||
"toastUnlockedAll": "全キャラ(完凸)を解放しました",
|
||||
"toastAddedAllLcs": "全★5光円錐を追加しました",
|
||||
"toastTeleportedTrain": "星穹列車の客車へテレポートしました",
|
||||
"toastLineupCleared": "編成をクリアしました",
|
||||
"modalAddLcTitle": "🗡️ FreeSRに光円錐を追加",
|
||||
"modalAddRelicTitle": "🛡️ FreeSRに遺物を追加",
|
||||
"lblSelectLc": "光円錐を選択",
|
||||
@@ -1016,6 +1111,25 @@ export const TRANSLATIONS = {
|
||||
"lblCreativeMode": "크리에이티브 모드",
|
||||
"badgeCreative": "크리에이티브",
|
||||
"toastSlotRemoved": "슬롯 {slot}이(가) 삭제되었습니다",
|
||||
"quickActionsBadge": "빠른 작업",
|
||||
"qaEnergy50Title": "파티 에너지 50%",
|
||||
"qaEnergy50Desc": "전투 진입 기본 표준 에너지",
|
||||
"qaEnergy100Title": "파티 에너지 100%",
|
||||
"qaEnergy100Desc": "필살기 즉시 사용 가능",
|
||||
"qaUnlockAllTitle": "전체 캐릭터 해금",
|
||||
"qaUnlockAllDesc": "70명 이상의 모든 캐릭터 풀돌 추가",
|
||||
"qaAddLcsTitle": "모든 5★ 광추 추가",
|
||||
"qaAddLcsDesc": "전용 광추 5중첩 가방 추가",
|
||||
"qaTeleportTitle": "은하열차로 워프",
|
||||
"qaTeleportDesc": "안전 구역인 객차로 귀환",
|
||||
"qaClearLineupTitle": "파티 비우기",
|
||||
"qaClearLineupDesc": "모든 슬롯 초기화 후 재편성",
|
||||
"toastEnergy50": "파티 에너지를 50%로 설정했습니다",
|
||||
"toastEnergy100": "파티 에너지를 100%로 설정했습니다",
|
||||
"toastUnlockedAll": "모든 캐릭터(풀돌)를 해금했습니다",
|
||||
"toastAddedAllLcs": "모든 5★ 광추를 추가했습니다",
|
||||
"toastTeleportedTrain": "은하열차 객차로 워프했습니다",
|
||||
"toastLineupCleared": "파티를 초기화했습니다",
|
||||
"modalAddLcTitle": "🗡️ FreeSR에 광추 추가",
|
||||
"modalAddRelicTitle": "🛡️ FreeSR에 유물 추가",
|
||||
"lblSelectLc": "광추 선택",
|
||||
@@ -1214,6 +1328,25 @@ export const TRANSLATIONS = {
|
||||
"lblCreativeMode": "Chế độ sáng tạo",
|
||||
"badgeCreative": "Sáng tạo",
|
||||
"toastSlotRemoved": "Đã xóa vị trí {slot}",
|
||||
"quickActionsBadge": "Lệnh Nhanh",
|
||||
"qaEnergy50Title": "Năng lượng đội 50%",
|
||||
"qaEnergy50Desc": "Năng lượng khởi đầu tiêu chuẩn",
|
||||
"qaEnergy100Title": "Năng lượng đội 100%",
|
||||
"qaEnergy100Desc": "Sẵn sàng dùng Tuyệt Kỹ ngay",
|
||||
"qaUnlockAllTitle": "Mở khóa toàn bộ nhân vật",
|
||||
"qaUnlockAllDesc": "Thêm đầy đủ hơn 70 nhân vật Tinh Hồn 6",
|
||||
"qaAddLcsTitle": "Thêm toàn bộ Nón 5★",
|
||||
"qaAddLcsDesc": "Nón trấn Tích Tầng 5 vào kho",
|
||||
"qaTeleportTitle": "Dịch chuyển về Đội Tàu Astral",
|
||||
"qaTeleportDesc": "Trở về Toa Tàu an toàn",
|
||||
"qaClearLineupTitle": "Xóa đội hình",
|
||||
"qaClearLineupDesc": "Dọn sạch vị trí để xếp đội mới",
|
||||
"toastEnergy50": "Đã đặt năng lượng đội về 50%",
|
||||
"toastEnergy100": "Đã sạc đầy 100% năng lượng đội",
|
||||
"toastUnlockedAll": "Đã mở khóa toàn bộ nhân vật Tinh Hồn 6",
|
||||
"toastAddedAllLcs": "Đã thêm toàn bộ Nón Ánh Sáng 5 sao",
|
||||
"toastTeleportedTrain": "Đã dịch chuyển về Toa Tàu Astral",
|
||||
"toastLineupCleared": "Đã xóa sạch đội hình",
|
||||
"modalAddLcTitle": "🗡️ Thêm Nón Ánh Sáng vào FreeSR",
|
||||
"modalAddRelicTitle": "🛡️ Thêm Di Vật vào FreeSR",
|
||||
"lblSelectLc": "Chọn Nón Ánh Sáng",
|
||||
@@ -1412,6 +1545,25 @@ export const TRANSLATIONS = {
|
||||
"lblCreativeMode": "Mode Kreatif",
|
||||
"badgeCreative": "Kreatif",
|
||||
"toastSlotRemoved": "Slot {slot} berhasil dihapus",
|
||||
"quickActionsBadge": "Tindakan Cepat",
|
||||
"qaEnergy50Title": "Energi Tim 50%",
|
||||
"qaEnergy50Desc": "Energi awal standar saat masuk battle",
|
||||
"qaEnergy100Title": "Energi Tim 100%",
|
||||
"qaEnergy100Desc": "Ultimate langsung siap pakai",
|
||||
"qaUnlockAllTitle": "Buka Semua Karakter",
|
||||
"qaUnlockAllDesc": "Tambah 70+ karakter E6 ke tas",
|
||||
"qaAddLcsTitle": "Tambah Semua Light Cone 5★",
|
||||
"qaAddLcsDesc": "Light Cone signature S5 ke inventaris",
|
||||
"qaTeleportTitle": "Teleport ke Astral Express",
|
||||
"qaTeleportDesc": "Kembali ke Parlor Car zona aman",
|
||||
"qaClearLineupTitle": "Kosongkan Tim",
|
||||
"qaClearLineupDesc": "Kosongkan semua slot untuk susun ulang",
|
||||
"toastEnergy50": "Energi tim diatur ke 50%",
|
||||
"toastEnergy100": "Energi tim diatur ke 100%",
|
||||
"toastUnlockedAll": "Berhasil membuka semua karakter (E6)",
|
||||
"toastAddedAllLcs": "Berhasil menambahkan semua Light Cone 5★",
|
||||
"toastTeleportedTrain": "Teleportasi ke Parlor Car berhasil",
|
||||
"toastLineupCleared": "Susunan tim berhasil dikosongkan",
|
||||
"modalAddLcTitle": "🗡️ Tambah Light Cone ke FreeSR",
|
||||
"modalAddRelicTitle": "🛡️ Tambah Relic ke FreeSR",
|
||||
"lblSelectLc": "Pilih Light Cone",
|
||||
@@ -1610,6 +1762,25 @@ export const TRANSLATIONS = {
|
||||
"lblCreativeMode": "Modo creativo",
|
||||
"badgeCreative": "Creativo",
|
||||
"toastSlotRemoved": "Posición {slot} eliminada",
|
||||
"quickActionsBadge": "Herramientas Rápidas",
|
||||
"qaEnergy50Title": "Energía de equipo 50%",
|
||||
"qaEnergy50Desc": "Energía inicial estándar en batalla",
|
||||
"qaEnergy100Title": "Energía de equipo 100%",
|
||||
"qaEnergy100Desc": "Habilidad definitiva lista al instante",
|
||||
"qaUnlockAllTitle": "Desbloquear todos los personajes",
|
||||
"qaUnlockAllDesc": "Añadir más de 70 personajes con E6",
|
||||
"qaAddLcsTitle": "Añadir todos los conos de luz 5★",
|
||||
"qaAddLcsDesc": "Conos de luz distintivos S5 al inventario",
|
||||
"qaTeleportTitle": "Teletransporte al Expreso Astral",
|
||||
"qaTeleportDesc": "Volver al vagón panorámico (zona segura)",
|
||||
"qaClearLineupTitle": "Vaciar equipo",
|
||||
"qaClearLineupDesc": "Limpiar casillas para formar nuevo equipo",
|
||||
"toastEnergy50": "Energía del equipo ajustada al 50%",
|
||||
"toastEnergy100": "Energía del equipo ajustada al 100%",
|
||||
"toastUnlockedAll": "Todos los personajes desbloqueados (E6)",
|
||||
"toastAddedAllLcs": "Todos los conos de 5★ añadidos",
|
||||
"toastTeleportedTrain": "Teletransportado al Expreso Astral",
|
||||
"toastLineupCleared": "Equipo vaciado correctamente",
|
||||
"modalAddLcTitle": "🗡️ Añadir cono de luz a FreeSR",
|
||||
"modalAddRelicTitle": "🛡️ Añadir reliquia a FreeSR",
|
||||
"lblSelectLc": "Seleccionar cono de luz",
|
||||
@@ -1808,6 +1979,25 @@ export const TRANSLATIONS = {
|
||||
"lblCreativeMode": "Mode créatif",
|
||||
"badgeCreative": "Créatif",
|
||||
"toastSlotRemoved": "Emplacement {slot} supprimé",
|
||||
"quickActionsBadge": "Outils Rapides",
|
||||
"qaEnergy50Title": "Énergie d'équipe 50%",
|
||||
"qaEnergy50Desc": "Énergie de départ standard en combat",
|
||||
"qaEnergy100Title": "Énergie d'équipe 100%",
|
||||
"qaEnergy100Desc": "Ultime prêt instantanément",
|
||||
"qaUnlockAllTitle": "Débloquer tous les personnages",
|
||||
"qaUnlockAllDesc": "Ajouter 70+ personnages au rang E6",
|
||||
"qaAddLcsTitle": "Ajouter tous les cônes 5★",
|
||||
"qaAddLcsDesc": "Cônes signatures S5 à l'inventaire",
|
||||
"qaTeleportTitle": "Téléportation à l'Astral Express",
|
||||
"qaTeleportDesc": "Retourner au wagon-salon (zone sûre)",
|
||||
"qaClearLineupTitle": "Vider l'équipe",
|
||||
"qaClearLineupDesc": "Effacer les emplacements pour recomposer",
|
||||
"toastEnergy50": "Énergie d'équipe réglée à 50%",
|
||||
"toastEnergy100": "Énergie d'équipe réglée à 100%",
|
||||
"toastUnlockedAll": "Tous les personnages débloqués (E6)",
|
||||
"toastAddedAllLcs": "Tous les cônes de lumière 5★ ajoutés",
|
||||
"toastTeleportedTrain": "Téléporté au wagon-salon de l'Astral Express",
|
||||
"toastLineupCleared": "Équipe réinitialisée",
|
||||
"modalAddLcTitle": "🗡️ Ajouter cône de lumière à FreeSR",
|
||||
"modalAddRelicTitle": "🛡️ Ajouter relique à FreeSR",
|
||||
"lblSelectLc": "Sélectionner cône de lumière",
|
||||
@@ -2006,6 +2196,25 @@ export const TRANSLATIONS = {
|
||||
"lblCreativeMode": "Kreativmodus",
|
||||
"badgeCreative": "Kreativ",
|
||||
"toastSlotRemoved": "Platz {slot} entfernt",
|
||||
"quickActionsBadge": "Schnellbefehle",
|
||||
"qaEnergy50Title": "Team-Energie 50%",
|
||||
"qaEnergy50Desc": "Standard-Startenergie im Kampf",
|
||||
"qaEnergy100Title": "Team-Energie 100%",
|
||||
"qaEnergy100Desc": "Ultimate sofort einsatzbereit",
|
||||
"qaUnlockAllTitle": "Alle Figuren freischalten",
|
||||
"qaUnlockAllDesc": "Alle 70+ Figuren auf E6 hinzufügen",
|
||||
"qaAddLcsTitle": "Alle 5★-Lichtkegel hinzufügen",
|
||||
"qaAddLcsDesc": "Signatur-Lichtkegel (S5) ins Inventar",
|
||||
"qaTeleportTitle": "Zum Astralexpress teleportieren",
|
||||
"qaTeleportDesc": "Zurück zum Parlor Car (Sicherheitszone)",
|
||||
"qaClearLineupTitle": "Team leeren",
|
||||
"qaClearLineupDesc": "Alle Plätze leeren für neues Team",
|
||||
"toastEnergy50": "Team-Energie auf 50% gesetzt",
|
||||
"toastEnergy100": "Team-Energie auf 100% gesetzt",
|
||||
"toastUnlockedAll": "Alle Figuren auf E6 freigeschaltet",
|
||||
"toastAddedAllLcs": "Alle 5★-Lichtkegel hinzugefügt",
|
||||
"toastTeleportedTrain": "Zum Astralexpress teleportiert",
|
||||
"toastLineupCleared": "Team-Plätze geleert",
|
||||
"modalAddLcTitle": "🗡️ Lichtkegel zu FreeSR hinzufügen",
|
||||
"modalAddRelicTitle": "🛡️ Relikt zu FreeSR hinzufügen",
|
||||
"lblSelectLc": "Lichtkegel auswählen",
|
||||
@@ -2204,6 +2413,25 @@ export const TRANSLATIONS = {
|
||||
"lblCreativeMode": "Творческий режим",
|
||||
"badgeCreative": "Творческий",
|
||||
"toastSlotRemoved": "Слот {slot} удален",
|
||||
"quickActionsBadge": "Быстрые команды",
|
||||
"qaEnergy50Title": "Энергия отряда 50%",
|
||||
"qaEnergy50Desc": "Стандартная начальная энергия",
|
||||
"qaEnergy100Title": "Энергия отряда 100%",
|
||||
"qaEnergy100Desc": "Сверхспособность сразу готова",
|
||||
"qaUnlockAllTitle": "Разблокировать всех героев",
|
||||
"qaUnlockAllDesc": "Добавить 70+ героев с Эйдолонами 6",
|
||||
"qaAddLcsTitle": "Добавить все 5★ конусы",
|
||||
"qaAddLcsDesc": "Сигнатурные конусы (Н5) в инвентарь",
|
||||
"qaTeleportTitle": "Телепорт на Звёздный экспресс",
|
||||
"qaTeleportDesc": "Возврат в общий вагон",
|
||||
"qaClearLineupTitle": "Очистить отряд",
|
||||
"qaClearLineupDesc": "Сбросить слоты для нового состава",
|
||||
"toastEnergy50": "Энергия отряда установлена на 50%",
|
||||
"toastEnergy100": "Энергия отряда установлена на 100%",
|
||||
"toastUnlockedAll": "Все персонажи разблокированы (Э6)",
|
||||
"toastAddedAllLcs": "Все 5★ световые конусы добавлены",
|
||||
"toastTeleportedTrain": "Телепортирован в общий вагон экспресса",
|
||||
"toastLineupCleared": "Слоты отряда очищены",
|
||||
"modalAddLcTitle": "🗡️ Добавить световой конус в FreeSR",
|
||||
"modalAddRelicTitle": "🛡️ Добавить реликвию в FreeSR",
|
||||
"lblSelectLc": "Выберите световой конус",
|
||||
@@ -2402,6 +2630,25 @@ export const TRANSLATIONS = {
|
||||
"lblCreativeMode": "Modo Criativo",
|
||||
"badgeCreative": "Criativo",
|
||||
"toastSlotRemoved": "Espaço {slot} removido",
|
||||
"quickActionsBadge": "Ações Rápidas",
|
||||
"qaEnergy50Title": "Energia da Equipe 50%",
|
||||
"qaEnergy50Desc": "Energia inicial padrão de batalha",
|
||||
"qaEnergy100Title": "Energia da Equipe 100%",
|
||||
"qaEnergy100Desc": "Perícia Suprema pronta na hora",
|
||||
"qaUnlockAllTitle": "Desbloquear Todos os Personagens",
|
||||
"qaUnlockAllDesc": "Adicionar todos os 70+ personagens E6",
|
||||
"qaAddLcsTitle": "Adicionar Todos os Cones 5★",
|
||||
"qaAddLcsDesc": "Cones de Luz assinatura S5 ao inventário",
|
||||
"qaTeleportTitle": "Teleporte para o Expresso Astral",
|
||||
"qaTeleportDesc": "Retornar ao Vagão Panorâmico seguro",
|
||||
"qaClearLineupTitle": "Limpar Equipe",
|
||||
"qaClearLineupDesc": "Esvaziar espaços para nova formação",
|
||||
"toastEnergy50": "Energia da equipe definida em 50%",
|
||||
"toastEnergy100": "Energia da equipe definida em 100%",
|
||||
"toastUnlockedAll": "Todos os personagens desbloqueados (E6)",
|
||||
"toastAddedAllLcs": "Todos os Cones de Luz 5★ adicionados",
|
||||
"toastTeleportedTrain": "Teleportado para o Expresso Astral",
|
||||
"toastLineupCleared": "Equipe limpa com sucesso",
|
||||
"modalAddLcTitle": "🗡️ Adicionar Cone de Luz ao FreeSR",
|
||||
"modalAddRelicTitle": "🛡️ Adicionar Relíquia ao FreeSR",
|
||||
"lblSelectLc": "Selecionar Cone de Luz",
|
||||
|
||||
Reference in new issue
Block a user