heal beam
All checks were successful
CI / checks (push) Successful in 59s

This commit is contained in:
Robin Appelman 2025-06-28 23:03:20 +02:00
commit d33a8df45d
5 changed files with 99 additions and 17 deletions

View file

@ -10,6 +10,7 @@ export interface PlayerProp {
scale: number;
onHover: (userId: number) => void;
highlighted: boolean;
players: PlayerState[];
}
const healthMap = {
@ -65,21 +66,22 @@ export function Player(props: PlayerProp) {
const teamHatch = () => (props.player.team === Team.Red) ? `url(#diagonalHatchRed)` : `url(#diagonalHatchBlue)`
const fill = () => props.player.cloaked ? teamHatch() : teamColor();
return <g
onmouseover={() => props.onHover(props.player.info.userId)}
onmouseout={() => props.onHover(0)}
transform={transform()}>
<polygon points="-6,14 0, 16 6,14 0,24" fill="white"
opacity={imageOpacity()}
transform={rotate()}/>
<circle r={16} stroke-width={props.highlighted ? 4 : 1.5} stroke="white"
stroke-dasharray={circleStrokeStyle()}
fill={fill()}
opacity={alpha()}
filter={filter()}
/>
{getClassImage(props.player, imageOpacity())}
</g>
return (
<g
onmouseover={() => props.onHover(props.player.info.userId)}
onmouseout={() => props.onHover(0)}
transform={transform()}>
<polygon points="-6,14 0, 16 6,14 0,24" fill="white"
opacity={imageOpacity()}
transform={rotate()}/>
<circle r={16} stroke-width={props.highlighted ? 4 : 1.5} stroke="white"
stroke-dasharray={circleStrokeStyle()}
fill={fill()}
opacity={alpha()}
filter={filter()}
/>
{getClassImage(props.player, imageOpacity())}
</g>)
}
function getClassImage(player: PlayerState, imageOpacity: number) {