From a5debcdbb2ada3f374be7d62ef2819f1c06111a3 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Thu, 9 Aug 2018 22:01:16 +0200 Subject: [PATCH] Corrected Armor/Pads + Shield Belt pickup behavior. Reduced Biorifle damage relative to sludge scale. Increased Flak Cannon chunk damage and amount and primary fire speed. Increased Impact Hammer damage and knockback to enemies. Added rare spawn of redeemer ammo pickups for cell packs. Reduced Pulsegun beam damage timer. Increased Ripper primary fire speed. --- zscript/armoritems.zsc | 54 ++++++++++++++++++++++++++++--------- zscript/biorifle.zsc | 7 +++-- zscript/flakcannon.zsc | 8 +++--- zscript/impacthammer.zsc | 6 ++--- zscript/minigun.zsc | 5 ++-- zscript/pulsegun.zsc | 2 +- zscript/ripper.zsc | 2 +- zscript/warheadlauncher.zsc | 2 +- 8 files changed, 57 insertions(+), 29 deletions(-) diff --git a/zscript/armoritems.zsc b/zscript/armoritems.zsc index 7bbeeac..8f1cb29 100644 --- a/zscript/armoritems.zsc +++ b/zscript/armoritems.zsc @@ -55,6 +55,22 @@ Class UTArmorBonus : UTArmor replaces ArmorBonus Class UTThighPads : UTArmor replaces GreenArmor { + override bool HandlePickup( Inventory item ) + { + if ( item is 'UTThighPads' ) + { + let s = Owner.FindInventory("UTShieldBelt"); + if ( s ) + { + if ( amount < item.amount ) amount = item.amount; + amount = min(s.maxamount-s.amount,amount); + Console.Printf("%d",amount); + item.bPickupGood = true; + return true; + } + } + return Super.HandlePickup(item); + } Default { Tag "Thigh Pads"; @@ -75,6 +91,22 @@ Class UTThighPads : UTArmor replaces GreenArmor Class UTBodyArmor : UTArmor replaces BlueArmor { + override bool HandlePickup( Inventory item ) + { + if ( item is 'UTBodyArmor' ) + { + let s = Owner.FindInventory("UTShieldBelt"); + if ( s ) + { + if ( amount < item.amount ) amount = item.amount; + amount = min(s.maxamount-s.amount,amount); + Console.Printf("%d",amount); + item.bPickupGood = true; + return true; + } + } + return Super.HandlePickup(item); + } Default { Tag "Body Armor"; @@ -106,6 +138,15 @@ Class UTShieldBelt : UTArmor replaces Megasphere Super.AbsorbDamage(damage,damageType,newdamage); if ( (oldamt > 0) && (amount <= 0) ) PrintPickupMessage(true,"The Shield Belt has depleted."); } + override bool HandlePickup( Inventory item ) + { + if ( (item is 'UTBodyArmor') || (item is 'UTThighPads') ) + { + item.amount = 1; + amount -= 1; + } + return Super.HandlePickup(item); + } override bool Use( bool pickup ) { // removes thigh pads and body armor like in UT @@ -113,19 +154,6 @@ Class UTShieldBelt : UTArmor replaces Megasphere Owner.TakeInventory("UTBodyArmor",150); return false; } - override bool HandlePickup( Inventory item ) - { - if ( (item is 'UTThighPads') || (item is 'UTBodyArmor') ) - { - if ( amount < maxamount ) - { - DepleteOrDestroy(); - return Super.HandlePickup(item); - } - else return true; - } - return Super.HandlePickup(item); - } Default { Tag "Shield Belt"; diff --git a/zscript/biorifle.zsc b/zscript/biorifle.zsc index c360d74..17a545c 100644 --- a/zscript/biorifle.zsc +++ b/zscript/biorifle.zsc @@ -171,7 +171,6 @@ Class BioLight : DynamicLight Class BioXLight : DynamicLight { - double lifetime; Default { @@ -410,7 +409,7 @@ Class BioGel : Actor s.args[3] = int(s.args[3]*Scale.x); invoker.deadtimer = -2; if ( invoker.atline ) invoker.atline.RemoteActivate(target,invoker.atside,SPAC_Impact,pos); - A_Explode(int(Random[GES](10,20)*Scale.x*Scale.x),Min(150,int(Scale.x*25))); + A_Explode(int(Random[GES](20,40)*Scale.x),Min(150,int(Scale.x*25))); A_PlaySound("ges/explode",CHAN_VOICE); int numpt = Min(300,int(Scale.x*30))+Random[GES](-10,10); for ( int i=0; i 0.22 ) + if ( accdamage > 0.16 ) { t.Results.HitActor.DamageMobj(self,target,int(Random[Pulse](70,80)*accdamage),'zapped',DMG_USEANGLE,atan2(x.y,x.x)); accdamage = 0; diff --git a/zscript/ripper.zsc b/zscript/ripper.zsc index f058cc2..89e6772 100644 --- a/zscript/ripper.zsc +++ b/zscript/ripper.zsc @@ -306,7 +306,7 @@ Class Ripper2 : UTWeapon Loop; Fire: RZRF A 0 A_RazorFire(); - RZRF ABCDEFGHIJKLMNO 1; + RZRF ABDEGHIJKLMNO 1; Goto Idle; AltFire: RZRF A 0 A_RazorFire(true); diff --git a/zscript/warheadlauncher.zsc b/zscript/warheadlauncher.zsc index 2a14054..608cbe0 100644 --- a/zscript/warheadlauncher.zsc +++ b/zscript/warheadlauncher.zsc @@ -1,4 +1,4 @@ -// shouldn't be placed in the world (it wasn't in UT99) +// wasn't placeable in UT99 Class WarheadAmmo : Ammo { Default