From b5a0c723fe2e04d1432a118b28f89bd946b235b6 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Sun, 12 Aug 2018 15:39:21 +0200 Subject: [PATCH] Tweaked fire rates of Enforcer, Shock Rifle, Ripper, Flak Cannon to be even closer to the originals. Reduced gravity on Biosludge to make it feel more like the original. Buffed chainsaw altfire, making it hit fast on a wider arc. Correctly fixed armor + shield belt behaviors. Made it so jump boots drain after landing, thus preventing fall damage on the last jump in case it's enabled. Made jump boots drain slowly over time, for balance reasons (especially when jumping is disabled). --- zscript/armoritems.zsc | 33 +++++++++++++++++++++++++-------- zscript/biorifle.zsc | 9 ++++++--- zscript/chainsaw.zsc | 15 ++++++++++----- zscript/enforcer.zsc | 12 ++++++------ zscript/flakcannon.zsc | 3 +-- zscript/powerups.zsc | 21 +++++++++++---------- zscript/ripper.zsc | 2 +- zscript/shockrifle.zsc | 8 ++++---- 8 files changed, 64 insertions(+), 39 deletions(-) diff --git a/zscript/armoritems.zsc b/zscript/armoritems.zsc index 8f1cb29..933abf7 100644 --- a/zscript/armoritems.zsc +++ b/zscript/armoritems.zsc @@ -8,7 +8,8 @@ Class UTArmor : Armor { +INVENTORY.AUTOACTIVATE; +INVENTORY.UNTOSSABLE; - +INVENTORY.KEEPDEPLETED; + -INVENTORY.KEEPDEPLETED; + +INVENTORY.ALWAYSPICKUP; } override void AbsorbDamage( int damage, Name damageType, out int newdamage ) { @@ -37,7 +38,6 @@ Class UTArmorBonus : UTArmor replaces ArmorBonus { Tag "Armor Bonus"; +COUNTITEM; - +INVENTORY.ALWAYSPICKUP; Inventory.Amount 1; Inventory.MaxAmount 50; Inventory.InterHubAmount 50; @@ -62,9 +62,12 @@ Class UTThighPads : UTArmor replaces GreenArmor let s = Owner.FindInventory("UTShieldBelt"); if ( s ) { + // sum up current amounts + let a = Owner.FindInventory("UTBodyArmor"); + int samount = s.amount; + if ( a ) samount += a.amount; if ( amount < item.amount ) amount = item.amount; - amount = min(s.maxamount-s.amount,amount); - Console.Printf("%d",amount); + amount = min(s.maxamount-samount,amount); item.bPickupGood = true; return true; } @@ -98,9 +101,12 @@ Class UTBodyArmor : UTArmor replaces BlueArmor let s = Owner.FindInventory("UTShieldBelt"); if ( s ) { + // sum up current amounts + let p = Owner.FindInventory("UTThighPads"); + int samount = s.amount; + if ( p ) samount += p.amount; if ( amount < item.amount ) amount = item.amount; - amount = min(s.maxamount-s.amount,amount); - Console.Printf("%d",amount); + amount = min(s.maxamount-samount,amount); item.bPickupGood = true; return true; } @@ -142,9 +148,20 @@ Class UTShieldBelt : UTArmor replaces Megasphere { if ( (item is 'UTBodyArmor') || (item is 'UTThighPads') ) { - item.amount = 1; - amount -= 1; + // sum up current amounts + let a = Owner.FindInventory("UTBodyArmor"); + let p = Owner.FindInventory("UTThighPads"); + int samount = amount; + if ( a ) samount += a.amount; + if ( p ) samount += p.amount; + item.amount = min(item.amount,maxamount-samount); + if ( item.amount <= 0 ) + { + item.amount = 1; + amount -= 1; + } } + if ( item is 'UTShieldBelt' ) Use(true); return Super.HandlePickup(item); } override bool Use( bool pickup ) diff --git a/zscript/biorifle.zsc b/zscript/biorifle.zsc index 641b433..c437d28 100644 --- a/zscript/biorifle.zsc +++ b/zscript/biorifle.zsc @@ -85,7 +85,7 @@ Class BioSpark : Actor BounceFactor 0.5; WallBounceFactor 0.5; Gravity 0.2; - Scale 0.04; + Scale 0.06; } override void PostBeginPlay() { @@ -218,7 +218,7 @@ Class BioGel : Actor override void PostBeginPlay() { Super.PostBeginPlay(); - vel.z += 6; + vel.z += 3; deadtimer = -1; l = Spawn("BioLight",pos); l.target = self; @@ -281,7 +281,9 @@ Class BioGel : Actor for ( int i=0; i 0) && (owner.player.jumptics == -1) ) { - Amount--; + Amount = max(0,Amount-700); Owner.A_PlaySound("boot/jump",CHAN_BODY); - if ( Amount <= 0 ) - { - PrintPickupMessage(true,"The AntiGrav Boots have drained."); - DepleteOrDestroy(); - } + } + else if ( (Amount <= 0) && owner.player.onground ) + { + PrintPickupMessage(true,"The AntiGrav Boots have drained."); + DepleteOrDestroy(); } } override void DetachFromOwner() diff --git a/zscript/ripper.zsc b/zscript/ripper.zsc index 89e6772..372fe66 100644 --- a/zscript/ripper.zsc +++ b/zscript/ripper.zsc @@ -310,7 +310,7 @@ Class Ripper2 : UTWeapon Goto Idle; AltFire: RZRF A 0 A_RazorFire(true); - RZRF ABCDEFG 3; + RZRF ABDEG 3; RZRF HIJKLMNO 1; Goto Idle; Deselect: diff --git a/zscript/shockrifle.zsc b/zscript/shockrifle.zsc index 2a903d6..a2844ec 100644 --- a/zscript/shockrifle.zsc +++ b/zscript/shockrifle.zsc @@ -1083,11 +1083,11 @@ Class ShockRifle : UTWeapon Wait; Fire: ASMF A 1 A_ShockFire(); - ASMF BCDEFGHIJ 2; + ASMF BCDEFGHIJJ 2; Goto Idle; AltFire: ASMA A 1 A_ShockAlt(); - ASMA BCDEFGHIJ 2; + ASMA BCDFGHIJ 2; Goto Idle; Deselect: ASMD ABCDEFG 1; @@ -1256,12 +1256,12 @@ Class EnhancedShockRifle : UTWeapon replaces InvulnerabilitySphere Fire: ASMI A 0 A_JumpIfNoAmmo("DryFire"); ASMF A 1 A_SShockFire(); - ASMF BCDEFGHIJ 2; + ASMF BCDEFGHIJJ 2; Goto Idle; AltFire: ASMI A 0 A_JumpIfNoAmmo("DryFire"); ASMA A 1 A_SShockAlt(); - ASMA BCDEFGHIJ 2; + ASMA BCDFGHIJ 2; Goto Idle; DryFire: ASMA I 3