Sheen rebalancing.

This commit is contained in:
Mari the Deer 2022-07-22 22:34:08 +02:00
commit d64e487231
5 changed files with 46 additions and 41 deletions

View file

@ -61,6 +61,7 @@ Class SpreadgunTracer : LineTracer
Class SpreadSlugTracer : SpreadgunTracer
{
double penetration; // please don't laugh
double resist; // resistance against penetration loss (1.0 = don't lose)
override ETraceStatus TraceCallback()
{
@ -88,7 +89,7 @@ Class SpreadSlugTracer : SpreadgunTracer
ent.hitactor = Results.HitActor;
ent.hitlocation = Results.HitPos;
ent.x = Results.HitVector;
if ( (Results.HitActor.Health >= int(penetration)) || Results.HitActor.bNODAMAGE )
if ( ((Results.HitActor.Health*(1.-resist)) >= penetration) || Results.HitActor.bNODAMAGE )
{
ent.hitdamage = int(penetration);
penetration = 0;
@ -97,7 +98,7 @@ Class SpreadSlugTracer : SpreadgunTracer
{
int gibh = (Results.HitActor.GibHealth!=int.min)?-abs(Results.HitActor.GibHealth):-int(Results.HitActor.GetSpawnHealth()*gameinfo.gibfactor);
ent.hitdamage = min(Results.HitActor.health+abs(gibh),int(penetration));
penetration = max(0,penetration-ent.hitdamage);
penetration = max(0,penetration-(ent.hitdamage*(1.-resist)));
}
hitlist.Push(ent);
if ( penetration <= 0 ) return TRACE_Stop;