Add balance option to give all noise alerts infinite range.

Should fix issues with vanilla-style teleport closets that store enemies out of bounds the middle of god-knows-where.
This commit is contained in:
Mari the Deer 2020-11-19 21:33:06 +01:00
commit 9aa636aed5
18 changed files with 70 additions and 64 deletions

View file

@ -86,4 +86,5 @@ user bool swwm_precisecrosshair = true; // use mod's own, more precise crosshai
user bool swwm_ldspoil = false; // [LD] always shows "Legendary" prefix on Legendary monsters, otherwise only when they've transformed
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
server noarchive bool swwm_iseriouslywanttoplaythiswithbd = false; //self-explanatory

View file

@ -152,6 +152,7 @@ SWWM_LDSPOIL = "Always Show Legendaries";
SWWM_ETITLE = "Effect Options";
SWWM_RAGESHADER = "Alternate Ragekit Shader";
SWWM_CAMHUD = "Full HUD In Cameras";
SWWM_UNCAPALERT = "Uncap Alert Range";
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.";
@ -226,6 +227,7 @@ TOOLTIP_SWWM_PRECISECROSSHAIR = "Projects crosshair onto the spot the weapon wil
TOOLTIP_SWWM_LDSPOIL = "[LegenDoom] Always show the \"Legendary\" prefix on healthbar tags, rather than after the monster has transformed. Disable if you'd rather not spoil the surprise.";
TOOLTIP_SWWM_RAGESHADER = "The normal Ragekit shader may be harmful for people with photosensitivity. Enabling this switches to a fainter alternative.";
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.";
// knowledge base
SWWM_COMINGSOON = "(coming soon)";
SWWM_MISSTAB = "Mission";

View file

@ -151,6 +151,7 @@ SWWM_LDSPOIL = "Mostrar Siempre Legendarios";
SWWM_ETITLE = "Opciones de Efectos";
SWWM_RAGESHADER = "Shader Alternativo de Ragekit";
SWWM_CAMHUD = "HUD Completo en Cámaras";
SWWM_UNCAPALERT = "Rango de Alerta Ilimitado";
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.";
@ -225,6 +226,7 @@ TOOLTIP_SWWM_PRECISECROSSHAIR = "Proyecta la mira en el punto que el arma alcanz
TOOLTIP_SWWM_LDSPOIL = "[LegenDoom] Muestra siempre el sufijo de \"Legendario\" en las etiquetas de barra de vida, en lugar de despues de que el enemigo se haya transformado. Desactiva si prefieres no estropear la sorpresa.";
TOOLTIP_SWWM_RAGESHADER = "El shader normal del Ragekit puede ser dañino para personas con fotosensibilidad. Activando esto se cambia a una alternativa más suave.";
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.";
// 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 r623 \cu(Tue 17 Nov 13:11:44 CET 2020)";
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r624 \cu(Thu 19 Nov 21:33:06 CET 2020)";

View file

@ -95,6 +95,7 @@ OptionMenu "SWWMOptionMenu"
Option "$SWWM_DOOMFALL", "swwm_doomfall", "YesNo"
Option "$SWWM_BALLUSE", "swwm_balluse", "YesNo"
Option "$SWWM_CBTALL", "swwm_cbtall", "YesNo"
Option "$SWWM_UNCAPALERT", "swwm_uncapalert", "YesNo"
Option "$SWWM_CAPMCRANGE", "swwm_capmcrange", "YesNo"
Option "$SWWM_NOTRACK", "swwm_notrack", "YesNo"
Option "$SWWM_YNYKRONALERT", "swwm_ynykronalert", "YesNo"

View file

@ -302,7 +302,7 @@ Class HellblazerMissile : Actor
A_StopSound(CHAN_BODY);
A_StartSound("hellblazer/hitm",CHAN_WEAPON,attenuation:.8);
A_StartSound("hellblazer/hitm",CHAN_VOICE,attenuation:.5);
A_AlertMonsters(2500);
A_AlertMonsters(swwm_uncapalert?0:2500);
Spawn("HellblazerExplLight",pos);
int numpt = Random[Hellblazer](12,24);
for ( int i=0; i<numpt; i++ )
@ -399,7 +399,7 @@ Class HellblazerCrackshot : HellblazerMissile
A_StopSound(CHAN_BODY);
A_StartSound("hellblazer/hitc",CHAN_WEAPON,attenuation:.7);
A_StartSound("hellblazer/hitc",CHAN_VOICE,attenuation:.4);
A_AlertMonsters(3000);
A_AlertMonsters(swwm_uncapalert?0:3000);
Spawn("HellblazerExplLight",pos);
int numpt = Random[Hellblazer](12,24);
for ( int i=0; i<numpt; i++ )
@ -469,7 +469,7 @@ Class HellblazerRavager : HellblazerMissile
A_StopSound(CHAN_BODY);
A_StartSound("hellblazer/hitr",CHAN_WEAPON,attenuation:.6);
A_StartSound("hellblazer/hitr",CHAN_VOICE,attenuation:.3);
A_AlertMonsters(4500);
A_AlertMonsters(swwm_uncapalert?0:4500);
Spawn("HellblazerExplLight",pos);
int numpt = Random[Hellblazer](16,28);
for ( int i=0; i<numpt; i++ )
@ -548,7 +548,7 @@ Class HellblazerWarhead : HellblazerMissile
A_StopSound(CHAN_BODY);
A_StartSound("hellblazer/hitw",CHAN_WEAPON,attenuation:.4);
A_StartSound("hellblazer/hitw",CHAN_VOICE,attenuation:.1);
A_AlertMonsters(40000);
A_AlertMonsters(swwm_uncapalert?0:40000);
Spawn("HellblazerExplLight3",pos);
int numpt = Random[Hellblazer](20,30);
for ( int i=0; i<numpt; i++ )
@ -752,7 +752,7 @@ Mixin Class HellblazerGrenade
ExplodeMissile();
return;
}
if ( swwm_extraalert ) A_AlertMonsters(300);
if ( swwm_extraalert ) A_AlertMonsters(swwm_uncapalert?0:300);
A_StartSound("hellblazer/bounce",CHAN_ITEM);
rollvel = FRandom[Hellblazer](-16,16);
anglevel = FRandom[Hellblazer](-16,16);
@ -839,7 +839,7 @@ Class HellblazerClusterMini : HellblazerMissile2
A_StopSound(CHAN_BODY);
A_StartSound("hellblazer/hitcs",CHAN_WEAPON,attenuation:.9);
A_StartSound("hellblazer/hitcs",CHAN_VOICE,attenuation:.5);
A_AlertMonsters(2000);
A_AlertMonsters(swwm_uncapalert?0:2000);
Spawn("HellblazerExplLight2",pos);
int numpt = Random[Hellblazer](4,8);
for ( int i=0; i<numpt; i++ )
@ -1323,7 +1323,7 @@ Class Hellblazer : SWWMWeapon
"HellblazerMissile2","HellblazerCrackshot2","HellblazerRavager2","HellblazerWarhead2"};
static const Color cols[] = {Color(4,3,2),Color(2,4,2),Color(4,2,2),Color(3,2,4)};
A_StartSound(bAlt?"hellblazer/altfire":"hellblazer/fire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:(bAlt?1.7:.8));
A_AlertMonsters(bAlt?400:1200);
A_AlertMonsters(swwm_uncapalert?0:bAlt?400:1200);
int qstr = bAlt?4:5;
A_QuakeEx(qstr,qstr,qstr,bAlt?4:12,0,8,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.12*qstr);
A_ZoomFactor(bAlt?.96:.93,ZOOM_INSTANT);

View file

@ -379,7 +379,7 @@ Class BustedQuake : Actor
if ( special1 < 3 ) A_StartSound("wallbuster/smallbust",CHAN_VOICE,CHANF_OVERLAP,min(1.,special1*.32),1./max(1.,special1*.35),1.-special1*.05);
else A_StartSound("wallbuster/bigbust",CHAN_VOICE,CHANF_OVERLAP,min(1.,special1*.16),1./max(1.,special1*.35),1.-special1*.03);
A_QuakeEx(special1,special1,special1,20+special1*5,0,300+special1*90,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:special1*.1);
A_AlertMonsters(2500);
A_AlertMonsters(swwm_uncapalert?0:2500);
}
override void Tick()
{
@ -1266,7 +1266,7 @@ Class Wallbuster : SWWMWeapon
A_QuakeEx(qk,qk,qk,ql,0,8,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:qk*.15);
A_ZoomFactor(1.-qk*.04,ZOOM_INSTANT);
A_ZoomFactor(1.);
A_AlertMonsters(alertness);
A_AlertMonsters(swwm_uncapalert?0:alertness);
A_PlayerFire();
if ( redflashstr > 0 )
{

View file

@ -250,7 +250,7 @@ Class EvisceratorChunk : Actor
pitchvel = FRandom[Eviscerator](50,100)*RandomPick[Eviscerator](-1,1)*(vel.length()/speed);
rollvel = FRandom[Eviscerator](50,100)*RandomPick[Eviscerator](-1,1)*(vel.length()/speed);
A_StartSound("eviscerator/hit",CHAN_WEAPON,CHANF_OVERLAP,.4);
if ( swwm_extraalert ) A_AlertMonsters(300);
if ( swwm_extraalert ) A_AlertMonsters(swwm_uncapalert?0:300);
if ( vel.length() < 3 )
{
A_Stop();
@ -274,7 +274,7 @@ Class EvisceratorChunk : Actor
l.pitch = -pitch;
A_StartSound("eviscerator/hith",CHAN_WEAPON,CHANF_OVERLAP,.2);
}
if ( swwm_extraalert || !Random[Eviscerator](0,3) ) A_AlertMonsters(900);
if ( swwm_extraalert || !Random[Eviscerator](0,3) ) A_AlertMonsters(swwm_uncapalert?0:900);
return -1;
}
@ -415,7 +415,7 @@ Class EvisceratorProj : Actor
A_QuakeEx(6,6,6,20,0,1200,"",QF_RELATIVE|QF_SCALEDOWN,falloff:300,rollIntensity:.7);
A_StartSound("eviscerator/shell",CHAN_WEAPON,attenuation:.5);
A_StartSound("eviscerator/shell",CHAN_VOICE,attenuation:.3);
A_AlertMonsters(3000);
A_AlertMonsters(swwm_uncapalert?0:3000);
if ( !Tracer ) Spawn("EvisceratorProjSmoke",pos);
Spawn("EvisceratorProjLight",pos);
Vector3 x, y, z;
@ -688,7 +688,7 @@ Class Eviscerator : SWWMWeapon
A_SWWMFlash();
A_PlayerFire();
SWWMHandler.DoFlash(self,Color(64,255,224,96),3);
A_AlertMonsters(4500);
A_AlertMonsters(swwm_uncapalert?0:4500);
Vector3 x, y, z, x2, y2, z2, dir, origin;
double a, s;
[x, y, z] = swwm_CoordUtil.GetAxes(pitch,angle,roll);
@ -745,7 +745,7 @@ Class Eviscerator : SWWMWeapon
A_SWWMFlash();
A_PlayerFire();
SWWMHandler.DoFlash(self,Color(16,255,224,96),3);
A_AlertMonsters(4000);
A_AlertMonsters(swwm_uncapalert?0:4000);
Vector3 x, y, z, x2, y2, z2, dir, origin;
double a, s;
[x, y, z] = swwm_CoordUtil.GetAxes(pitch,angle,roll);

View file

@ -65,7 +65,7 @@ Class AirBullet : FastProjectile
}
void A_Splode()
{
A_AlertMonsters(8000);
A_AlertMonsters(swwm_uncapalert?0:8000);
if ( target && SWWMUtility.SphereIntersect(target,pos,120) )
{
// push away
@ -251,7 +251,7 @@ Class DeepImpact : SWWMWeapon
invoker.charge = 0;
A_StartSound("deepimpact/charge",CHAN_WEAPONEXTRA);
A_QuakeEx(2,2,2,35,0,1,"",QF_RELATIVE|QF_SCALEUP,rollIntensity:.2);
A_AlertMonsters(100);
A_AlertMonsters(swwm_uncapalert?0:100);
}
action void A_ChargeUp()
@ -275,7 +275,7 @@ Class DeepImpact : SWWMWeapon
let weap = Weapon(invoker);
if ( !weap ) return;
A_StartSound("deepimpact/dryfire",CHAN_WEAPON,CHANF_OVERLAP,.5);
A_AlertMonsters(70);
A_AlertMonsters(swwm_uncapalert?0:70);
Vector3 x, y, z;
[x, y, z] = swwm_CoordUtil.GetAxes(pitch,angle,roll);
Vector3 origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),10*x+2*y-3*z);
@ -297,7 +297,7 @@ Class DeepImpact : SWWMWeapon
if ( !weap ) return;
A_QuakeEx(1,1,1,2,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.05);
A_StartSound("deepimpact/fire",CHAN_WEAPON,CHANF_OVERLAP);
A_AlertMonsters(300);
A_AlertMonsters(swwm_uncapalert?0:300);
A_PlayerFire();
invoker.clipcount = max(0,invoker.clipcount-3);
Vector3 x, y, z, dir;
@ -416,7 +416,7 @@ Class DeepImpact : SWWMWeapon
A_StopSound(CHAN_WEAPONEXTRA);
A_QuakeEx(6,6,6,10,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.7);
A_StartSound("deepimpact/altfire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.5);
A_AlertMonsters(8000);
A_AlertMonsters(swwm_uncapalert?0:8000);
A_PlayerFire();
invoker.clipcount = 0;
Vector3 x, y, z, x2, y2, z2;

View file

@ -1307,7 +1307,7 @@ Class SWWMWeapon : Weapon abstract
A_QuakeEx(quakin/2,quakin/2,quakin/2,3,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.06*quakin);
if ( raging ) A_StartSound(bloodless?"pusher/althit":"pusher/altmeat",CHAN_WEAPON,CHANF_OVERLAP);
else A_StartSound((hitsound!="")?hitsound:bloodless?"demolitionist/punch":"demolitionist/punchf",CHAN_WEAPON,CHANF_OVERLAP);
A_AlertMonsters(300);
A_AlertMonsters(swwm_uncapalert?0:300);
return true;
}
return false;
@ -1383,7 +1383,7 @@ Class SWWMWeapon : Weapon abstract
int quakin = raging?4:1;
A_QuakeEx(quakin,quakin,quakin,3,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.12*quakin);
A_StartSound(raging?"pusher/althit":(hitsound!="")?hitsound:"demolitionist/punch",CHAN_WEAPON,CHANF_OVERLAP);
A_AlertMonsters(100);
A_AlertMonsters(swwm_uncapalert?0:100);
if ( raging ) raging.DoHitFX();
if ( swwm_omnibust ) BusterWall.BustLinetrace(d,raging?(dmg*8):dmg,self,d.HitDir,d.HitLocation.z);
}

View file

@ -242,7 +242,7 @@ Class PusherProjectile : Actor
// re-do the bounce with our formula
vel = .8*((vel dot HitNormal)*HitNormal*(-1.8+FRandom[Pusher](.0,.8))+vel);
A_StartSound("pusher/bounce",volume:.3);
A_AlertMonsters(300);
A_AlertMonsters(swwm_uncapalert?0:300);
if ( vel.length() < 5 )
{
special1 = 0;
@ -400,7 +400,7 @@ Class PusherWeapon : SWWMWeapon
if ( d.HitType != TRACE_HitNone )
{
A_QuakeEx(2,2,2,7,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.8);
A_AlertMonsters(1200);
A_AlertMonsters(swwm_uncapalert?0:1200);
int dmg = int(5+invoker.chargelevel*3);
if ( d.HitType == TRACE_HitActor )
{
@ -460,7 +460,7 @@ Class PusherWeapon : SWWMWeapon
s.scale *= 1.4;
s.alpha *= .03;
}
if ( swwm_extraalert || !(invoker.hitcnt%20) ) A_AlertMonsters(500);
if ( swwm_extraalert || !(invoker.hitcnt%20) ) A_AlertMonsters(swwm_uncapalert?0:500);
invoker.hitcnt++;
}
@ -487,7 +487,7 @@ Class PusherWeapon : SWWMWeapon
if ( d.HitType != TRACE_HitNone )
{
A_QuakeEx(8,8,8,12,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.8);
A_AlertMonsters(1600);
A_AlertMonsters(swwm_uncapalert?0:1600);
int dmg = int(300*invoker.chargelevel);
if ( d.HitType == TRACE_HitActor )
{
@ -560,7 +560,7 @@ Class PusherWeapon : SWWMWeapon
s.alpha *= .1;
}
}
A_AlertMonsters(1200);
A_AlertMonsters(swwm_uncapalert?0:1200);
invoker.chargelevel = 0.;
}

View file

@ -348,7 +348,7 @@ Class Demolitionist : PlayerPawn
if ( dashboost < .2 ) dashboost = 0.;
else
{
if ( swwm_extraalert ) A_AlertMonsters(800);
if ( swwm_extraalert ) A_AlertMonsters(swwm_uncapalert?0:800);
dashboost *= (player.cmd.buttons&BT_USER2)?.9:.1;
}
mystats.fuelusage += dashfuel-max(0.,dashfuel-dashboost);
@ -365,7 +365,7 @@ Class Demolitionist : PlayerPawn
if ( dashboost < .2 ) dashboost = 0.;
else
{
if ( swwm_extraalert ) A_AlertMonsters(800);
if ( swwm_extraalert ) A_AlertMonsters(swwm_uncapalert?0:800);
dashboost *= (player.cmd.buttons&BT_JUMP)?.95:.4;
last_boost = level.maptime+1;
}
@ -617,7 +617,7 @@ Class Demolitionist : PlayerPawn
s.special1 = int(-lastvelz);
ReactionTime = 17;
A_Stop();
A_AlertMonsters(2500);
A_AlertMonsters(swwm_uncapalert?0:2500);
if ( player == players[consoleplayer] )
{
A_StartSound("demolitionist/hardland",CHAN_FOOTSTEP,CHANF_OVERLAP);
@ -740,7 +740,7 @@ Class Demolitionist : PlayerPawn
if ( a.bACTLIKEBRIDGE && (diff.z <= -a.Height) ) continue; // don't bump bridges if hit by above
// large monsters will stop the player (unless hit from above if we're going at ground pound speed)
A_QuakeEx(4,4,4,10,0,128,"",QF_RELATIVE|QF_SCALEDOWN);
A_AlertMonsters(800);
A_AlertMonsters(swwm_uncapalert?0:800);
A_StartSound("demolitionist/bump",CHAN_DAMAGE,CHANF_OVERLAP);
a.A_StartSound("demolitionist/bump",CHAN_DAMAGE,CHANF_OVERLAP);
bumptic = gametic+int(20+spd/4.);
@ -860,7 +860,7 @@ Class Demolitionist : PlayerPawn
A_StartSound("demolitionist/bump",CHAN_DAMAGE,CHANF_OVERLAP);
bumptic = gametic+int(20+spd/4.);
A_QuakeEx(8,8,8,16,0,128,"",QF_RELATIVE|QF_SCALEDOWN);
A_AlertMonsters(800);
A_AlertMonsters(swwm_uncapalert?0:800);
vel *= .2;
vel -= dir*(10+(spd*30/mass));
vel.z += 5+(spd*(10/mass));
@ -953,7 +953,7 @@ Class Demolitionist : PlayerPawn
A_StartSound("demolitionist/bump",CHAN_DAMAGE,CHANF_OVERLAP);
bumptic = gametic+int(20+spd/4.);
A_QuakeEx(8,8,8,16,0,128,"",QF_RELATIVE|QF_SCALEDOWN);
A_AlertMonsters(800);
A_AlertMonsters(swwm_uncapalert?0:800);
vel *= .2;
vel -= dir*(10+(spd*30/mass));
vel += wallnorm*(10+(spd*50/mass));
@ -1414,7 +1414,7 @@ Class Demolitionist : PlayerPawn
s.special1 = 30;
ReactionTime = 17;
A_Stop();
A_AlertMonsters(2500);
A_AlertMonsters(swwm_uncapalert?0:2500);
if ( player == players[consoleplayer] )
{
A_StartSound("demolitionist/hardland",CHAN_FOOTSTEP,CHANF_OVERLAP);

View file

@ -858,7 +858,7 @@ Class RagekitPower : Powerup
}
if ( Owner.player == players[consoleplayer] )
lastrage = SWWMHandler.AddOneliner("ragekit",2,20)+40;
Owner.A_AlertMonsters(5000);
Owner.A_AlertMonsters(swwm_uncapalert?0:5000);
SWWMHandler.DoFlash(Owner,Color(64,255,0,0),30);
Owner.A_QuakeEx(8,8,8,20,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:1.);
lasteffect = int.min;
@ -880,7 +880,7 @@ Class RagekitPower : Powerup
SWWMHandler.DoFlash(Owner,Color(16,255,0,0),5);
if ( Owner.GiveBody(1,100) )
SWWMScoreObj.Spawn(1,Owner.Vec3Offset(FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8)+Owner.Height/2),Font.CR_BLUE);
Owner.A_AlertMonsters(2000);
Owner.A_AlertMonsters(swwm_uncapalert?0:2000);
if ( (Owner.player == players[consoleplayer]) && (gametic > lastrage) && (CVar.GetCVar('swwm_mutevoice',players[consoleplayer]).GetInt() < 2) )
lastrage = SWWMHandler.AddOneliner("ragekit",2,5)+40;
Owner.A_QuakeEx(2,2,2,Random[Rage](1,2),0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.5);
@ -934,7 +934,7 @@ Class RagekitPower : Powerup
if ( level.maptime <= lasteffect+5 ) return;
if ( Owner.GiveBody(5,100) )
SWWMScoreObj.Spawn(5,Owner.Vec3Offset(FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8)+Owner.Height/2),Font.CR_BLUE);
Owner.A_AlertMonsters(5000);
Owner.A_AlertMonsters(swwm_uncapalert?0:5000);
SWWMHandler.DoFlash(Owner,Color(64,255,0,0),10);
Owner.A_QuakeEx(8,8,8,Random[Rage](3,8),0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:1.);
if ( (Owner.player == players[consoleplayer]) && (gametic > lastrage) )

View file

@ -156,7 +156,7 @@ Class SpreadImpact : Actor
override void PostBeginPlay()
{
Super.PostBeginPlay();
if ( swwm_extraalert ) A_AlertMonsters(200);
if ( swwm_extraalert ) A_AlertMonsters(swwm_uncapalert?0:200);
A_StartSound("spreadgun/pellet",CHAN_VOICE,CHANF_DEFAULT,.4,4.);
A_SprayDecal("TinyPock",-20);
int numpt = Random[Spreadgun](2,4)-special1;
@ -203,7 +203,7 @@ Class SlugImpact : Actor
override void PostBeginPlay()
{
Super.PostBeginPlay();
if ( swwm_extraalert ) A_AlertMonsters(500);
if ( swwm_extraalert ) A_AlertMonsters(swwm_uncapalert?0:500);
A_StartSound("spreadgun/slug",CHAN_VOICE,CHANF_DEFAULT,1.,2.);
A_SprayDecal("Pock",-20);
int numpt = Random[Spreadgun](5,10)-special1;
@ -499,7 +499,7 @@ Class SaltImpact : Actor
override void PostBeginPlay()
{
Super.PostBeginPlay();
A_AlertMonsters(6000);
A_AlertMonsters(swwm_uncapalert?0:6000);
SWWMUtility.DoExplosion(self,25+special2*5,15000,100,40);
A_QuakeEx(3,3,3,10,0,250,"",QF_RELATIVE|QF_SCALEDOWN,falloff:150,rollintensity:0.2);
A_StartSound("spreadgun/salt",CHAN_VOICE,attenuation:.35);
@ -1275,7 +1275,7 @@ Class BallImpact : Actor
override void PostBeginPlay()
{
Super.PostBeginPlay();
if ( swwm_extraalert ) A_AlertMonsters(500);
if ( swwm_extraalert ) A_AlertMonsters(swwm_uncapalert?0:500);
A_QuakeEx(3,3,3,12,0,200,"",QF_RELATIVE|QF_SCALEDOWN,falloff:100,rollIntensity:.3);
A_StartSound("spreadgun/ball",CHAN_VOICE);
A_SprayDecal("WallCrack",-20);
@ -1354,7 +1354,7 @@ Class TheBall : Actor
Spawn("SWWMItemFog",pos);
int whichclonk = Random[Spreadgun](1,11);
String snd = String.Format("misc/clonk%d",whichclonk);
A_AlertMonsters(2500);
A_AlertMonsters(swwm_uncapalert?0:2500);
A_StartSound(snd,CHAN_VOICE,CHANF_OVERLAP,1.,.2);
A_StartSound(snd,CHAN_VOICE,CHANF_OVERLAP,1.,.2);
victim.A_QuakeEx(8,8,8,8,0,3000,"",QF_RELATIVE|QF_SCALEDOWN,falloff:300,rollIntensity:1.);
@ -1593,7 +1593,7 @@ Class GoldenImpact : Actor
override void PostBeginPlay()
{
Super.PostBeginPlay();
A_AlertMonsters(40000);
A_AlertMonsters(swwm_uncapalert?0:40000);
SWWMUtility.DoExplosion(self,7777,40000,600,500,DE_EXTRAZTHRUST);
A_QuakeEx(9,9,9,40,0,5000,"",QF_RELATIVE|QF_SCALEDOWN,falloff:500,rollintensity:1.5);
A_StartSound("spreadgun/goldexpl",CHAN_VOICE,attenuation:.3);
@ -2164,7 +2164,7 @@ Class Spreadgun : SWWMWeapon
if ( invoker.loadammo != types[i] ) continue;
A_SWWMFlash(flashes[i]);
A_StartSound(sounds[i],CHAN_WEAPON,CHANF_OVERLAP,attenuation:.6);
A_AlertMonsters(louds[i]);
A_AlertMonsters(swwm_uncapalert?0:louds[i]);
A_QuakeEx(quakes[i],quakes[i],quakes[i],9,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.2*quakes[i]);
A_ZoomFactor(1.-quakes[i]*.04,ZOOM_INSTANT);
A_ZoomFactor(1.);

View file

@ -277,7 +277,7 @@ Class BigBiospark : Actor
void A_BigSparkExplode()
{
A_StopSound(CHAN_VOICE);
A_AlertMonsters(15000);
A_AlertMonsters(swwm_uncapalert?0:15000);
SWWMUtility.DoExplosion(self,350,90000,250,100,flags:DE_HOWL);
A_QuakeEx(9,9,9,30,0,1400,"",QF_RELATIVE|QF_SCALEDOWN,falloff:500,rollIntensity:1.5);
A_StartSound("biospark/bighit",CHAN_ITEM,attenuation:.4);
@ -537,7 +537,7 @@ Class BiosparkBall : Actor
void A_SparkExplode()
{
A_StopSound(CHAN_VOICE);
A_AlertMonsters(5000);
A_AlertMonsters(swwm_uncapalert?0:5000);
SWWMUtility.DoExplosion(self,50,20000,150,80,flags:DE_HOWL);
A_QuakeEx(6,6,6,16,0,800,"",QF_RELATIVE|QF_SCALEDOWN,falloff:300,rollIntensity:.8);
A_StartSound("biospark/hit",CHAN_ITEM,attenuation:.8);
@ -701,7 +701,7 @@ Class BiosparkBeamImpact : Actor
override void PostBeginPlay()
{
Super.PostBeginPlay();
A_AlertMonsters(2000);
A_AlertMonsters(swwm_uncapalert?0:2000);
SWWMUtility.DoExplosion(self,40,20000,100,40,flags:DE_HOWL);
A_QuakeEx(3,3,3,12,0,800,"",QF_RELATIVE|QF_SCALEDOWN,falloff:300,rollIntensity:.4);
A_StartSound("biospark/beamhit",CHAN_ITEM,attenuation:1.1);
@ -903,7 +903,7 @@ Class BiosparkComboImpact : Actor
override void PostBeginPlay()
{
Super.PostBeginPlay();
A_AlertMonsters(6000);
A_AlertMonsters(swwm_uncapalert?0:6000);
SWWMUtility.DoExplosion(self,bAMBUSH?(200+Args[0]*25):150,bAMBUSH?120000:60000,bAMBUSH?500:300,bAMBUSH?350:150,DE_HOWL);
A_QuakeEx(9,9,9,25,0,2000,"",QF_RELATIVE|QF_SCALEDOWN,falloff:600,rollIntensity:1.5);
A_StartSound("biospark/bighit",CHAN_ITEM,attenuation:.4);
@ -1793,7 +1793,7 @@ Class BiosparkCore : Actor
}
void A_Deploy()
{
A_AlertMonsters(700);
A_AlertMonsters(swwm_uncapalert?0:700);
A_QuakeEx(7,7,7,8,0,1400,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:1.);
A_StartSound("biospark/deploy",CHAN_ITEM,attenuation:.7);
A_StartSound("biospark/deploy",CHAN_WEAPON,attenuation:.5);
@ -1808,7 +1808,7 @@ Class BiosparkCore : Actor
{
bNOGRAVITY = true;
A_SetRenderStyle(1.,STYLE_Add);
A_AlertMonsters(5000);
A_AlertMonsters(swwm_uncapalert?0:5000);
SWWMUtility.DoExplosion(self,50,120000,150,60);
A_QuakeEx(6,6,6,16,0,800,"",QF_RELATIVE|QF_SCALEDOWN,falloff:300,rollIntensity:.8);
Scale *= FRandom[ExploS](0.8,1.1);
@ -2036,7 +2036,7 @@ Class Sparkster : SWWMWeapon
A_ZoomFactor(1.);
A_SWWMFlash();
SWWMHandler.DoFlash(self,Color(64,192,255,96),3);
A_AlertMonsters(5000);
A_AlertMonsters(swwm_uncapalert?0:5000);
A_PlayerFire();
a = FRandom[Spread](0,360);
s = FRandom[Spread](0,.007);
@ -2056,7 +2056,7 @@ Class Sparkster : SWWMWeapon
A_ZoomFactor(1.);
A_SWWMFlash();
SWWMHandler.DoFlash(self,Color(64,192,255,96),3);
A_AlertMonsters(4000);
A_AlertMonsters(swwm_uncapalert?0:4000);
A_PlayerFire();
a = FRandom[Spread](0,360);
s = FRandom[Spread](0,.003);
@ -2074,7 +2074,7 @@ Class Sparkster : SWWMWeapon
A_QuakeEx(5,5,5,10,0,8,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.6);
A_ZoomFactor(.94,ZOOM_INSTANT);
A_ZoomFactor(1.);
A_AlertMonsters(1200);
A_AlertMonsters(swwm_uncapalert?0:1200);
A_PlayerFire();
SWWMUtility.DoKnockback(self,-x,2500.);
a = FRandom[Spread](0,360);

View file

@ -143,7 +143,7 @@ Class ExplodiumMagProj : Actor
bNOGRAVITY = true;
A_SetRenderStyle(1.,STYLE_Add);
Scale *= 2.+.2*special1;
A_AlertMonsters(6000);
A_AlertMonsters(swwm_uncapalert?0:6000);
SWWMUtility.DoExplosion(self,20+15*special1,80000+8000*special1,90+10*special1,60,DE_EXTRAZTHRUST);
A_QuakeEx(9,9,9,30,0,400+80*special1,"",QF_RELATIVE|QF_SCALEDOWN,falloff:300,rollintensity:2.);
A_StartSound("explodium/maghit",CHAN_VOICE,attenuation:.35);
@ -240,7 +240,7 @@ Class ExplodiumBulletImpact : Actor
override void PostBeginPlay()
{
Super.PostBeginPlay();
A_AlertMonsters(3000);
A_AlertMonsters(swwm_uncapalert?0:3000);
SWWMUtility.DoExplosion(self,25,80000,90,40,DE_EXTRAZTHRUST);
A_QuakeEx(4,4,4,10,0,250,"",QF_RELATIVE|QF_SCALEDOWN,falloff:150,rollintensity:0.2);
A_StartSound("explodium/hit",CHAN_VOICE,attenuation:.6);
@ -380,7 +380,7 @@ Class ExplodiumGun : SWWMWeapon
A_ZoomFactor(1.);
A_SWWMFlash();
SWWMHandler.DoFlash(self,Color(64,255,224,64),3);
A_AlertMonsters(5000);
A_AlertMonsters(swwm_uncapalert?0:5000);
A_PlayerFire();
Vector3 x, y, z, x2, y2, z2;
[x, y, z] = swwm_CoordUtil.GetAxes(pitch,angle,roll);
@ -799,7 +799,7 @@ Class DualExplodiumGun : SWWMWeapon
else if ( side == -1 )
A_LeftFlash("LeftFlash");
SWWMHandler.DoFlash(self,Color(64,255,224,64),3);
A_AlertMonsters(5000);
A_AlertMonsters(swwm_uncapalert?0:5000);
A_PlayerFire();
Vector3 x, y, z, x2, y2, z2;
[x, y, z] = swwm_CoordUtil.GetAxes(pitch,angle,roll);

View file

@ -541,7 +541,7 @@ Class CandyGunProj : Actor
bNOGRAVITY = true;
A_SetRenderStyle(1.,STYLE_Add);
Scale *= 7.+.2*special1;
A_AlertMonsters(40000);
A_AlertMonsters(swwm_uncapalert?0:40000);
SWWMUtility.DoExplosion(self,5000+900*special1,80000+15000*special1,500+30*special1,300,DE_EXTRAZTHRUST);
A_QuakeEx(9,9,9,70,0,1500+100*special1,"",QF_RELATIVE|QF_SCALEDOWN,falloff:1200,rollintensity:2.);
A_StartSound("candygun/gunhit",CHAN_VOICE,attenuation:.24);
@ -657,7 +657,7 @@ Class CandyMagProj : Actor
bNOGRAVITY = true;
A_SetRenderStyle(1.,STYLE_Add);
Scale *= 3.+.2*special1;
A_AlertMonsters(20000);
A_AlertMonsters(swwm_uncapalert?0:20000);
SWWMUtility.DoExplosion(self,1000+900*special1,60000+15000*special1,200+20*special1,100,DE_EXTRAZTHRUST);
A_QuakeEx(9,9,9,30,0,500+80*special1,"",QF_RELATIVE|QF_SCALEDOWN,falloff:500,rollintensity:2.);
A_StartSound("candygun/maghit",CHAN_VOICE,attenuation:.24);
@ -752,7 +752,7 @@ Class CandyBulletImpact : Actor
override void PostBeginPlay()
{
Super.PostBeginPlay();
A_AlertMonsters(9000);
A_AlertMonsters(swwm_uncapalert?0:9000);
SWWMUtility.DoExplosion(self,1200,48000,250,80,DE_EXTRAZTHRUST);
A_QuakeEx(6,6,6,15,0,300,"",QF_RELATIVE|QF_SCALEDOWN,falloff:200,rollintensity:0.2);
A_StartSound("candygun/hit",CHAN_VOICE,attenuation:.25);
@ -972,7 +972,7 @@ Class CandyGun : SWWMWeapon
A_ZoomFactor(1.);
A_SWWMFlash();
SWWMHandler.DoFlash(self,Color(64,224,64,255),5);
A_AlertMonsters(9000);
A_AlertMonsters(swwm_uncapalert?0:9000);
A_PlayerFire();
Vector3 x, y, z, x2, y2, z2;
[x, y, z] = swwm_CoordUtil.GetAxes(pitch,angle,roll);

View file

@ -102,7 +102,7 @@ Class SilverImpact : Actor
{
Super.PostBeginPlay();
SWWMUtility.DoExplosion(self,100,8000,100,20);
A_AlertMonsters(2500);
A_AlertMonsters(swwm_uncapalert?0:2500);
A_QuakeEx(4,4,4,20,0,400,"",QF_RELATIVE|QF_SCALEDOWN,falloff:100,rollIntensity:.9);
if ( special1 )
{
@ -434,7 +434,7 @@ Class FatChodeImpact : Actor
{
Super.PostBeginPlay();
SWWMUtility.DoExplosion(self,1500,40000,250,120,DE_THRUWALLS|DE_EXTRAZTHRUST);
A_AlertMonsters(8000);
A_AlertMonsters(swwm_uncapalert?0:8000);
A_QuakeEx(7,7,7,50,0,2000,"",QF_RELATIVE|QF_SCALEDOWN,falloff:800,rollIntensity:1.);
A_StartSound("silverbullet/chode",CHAN_VOICE,CHANF_DEFAULT,1.,.35);
A_SprayDecal("BigPock",-64);
@ -931,7 +931,7 @@ Class SilverBullet : SWWMWeapon
{
A_SWWMFlash();
A_StartSound(invoker.fcbchambered?"silverbullet/altfire":"silverbullet/fire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.3);
A_AlertMonsters(16000);
A_AlertMonsters(swwm_uncapalert?0:16000);
int str = invoker.fcbchambered?7:8;
A_QuakeEx(str,str,str,10,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:str/4.);
double basezoom = invoker.zoomed?clamp(invoker.zoomlevel,1.,16.):1.;