summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrik@amftech.nl>2024-01-04 18:24:13 +0100
committerAldrik Ramaekers <aldrik@amftech.nl>2024-01-04 18:24:13 +0100
commit6e23ec86411c88ece2e799ee0529dab595980f86 (patch)
treedba94a5f95e2bac02b2e9de36187b57fdc7f7e7d /src
parent3f17fd5a4e903044bad8777a4ac0aa52cf8920fb (diff)
zombie health bar
Diffstat (limited to 'src')
-rw-r--r--src/asset_defs.c3
-rw-r--r--src/bullets.c12
-rw-r--r--src/guns.c2
-rw-r--r--src/zombies.c10
4 files changed, 20 insertions, 7 deletions
diff --git a/src/asset_defs.c b/src/asset_defs.c
index 43d9c38..7d7e947 100644
--- a/src/asset_defs.c
+++ b/src/asset_defs.c
@@ -61,6 +61,9 @@ void load_assets() {
img_gunner_yellow_run = assets_load_image_from_file("data/imgs/players/Yellow/Gunner_Yellow_Run.png");
img_gunner_yellow_idle = assets_load_image_from_file("data/imgs/players/Yellow/Gunner_Yellow_Idle.png");
+
+ img_muzzle_flash = assets_load_image_from_file("data/imgs/players/MuzzleFlash.png");
+ img_bullet_stream = assets_load_image_from_file("data/imgs/players/BulletStream.png");
img_alien_run = assets_load_image_from_file("data/imgs/players/alien_run.png");
// Guns
diff --git a/src/bullets.c b/src/bullets.c
index fb45cc6..c09fc31 100644
--- a/src/bullets.c
+++ b/src/bullets.c
@@ -260,12 +260,7 @@ void draw_bullets(platform_window* window) {
bullet b = bullets[i];
if (!b.active) continue;
- if (b.player_id == player_id) {
- player *p = get_player_by_id(b.player_id);
- b.position.x = p->gunx;
- b.position.y = p->guny;
- b.position.z = p->gun_height;
- }
+ player *p = get_player_by_id(b.player_id);
float bullet_render_x = b.position.x*info.tile_width + (b.position.y*info.px_incline);
float bullet_render_y = b.position.y*info.tile_height - (b.position.z*info.px_raised_per_h);
@@ -274,5 +269,10 @@ void draw_bullets(platform_window* window) {
float bullet_render_y_end = b.endy*info.tile_height - (b.position.z*info.px_raised_per_h);
renderer->render_line(bullet_render_x, bullet_render_y, bullet_render_x_end, bullet_render_y_end, 1, rgba(255, 221, 97, 100));
+
+ //float rads = atan2(p->diry, p->dirx);
+ //renderer->render_set_rotation(rads);
+ //renderer->render_image(img_bullet_stream, bullet_render_x, bullet_render_y, 80, 16);
+ //renderer->render_set_rotation(0.0f);
}
} \ No newline at end of file
diff --git a/src/guns.c b/src/guns.c
index 66fb1c1..75334a8 100644
--- a/src/guns.c
+++ b/src/guns.c
@@ -6,7 +6,7 @@ gun get_gun_by_type(gun_type type) {
}
float get_gun_size(gun_type type) {
- return 0.5f;
+ return 0.6f;
}
image* get_image_of_gun(gun_type type) {
diff --git a/src/zombies.c b/src/zombies.c
index 3a28d5d..6d9d7de 100644
--- a/src/zombies.c
+++ b/src/zombies.c
@@ -85,6 +85,7 @@ void spawn_zombie(int x, int y) {
zombies[i].alive = true;
zombies[i].type = ZOMBIE_TYPE_NORMAL;
zombies[i].health = 1000.0f;
+ zombies[i].max_health = 1000.0f;
zombies[i].position = (vec3f){x,y, 0};
zombies[i].size = (vec3f){1.5f, 1.5f, 1.5f};
zombies[i].time_since_last_path = 0.0f;
@@ -332,6 +333,15 @@ void draw_zombies(platform_window* window) {
zombie_pos.x + zombie_size, zombie_pos.y,
frame.tl, frame.tr, frame.bl, frame.br);
+ // health bar
+ if (o.health < o.max_health) {
+ int bar_h = zombie_size/8;
+ int bar_w = zombie_size/2;
+ float percentage = o.health/o.max_health;
+ renderer->render_rectangle(zombie_pos.x + (zombie_size/2) - (bar_w/2), zombie_pos.y - bar_h, bar_w, bar_h, rgb(0,0,0));
+ renderer->render_rectangle(zombie_pos.x + (zombie_size/2) - (bar_w/2), zombie_pos.y - bar_h, bar_w*percentage, bar_h, rgb(100,0,0));
+ }
+
if (global_state.server) draw_path_of_zombie(window, o);
}
}