group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
EnemyWorldHealthBar.hpp
Go to the documentation of this file.
1
10
11#pragma once
12
13#include "hud/HudWidget.hpp"
14
15#include <glm/mat4x4.hpp>
16#include <string>
17#include <unordered_map>
18
20{
21 float barWidth = 80.f;
22 float shieldHeight = 3.f;
23 float healthHeight = 5.f;
24 float fontSize = 10.f;
25 float yOffsetPx = 14.f;
26 float showAfterDamageSecs = 4.f;
27 float fadeOutSecs = 0.5f;
28
30 void update(float dt, const HudGameState& state, HudTweenPool& tweens) override;
31 void draw(HudContext& ctx, float drawX, float drawY) override;
32
33private:
35 {
36 float worldX = 0.f, worldY = 0.f, worldZ = 0.f;
37 std::string name;
38 int hp = 100, maxHp = 100;
39 int sh = 0, maxSh = 100;
40 int displayHp = 100;
41 int displaySh = 0;
42 float trailHp = 1.f;
43 float trailSh = 0.f;
44 float trailHpHold = 0.f;
45 float trailShHold = 0.f;
46 float liveHp = 1.f;
47 float liveSh = 0.f;
48 bool alive = true;
49
54 float showTimer = 0.f;
55 bool initialized = false;
56 };
57
58 glm::mat4 viewProj_{1.f};
59 float screenW_ = 1280.f, screenH_ = 720.f;
60
63 std::unordered_map<std::string, EnemyState> enemies_;
64};
Base struct for all HUD widgets.
Accumulates HUD geometry during a frame for batch rendering.
Definition HudContext.hpp:18
Fixed-size tween pool. No heap allocations.
Definition HudTween.hpp:35
Definition EnemyWorldHealthBar.hpp:35
float worldX
Definition EnemyWorldHealthBar.hpp:36
int maxHp
Definition EnemyWorldHealthBar.hpp:38
float trailHp
Definition EnemyWorldHealthBar.hpp:42
float worldZ
Definition EnemyWorldHealthBar.hpp:36
int displayHp
Definition EnemyWorldHealthBar.hpp:40
int maxSh
Definition EnemyWorldHealthBar.hpp:39
int sh
Definition EnemyWorldHealthBar.hpp:39
bool initialized
Distinguishes "first time we've seen this enemy" from "took damage".
Definition EnemyWorldHealthBar.hpp:55
bool alive
Definition EnemyWorldHealthBar.hpp:48
float liveHp
Definition EnemyWorldHealthBar.hpp:46
float trailShHold
Definition EnemyWorldHealthBar.hpp:45
float trailSh
Definition EnemyWorldHealthBar.hpp:43
int hp
Definition EnemyWorldHealthBar.hpp:38
std::string name
Definition EnemyWorldHealthBar.hpp:37
int displaySh
Definition EnemyWorldHealthBar.hpp:41
float trailHpHold
Definition EnemyWorldHealthBar.hpp:44
float worldY
Definition EnemyWorldHealthBar.hpp:36
float showTimer
Seconds remaining to display this enemy's bar before it fades to transparent.
Definition EnemyWorldHealthBar.hpp:54
float liveSh
Definition EnemyWorldHealthBar.hpp:47
float showAfterDamageSecs
Window after the most recent hit during which the bar stays visible.
Definition EnemyWorldHealthBar.hpp:26
float screenW_
Definition EnemyWorldHealthBar.hpp:59
void update(float dt, const HudGameState &state, HudTweenPool &tweens) override
Called each frame before draw(). Update animation, consume events.
Definition EnemyWorldHealthBar.cpp:19
float barWidth
Shorter than v1 — design feedback wanted compact bars.
Definition EnemyWorldHealthBar.hpp:21
std::unordered_map< std::string, EnemyState > enemies_
Per-enemy state keyed by name (stable across frames).
Definition EnemyWorldHealthBar.hpp:63
void draw(HudContext &ctx, float drawX, float drawY) override
Emit geometry into the draw context.
Definition EnemyWorldHealthBar.cpp:101
glm::mat4 viewProj_
Definition EnemyWorldHealthBar.hpp:58
float fadeOutSecs
Final fade-out length appended to the visibility window.
Definition EnemyWorldHealthBar.hpp:27
float shieldHeight
Definition EnemyWorldHealthBar.hpp:22
float fontSize
Definition EnemyWorldHealthBar.hpp:24
float yOffsetPx
Pixels above the projected world point.
Definition EnemyWorldHealthBar.hpp:25
float healthHeight
Definition EnemyWorldHealthBar.hpp:23
EnemyWorldHealthBar()
Definition EnemyWorldHealthBar.cpp:13
float screenH_
Definition EnemyWorldHealthBar.hpp:59
Snapshot of game state consumed by the HUD each frame.
Definition HudTypes.hpp:192
Base class for a retained HUD element.
Definition HudWidget.hpp:16