Remove calls to ApplyDamageFactors in SWWMArmor, they are unnecessary.
This commit is contained in:
parent
69c11b5dbf
commit
1dd53549f9
2 changed files with 47 additions and 50 deletions
|
|
@ -1,2 +1,2 @@
|
|||
[default]
|
||||
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r666 \cu(Wed 9 Dec 01:05:29 CET 2020)";
|
||||
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r667 \cu(Wed 9 Dec 10:55:42 CET 2020)";
|
||||
|
|
|
|||
|
|
@ -160,59 +160,56 @@ Class SWWMArmor : Armor abstract
|
|||
override void AbsorbDamage( int damage, Name damageType, out int newdamage, Actor inflictor, Actor source, int flags )
|
||||
{
|
||||
int saved;
|
||||
if ( (amount > 0) && !DamageTypeDefinition.IgnoreArmor(damageType) && (damage > 0) )
|
||||
if ( (amount <= 0) || DamageTypeDefinition.IgnoreArmor(damageType) || (damage <= 0) )
|
||||
return;
|
||||
SWWMHandler.DoFlash(Owner,Color(int(clamp(damage*.15,1,16)),255,224,192),3);
|
||||
Owner.A_StartSound("armor/hit",CHAN_BODY,CHANF_DEFAULT,clamp(damage*.03,0.,1.),2.5);
|
||||
saved = HandleDamage(damage,damageType,flags);
|
||||
int healed = max(0,saved-damage);
|
||||
saved = min(saved,damage);
|
||||
if ( amount <= saved ) saved = amount;
|
||||
newdamage -= saved;
|
||||
if ( healed > 0 ) Owner.GiveBody(healed);
|
||||
if ( (swwm_strictuntouchable == 1) && (saved > 0) && Owner.player )
|
||||
{
|
||||
SWWMHandler.DoFlash(Owner,Color(int(clamp(damage*.15,1,16)),255,224,192),3);
|
||||
Owner.A_StartSound("armor/hit",CHAN_BODY,CHANF_DEFAULT,clamp(damage*.03,0.,1.),2.5);
|
||||
saved = HandleDamage(damage,damageType,flags);
|
||||
int healed = max(0,saved-damage);
|
||||
saved = min(saved,damage);
|
||||
if ( amount <= saved ) saved = amount;
|
||||
newdamage -= saved;
|
||||
if ( healed > 0 ) Owner.GiveBody(healed);
|
||||
if ( (swwm_strictuntouchable == 1) && (saved > 0) && Owner.player )
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
if ( hnd ) hnd.tookdamage[Owner.PlayerNumber()] = true;
|
||||
}
|
||||
amount -= saved;
|
||||
damage = newdamage;
|
||||
bool shouldautouse = false;
|
||||
if ( swwm_enforceautousearmor == 1 ) shouldautouse = true;
|
||||
else if ( swwm_enforceautousearmor == -1 ) shouldautouse = false;
|
||||
else shouldautouse = CVar.GetCVar('swwm_autousearmor',Owner.player).GetBool();
|
||||
if ( (amount <= (MaxAmount-default.Amount)) && (Owner.CountInv(parent) > 0) && shouldautouse )
|
||||
{
|
||||
if ( GetDefaultByType(parent).UseSound ) Owner.A_StartSound(GetDefaultByType(parent).UseSound,CHAN_ITEMEXTRA,CHANF_DEFAULT,.6);
|
||||
int tgive = 0;
|
||||
bool acc = CVar.GetCVar('swwm_accdamage',players[consoleplayer]).GetBool();
|
||||
while ( (amount <= (MaxAmount-default.Amount)) && (Owner.CountInv(parent) > 0) )
|
||||
{
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
if ( hnd ) hnd.tookdamage[Owner.PlayerNumber()] = true;
|
||||
if ( acc ) tgive += default.Amount;
|
||||
else SWWMScoreObj.Spawn(default.Amount,Owner.Vec3Offset(FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8)+Owner.Height/2),Font.CR_GREEN);
|
||||
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;
|
||||
}
|
||||
amount -= saved;
|
||||
damage = newdamage;
|
||||
bool shouldautouse = false;
|
||||
if ( swwm_enforceautousearmor == 1 ) shouldautouse = true;
|
||||
else if ( swwm_enforceautousearmor == -1 ) shouldautouse = false;
|
||||
else shouldautouse = CVar.GetCVar('swwm_autousearmor',Owner.player).GetBool();
|
||||
if ( (amount <= (MaxAmount-default.Amount)) && (Owner.CountInv(parent) > 0) && shouldautouse )
|
||||
{
|
||||
if ( GetDefaultByType(parent).UseSound ) Owner.A_StartSound(GetDefaultByType(parent).UseSound,CHAN_ITEMEXTRA,CHANF_DEFAULT,.6);
|
||||
int tgive = 0;
|
||||
bool acc = CVar.GetCVar('swwm_accdamage',players[consoleplayer]).GetBool();
|
||||
while ( (amount <= (MaxAmount-default.Amount)) && (Owner.CountInv(parent) > 0) )
|
||||
{
|
||||
if ( acc ) tgive += default.Amount;
|
||||
else SWWMScoreObj.Spawn(default.Amount,Owner.Vec3Offset(FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8)+Owner.Height/2),Font.CR_GREEN);
|
||||
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;
|
||||
}
|
||||
if ( acc ) SWWMScoreObj.Spawn(tgive,Owner.Vec3Offset(FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8)+Owner.Height/2),Font.CR_GREEN);
|
||||
}
|
||||
else if ( amount <= 0 )
|
||||
{
|
||||
if ( damage > 0 ) newdamage = ApplyDamageFactors(GetClass(),damageType,damage,damage);
|
||||
if ( Owner.CheckLocalView() && (drainmsg != "") ) Console.Printf(StringTable.Localize(drainmsg));
|
||||
DepleteOrDestroy();
|
||||
return;
|
||||
}
|
||||
if ( acc ) SWWMScoreObj.Spawn(tgive,Owner.Vec3Offset(FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8)+Owner.Height/2),Font.CR_GREEN);
|
||||
}
|
||||
else if ( amount <= 0 )
|
||||
{
|
||||
if ( Owner.CheckLocalView() && (drainmsg != "") ) Console.Printf(StringTable.Localize(drainmsg));
|
||||
DepleteOrDestroy();
|
||||
return;
|
||||
}
|
||||
if ( damage > 0 ) newdamage = ApplyDamageFactors(GetClass(),damageType,damage,damage);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue