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