mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-11 15:48:05 -05:00
Zombie Shield: add shield health bar
This commit is contained in:
@ -425,6 +425,7 @@
|
||||
* Can no longer be picked up after being destroyed
|
||||
|
||||
### Zombie Shield
|
||||
* Added shield health bar on HUD
|
||||
* Awards points for kills and damage
|
||||
* Can be destroyed by player damage when deployed
|
||||
* Destroyed sound plays when player is holding
|
||||
|
@ -210,6 +210,7 @@ on_player_spawned()
|
||||
self.screecher_seen_hint = 1;
|
||||
|
||||
self thread health_bar_hud();
|
||||
self thread shield_bar_hud();
|
||||
self thread bleedout_bar_hud();
|
||||
self thread zone_hud();
|
||||
|
||||
@ -558,6 +559,119 @@ health_bar_hud()
|
||||
}
|
||||
}
|
||||
|
||||
shield_bar_hud()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
flag_wait( "hud_visible" );
|
||||
|
||||
x = 5;
|
||||
y = -104;
|
||||
if (level.script == "zm_buried")
|
||||
{
|
||||
y -= 25;
|
||||
}
|
||||
else if (level.script == "zm_tomb")
|
||||
{
|
||||
y -= 60;
|
||||
}
|
||||
|
||||
hud = self createbar((0.5, 0.5, 0.5), level.primaryprogressbarwidth - 10, int(level.primaryprogressbarheight / 2));
|
||||
hud.alignx = "left";
|
||||
hud.bar.alignx = "left";
|
||||
hud.barframe.alignx = "left";
|
||||
hud.aligny = "middle";
|
||||
hud.bar.aligny = "middle";
|
||||
hud.barframe.aligny = "middle";
|
||||
hud.horzalign = "user_left";
|
||||
hud.bar.horzalign = "user_left";
|
||||
hud.barframe.horzalign = "user_left";
|
||||
hud.vertalign = "user_bottom";
|
||||
hud.bar.vertalign = "user_bottom";
|
||||
hud.barframe.vertalign = "user_bottom";
|
||||
hud.x += x;
|
||||
hud.bar.x += x + ((hud.width + 4) / 2);
|
||||
hud.barframe.x += x;
|
||||
hud.y += y - 2;
|
||||
hud.bar.y += y - 2;
|
||||
hud.barframe.y += y - 2;
|
||||
hud.hidewheninmenu = 1;
|
||||
hud.bar.hidewheninmenu = 1;
|
||||
hud.barframe.hidewheninmenu = 1;
|
||||
hud.foreground = 1;
|
||||
hud.bar.foreground = 1;
|
||||
hud.barframe.foreground = 1;
|
||||
hud.sort = 2;
|
||||
hud.bar.sort = 3;
|
||||
hud.barframe.sort = 4;
|
||||
hud.alpha = 0;
|
||||
hud.barframe.alpha = 0;
|
||||
|
||||
hud_text = createfontstring("objective", 1.2);
|
||||
hud_text.alignx = "left";
|
||||
hud_text.aligny = "middle";
|
||||
hud_text.horzalign = "user_left";
|
||||
hud_text.vertalign = "user_bottom";
|
||||
hud_text.label = &"| ";
|
||||
hud_text.x += x + hud.width + 11;
|
||||
hud_text.y += y;
|
||||
hud_text.hidewheninmenu = 1;
|
||||
hud_text.foreground = 1;
|
||||
|
||||
hud_text_x = hud_text.x;
|
||||
|
||||
hud endon("death");
|
||||
|
||||
hud thread destroy_on_intermission();
|
||||
hud_text thread destroy_on_intermission();
|
||||
|
||||
while (1)
|
||||
{
|
||||
if (!is_true(self.hasriotshield) || (isDefined(self.shielddamagetaken) && self.shielddamagetaken >= level.zombie_vars["riotshield_hit_points"]) || is_true(self.afterlife))
|
||||
{
|
||||
hud.bar.alpha = 0;
|
||||
hud_text hideelem();
|
||||
|
||||
while (!is_true(self.hasriotshield) || (isDefined(self.shielddamagetaken) && self.shielddamagetaken >= level.zombie_vars["riotshield_hit_points"]) || is_true(self.afterlife))
|
||||
{
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
hud.bar.alpha = 1;
|
||||
hud_text showelem();
|
||||
}
|
||||
|
||||
health = level.zombie_vars["riotshield_hit_points"] - self.shielddamagetaken;
|
||||
if (health < 0)
|
||||
{
|
||||
health = 0;
|
||||
}
|
||||
|
||||
health_ratio = health / level.zombie_vars["riotshield_hit_points"];
|
||||
|
||||
offset_x = 0;
|
||||
health_str = "" + self.health;
|
||||
for(i = 0; i < health_str.size; i++)
|
||||
{
|
||||
if (health_str[i] == "1")
|
||||
{
|
||||
offset_x += 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
offset_x += 5;
|
||||
}
|
||||
}
|
||||
|
||||
hud_text.x = hud_text_x + offset_x;
|
||||
|
||||
hud updatebar(health_ratio);
|
||||
hud_text setvalue(int(health_ratio * 100));
|
||||
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
enemy_counter_hud()
|
||||
{
|
||||
if ( getDvar( "g_gametype" ) == "zgrief" )
|
||||
|
Reference in New Issue
Block a user