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.
This commit is contained in:
parent
e77e0b59ff
commit
a5debcdbb2
8 changed files with 57 additions and 29 deletions
|
|
@ -55,6 +55,22 @@ Class UTArmorBonus : UTArmor replaces ArmorBonus
|
||||||
|
|
||||||
Class UTThighPads : UTArmor replaces GreenArmor
|
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
|
Default
|
||||||
{
|
{
|
||||||
Tag "Thigh Pads";
|
Tag "Thigh Pads";
|
||||||
|
|
@ -75,6 +91,22 @@ Class UTThighPads : UTArmor replaces GreenArmor
|
||||||
|
|
||||||
Class UTBodyArmor : UTArmor replaces BlueArmor
|
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
|
Default
|
||||||
{
|
{
|
||||||
Tag "Body Armor";
|
Tag "Body Armor";
|
||||||
|
|
@ -106,6 +138,15 @@ Class UTShieldBelt : UTArmor replaces Megasphere
|
||||||
Super.AbsorbDamage(damage,damageType,newdamage);
|
Super.AbsorbDamage(damage,damageType,newdamage);
|
||||||
if ( (oldamt > 0) && (amount <= 0) ) PrintPickupMessage(true,"The Shield Belt has depleted.");
|
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 )
|
override bool Use( bool pickup )
|
||||||
{
|
{
|
||||||
// removes thigh pads and body armor like in UT
|
// removes thigh pads and body armor like in UT
|
||||||
|
|
@ -113,19 +154,6 @@ Class UTShieldBelt : UTArmor replaces Megasphere
|
||||||
Owner.TakeInventory("UTBodyArmor",150);
|
Owner.TakeInventory("UTBodyArmor",150);
|
||||||
return false;
|
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
|
Default
|
||||||
{
|
{
|
||||||
Tag "Shield Belt";
|
Tag "Shield Belt";
|
||||||
|
|
|
||||||
|
|
@ -171,7 +171,6 @@ Class BioLight : DynamicLight
|
||||||
|
|
||||||
Class BioXLight : DynamicLight
|
Class BioXLight : DynamicLight
|
||||||
{
|
{
|
||||||
|
|
||||||
double lifetime;
|
double lifetime;
|
||||||
Default
|
Default
|
||||||
{
|
{
|
||||||
|
|
@ -410,7 +409,7 @@ Class BioGel : Actor
|
||||||
s.args[3] = int(s.args[3]*Scale.x);
|
s.args[3] = int(s.args[3]*Scale.x);
|
||||||
invoker.deadtimer = -2;
|
invoker.deadtimer = -2;
|
||||||
if ( invoker.atline ) invoker.atline.RemoteActivate(target,invoker.atside,SPAC_Impact,pos);
|
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);
|
A_PlaySound("ges/explode",CHAN_VOICE);
|
||||||
int numpt = Min(300,int(Scale.x*30))+Random[GES](-10,10);
|
int numpt = Min(300,int(Scale.x*30))+Random[GES](-10,10);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
|
|
@ -436,7 +435,7 @@ Class BioGel : Actor
|
||||||
{
|
{
|
||||||
Obituary "%o drank a glass of %k's dripping green load.";
|
Obituary "%o drank a glass of %k's dripping green load.";
|
||||||
DamageType 'Slime';
|
DamageType 'Slime';
|
||||||
DamageFunction int(Random[GES](10,20)*Scale.x*Scale.x);
|
DamageFunction int(Random[GES](20,40)*Scale.x);
|
||||||
RenderStyle "Add";
|
RenderStyle "Add";
|
||||||
Radius 3;
|
Radius 3;
|
||||||
Height 3;
|
Height 3;
|
||||||
|
|
@ -692,7 +691,7 @@ Class BioRifle : UTWeapon
|
||||||
BIOM A 0 A_Refire(1);
|
BIOM A 0 A_Refire(1);
|
||||||
Goto AltRelease;
|
Goto AltRelease;
|
||||||
AltHeld:
|
AltHeld:
|
||||||
BIOM A 5;
|
BIOM A 1;
|
||||||
BIOM A 0 A_Refire("AltHeld");
|
BIOM A 0 A_Refire("AltHeld");
|
||||||
AltRelease:
|
AltRelease:
|
||||||
BIOE A 1 { invoker.charge = min(5.1,invoker.charge+0.1); }
|
BIOE A 1 { invoker.charge = min(5.1,invoker.charge+0.1); }
|
||||||
|
|
|
||||||
|
|
@ -140,7 +140,7 @@ Class FlakChunk : Actor
|
||||||
Radius 2;
|
Radius 2;
|
||||||
Height 2;
|
Height 2;
|
||||||
Speed 50;
|
Speed 50;
|
||||||
DamageFunction Random[Flak](15,25);
|
DamageFunction Random[Flak](25,35);
|
||||||
DamageType 'Shredded';
|
DamageType 'Shredded';
|
||||||
BounceType "Doom";
|
BounceType "Doom";
|
||||||
BounceFactor 0.8;
|
BounceFactor 0.8;
|
||||||
|
|
@ -397,7 +397,7 @@ Class FlakSlug : Actor
|
||||||
double a, s;
|
double a, s;
|
||||||
[x, y, z] = Matrix4.GetAxes(pitch,angle,roll);
|
[x, y, z] = Matrix4.GetAxes(pitch,angle,roll);
|
||||||
Actor p;
|
Actor p;
|
||||||
for ( int i=0; i<5; i++ )
|
for ( int i=0; i<8; i++ )
|
||||||
{
|
{
|
||||||
p = Spawn("FlakChunk",pos);
|
p = Spawn("FlakChunk",pos);
|
||||||
a = FRandom[Flak](0,360);
|
a = FRandom[Flak](0,360);
|
||||||
|
|
@ -494,7 +494,7 @@ Class FlakCannon : UTWeapon
|
||||||
A_OverlayRenderstyle(-2,STYLE_Add);
|
A_OverlayRenderstyle(-2,STYLE_Add);
|
||||||
[x, y, z] = Matrix4.GetAxes(BulletSlope(),angle,roll);
|
[x, y, z] = Matrix4.GetAxes(BulletSlope(),angle,roll);
|
||||||
Actor p;
|
Actor p;
|
||||||
for ( int i=0; i<8; i++ )
|
for ( int i=0; i<12; i++ )
|
||||||
{
|
{
|
||||||
p = Spawn("FlakChunk",origin);
|
p = Spawn("FlakChunk",origin);
|
||||||
a = FRandom[Flak](0,360);
|
a = FRandom[Flak](0,360);
|
||||||
|
|
@ -605,7 +605,7 @@ Class FlakCannon : UTWeapon
|
||||||
Wait;
|
Wait;
|
||||||
Fire:
|
Fire:
|
||||||
FLKF A 1 A_FireChunks();
|
FLKF A 1 A_FireChunks();
|
||||||
FLKF BCDEFGHIJ 1;
|
FLKF BCEFHI 1;
|
||||||
FLKF J 4;
|
FLKF J 4;
|
||||||
Goto Loading;
|
Goto Loading;
|
||||||
AltFire:
|
AltFire:
|
||||||
|
|
|
||||||
|
|
@ -75,9 +75,9 @@ Class ImpactHammer : UTWeapon replaces Fist
|
||||||
LineTrace(angle,80,BulletSlope(),TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
LineTrace(angle,80,BulletSlope(),TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
|
||||||
if ( d.HitType == TRACE_HitActor )
|
if ( d.HitType == TRACE_HitActor )
|
||||||
{
|
{
|
||||||
int dmg = int(Random[Impact](60,80)*realcharge);
|
int dmg = int(Random[Impact](90,120)*realcharge);
|
||||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'impact',DMG_THRUSTLESS);
|
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'impact',DMG_THRUSTLESS);
|
||||||
d.HitActor.vel = x*(1000/d.HitActor.mass)*realcharge;
|
d.HitActor.vel = x*(2000/d.HitActor.mass)*realcharge;
|
||||||
if ( d.HitActor.bNOBLOOD )
|
if ( d.HitActor.bNOBLOOD )
|
||||||
{
|
{
|
||||||
let p = Spawn("HammerImpact",d.HitLocation-d.HitDir*4);
|
let p = Spawn("HammerImpact",d.HitLocation-d.HitDir*4);
|
||||||
|
|
@ -139,7 +139,7 @@ Class ImpactHammer : UTWeapon replaces Fist
|
||||||
{
|
{
|
||||||
int dmg = int(Random[Impact](25,35)*dscale);
|
int dmg = int(Random[Impact](25,35)*dscale);
|
||||||
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'impact',DMG_THRUSTLESS);
|
dmg = d.HitActor.DamageMobj(invoker,self,dmg,'impact',DMG_THRUSTLESS);
|
||||||
d.HitActor.vel = x*(500/d.HitActor.mass)*dscale;
|
d.HitActor.vel = x*(900/d.HitActor.mass)*dscale;
|
||||||
}
|
}
|
||||||
else if ( d.HitType != TRACE_HitNone )
|
else if ( d.HitType != TRACE_HitNone )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,9 @@ Class Tier6Ammo2 : RandomSpawner2 replaces CellPack
|
||||||
{
|
{
|
||||||
Default
|
Default
|
||||||
{
|
{
|
||||||
DropItem "MiniAmmo", 255, 1;
|
DropItem "MiniAmmo", 255, 6;
|
||||||
DropItem "RifleAmmo", 255, 1;
|
DropItem "RifleAmmo", 255, 6;
|
||||||
|
DropItem "WarheadAmmo", 255, 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -402,7 +402,7 @@ Class PulseBolt : Actor
|
||||||
lasthit = level.time;
|
lasthit = level.time;
|
||||||
damagedactor = t.Results.HitActor;
|
damagedactor = t.Results.HitActor;
|
||||||
accdamage += 1./TICRATE;
|
accdamage += 1./TICRATE;
|
||||||
if ( accdamage > 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));
|
t.Results.HitActor.DamageMobj(self,target,int(Random[Pulse](70,80)*accdamage),'zapped',DMG_USEANGLE,atan2(x.y,x.x));
|
||||||
accdamage = 0;
|
accdamage = 0;
|
||||||
|
|
|
||||||
|
|
@ -306,7 +306,7 @@ Class Ripper2 : UTWeapon
|
||||||
Loop;
|
Loop;
|
||||||
Fire:
|
Fire:
|
||||||
RZRF A 0 A_RazorFire();
|
RZRF A 0 A_RazorFire();
|
||||||
RZRF ABCDEFGHIJKLMNO 1;
|
RZRF ABDEGHIJKLMNO 1;
|
||||||
Goto Idle;
|
Goto Idle;
|
||||||
AltFire:
|
AltFire:
|
||||||
RZRF A 0 A_RazorFire(true);
|
RZRF A 0 A_RazorFire(true);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// shouldn't be placed in the world (it wasn't in UT99)
|
// wasn't placeable in UT99
|
||||||
Class WarheadAmmo : Ammo
|
Class WarheadAmmo : Ammo
|
||||||
{
|
{
|
||||||
Default
|
Default
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue