Planer: Durchschnittliche MaxHP (ohne Tanks) neben unmitigiertem Schaden anzeigen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
xziino 2026-05-23 12:59:16 +02:00
parent 5dc61754f2
commit 19922d79aa
2 changed files with 18 additions and 1 deletions

View File

@ -279,6 +279,11 @@
font-size: 13px; font-size: 13px;
color: var(--t2); color: var(--t2);
} }
.mechanic-avg-hp {
font-size: 12px;
color: var(--t3);
margin-left: 6px;
}
.mechanic-assignments { .mechanic-assignments {
display: flex; display: flex;

View File

@ -355,6 +355,17 @@ function renderPlanDetail(plan) {
renderInfoPanel(plan); renderInfoPanel(plan);
} }
function avgNonTankMaxHp(plan) {
const roster = plan.playerRoster ?? [];
const jobComp = plan.jobComposition ?? [];
const hps = jobComp
.map((job, i) => ({ job, maxHp: roster[i]?.maxHp ?? 0 }))
.filter(p => p.job && JOB_ROLE[p.job] !== 'tank' && p.maxHp > 0)
.map(p => p.maxHp);
if (!hps.length) return 0;
return Math.round(hps.reduce((s, v) => s + v, 0) / hps.length);
}
function renderMechanicListHtml(plan) { function renderMechanicListHtml(plan) {
if (plan.mechanics.length === 0) { if (plan.mechanics.length === 0) {
return ` return `
@ -369,6 +380,7 @@ function renderMechanicListHtml(plan) {
} }
const activeJobSet = new Set(plan.jobComposition.filter(j => j)); const activeJobSet = new Set(plan.jobComposition.filter(j => j));
const avgHp = avgNonTankMaxHp(plan);
return plan.mechanics.map(m => { return plan.mechanics.map(m => {
const sorted = sortedAssignments(m.assignments); const sorted = sortedAssignments(m.assignments);
@ -408,7 +420,7 @@ function renderMechanicListHtml(plan) {
${m.phase ? `<div class="mechanic-phase">${escHtml(m.phase)}</div>` : ''} ${m.phase ? `<div class="mechanic-phase">${escHtml(m.phase)}</div>` : ''}
<div class="mechanic-name">${escHtml(m.name)}</div> <div class="mechanic-name">${escHtml(m.name)}</div>
${m.unmitigatedDamage ${m.unmitigatedDamage
? `<div class="mechanic-dmg">${fmtNumber(m.unmitigatedDamage)} unmitigiert</div>` ? `<div class="mechanic-dmg">${fmtNumber(m.unmitigatedDamage)} unmitigiert${avgHp ? ` <span class="mechanic-avg-hp">∅ ${fmtNumber(avgHp)} HP</span>` : ''}</div>`
: '' : ''
} }
<div class="mechanic-assignments">${assignHtml}</div> <div class="mechanic-assignments">${assignHtml}</div>