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.
176 lines
3.7 KiB
Text
176 lines
3.7 KiB
Text
Class UTArmor : Armor
|
|
{
|
|
int absorb;
|
|
|
|
Property ArmorAbsorption : absorb;
|
|
|
|
Default
|
|
{
|
|
+INVENTORY.AUTOACTIVATE;
|
|
+INVENTORY.UNTOSSABLE;
|
|
+INVENTORY.KEEPDEPLETED;
|
|
}
|
|
override void AbsorbDamage( int damage, Name damageType, out int newdamage )
|
|
{
|
|
int saved;
|
|
if ( (amount > 0) && !DamageTypeDefinition.IgnoreArmor(damageType) )
|
|
{
|
|
saved = int(damage*absorb/100.);
|
|
if ( amount <= saved ) saved = amount;
|
|
newdamage -= saved;
|
|
amount -= saved;
|
|
damage = newdamage;
|
|
}
|
|
if ( damage > 0 ) newdamage = ApplyDamageFactors(GetClass(),damageType,damage,damage);
|
|
}
|
|
}
|
|
|
|
Class UTArmorBonus : UTArmor replaces ArmorBonus
|
|
{
|
|
override void AbsorbDamage( int damage, Name damageType, out int newdamage )
|
|
{
|
|
absorb = Clamp(amount*2,25,75);
|
|
Super.AbsorbDamage(damage,damageType,newdamage);
|
|
}
|
|
|
|
Default
|
|
{
|
|
Tag "Armor Bonus";
|
|
+COUNTITEM;
|
|
+INVENTORY.ALWAYSPICKUP;
|
|
Inventory.Amount 1;
|
|
Inventory.MaxAmount 50;
|
|
Inventory.InterHubAmount 50;
|
|
UTArmor.ArmorAbsorption 25;
|
|
Inventory.PickupMessage "You picked up an Armor Bonus.";
|
|
Inventory.PickupSound "misc/ut_shard";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XANH A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
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";
|
|
Inventory.Amount 50;
|
|
Inventory.MaxAmount 50;
|
|
Inventory.InterHubAmount 50;
|
|
UTArmor.ArmorAbsorption 50;
|
|
Inventory.PickupMessage "You got the Thigh Pads.";
|
|
Inventory.PickupSound "misc/ut_armor";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
THIG A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
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";
|
|
Inventory.Amount 100;
|
|
Inventory.MaxAmount 100;
|
|
Inventory.InterHubAmount 100;
|
|
UTArmor.ArmorAbsorption 75;
|
|
Inventory.PickupMessage "You got the Body Armor.";
|
|
Inventory.PickupSound "misc/ut_armor";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
UARM A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
Class UTShieldBelt : UTArmor replaces Megasphere
|
|
{
|
|
override void AbsorbDamage( int damage, Name damageType, out int newdamage )
|
|
{
|
|
if ( (amount > 0) && !DamageTypeDefinition.IgnoreArmor(damageType) )
|
|
{
|
|
Owner.A_PlaySound("belt/absorb",CHAN_7);
|
|
UTMainHandler.DoFlash(Owner,Color(80,255,224,0),5);
|
|
}
|
|
int oldamt = amount;
|
|
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
|
|
Owner.TakeInventory("UTThighPads",50);
|
|
Owner.TakeInventory("UTBodyArmor",150);
|
|
return false;
|
|
}
|
|
Default
|
|
{
|
|
Tag "Shield Belt";
|
|
+COUNTITEM;
|
|
+INVENTORY.BIGPOWERUP;
|
|
Inventory.Amount 150;
|
|
Inventory.MaxAmount 150;
|
|
Inventory.InterHubAmount 150;
|
|
UTArmor.ArmorAbsorption 100;
|
|
Inventory.PickupMessage "You got the Shield Belt.";
|
|
Inventory.PickupSound "belt/pickup";
|
|
Inventory.RespawnTics 2100;
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
BELT A -1;
|
|
Stop;
|
|
}
|
|
}
|