diff --git a/mengsan/assets/intent/Intent_attack_1.png b/mengsan/assets/intent/Intent_attack_1.png new file mode 100644 index 0000000..be5af18 Binary files /dev/null and b/mengsan/assets/intent/Intent_attack_1.png differ diff --git a/mengsan/assets/intent/Intent_attack_1.webp b/mengsan/assets/intent/Intent_attack_1.webp deleted file mode 100644 index aff1c5f..0000000 Binary files a/mengsan/assets/intent/Intent_attack_1.webp and /dev/null differ diff --git a/mengsan/assets/intent/Intent_attack_2.png b/mengsan/assets/intent/Intent_attack_2.png new file mode 100644 index 0000000..c699c95 Binary files /dev/null and b/mengsan/assets/intent/Intent_attack_2.png differ diff --git a/mengsan/assets/intent/Intent_attack_2.webp b/mengsan/assets/intent/Intent_attack_2.webp deleted file mode 100644 index 9ea0c8a..0000000 Binary files a/mengsan/assets/intent/Intent_attack_2.webp and /dev/null differ diff --git a/mengsan/assets/intent/Intent_attack_3.png b/mengsan/assets/intent/Intent_attack_3.png new file mode 100644 index 0000000..652d316 Binary files /dev/null and b/mengsan/assets/intent/Intent_attack_3.png differ diff --git a/mengsan/assets/intent/Intent_attack_3.webp b/mengsan/assets/intent/Intent_attack_3.webp deleted file mode 100644 index c1bd034..0000000 Binary files a/mengsan/assets/intent/Intent_attack_3.webp and /dev/null differ diff --git a/mengsan/assets/intent/Intent_attack_4.png b/mengsan/assets/intent/Intent_attack_4.png new file mode 100644 index 0000000..5a08089 Binary files /dev/null and b/mengsan/assets/intent/Intent_attack_4.png differ diff --git a/mengsan/assets/intent/Intent_attack_4.webp b/mengsan/assets/intent/Intent_attack_4.webp deleted file mode 100644 index c1fa417..0000000 Binary files a/mengsan/assets/intent/Intent_attack_4.webp and /dev/null differ diff --git a/mengsan/assets/intent/Intent_attack_5.png b/mengsan/assets/intent/Intent_attack_5.png new file mode 100644 index 0000000..9416c00 Binary files /dev/null and b/mengsan/assets/intent/Intent_attack_5.png differ diff --git a/mengsan/assets/intent/Intent_attack_5.webp b/mengsan/assets/intent/Intent_attack_5.webp deleted file mode 100644 index d20f23e..0000000 Binary files a/mengsan/assets/intent/Intent_attack_5.webp and /dev/null differ diff --git a/mengsan/assets/intent/Intent_debuff.png b/mengsan/assets/intent/Intent_debuff.png new file mode 100644 index 0000000..6097129 Binary files /dev/null and b/mengsan/assets/intent/Intent_debuff.png differ diff --git a/mengsan/assets/intent/Intent_debuff.webp b/mengsan/assets/intent/Intent_debuff.webp deleted file mode 100644 index 66bf4ba..0000000 Binary files a/mengsan/assets/intent/Intent_debuff.webp and /dev/null differ diff --git a/mengsan/runtime/dialogue.js b/mengsan/runtime/dialogue.js index dfa1bd1..1937daf 100644 --- a/mengsan/runtime/dialogue.js +++ b/mengsan/runtime/dialogue.js @@ -30,8 +30,9 @@ export const playDialogue = (lines, options = {}) => new Promise(resolve => { const overlay = ui.create.div(".mengsan-dialogue-overlay-shuying", ui.window); const stage = ui.create.div(".mengsan-dialogue-stage-shuying", overlay); ui.create.div(".mengsan-dialogue-chapter-shuying", options.title || "剧情", stage); - const portraitFrame = ui.create.div(".mengsan-dialogue-portrait-frame-shuying", stage); const textBox = ui.create.div(".mengsan-dialogue-box-shuying", stage); + const portraitFrame = ui.create.div( + ".mengsan-dialogue-portrait-frame-shuying", textBox); const speaker = ui.create.div(".mengsan-dialogue-speaker-shuying", textBox); const text = ui.create.div(".mengsan-dialogue-text-shuying", textBox); const progress = ui.create.div(".mengsan-dialogue-progress-shuying", textBox); diff --git a/mengsan/runtime/intent-display.js b/mengsan/runtime/intent-display.js index 9006752..472baaa 100644 --- a/mengsan/runtime/intent-display.js +++ b/mengsan/runtime/intent-display.js @@ -36,7 +36,7 @@ export function mountEnemyIntent(player, session, assetBase, document, debuffIcon.className = "mengsan-intent-icon-shuying"; debuffIcon.alt = "Debuff"; debuffIcon.decoding = "async"; - debuffIcon.src = `${assetBase}/assets/intent/Intent_debuff.webp`; + debuffIcon.src = `${assetBase}/assets/intent/Intent_debuff.png`; const debuffAmount = document.createElement("span"); debuffLine.append(debuffIcon, debuffAmount); badge.append(damageLine, debuffLine); @@ -98,7 +98,7 @@ export function mountEnemyIntent(player, session, assetBase, document, } const src = deathBlow ? `${assetBase}/assets/intent/Intent_death_blow.png` : - `${assetBase}/assets/intent/Intent_attack_${tier}.webp`; + `${assetBase}/assets/intent/Intent_attack_${tier}.png`; if (icon.getAttribute("src") !== src) icon.src = src; icon.alt = deathBlow ? "Death Blow" : "Attack"; const label = `${deathBlow ? "Death Blow" : "Attack"}: ` + diff --git a/mengsan/style.css b/mengsan/style.css index 03ec96d..f63ed4f 100644 --- a/mengsan/style.css +++ b/mengsan/style.css @@ -319,8 +319,8 @@ .mengsan-dialogue-portrait-frame-shuying { position: absolute !important; - left: clamp(5vw, 10vw, 150px) !important; - bottom: clamp(150px, 27vh, 238px) !important; + left: 0 !important; + bottom: calc(100% + 30px) !important; top: auto !important; width: 144px !important; height: 202px !important; @@ -488,8 +488,6 @@ .mengsan-panel-shuying { padding: 14px; } .mengsan-title-shuying { font-size: 24px; } .mengsan-dialogue-portrait-frame-shuying { - left: 5vw !important; - bottom: clamp(142px, 31vh, 206px) !important; width: 104px !important; height: 146px !important; padding: 4px; @@ -1167,7 +1165,6 @@ button.mengsan-card-choice-skip-shuying:hover { color: #fff1d5; border-color: #d .mengsan-flow-panel-shuying > .mengsan-title-shuying { font-size: 30px; } .mengsan-flow-panel-shuying .mengsan-choice-shuying { padding: 14px; } .mengsan-dialogue-box-shuying { bottom: 36px !important; } - .mengsan-dialogue-portrait-frame-shuying { bottom: clamp(186px, 36vh, 242px) !important; } } @media (max-height: 500px) { .mengsan-flow-overlay-shuying { padding-top: 70px; padding-bottom: 12px; } @@ -1175,7 +1172,10 @@ button.mengsan-card-choice-skip-shuying:hover { color: #fff1d5; border-color: #d .mengsan-flow-panel-shuying > .mengsan-description-shuying { margin-bottom: 16px; } .mengsan-dialogue-box-shuying { bottom: 28px !important; min-height: 100px; max-height: 50vh; padding: 24px 20px 20px; } .mengsan-dialogue-text-shuying { max-height: 24vh; } - .mengsan-dialogue-portrait-frame-shuying { bottom: 48% !important; height: 110px !important; width: 80px !important; } + .mengsan-dialogue-portrait-frame-shuying { + height: 110px !important; + width: 80px !important; + } } @media (prefers-reduced-motion: reduce) { .mengsan-flow-panel-shuying *, .mengsan-flow-menu-shuying { animation: none !important; transition: none !important; }