fix: add Aha signature lightcone 23065 metadata, artwork assets, and inspector stats
This commit is contained in:
1 parent
e1cbda63cf
commit
42efabfe9a
3 files changed
+72
-16
No files matched your search
Binary file not shown.
|
After Width: | Height: | Size: 2.0 MiB |
@@ -1423,6 +1423,7 @@ const SIGNATURE_LIGHTCONES = {
|
||||
1404: 23037, // Anaxa -> If Time Were a Flower
|
||||
1405: 23038, // Tribbie
|
||||
1406: 23039, // Mydei
|
||||
1511: 23065, // Aeon ★ Aha -> Upon the First Echo of "Aha"
|
||||
8001: 24001, // Trailblazer Male Destruction -> On the Fall of an Aeon
|
||||
8002: 24001, // Trailblazer Female Destruction
|
||||
8003: 24002, // Trailblazer Male Preservation -> Texture of Memories
|
||||
@@ -1442,9 +1443,27 @@ const RECOMMENDED_RELIC_BUILDS = {
|
||||
Hunt: { cavern: 120, planar: 309, name: "Valorous (4) + Rutilant Arena (2)" },
|
||||
Destruction: { cavern: 119, planar: 315, name: "Iron Cavalry (4) + Kalpagni (2)" },
|
||||
Erudition: { cavern: 115, planar: 306, name: "Grand Duke (4) + Inert Salsotto (2)" },
|
||||
Remembrance: { cavern: 114, planar: 310, name: "Messenger (4) + Broken Keel (2)" }
|
||||
Remembrance: { cavern: 114, planar: 310, name: "Messenger (4) + Broken Keel (2)" },
|
||||
Elation: { cavern: 115, planar: 306, name: "Grand Duke (4) + Inert Salsotto (2)" }
|
||||
};
|
||||
|
||||
// Lightcone Art URL Resolvers (Local asset -> Gachabase -> StarRailRes)
|
||||
function getLightconeArtSrc(lcId) {
|
||||
const id = parseInt(lcId, 10);
|
||||
if (id === 23065) {
|
||||
return './assets/lightcones/23065.png';
|
||||
}
|
||||
return `https://raw.githubusercontent.com/Mar-7th/StarRailRes/master/image/light_cone_preview/${id}.png`;
|
||||
}
|
||||
|
||||
function getLightconeArtFallback(lcId) {
|
||||
const id = parseInt(lcId, 10);
|
||||
if (id === 23065) {
|
||||
return 'https://cdn.gachabase.net/hsr/assets/500cfc18698932759756f6b3ba4db417.png';
|
||||
}
|
||||
return `https://cdn.jsdelivr.net/gh/Mar-7th/StarRailRes@master/image/light_cone_preview/${id}.png`;
|
||||
}
|
||||
|
||||
// Modal Sub-tabs Handler
|
||||
function switchModalSubtab(targetId) {
|
||||
const tabBtns = document.querySelectorAll('.modal-subtab-btn');
|
||||
@@ -1522,12 +1541,14 @@ function getLightconePassiveDesc(lcId, rank = 5) {
|
||||
23032: `ทำให้ Energy Regeneration Rate ของผู้สวมใส่เพิ่มขึ้น <strong>${12 + (r - 1) * 2}%</strong> เมื่อปล่อยสกิลต่อสู้หรือท่าไม้ตาย จะเพิ่ม CRIT DMG ของพันธมิตร <strong>${48 + (r - 1) * 8}%</strong>`,
|
||||
23034: `ทำให้ CRIT Rate ของผู้สวมใส่เพิ่มขึ้น <strong>${12 + (r - 1) * 2}%</strong> เมื่อปล่อยท่าไม้ตาย จะสร้าง DMG น้ำแข็งเพิ่มเติม <strong>${60 + (r - 1) * 10}%</strong> ของ ATK แก่ศัตรูทั้งหมด`,
|
||||
23036: `ทำให้ HP สูงสุดของผู้สวมใส่เพิ่มขึ้น <strong>${30 + (r - 1) * 5}%</strong> และเมื่ออยู่ในสนามรบ สมาชิกทีมทุกคนสร้าง DMG เพิ่มขึ้น <strong>${24 + (r - 1) * 4}%</strong>`,
|
||||
23065: `ทำให้ความเร็วพื้นฐานของผู้สวมใส่เพิ่มขึ้น <strong>${12 + (r - 1) * 3}</strong> เมื่อใช้สกิลการต่อสู้กับเพื่อนร่วมทีม 1 ตัว จะได้รับ "Punchline" 10 แต้ม (เกิดได้สูงสุด 1 ครั้งทุกๆ 1 เทิร์น) และทำให้เพื่อนร่วมทีมทั้งหมดเมิน DEF ศัตรู <strong>${16 + (r - 1) * 4}%</strong> เมื่อสร้าง DMG ในการต่อสู้นี้ (ไม่ซ้อนทับ)`,
|
||||
24001: `เมื่อผู้สวมใส่โจมตี จะเพิ่ม ATK <strong>${8 + (r - 1) * 2}%</strong> สูงสุด 4 ชั้น และเมื่อทำลายจุดอ่อนศัตรู จะเพิ่ม DMG <strong>${12 + (r - 1) * 3}%</strong> เป็นเวลา 2 เทิร์น`
|
||||
};
|
||||
|
||||
if (passives[id]) return passives[id];
|
||||
|
||||
const meta = LIGHTCONE_METADATA[id];
|
||||
if (meta?.desc) return meta.desc;
|
||||
const pathName = meta ? translatePath(meta.path) : "สายต่อสู้";
|
||||
return `เพิ่มค่าสถานะพื้นฐานตามสาย <strong>${pathName}</strong> และเพิ่มประสิทธิภาพความเสียหายและการสนับสนุน <strong>${12 + (r - 1) * 3}%</strong> เมื่อเข้าสู่การต่อสู้`;
|
||||
}
|
||||
@@ -1557,8 +1578,8 @@ function updateModalLcFullView(lcId, rank = 5, level = 80) {
|
||||
if (el.modalLcFullImg) {
|
||||
el.modalLcFullImg.style.display = 'block';
|
||||
if (el.modalLcNoArt) el.modalLcNoArt.style.display = 'none';
|
||||
const primarySrc = `https://raw.githubusercontent.com/Mar-7th/StarRailRes/master/image/light_cone_preview/${id}.png`;
|
||||
const fallbackSrc = `https://cdn.jsdelivr.net/gh/Mar-7th/StarRailRes@master/image/light_cone_preview/${id}.png`;
|
||||
const primarySrc = getLightconeArtSrc(id);
|
||||
const fallbackSrc = getLightconeArtFallback(id);
|
||||
el.modalLcFullImg.src = primarySrc;
|
||||
el.modalLcFullImg.onerror = function() {
|
||||
if (this.src !== fallbackSrc) {
|
||||
@@ -1766,8 +1787,15 @@ function renderModalOverviewTab(avatarId) {
|
||||
|
||||
// Equipped LC Card Glance
|
||||
if (el.overviewLcThumb) {
|
||||
el.overviewLcThumb.src = `https://raw.githubusercontent.com/Mar-7th/StarRailRes/master/icon/light_cone/${lcId}.png`;
|
||||
el.overviewLcThumb.onerror = function() { this.src = './assets/logo.png'; };
|
||||
el.overviewLcThumb.src = getLightconeArtSrc(lcId);
|
||||
el.overviewLcThumb.onerror = function() {
|
||||
const fallback = getLightconeArtFallback(lcId);
|
||||
if (this.src !== fallback) {
|
||||
this.src = fallback;
|
||||
} else {
|
||||
this.src = './assets/logo.png';
|
||||
}
|
||||
};
|
||||
}
|
||||
if (el.overviewLcName) el.overviewLcName.textContent = lcInfo.name || `Light Cone ${lcId}`;
|
||||
if (el.overviewLcRank) el.overviewLcRank.textContent = `S${lcRank} • Lv.${lcLevel}`;
|
||||
@@ -2650,9 +2678,9 @@ function renderShowcaseCard(avatarId) {
|
||||
const baseDef = meta.rarity === 5 ? 600 : 573;
|
||||
const baseSpd = 100;
|
||||
|
||||
const lcHp = lcMeta.rarity === 5 ? 1164 : (lcMeta.rarity === 4 ? 953 : 846);
|
||||
const lcAtk = lcMeta.rarity === 5 ? 582 : (lcMeta.rarity === 4 ? 423 : 317);
|
||||
const lcDef = lcMeta.rarity === 5 ? 529 : (lcMeta.rarity === 4 ? 396 : 264);
|
||||
const lcHp = lcMeta.hp || (lcMeta.rarity === 5 ? 1164 : (lcMeta.rarity === 4 ? 953 : 846));
|
||||
const lcAtk = lcMeta.atk || (lcMeta.rarity === 5 ? 582 : (lcMeta.rarity === 4 ? 423 : 317));
|
||||
const lcDef = lcMeta.def || (lcMeta.rarity === 5 ? 529 : (lcMeta.rarity === 4 ? 396 : 264));
|
||||
|
||||
// 2. Relics & Set Bonuses
|
||||
const avatarRelics = (state.fullFreesrData?.relics || []).filter(r => r.equip_avatar === aid);
|
||||
@@ -2757,8 +2785,8 @@ function renderShowcaseCard(avatarId) {
|
||||
|
||||
const primaryPortrait = `https://raw.githubusercontent.com/Mar-7th/StarRailRes/master/image/character_portrait/${aid}.png`;
|
||||
const fallbackPortrait = `https://cdn.jsdelivr.net/gh/Mar-7th/StarRailRes@master/image/character_portrait/${aid}.png`;
|
||||
const lcArtThumb = `https://raw.githubusercontent.com/Mar-7th/StarRailRes/master/image/light_cone_preview/${lcId}.png`;
|
||||
const fallbackLcThumb = `https://cdn.jsdelivr.net/gh/Mar-7th/StarRailRes@master/image/light_cone_preview/${lcId}.png`;
|
||||
const lcArtThumb = getLightconeArtSrc(lcId);
|
||||
const fallbackLcThumb = getLightconeArtFallback(lcId);
|
||||
|
||||
el.showcaseCardContainer.innerHTML = `
|
||||
<!-- 1. Left Splash Art Column -->
|
||||
@@ -3457,8 +3485,8 @@ function renderLightconesGrid() {
|
||||
</div>
|
||||
` : '';
|
||||
|
||||
const primaryImg = `https://raw.githubusercontent.com/Mar-7th/StarRailRes/master/image/light_cone_preview/${lc.item_id}.png`;
|
||||
const fallbackImg = `https://cdn.jsdelivr.net/gh/Mar-7th/StarRailRes@master/image/light_cone_preview/${lc.item_id}.png`;
|
||||
const primaryImg = getLightconeArtSrc(lc.item_id);
|
||||
const fallbackImg = getLightconeArtFallback(lc.item_id);
|
||||
|
||||
card.innerHTML = `
|
||||
<img class="eq-tile-img" src="${primaryImg}" onerror="if(this.src!=='${fallbackImg}')this.src='${fallbackImg}';else this.src='./assets/logo.png';" alt="${meta.name}">
|
||||
@@ -3563,15 +3591,18 @@ function showLcInspector(lc) {
|
||||
avatarOpts += `<option value="${av.avatar_id}" ${sel}>${info.name} (ID: ${av.avatar_id})</option>`;
|
||||
});
|
||||
|
||||
const hp = lcMeta.rarity === 5 ? 1164 : (lcMeta.rarity === 4 ? 953 : 846);
|
||||
const atk = lcMeta.rarity === 5 ? 582 : (lcMeta.rarity === 4 ? 423 : 317);
|
||||
const def = lcMeta.rarity === 5 ? 529 : (lcMeta.rarity === 4 ? 396 : 264);
|
||||
const hp = lcMeta.hp || (lcMeta.rarity === 5 ? 1164 : (lcMeta.rarity === 4 ? 953 : 846));
|
||||
const atk = lcMeta.atk || (lcMeta.rarity === 5 ? 582 : (lcMeta.rarity === 4 ? 423 : 317));
|
||||
const def = lcMeta.def || (lcMeta.rarity === 5 ? 529 : (lcMeta.rarity === 4 ? 396 : 264));
|
||||
|
||||
const primaryThumb = getLightconeArtSrc(lc.item_id);
|
||||
const fallbackThumb = getLightconeArtFallback(lc.item_id);
|
||||
|
||||
el.eqInspectorCard.style.display = 'flex';
|
||||
el.eqInspectorCard.innerHTML = `
|
||||
<div style="display: flex; justify-content: space-between; align-items: flex-start;">
|
||||
<div class="eq-inspector-hero">
|
||||
<img class="eq-inspector-thumb" src="https://raw.githubusercontent.com/Mar-7th/StarRailRes/master/image/light_cone_preview/${lc.item_id}.png" onerror="this.src='./assets/logo.png'" alt="${lcInfo.name}">
|
||||
<img class="eq-inspector-thumb" src="${primaryThumb}" onerror="if(this.src!=='${fallbackThumb}')this.src='${fallbackThumb}';else this.src='./assets/logo.png';" alt="${lcInfo.name}">
|
||||
<div class="eq-inspector-info">
|
||||
<div class="eq-inspector-title">${lcInfo.name}</div>
|
||||
<div class="eq-inspector-stars">${'★'.repeat(lcInfo.rarity || 5)}</div>
|
||||
|
||||
@@ -3098,6 +3098,31 @@ export const LIGHTCONE_METADATA = {
|
||||
"rarity": 5,
|
||||
"path": "Elation"
|
||||
},
|
||||
"23065": {
|
||||
"names": {
|
||||
"th": "เสียงสะท้อนแรกของ \"Aha\"",
|
||||
"en": "Upon the First Echo of \"Aha\"",
|
||||
"zh-CN": "「阿哈」最初的啼鸣",
|
||||
"zh-TW": "「阿哈」最初的啼鳴",
|
||||
"ja": "「アハ」最初の啼き声",
|
||||
"ko": "「아하」 최초의 울음소리",
|
||||
"ru": "При первом эхе Ахи",
|
||||
"vi": "Tiếng Vọng Đầu Tiên Của \"Aha\"",
|
||||
"id": "Upon the First Echo of \"Aha\"",
|
||||
"es": "Tras el primer eco de Aha",
|
||||
"fr": "Au premier écho d'Aha",
|
||||
"de": "Beim ersten Echo von Aha",
|
||||
"pt": "No Primeiro Eco de Aha"
|
||||
},
|
||||
"rarity": 5,
|
||||
"path": "Elation",
|
||||
"hp": 952,
|
||||
"atk": 582,
|
||||
"def": 529,
|
||||
"skill_name": "IMPROV TOUR",
|
||||
"desc": "เพิ่มความเร็วพื้นฐานของผู้สวมใส่ 12 เมื่อใช้สกิลการต่อสู้กับเป้าหมายฝ่ายเรา 1 ตัว จะได้รับ \"Punchline\" 10 แต้ม เอฟเฟกต์นี้เกิดขึ้นได้มากสุด 1 ครั้งในทุก 1 เทิร์น จากนั้นจะทำให้ฝ่ายเราทั้งหมดเพิกเฉยต่อ DEF ของเป้าหมายศัตรู 16% เมื่อสร้าง DMG ในการต่อสู้นี้ โดยเอฟเฟกต์นี้ไม่สามารถซ้อนทับได้",
|
||||
"desc_en": "Increases the wearer's base Speed by 12. When using a Skill on one other ally, gains 10 Punchline. This effect can trigger at most once every interval of 1 turn(s). Then, causes all allies to ignore 16% of the enemy target's DEF when dealing DMG during this combat. This effect cannot be stacked."
|
||||
},
|
||||
"24000": {
|
||||
"names": {
|
||||
"th": "On the Fall of an Aeon",
|
||||
|
||||
Reference in new issue
Block a user