Add option for selectively hiding healthbars.

This commit is contained in:
Mari the Deer 2020-11-25 18:08:23 +01:00
commit 4b0ed5fe36
6 changed files with 32 additions and 2 deletions

View file

@ -88,4 +88,5 @@ user bool swwm_ldspoil = false; // [LD] always shows "Legendary" prefix on Leg
user bool swwm_camhud = false; // keep full hud visible when operating cameras, otherwise only shows messages
user bool swwm_rageshader = false; // alternate ragekit shader for people with photosensitivity
server bool swwm_uncapalert = false; // all noise alerts have infinite range
user int swwm_damagetarget = 0; // conditional healthbar hiding (1 - hide until damage is first taken, 2 - hide if at full health)
server noarchive bool swwm_iseriouslywanttoplaythiswithbd = false; //self-explanatory

View file

@ -160,6 +160,10 @@ SWWM_RAGESHADER = "Alternate Ragekit Shader";
SWWM_CAMHUD = "Full HUD In Cameras";
SWWM_UNCAPALERT = "Uncap Alert Range";
SWWM_COLLECTANIMKEY = "Key Animations";
SWWM_DAMAGETARGET = "Healthbar Visibility";
SWWM_TARGET_ALWAYS = "Always Visible";
SWWM_TARGET_FIRSTHIT = "After First Hit";
SWWM_TARGET_DAMAGED = "Below Full Health";
TOOLTIP_SWWM_VOICETYPE = "Sets the voice pack for the player.";
TOOLTIP_SWWM_MUTEVOICE = "Control what gets muted, if you'd rather have a more silent protagonist.";
TOOLTIP_SWWM_FLASHSTRENGTH = "Screen flashes usually happen when firing some weapons, you can lower this if these effects are harmful for you.";
@ -236,6 +240,7 @@ TOOLTIP_SWWM_RAGESHADER = "The normal Ragekit shader may be harmful for people w
TOOLTIP_SWWM_CAMHUD = "By default, when the player is looking through a camera, most HUD elements excluding messages will be hidden. Set this to keep the full HUD.";
TOOLTIP_SWWM_UNCAPALERT = "If enabled, all weapons and projectiles will have infinite noise radius. May fix maps that employ vanilla-style teleport traps.";
TOOLTIP_SWWM_COLLECTANIMKEY = "Play special first person animations when picking up keys.";
TOOLTIP_SWWM_DAMAGETARGET = "Select when targetter healthbars should be shown.";
// knowledge base
SWWM_COMINGSOON = "(coming soon)";
SWWM_MISSTAB = "Mission";

View file

@ -159,6 +159,10 @@ SWWM_RAGESHADER = "Shader Alternativo de Ragekit";
SWWM_CAMHUD = "HUD Completo en Cámaras";
SWWM_UNCAPALERT = "Rango de Alerta Ilimitado";
SWWM_COLLECTANIMKEY = "Animaciones de Llaves";
SWWM_DAMAGETARGET = "Visibilidad de Barras de Salud";
SWWM_TARGET_ALWAYS = "Siempre Visible";
SWWM_TARGET_FIRSTHIT = "Tras Primer Golpe";
SWWM_TARGET_DAMAGED = "Debajo de Salud Completa";
TOOLTIP_SWWM_VOICETYPE = "Selecciona el pack de voz para el jugador.";
TOOLTIP_SWWM_MUTEVOICE = "Controla lo que se mutea, si prefieres tener un protagonista más silencioso.";
TOOLTIP_SWWM_FLASHSTRENGTH = "Los destellos en pantalla suelen ocurrir al disparar algunas armas, puedes reducirlo si este tipo de efectos te causan malestar.";
@ -235,6 +239,7 @@ TOOLTIP_SWWM_RAGESHADER = "El shader normal del Ragekit puede ser dañino para p
TOOLTIP_SWWM_CAMHUD = "Por defecto, cuando el jugador está mirando por una cámara, la mayor parte de elementos del HUD excluyendo mensajes son ocultados. Activa esto para mantener el HUD completo.";
TOOLTIP_SWWM_UNCAPALERT = "Si se activa, todas las armas y proyectiles tendrán un rango de ruido ilimitado. Puede arreglar mapas que usan trampas de teletransporte estilo vanilla.";
TOOLTIP_SWWM_COLLECTANIMKEY = "Muestra animaciones especiales en primera persona al recoger llaves.";
TOOLTIP_SWWM_DAMAGETARGET = "Selecciona cuando deben mostrarse las barras de vida.";
// knowledge base
SWWM_COMINGSOON = "(próximamente)";
SWWM_MISSTAB = "Misión";

View file

@ -1,2 +1,2 @@
[default]
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r637 \cu(Wed 25 Nov 16:44:23 CET 2020)";
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r639 \cu(Wed 25 Nov 18:08:35 CET 2020)";

View file

@ -24,6 +24,12 @@ OptionValue "SWWMShadows"
1, "$SWWM_SHADOWS_ON"
2, "$SWWM_SHADOWS_ALL"
}
OptionValue "SWWMDamageTarget"
{
0, "$SWWM_TARGET_ALWAYS"
1, "$SWWM_TARGET_FIRSTHIT"
2, "$SWWM_TARGET_DAMAGED"
}
OptionMenu "SWWMOptionMenu"
{
Class "SWWMOptionMenu"
@ -52,6 +58,7 @@ OptionMenu "SWWMOptionMenu"
Slider "$SWWM_PICKLEN", "swwm_pickduration", 1, 30, 1, 0
Option "$SWWM_TARGET", "swwm_targeter", "YesNo"
Option "$SWWM_TARGETTAG", "swwm_targettags", "YesNo"
Option "$SWWM_DAMAGETARGET", "swwm_damagetarget", "SWWMDamageTarget"
Option "$SWWM_BIGTAGS", "swwm_bigtags", "YesNo"
Option "$SWWM_BOSSBAR", "swwm_bosshealthbars", "YesNo"
Option "$SWWM_DAMNUMS", "swwm_healthnums", "YesNo"

View file

@ -804,8 +804,9 @@ Class SWWMCombatTracker : Thinker
bool legged, mutated;
int tcnt;
double height;
transient CVar funtags, maxdist;
transient CVar funtags, maxdist, damagebars;
bool bBOSS, bFRIENDLY;
bool firsthit;
void UpdateTag()
{
@ -941,8 +942,19 @@ Class SWWMCombatTracker : Thinker
}
bBOSS = mytarget.bBOSS|(maxhealth>1000);
bFRIENDLY = mytarget.bFRIENDLY;
if ( mytarget.Health < lasthealth ) firsthit = true;
lasthealth = mytarget.Health;
intp.Update(lasthealth);
// special update conditions
if ( !damagebars ) damagebars = CVar.GetCVar('swwm_damagetarget',players[consoleplayer]);
int dbar = damagebars.GetInt();
if ( dbar )
{
if ( (dbar == 2) && (lasthealth >= maxhealth) )
return;
else if ( (dbar == 1) && !firsthit )
return;
}
if ( !maxdist ) maxdist = CVar.GetCVar('swwm_maxtargetdist',players[consoleplayer]);
if ( (mytarget.bISMONSTER || mytarget.player) && !mytarget.bINVISIBLE && !mytarget.bCORPSE )
{