|
139 | 139 | color: #facc15; border: 1px solid #facc15; border-radius: 3px; |
140 | 140 | padding: 0px 4px; margin-left: 4px; |
141 | 141 | } |
| 142 | + .win-badge { |
| 143 | + font-family: var(--mono); font-size: 9px; letter-spacing: 1px; |
| 144 | + border-radius: 3px; padding: 1px 6px; font-weight: bold; |
| 145 | + } |
| 146 | + .win-badge.blue { color: var(--blue); border: 1px solid var(--blue); } |
| 147 | + .win-badge.red { color: var(--red); border: 1px solid var(--red); } |
| 148 | + .score-actual { font-family: var(--mono); font-size: 18px; } |
| 149 | + .score-est { font-family: var(--mono); font-size: 14px; color: var(--muted); } |
142 | 150 | </style> |
143 | 151 | </head> |
144 | 152 | <body> |
@@ -206,17 +214,32 @@ <h1 id="page-title">Match Planner</h1> |
206 | 214 | const allianceColor = m.alliance === 'BLUE' ? 'var(--blue)' : 'var(--red)'; |
207 | 215 | const allianceBg = m.alliance === 'BLUE' ? '#0d2040' : '#2a0d0d'; |
208 | 216 | const playedClass = m.played ? 'played' : ''; |
209 | | - const playedBadge = m.played ? '<span class="played-badge">✓ PLAYED</span>' : ''; |
| 217 | + |
| 218 | + const hasActual = m.blueActual != null && m.redActual != null; |
| 219 | + const winner = hasActual |
| 220 | + ? (m.blueActual > m.redActual ? 'blue' : m.redActual > m.blueActual ? 'red' : 'tie') |
| 221 | + : null; |
| 222 | + |
| 223 | + const winBadge = winner && winner !== 'tie' |
| 224 | + ? `<span class="win-badge ${winner}">${winner.toUpperCase()} WIN</span>` |
| 225 | + : m.played ? '<span class="played-badge">✓ PLAYED</span>' : ''; |
| 226 | + |
| 227 | + const blueScoreHtml = hasActual |
| 228 | + ? `<span class="score-actual" style="color:var(--blue)">${m.blueActual}</span>` |
| 229 | + : `<span class="score-est" style="color:var(--blue)">${parseFloat(m.blueTotal).toFixed(1)}</span>`; |
| 230 | + const redScoreHtml = hasActual |
| 231 | + ? `<span class="score-actual" style="color:var(--red)">${m.redActual}</span>` |
| 232 | + : `<span class="score-est" style="color:var(--red)">${parseFloat(m.redTotal).toFixed(1)}</span>`; |
210 | 233 |
|
211 | 234 | return ` |
212 | 235 | <div class="match-card ${playedClass}" id="mc-${m.num}" style="animation-delay:${idx * 0.02}s"> |
213 | 236 | <div class="match-header" onclick="toggle('mc-${m.num}')"> |
214 | 237 | <div class="match-num">Q${m.num}</div> |
215 | | - ${playedBadge} |
| 238 | + ${winBadge} |
216 | 239 | <div style="font-family:var(--mono);font-size:11px;padding:3px 8px;border-radius:3px;background:${allianceBg};color:${allianceColor};letter-spacing:2px;">${m.alliance}</div> |
217 | 240 | <div class="alliance-totals"> |
218 | | - <div class="alliance-total blue"><span class="value">${parseFloat(m.blueTotal).toFixed(1)}</span></div> |
219 | | - <div class="alliance-total red"><span class="value">${parseFloat(m.redTotal).toFixed(1)}</span></div> |
| 241 | + <div class="alliance-total blue">${blueScoreHtml}</div> |
| 242 | + <div class="alliance-total red">${redScoreHtml}</div> |
220 | 243 | </div> |
221 | 244 | <div class="chevron">▾</div> |
222 | 245 | </div> |
|
0 commit comments