Fixup: Autoused armor will absorb additional damage immediately.
This commit is contained in:
parent
1315a30cac
commit
e24977e4d7
1 changed files with 11 additions and 0 deletions
|
|
@ -52,6 +52,8 @@ Class SWWMArmor : Armor abstract
|
|||
{
|
||||
return damage;
|
||||
}
|
||||
// sadly we can'y use the extra AbsorbDamage arguments until GZDoom gets updated
|
||||
//override void AbsorbDamage( int damage, Name damageType, out int newdamage, Actor inflictor, Actor source, int flags )
|
||||
override void ModifyDamage( int damage, Name damageType, out int newdamage, bool passive, Actor inflictor, Actor source, int flags )
|
||||
{
|
||||
if ( !passive ) return;
|
||||
|
|
@ -81,6 +83,15 @@ Class SWWMArmor : Armor abstract
|
|||
{
|
||||
Amount += default.Amount;
|
||||
Owner.TakeInventory(parent,1);
|
||||
// absorb the extra damage too
|
||||
saved = HandleDamage(damage,damageType,flags);
|
||||
healed = max(0,saved-damage);
|
||||
saved = min(saved,damage);
|
||||
if ( amount <= saved ) saved = amount;
|
||||
newdamage -= saved;
|
||||
if ( healed > 0 ) Owner.GiveBody(healed);
|
||||
amount -= saved;
|
||||
damage = newdamage;
|
||||
}
|
||||
}
|
||||
else if ( amount <= 0 )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue