From 5db3f32274967f5f4394ecc21663a757bc33fefb Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Sun, 29 Sep 2019 22:23:45 +0200 Subject: [PATCH] =?UTF-8?q?Beta=204=20Hotfix=201:=20-=20Nerfed=20Fireblast?= =?UTF-8?q?er,=20damage=20was=20too=20high=20for=20its=20speed=20(30/60=20?= =?UTF-8?q?=E2=86=92=2010/20),=20to=20compensate=20for=20the=20dramatic=20?= =?UTF-8?q?alt=20projectile=20nerf,=20its=20embers=20now=20deal=20short=20?= =?UTF-8?q?radius=20splash=20damage.=20-=20Nerfed=20Impaler=20altfire,=20n?= =?UTF-8?q?o=20longer=20an=20instant=20"I=20win"=20weapon=20(damage=20inte?= =?UTF-8?q?rval=20raised=20from=205=20to=2015=20tics,=20also=20beam=20beco?= =?UTF-8?q?mes=20weaker=20at=20low=20charge,=20starting=20to=20drop=20from?= =?UTF-8?q?=20100%=20at=20half-charge=20to=2050%=20at=20zero=20charge).=20?= =?UTF-8?q?-=20Fixed=20Impaler=20crash=20when=20shooter=20dies=20while=20f?= =?UTF-8?q?iring=20beam.=20-=20Updated=20the=20reload=20code=20of=20the=20?= =?UTF-8?q?SMP,=20I=20forgot=20about=20it.=20-=20Increased=20the=20Detecto?= =?UTF-8?q?r=20range=20again,=201024=20is=20more=20reasonable.=20-=20Fixed?= =?UTF-8?q?=20Minigun=20altfire=20not=20triggering=20if=20player=20was=20h?= =?UTF-8?q?olding=20primary=20fire.=20-=20Removed=20pistols=20from=20Super?= =?UTF-8?q?=20Shotgun=20replacement=20pool.=20-=20Increased=20spawn=20chan?= =?UTF-8?q?ce=20of=20Flamethrower,=20since=20it=20almost=20never=20appears?= =?UTF-8?q?=20in=20practice.=20-=20Capped=20maximum=20Flamethrower=20damag?= =?UTF-8?q?e=20(75=20=E2=86=92=2020),=20this=20was=20way=20too=20high=20an?= =?UTF-8?q?d=20made=20the=20weapon=20too=20overpowered.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zscript/flamegun.zsc | 22 ++++++++++++++++++---- zscript/impaler.zsc | 38 +++++++++++++++++++++++++++----------- zscript/napalm.zsc | 2 +- zscript/olsmp.zsc | 13 +++++++------ zscript/uminigun.zsc | 2 +- zscript/unrealcommon.zsc | 4 ++-- zscript/upowerups.zsc | 4 ++-- 7 files changed, 58 insertions(+), 27 deletions(-) diff --git a/zscript/flamegun.zsc b/zscript/flamegun.zsc index b202648..8f7c625 100644 --- a/zscript/flamegun.zsc +++ b/zscript/flamegun.zsc @@ -53,7 +53,7 @@ Class UFireball : Actor Default { DamageType 'Fire'; - DamageFunction 30; + DamageFunction 10; Radius 4; Height 4; Speed 15; @@ -121,7 +121,12 @@ Class UFireball : Actor { A_SetRenderStyle(1.,STYLE_Add); A_NoGravity(); - if ( !bAMBUSH ) + if ( bAMBUSH ) + { + A_Explode(GetMissileDamage(0,0),20); + UTMainHandler.DoBlast(self,20,3000); + } + else { A_PlaySound("flamegun/exp",CHAN_VOICE,pitch:1.2); Spawn("UFireLight",pos); @@ -177,7 +182,7 @@ Class UFireball2 : UFireball { Radius 8; Height 8; - DamageFunction 60; + DamageFunction 20; Speed 5; UFireball.SpreadFactor 0.35; UFireball.NumSmokes 2; @@ -388,7 +393,16 @@ Class FlameGun : UnrealWeapon } FGNF G 0 A_ClearRefire(); FGNF GHIJ 2; - FGNT A 0 A_PlaySound("flamegun/end",CHAN_6,Dampener.Active(self)?.1:1.); + FGNT A 0 + { + if ( invoker.CheckAmmo(0,false,true) && (waterlevel < 2) ) + A_Refire("Fire"); + } + FGNT A 0 + { + A_PlaySound("flamegun/end",CHAN_6,Dampener.Active(self)?.1:1.); + A_ClearRefire(); + } FGNT ABCDEFGHIJKLM 2; Goto Idle; Refire: diff --git a/zscript/impaler.zsc b/zscript/impaler.zsc index 196bce4..8721677 100644 --- a/zscript/impaler.zsc +++ b/zscript/impaler.zsc @@ -220,6 +220,11 @@ Class ImpalerBoltHit : Actor +NOTELEPORT; Scale 0.3; } + override void Tick() + { + Super.Tick(); + if ( !master ) Destroy(); + } States { Spawn: @@ -264,16 +269,16 @@ Class ImpalerBolt : Actor t.Trace(pos,cursector,x,beamsize,0); for ( int i=0; i 0 ) flags |= WRF_ALLOWRELOAD; + if ( (weap.Ammo1.Amount > 0) || (invoker.ClipCount > 0) ) flags |= WRF_ALLOWRELOAD; if ( invoker.HasGem && ((invoker.ClipCount <= 0) || (waterlevel >= 2)) ) flags |= WRF_NOSECONDARY; A_WeaponReady(flags); } diff --git a/zscript/napalm.zsc b/zscript/napalm.zsc index 563d3fa..17d4201 100644 --- a/zscript/napalm.zsc +++ b/zscript/napalm.zsc @@ -77,7 +77,7 @@ Class OnFire : Thinker { cnt = 10; if ( victim.bSHOOTABLE && (victim.Health > 0) && (amount > 0) ) - victim.DamageMobj(instigator.FindInventory("UFlamethrower"),instigator,max(1,int(amount*(victim.bBOSS?0.05:0.15))),'Fire',DMG_THRUSTLESS); + victim.DamageMobj(instigator.FindInventory("UFlamethrower"),instigator,clamp(int(amount*(victim.bBOSS?0.05:0.15)),1,20),'Fire',DMG_THRUSTLESS); if ( !victim ) { Destroy(); diff --git a/zscript/olsmp.zsc b/zscript/olsmp.zsc index f19e880..fe1572f 100644 --- a/zscript/olsmp.zsc +++ b/zscript/olsmp.zsc @@ -65,12 +65,13 @@ Class OLSMP : UnrealWeapon { int ClipCount; double AltAccuracy; + bool ClipOut; property ClipCount : ClipCount; override int, int, bool, bool GetClipAmount() { - return ClipCount, -1, (ClipCount<35), false; + return ClipOut?-1:ClipCount, -1, (ClipCount<35), false; } override bool TryPickup( in out Actor toucher ) { @@ -323,8 +324,7 @@ Class OLSMP : UnrealWeapon AUTR A 0 A_JumpIf(invoker.clipcount>=min(invoker.default.clipcount,invoker.Ammo1.Amount),"Idle"); AUTR A 0 { - invoker.special1 = min(invoker.default.clipcount,invoker.Ammo1.Amount)-invoker.clipcount; - invoker.clipcount = -1; + invoker.clipout = true; A_Overlay(-9999,null); A_WeaponOffset(0,32); // fix sudden psprite lowering A_PlaySound("automag/click",CHAN_WEAPON,!Dampener.Active(self)?1.:.1,pitch:0.8); @@ -333,9 +333,10 @@ Class OLSMP : UnrealWeapon AUTD ABCD 1; AUTD E 30 { - - invoker.clipcount = Min(invoker.default.clipcount,invoker.Ammo1.Amount); - invoker.Ammo1.Amount -= invoker.special1; + invoker.clipout = false; + let aadd = min(invoker.Ammo1.Amount,invoker.default.clipcount-invoker.clipcount); + invoker.clipcount += aadd; + invoker.Ammo1.Amount -= aadd; A_PlaySound("automag/reload",CHAN_WEAPON,!Dampener.Active(self)?1.:.1,pitch:0.8); if ( self is 'UTPlayer' ) UTPlayer(self).PlayReloading(); diff --git a/zscript/uminigun.zsc b/zscript/uminigun.zsc index aad2c8f..e8d1404 100644 --- a/zscript/uminigun.zsc +++ b/zscript/uminigun.zsc @@ -202,7 +202,7 @@ Class UMinigun : UnrealWeapon A_PlaySound("umini/fire",CHAN_WEAPON,Dampener.Active(self)?.1:1.,true); } MGNF ABCDEFGHIJKLMNO 1 A_FireBullet(false); - MGNF A 0 A_JumpIf(invoker.bAltFire,1); + MGNF A 0 A_JumpIf(player.cmd.buttons&BT_ALTATTACK,1); Goto Hold+1; AltHold: MGNA A 0 diff --git a/zscript/unrealcommon.zsc b/zscript/unrealcommon.zsc index a79a98a..3c1307c 100644 --- a/zscript/unrealcommon.zsc +++ b/zscript/unrealcommon.zsc @@ -919,7 +919,7 @@ Class UnrealMainHandler : EventHandler } else if ( (e.Replacee == 'Shotgun') || (e.Replacee == 'SuperShotgun') || (e.Replacee == 'Crossbow') ) { - if ( !Random[Replacements](0,3) ) + if ( !Random[Replacements](0,3) && (e.Replacee != 'SuperShotgun') ) { if ( !Random[Replacements](0,2) ) e.Replacement = 'Betamag'; else e.Replacement = 'Automag'; @@ -946,7 +946,7 @@ Class UnrealMainHandler : EventHandler { if ( !Random[Replacements](0,3) ) { - if ( !Random[Replacements](0,2) ) e.Replacement = 'UFlamethrower'; + if ( Random[Replacements](0,1) ) e.Replacement = 'UFlamethrower'; else e.Replacement = 'FlameGun'; } else if ( Random[Replacements](0,1) ) e.Replacement = 'UFlakCannon'; diff --git a/zscript/upowerups.zsc b/zscript/upowerups.zsc index c10a00b..12daa14 100644 --- a/zscript/upowerups.zsc +++ b/zscript/upowerups.zsc @@ -360,7 +360,7 @@ Class MotionDetector : UnrealInventory for ( int i=0; i 48. ) continue; @@ -389,7 +389,7 @@ Class MotionDetector : UnrealInventory else if ( !bActive && tracer ) tracer.Destroy(); if ( !bActive ) return; nearscan.Clear(); - let bi = BlockThingsIterator.Create(Owner,512); + let bi = BlockThingsIterator.Create(Owner,1024); while ( bi.Next() ) { if ( !bi.Thing || (bi.Thing == Owner) || !bi.Thing.bISMONSTER || bi.Thing.Health <= 0 ) continue;