Weapons with switchable ammos/modes display nametags on change.
This commit is contained in:
parent
5f44dcd530
commit
e30eb24936
8 changed files with 95 additions and 2 deletions
|
|
@ -607,6 +607,16 @@ SWWM_YOURSELF = "Yourself";
|
|||
SWWM_DOKIDOKI = "The Power of Love™";
|
||||
SWWM_GRAVKILL = "Gravity";
|
||||
SWWM_SETSLOTSTRICT = "\cg!!!WARNING!!!\c-\n\cj\"setslotstrict\" is enabled. This will cause SWWM GZ weapons to not have slots assigned. Please go into Miscellaneous Options and toggle the \"Strict KEYCONF Weapons/Players\" setting.\c-";
|
||||
SWWM_FCBSEL = "1.150 FCB";
|
||||
SWWM_XSBSEL = "1.150 XSB";
|
||||
SWWM_WIDESPREAD = "Wide Spread Mode";
|
||||
SWWM_TIGHTSPREAD = "Tight Spread Mode";
|
||||
SWWM_YNYKRONFORWARD = "Beam Mode"; // desya / forward
|
||||
SWWM_YNYKRONBACKWARD = "Vortex Mode"; // busa / backward
|
||||
SWWM_GAMMAMODE1 = "Semi-Auto";
|
||||
SWWM_GAMMAMODE2 = "3-Round Burst";
|
||||
SWWM_GAMMAMODE3 = "Full Auto";
|
||||
SWWM_GAMMAMODE4 = "FULLER AUTO";
|
||||
// boss tags
|
||||
BT_BRUISERS = "Bruiser Brothers";
|
||||
BT_CYBIE = "Tyrant of Babel";
|
||||
|
|
|
|||
|
|
@ -530,6 +530,14 @@ SWWM_YOURSELF = "Tú";
|
|||
SWWM_DOKIDOKI = "El Poder del Amor™";
|
||||
SWWM_GRAVKILL = "Gravedad";
|
||||
SWWM_SETSLOTSTRICT = "\cg!!!ADVERTENCIA!!!\c-\n\cj\"setslotstrict\" está activado. Esto causará que las armas de SWWM GZ no tengan ranuras asignadas. Por favor, ve a Opciones Misceláneas y cambia la opción de \"KEYCONF de Armas/Jugadores estricto\".\c-";
|
||||
SWWM_WIDESPREAD = "Modo Amplio";
|
||||
SWWM_TIGHTSPREAD = "Modo Concentrado";
|
||||
SWWM_YNYKRONFORWARD = "Modo de Rayo"; // desya / forward
|
||||
SWWM_YNYKRONBACKWARD = "Modo de Vórtice"; // busa / backward
|
||||
SWWM_GAMMAMODE1 = "Semiautomático";
|
||||
SWWM_GAMMAMODE2 = "Triple Ráfaga";
|
||||
SWWM_GAMMAMODE3 = "Automático";
|
||||
SWWM_GAMMAMODE4 = "SUPERAUTOMÁTICO";
|
||||
// boss tags
|
||||
BT_BRUISERS = "Hermanos de Guerra";
|
||||
BT_CYBIE = "Tirano de Babel";
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
[default]
|
||||
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r349 \cu(Fri 12 Mar 16:05:39 CET 2021)\c-";
|
||||
SWWM_SHORTVER="\cw0.9.11b-pre r349 \cu(2021-03-12 16:05:39)\c-";
|
||||
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r350 \cu(Fri 12 Mar 17:15:06 CET 2021)\c-";
|
||||
SWWM_SHORTVER="\cw0.9.11b-pre r350 \cu(2021-03-12 17:15:06)\c-";
|
||||
|
|
|
|||
|
|
@ -92,6 +92,7 @@ Class Hellblazer : SWWMWeapon
|
|||
bool magstate[6]; // true: rocket was spent
|
||||
int magpos; // current rotation
|
||||
Class<Ammo> loadammo, nextammo;
|
||||
ui Class<Ammo> lastammo;
|
||||
int spinskipped;
|
||||
HellblazerXSub pickuprockets[6];
|
||||
|
||||
|
|
@ -178,6 +179,22 @@ Class Hellblazer : SWWMWeapon
|
|||
}
|
||||
}
|
||||
|
||||
override void HudTick()
|
||||
{
|
||||
Super.HudTick();
|
||||
if ( lastammo && (lastammo != nextammo) && (Owner.player == players[consoleplayer]) )
|
||||
{
|
||||
let bar = SWWMStatusBar(statusbar);
|
||||
if ( bar )
|
||||
{
|
||||
bar.ntagstr = GetDefaultByType(nextammo).GetTag();
|
||||
bar.ntagtic = level.totaltime;
|
||||
bar.ntagcol = nametagcolor;
|
||||
}
|
||||
}
|
||||
lastammo = nextammo;
|
||||
}
|
||||
|
||||
override Vector3 GetTraceOffset()
|
||||
{
|
||||
return (10.,3.5,-5.);
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ Class Eviscerator : SWWMWeapon
|
|||
bool isfiring;
|
||||
// barrel is extended
|
||||
bool extended;
|
||||
ui int lastmode;
|
||||
// pending shell load
|
||||
bool pendingload;
|
||||
// has shell chambered
|
||||
|
|
@ -72,6 +73,22 @@ Class Eviscerator : SWWMWeapon
|
|||
}
|
||||
}
|
||||
|
||||
override void HudTick()
|
||||
{
|
||||
Super.HudTick();
|
||||
if ( lastmode && (lastmode != extended+1) && (Owner.player == players[consoleplayer]) )
|
||||
{
|
||||
let bar = SWWMStatusBar(statusbar);
|
||||
if ( bar )
|
||||
{
|
||||
bar.ntagstr = StringTable.Localize(extended?"$SWWM_TIGHTSPREAD":"$SWWM_WIDESPREAD");
|
||||
bar.ntagtic = level.totaltime;
|
||||
bar.ntagcol = nametagcolor;
|
||||
}
|
||||
}
|
||||
lastmode = extended+1;
|
||||
}
|
||||
|
||||
action void A_StartLoad( int delay = 0 )
|
||||
{
|
||||
invoker.pendingload = true;
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ Class Ynykron : SWWMWeapon
|
|||
int chargestate;
|
||||
double chargelevel;
|
||||
bool inverted, invertreload;
|
||||
ui int lastmode;
|
||||
|
||||
double ventalpha, ventfade;
|
||||
int ventcooldown;
|
||||
|
|
@ -47,6 +48,17 @@ Class Ynykron : SWWMWeapon
|
|||
Super.HudTick();
|
||||
if ( !ChargeInter ) ChargeInter = DynamicValueInterpolator.Create(int(chargelevel*10),.5,1,400);
|
||||
ChargeInter.Update(int(chargelevel*10));
|
||||
if ( lastmode && (lastmode != inverted+1) && (Owner.player == players[consoleplayer]) )
|
||||
{
|
||||
let bar = SWWMStatusBar(statusbar);
|
||||
if ( bar )
|
||||
{
|
||||
bar.ntagstr = StringTable.Localize(inverted?"$SWWM_YNYKRONBACKWARD":"$SWWM_YNYKRONFORWARD");
|
||||
bar.ntagtic = level.totaltime;
|
||||
bar.ntagcol = nametagcolor;
|
||||
}
|
||||
}
|
||||
lastmode = inverted+1;
|
||||
}
|
||||
|
||||
override bool ReportHUDAmmo()
|
||||
|
|
|
|||
|
|
@ -122,11 +122,28 @@ Class Spreadgun : SWWMWeapon
|
|||
bool chambered; // a shell is actually loaded
|
||||
bool emptyup; // next reload will keep the chamber empty
|
||||
Class<Ammo> loadammo, nextammo; // currently loaded shell, next shell to load
|
||||
ui Class<Ammo> lastammo;
|
||||
bool initialized;
|
||||
|
||||
transient ui TextureID WeaponBox, AmmoIcon[7], LoadedIcon[7];
|
||||
transient ui Font TewiFont;
|
||||
|
||||
override void HudTick()
|
||||
{
|
||||
Super.HudTick();
|
||||
if ( lastammo && (lastammo != nextammo) && (Owner.player == players[consoleplayer]) )
|
||||
{
|
||||
let bar = SWWMStatusBar(statusbar);
|
||||
if ( bar )
|
||||
{
|
||||
bar.ntagstr = GetDefaultByType(nextammo).GetTag();
|
||||
bar.ntagtic = level.totaltime;
|
||||
bar.ntagcol = nametagcolor;
|
||||
}
|
||||
}
|
||||
lastammo = nextammo;
|
||||
}
|
||||
|
||||
override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack )
|
||||
{
|
||||
if ( loadammo is 'RedShell' ) return StringTable.Localize("$O_SPREADGUN_RED");
|
||||
|
|
|
|||
|
|
@ -246,6 +246,7 @@ Class SilverBullet : SWWMWeapon
|
|||
{
|
||||
bool chambered, fired;
|
||||
bool fcbchambered, fcbloaded, fcbselected;
|
||||
ui int lastammo;
|
||||
int clipcount;
|
||||
double casex, casey;
|
||||
|
||||
|
|
@ -316,6 +317,17 @@ Class SilverBullet : SWWMWeapon
|
|||
Super.HudTick();
|
||||
if ( !ZoomInter ) ZoomInter = DynamicValueInterpolator.Create(int(zoomlevel*10),.5,1,20);
|
||||
ZoomInter.Update(int(zoomlevel*10));
|
||||
if ( lastammo && (lastammo != fcbselected+1) && (Owner.player == players[consoleplayer]) )
|
||||
{
|
||||
let bar = SWWMStatusBar(statusbar);
|
||||
if ( bar )
|
||||
{
|
||||
bar.ntagstr = StringTable.Localize(fcbselected?"$SWWM_FCBSEL":"$SWWM_XSBSEL");
|
||||
bar.ntagtic = level.totaltime;
|
||||
bar.ntagcol = nametagcolor;
|
||||
}
|
||||
}
|
||||
lastammo = fcbselected+1;
|
||||
}
|
||||
|
||||
override bool ReportHUDAmmo()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue