I would like to re-create CyberStrike's HP/Shield/Energy HUD indicator in HTML5.
The HUD indicator an oval shape with lots of inner segments which display different data to the player. The segmented inner circle shows health on front, rear, left and right. The segmented circle around that shows shields on all four sides. The oval slices on the left show stamina and energy. The oval slices on the right show nearby faction energy tower levels.
The game I'm making uses RogueEngine, which means it's written in TypeScript and exports to HTML. For a UI, I have available anything that can be rendered in a web page. HTML, CSS, TS/Javascript, SVG, and maybe canvas? Not sure on that last one because I haven't tried it.
The problem is I have no idea how to approach this. I imagine I need some sort of math to draw oval lines, but I don't know what math that would be. And it needs to be something that can be programmatically changed using javascript as the player takes damage or does things that would influence the values controlling the HUD. And then of course there's the issue of the segments. How on earth do I create a those complex shaped segments?