diff --git a/language.version b/language.version index 1f03a54f6..bcddc013a 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw1.2pre r39 \cu(Fri 22 Oct 17:30:41 CEST 2021)\c-"; -SWWM_SHORTVER="\cw1.2pre r39 \cu(2021-10-22 17:30:41)\c-"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw1.2pre r40 \cu(Fri 22 Oct 19:02:36 CEST 2021)\c-"; +SWWM_SHORTVER="\cw1.2pre r40 \cu(2021-10-22 19:02:36)\c-"; diff --git a/zscript/handler/swwm_handler_damage.zsc b/zscript/handler/swwm_handler_damage.zsc index ea117814a..fadd6f28d 100644 --- a/zscript/handler/swwm_handler_damage.zsc +++ b/zscript/handler/swwm_handler_damage.zsc @@ -221,13 +221,15 @@ extend Class SWWMHandler // tasty treats if ( swwm_demoslayer && (src.Health < 100) ) { - int amt = clamp(min(-e.Thing.Health,-e.Thing.GetGibHealth())/5,0,20); + int amt = clamp(e.Thing.SpawnHealth()/20,1,10); + if ( e.Thing.Health < (e.Thing.GetGibHealth()*2) ) amt *= 3; + else if ( e.Thing.Health < e.Thing.GetGibHealth() ) amt *= 2; for ( int i=0; i mdist ) continue; mdist = dist; @@ -53,7 +53,7 @@ Class HealthOrb : Actor } if ( np == -1 ) return; let mo = players[np].mo; - if ( SWWMUtility.BoxIntersect(self,mo,pad:8) ) + if ( (GetAge() > 5) && SWWMUtility.BoxIntersect(self,mo,pad:8) ) { int flg = CHANF_OVERLAP|CHANF_MAYBE_LOCAL; if ( mo.CheckLocalView() ) flg |= CHANF_NOPAUSE; @@ -69,8 +69,9 @@ Class HealthOrb : Actor Vector3 dirto = level.Vec3Diff(pos,mo.Vec3Offset(0,0,mo.Height/2)); double distto = dirto.length(); dirto /= distto; - vel += dirto*((600.-distto)/400.)**2.; - vel.z += .2; + double fact = ((1000.-distto)/1000.)**2.; + vel *= 1.-.05*fact; + vel += (dirto+(0,0,.1))*fact*2.; } override void PostBeginPlay() {