Render player health at native resolution
This commit is contained in:
parent
caaffe4ec8
commit
ea12250556
@ -78,9 +78,8 @@ if (!isDesktopPointer.matches) {
|
|||||||
.steam-player-card,
|
.steam-player-card,
|
||||||
.steam-enemy-card {
|
.steam-enemy-card {
|
||||||
top: clamp(80px, 10.3vh, 90px);
|
top: clamp(80px, 10.3vh, 90px);
|
||||||
aspect-ratio: 300 / 108;
|
aspect-ratio: 360 / 130;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-size: 400% 300%;
|
|
||||||
background-position: 0 0;
|
background-position: 0 0;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
@ -89,11 +88,40 @@ if (!isDesktopPointer.matches) {
|
|||||||
.steam-player-card {
|
.steam-player-card {
|
||||||
left: -1%;
|
left: -1%;
|
||||||
width: 53%;
|
width: 53%;
|
||||||
|
background-size: 100% 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.steam-enemy-card {
|
.steam-enemy-card {
|
||||||
right: -1%;
|
right: -1%;
|
||||||
width: 46%;
|
width: 46%;
|
||||||
|
background-size: 400% 300%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.steam-player-health-tint,
|
||||||
|
.steam-player-health-cover {
|
||||||
|
position: absolute;
|
||||||
|
pointer-events: none;
|
||||||
|
border-radius: 999px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.steam-player-health-tint {
|
||||||
|
left: 39.5%;
|
||||||
|
top: 56.5%;
|
||||||
|
width: 49%;
|
||||||
|
height: 19%;
|
||||||
|
transform-origin: left center;
|
||||||
|
background: transparent;
|
||||||
|
mix-blend-mode: color;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.steam-player-health-cover {
|
||||||
|
right: 11.5%;
|
||||||
|
top: 56.5%;
|
||||||
|
width: 0;
|
||||||
|
height: 19%;
|
||||||
|
background: #111416;
|
||||||
|
z-index: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
.steam-card-name,
|
.steam-card-name,
|
||||||
@ -531,6 +559,8 @@ if (!isDesktopPointer.matches) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const playerHealthPiece = addHealthPiece('steam-player-card', playerHealthSrc, `
|
const playerHealthPiece = addHealthPiece('steam-player-card', playerHealthSrc, `
|
||||||
|
<span class="steam-player-health-tint" data-steam="player-health-tint"></span>
|
||||||
|
<span class="steam-player-health-cover" data-steam="player-health-cover"></span>
|
||||||
<span class="steam-card-name">SPARROW</span>
|
<span class="steam-card-name">SPARROW</span>
|
||||||
<span class="steam-card-value" data-steam="player-hull">100/100</span>
|
<span class="steam-card-value" data-steam="player-hull">100/100</span>
|
||||||
`);
|
`);
|
||||||
@ -692,7 +722,14 @@ if (!isDesktopPointer.matches) {
|
|||||||
fields.range.textContent = Number.isFinite(range) ? `${Math.round(range)}m` : '--';
|
fields.range.textContent = Number.isFinite(range) ? `${Math.round(range)}m` : '--';
|
||||||
fields['player-hull'].textContent = `${playerHull}/100`;
|
fields['player-hull'].textContent = `${playerHull}/100`;
|
||||||
fields['enemy-hull'].textContent = pirate ? `${enemyHull}/120` : 'CLEAR';
|
fields['enemy-hull'].textContent = pirate ? `${enemyHull}/120` : 'CLEAR';
|
||||||
setHealthFrame(playerHealthPiece, healthFrame(playerHull, 100));
|
const playerPct = clamp01(playerHull / 100);
|
||||||
|
fields['player-health-cover'].style.width = `${(1 - playerPct) * 49}%`;
|
||||||
|
fields['player-health-tint'].style.transform = `scaleX(${playerPct})`;
|
||||||
|
fields['player-health-tint'].style.background = playerPct > 0.66
|
||||||
|
? 'transparent'
|
||||||
|
: playerPct > 0.33
|
||||||
|
? 'rgba(255, 210, 0, .58)'
|
||||||
|
: 'rgba(255, 45, 18, .72)';
|
||||||
setHealthFrame(enemyHealthPiece, pirate ? healthFrame(enemyHull, 120) : 11);
|
setHealthFrame(enemyHealthPiece, pirate ? healthFrame(enemyHull, 120) : 11);
|
||||||
|
|
||||||
const statusText = scene.status?.text?.trim?.() || '';
|
const statusText = scene.status?.text?.trim?.() || '';
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user