diff --git a/.gitignore b/.gitignore
index 14f186c..a0b32be 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,7 @@ config.local.json
config.local.js
.env
.env.local
+
+# Python
+__pycache__/
+*.py[cod]
diff --git a/js/app.js b/js/app.js
index 8b61ad6..300da41 100644
--- a/js/app.js
+++ b/js/app.js
@@ -1484,7 +1484,7 @@ function renderMiniBattleSummary() {
const elemColor = ELEMENT_COLORS[meta.element] || '#38bdf8';
const pct = getAvatarDamagePercent(av, report.team_total_damage || 0, hasAvatarDamage);
const iconUrl = getAvatarIconUrl(av.avatar_id);
- const rankStr = av.rank !== undefined ? `E${av.rank}` : '';
+ const rankStr = report.is_currency_wars ? (av.rank ? `${av.rank}★` : '1★') : (av.rank !== undefined ? `E${av.rank}` : '');
const lvlStr = av.level ? `Lv.${av.level}` : '';
const metaSub = [lvlStr, rankStr, translatePath(meta.path)].filter(Boolean).join(' • ');
@@ -9230,6 +9230,7 @@ function renderEmptyDamageAnalyst() {
function orderBattleReportAvatars(avatars) {
if (!Array.isArray(avatars) || avatars.length < 2) return avatars || [];
+ if (analystState.currentReport?.is_currency_wars || avatars.length > 4) return avatars;
const lineup = state.statusData?.lineups;
if (!lineup) return avatars;
@@ -9309,7 +9310,10 @@ function renderDamageAnalyst() {
}
}
- const colors = ['#ef4444', '#38bdf8', '#34d399', '#fbbf24', '#c084fc', '#ec4899'];
+ const colors = [
+ '#ef4444', '#38bdf8', '#34d399', '#fbbf24', '#c084fc', '#ec4899',
+ '#f97316', '#14b8a6', '#a855f7', '#06b6d4', '#eab308', '#f43f5e'
+ ];
// Team Share Bar
if (el.analystShareBarContainer) {
@@ -9394,7 +9398,7 @@ function renderDamageAnalyst() {
${info.name}
- Lv.${a.level || 80} E${a.rank !== undefined ? a.rank : 0}
+ Lv.${a.level || 80} ${report.is_currency_wars ? `${a.rank || 1}★` : `E${a.rank !== undefined ? a.rank : 0}`}
${translatePath(info.path)} • ${translateElement(info.element)}
diff --git a/js/avatars-data.js b/js/avatars-data.js
index e02c1bf..1413ce6 100644
--- a/js/avatars-data.js
+++ b/js/avatars-data.js
@@ -2079,6 +2079,20 @@ export const AVATAR_METADATA = {
"element": "Lightning",
"rarity": 5,
"hasExRank": false
+ },
+ "6042": {
+ "names": {
+ "th": "King Pom-Pom",
+ "en": "King Pom-Pom",
+ "zh-CN": "帕姆大王",
+ "zh-TW": "帕姆大王",
+ "ja": "パム大王",
+ "ko": "폼폼 대왕"
+ },
+ "path": "Elation",
+ "element": "Physical",
+ "rarity": 5,
+ "hasExRank": false
}
};
diff --git a/js/command-assistant.mjs b/js/command-assistant.mjs
index 94cf5de..beb63b9 100644
--- a/js/command-assistant.mjs
+++ b/js/command-assistant.mjs
@@ -16,6 +16,7 @@ export const COMMANDS = [
spec('/cw help', 'แสดงวิธีใช้คำสั่ง CW'), spec('/cw status', 'ดูเงิน HP เลเวล และสถานะรอบ CW'),
spec('/cw list', 'แสดงรายการ ID ของ CW', [arg('category', 'เลือกชนิดข้อมูล', ['role','equip','orb','consumable','forge'])]),
...['gold','hp','exp'].map(p => spec('/cw '+p, p === 'exp' ? 'เพิ่ม EXP ในรอบ CW' : 'ตั้งค่า '+p+' ในรอบ CW', [arg(p === 'exp' ? 'gain' : 'total', p === 'hp' ? 'HP 1 ถึงเพดานของรอบปัจจุบัน' : 'จำนวนเต็มไม่ติดลบ (เป็นยอดรวม ยกเว้น exp ที่เป็นจำนวนเพิ่ม)', ['1','10','100','1000'])])),
+ ...['tbpower','tb','trailblaze'].map(p => spec('/cw '+p, 'ตั้งค่าพลังบุกเบิก (Trailblaze Power / เหรียญร้านรถไฟ) ในรอบ CW', [arg('total', 'จำนวนพลังบุกเบิก เช่น 10, 50, 100', ['10','50','100','500'])])),
spec('/cw role', 'เพิ่มตัวละคร CW (ใช้ได้ใน Preparation)', [arg('roleID', 'เลือก Role ID ของ CW', 'cw_roles'), arg('star', 'ดาวที่มีข้อมูลรองรับสำหรับ Role นี้', 'cw_stars'), quantity()]),
...['equip','orb','consumable','forge'].map(p => spec('/cw '+p, 'เพิ่ม '+p+' ในรอบ CW (Preparation)', [arg('itemID', 'เลือก ID จากข้อมูล CW ของ Client', 'cw_'+p), quantity()])),
];