diff --git a/language.version b/language.version index 10f8a3362..6b7aea18a 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw1.1.37 \cu(Mon 25 Oct 16:30:00 CEST 2021)\c-"; -SWWM_SHORTVER="\cw1.1.37 \cu(2021-10-25 16:30:00)\c-"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw1.1.38 \cu(Sat 30 Oct 11:41:08 CEST 2021)\c-"; +SWWM_SHORTVER="\cw1.1.38 \cu(2021-10-30 11:41:08)\c-"; diff --git a/zscript/weapons/swwm_shot.zsc b/zscript/weapons/swwm_shot.zsc index 9374e8975..6f45be021 100644 --- a/zscript/weapons/swwm_shot.zsc +++ b/zscript/weapons/swwm_shot.zsc @@ -32,7 +32,7 @@ Class SpreadgunTracer : LineTracer { int amt = SWWMDamageAccumulator.GetAmount(Results.HitActor); // getgibhealth isn't clearscope, fuck - int gibh = (Results.HitActor.GibHealth!=int.min)?Results.HitActor.GibHealth:-int(Results.HitActor.GetSpawnHealth()*gameinfo.gibfactor); + int gibh = (Results.HitActor.GibHealth!=int.min)?-abs(Results.HitActor.GibHealth):-int(Results.HitActor.GetSpawnHealth()*gameinfo.gibfactor); // if gibbed, go through without dealing more damage if ( Results.HitActor.health-amt <= gibh ) return TRACE_Skip; let ent = new("HitListEntry"); @@ -95,7 +95,8 @@ Class SpreadSlugTracer : SpreadgunTracer } else { - ent.hitdamage = min(Results.HitActor.health+int(Results.HitActor.GetSpawnHealth()*gameinfo.gibfactor),int(penetration)); + 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); } hitlist.Push(ent); diff --git a/zscript/weapons/swwm_thiccboolet.zsc b/zscript/weapons/swwm_thiccboolet.zsc index e66c1b4e8..340885334 100644 --- a/zscript/weapons/swwm_thiccboolet.zsc +++ b/zscript/weapons/swwm_thiccboolet.zsc @@ -60,15 +60,11 @@ Class SilverBulletTracer : SpreadSlugTracer ent.hitlocation = Results.HitPos; ent.x = Results.HitVector; ent.pastwall = pastwall; + ent.hitdamage = int(penetration); if ( (Results.HitActor.Health >= int(penetration)) || Results.HitActor.bNODAMAGE ) - { - ent.hitdamage = int(penetration); penetration = 0; - } else { - int gibh = (Results.HitActor.GibHealth!=int.min)?Results.HitActor.GibHealth:-int(Results.HitActor.GetSpawnHealth()*gameinfo.gibfactor); - ent.hitdamage = min(Results.HitActor.health-int(gibh*1.5),int(penetration)); int killdamage = min(Results.HitActor.health,int(penetration)); penetration = max(0,penetration-killdamage*.4); }