From 9aa636aed58db92be91617d08371558a92f8106d Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Thu, 19 Nov 2020 21:33:06 +0100 Subject: [PATCH] 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. --- cvarinfo.txt | 1 + language.def_menu | 2 ++ language.es_menu | 2 ++ language.version | 2 +- menudef.txt | 1 + zscript/swwm_blazeit.zsc | 14 +++++++------- zscript/swwm_cbt.zsc | 4 ++-- zscript/swwm_danmaku.zsc | 10 +++++----- zscript/swwm_deepdarkimpact.zsc | 10 +++++----- zscript/swwm_inventory.zsc | 4 ++-- zscript/swwm_jackhammer.zsc | 10 +++++----- zscript/swwm_player.zsc | 14 +++++++------- zscript/swwm_powerup.zsc | 6 +++--- zscript/swwm_shot.zsc | 14 +++++++------- zscript/swwm_sparkyboi.zsc | 18 +++++++++--------- zscript/swwm_splode.zsc | 8 ++++---- zscript/swwm_tastytreat.zsc | 8 ++++---- zscript/swwm_thiccboolet.zsc | 6 +++--- 18 files changed, 70 insertions(+), 64 deletions(-) diff --git a/cvarinfo.txt b/cvarinfo.txt index 66edf1d38..141afb425 100644 --- a/cvarinfo.txt +++ b/cvarinfo.txt @@ -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 diff --git a/language.def_menu b/language.def_menu index 6d2d908ff..9f6bac09a 100644 --- a/language.def_menu +++ b/language.def_menu @@ -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"; diff --git a/language.es_menu b/language.es_menu index 76ac2894f..957364b53 100644 --- a/language.es_menu +++ b/language.es_menu @@ -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"; diff --git a/language.version b/language.version index c6834f999..c09b7fcd9 100644 --- a/language.version +++ b/language.version @@ -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)"; diff --git a/menudef.txt b/menudef.txt index bf61400c2..f8a12d89d 100644 --- a/menudef.txt +++ b/menudef.txt @@ -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" diff --git a/zscript/swwm_blazeit.zsc b/zscript/swwm_blazeit.zsc index 2f17673c6..6b882eea9 100644 --- a/zscript/swwm_blazeit.zsc +++ b/zscript/swwm_blazeit.zsc @@ -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 0 ) { diff --git a/zscript/swwm_danmaku.zsc b/zscript/swwm_danmaku.zsc index 78982f91e..2bb403c37 100644 --- a/zscript/swwm_danmaku.zsc +++ b/zscript/swwm_danmaku.zsc @@ -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); diff --git a/zscript/swwm_deepdarkimpact.zsc b/zscript/swwm_deepdarkimpact.zsc index c12b5acbd..4bb9e7990 100644 --- a/zscript/swwm_deepdarkimpact.zsc +++ b/zscript/swwm_deepdarkimpact.zsc @@ -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; diff --git a/zscript/swwm_inventory.zsc b/zscript/swwm_inventory.zsc index d7852b792..e6a17cb2b 100644 --- a/zscript/swwm_inventory.zsc +++ b/zscript/swwm_inventory.zsc @@ -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); } diff --git a/zscript/swwm_jackhammer.zsc b/zscript/swwm_jackhammer.zsc index 1e9b93e8a..5ffb6b8dc 100644 --- a/zscript/swwm_jackhammer.zsc +++ b/zscript/swwm_jackhammer.zsc @@ -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.; } diff --git a/zscript/swwm_player.zsc b/zscript/swwm_player.zsc index acd58cf2b..ba8a5460d 100644 --- a/zscript/swwm_player.zsc +++ b/zscript/swwm_player.zsc @@ -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); diff --git a/zscript/swwm_powerup.zsc b/zscript/swwm_powerup.zsc index 601c96c6c..9ea2d1746 100644 --- a/zscript/swwm_powerup.zsc +++ b/zscript/swwm_powerup.zsc @@ -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) ) diff --git a/zscript/swwm_shot.zsc b/zscript/swwm_shot.zsc index 013c7c2bf..d8551062b 100644 --- a/zscript/swwm_shot.zsc +++ b/zscript/swwm_shot.zsc @@ -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.); diff --git a/zscript/swwm_sparkyboi.zsc b/zscript/swwm_sparkyboi.zsc index 48ea2889c..d70293dac 100644 --- a/zscript/swwm_sparkyboi.zsc +++ b/zscript/swwm_sparkyboi.zsc @@ -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); diff --git a/zscript/swwm_splode.zsc b/zscript/swwm_splode.zsc index 9fd856c15..cc8135d4d 100644 --- a/zscript/swwm_splode.zsc +++ b/zscript/swwm_splode.zsc @@ -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); diff --git a/zscript/swwm_tastytreat.zsc b/zscript/swwm_tastytreat.zsc index 655bbaf34..d89a67280 100644 --- a/zscript/swwm_tastytreat.zsc +++ b/zscript/swwm_tastytreat.zsc @@ -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); diff --git a/zscript/swwm_thiccboolet.zsc b/zscript/swwm_thiccboolet.zsc index 93d5b413e..a9be80534 100644 --- a/zscript/swwm_thiccboolet.zsc +++ b/zscript/swwm_thiccboolet.zsc @@ -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.;