1.0 release. Requires 4.2.3 or higher.

- Migrated screen projection code to libeye.
- Some pickups emit light, like in Doomreal.
- Backported map revealer item from Doomreal.
- Brand new Invulnerability and Night Vision powerups.
- Add option to allow Shield Belt and armors simultaneously.
- Backported armor bonus model from Doomreal.
- Added Dual Enforcers icon for HUD.
- Changed player class names to their character names, like in Doomreal.
- Terrain splashes.
- Translocator doesn't telefrag other players in coop.
- Reduced view shake from Impact Hammer.
- Various other updates and bug fixes.
This commit is contained in:
Marisa the Magician 2019-10-21 21:57:35 +02:00
commit b79d29f071
91 changed files with 1994 additions and 511 deletions

View file

@ -1,8 +1,9 @@
Class UTArmor : Armor
{
int absorb;
int absorb, priority;
Property ArmorAbsorption : absorb;
Property AbsorptionPriority : priority;
Default
{
@ -11,6 +12,23 @@ Class UTArmor : Armor
+INVENTORY.KEEPDEPLETED;
+INVENTORY.ALWAYSPICKUP;
}
override void AttachToOwner( Actor other )
{
Super.AttachToOwner(other);
// find last armor that's better than us
Inventory found = null;
for ( Inventory i=other.Inv; i; i=i.Inv )
{
if ( !(i is 'UTArmor') || (i == self) || (UTArmor(i).priority < priority) ) continue;
found = i;
}
if ( !found ) return;
// place ourselves right after it
Inventory saved = found.Inv;
found.Inv = self;
other.Inv = Inv;
Inv = saved;
}
override void AbsorbDamage( int damage, Name damageType, out int newdamage )
{
int saved;
@ -48,6 +66,7 @@ Class UTArmorBonus : UTArmor
Inventory.MaxAmount 50;
Inventory.InterHubAmount 50;
UTArmor.ArmorAbsorption 25;
UTArmor.AbsorptionPriority 1;
Inventory.PickupMessage "$I_ARMORBONUS";
Inventory.PickupSound "misc/ut_shard";
}
@ -63,7 +82,7 @@ Class UTThighPads : UTArmor
{
override bool HandlePickup( Inventory item )
{
if ( item is 'UTThighPads' )
if ( flak_vanillaarmor && (item is 'UTThighPads') )
{
let s = Owner.FindInventory("UTShieldBelt");
if ( s )
@ -87,6 +106,7 @@ Class UTThighPads : UTArmor
Inventory.MaxAmount 50;
Inventory.InterHubAmount 50;
UTArmor.ArmorAbsorption 50;
UTArmor.AbsorptionPriority 7;
Inventory.PickupMessage "$I_THIGHPADS";
Inventory.PickupSound "misc/ut_armor";
}
@ -102,7 +122,7 @@ Class UTBodyArmor : UTArmor
{
override bool HandlePickup( Inventory item )
{
if ( item is 'UTBodyArmor' )
if ( flak_vanillaarmor && (item is 'UTBodyArmor') )
{
let s = Owner.FindInventory("UTShieldBelt");
if ( s )
@ -126,6 +146,7 @@ Class UTBodyArmor : UTArmor
Inventory.MaxAmount 100;
Inventory.InterHubAmount 100;
UTArmor.ArmorAbsorption 75;
UTArmor.AbsorptionPriority 7;
Inventory.PickupMessage "$I_BODYARMOR";
Inventory.PickupSound "misc/ut_armor";
}
@ -156,7 +177,7 @@ Class UTShieldBelt : UTArmor
}
override bool HandlePickup( Inventory item )
{
if ( (item is 'UTBodyArmor') || (item is 'UTThighPads') )
if ( flak_vanillaarmor && ((item is 'UTBodyArmor') || (item is 'UTThighPads')) )
{
// sum up current amounts
let a = Owner.FindInventory("UTBodyArmor");
@ -177,8 +198,11 @@ Class UTShieldBelt : UTArmor
override bool Use( bool pickup )
{
// removes thigh pads and body armor like in UT
Owner.TakeInventory("UTThighPads",50);
Owner.TakeInventory("UTBodyArmor",150);
if ( flak_vanillaarmor )
{
Owner.TakeInventory("UTThighPads",50);
Owner.TakeInventory("UTBodyArmor",150);
}
return false;
}
Default
@ -190,6 +214,7 @@ Class UTShieldBelt : UTArmor
Inventory.MaxAmount 150;
Inventory.InterHubAmount 150;
UTArmor.ArmorAbsorption 100;
UTArmor.AbsorptionPriority 10;
Inventory.PickupMessage "$I_SHIELDBELT";
Inventory.PickupSound "belt/pickup";
Inventory.RespawnTics 2100;