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