diff --git a/language.version b/language.version index d1bf86bce..e885031f1 100644 --- a/language.version +++ b/language.version @@ -1,2 +1,2 @@ [default] -SWWM_MODVER="\chSWWM \cwGZ\c- r510 (Fri 28 Aug 12:59:13 CEST 2020)"; +SWWM_MODVER="\chSWWM \cwGZ\c- r511 (Fri 28 Aug 19:25:05 CEST 2020)"; diff --git a/zscript/swwm_inventory.zsc b/zscript/swwm_inventory.zsc index cef67cc73..1eaff98ec 100644 --- a/zscript/swwm_inventory.zsc +++ b/zscript/swwm_inventory.zsc @@ -752,7 +752,7 @@ Class ParryField : Actor Actor a; while ( a = Actor(ti.Next()) ) { - if ( !((a.bMISSILE && !a.IsZeroDamage()) || a.bSKULLFLY) || a.bTHRUACTORS || (level.Vec3Diff(a.pos,Vec3Offset(0,0,20)).length() > 80) ) continue; + if ( !((a.bMISSILE && !a.IsZeroDamage() && (a.target != master)) || a.bSKULLFLY) || a.bTHRUACTORS || (level.Vec3Diff(a.pos,Vec3Offset(0,0,20)).length() > 80) ) continue; Vector3 vdir = a.vel; Vector3 dir = level.Vec3Diff(master.Vec2OffsetZ(0,0,pos.z),a.pos).unit(); if ( a.bMISSILE ) diff --git a/zscript/swwm_thiccboolet.zsc b/zscript/swwm_thiccboolet.zsc index ff59d9345..99cb9949f 100644 --- a/zscript/swwm_thiccboolet.zsc +++ b/zscript/swwm_thiccboolet.zsc @@ -707,14 +707,7 @@ Class SilverBullet : SWWMWeapon int realdmg = t.HitList[i].HitDamage; SWWMDamageAccumulator.Accumulate(t.HitList[i].HitActor,realdmg,invoker,self,'shot',false,DMG_FOILINVUL); SWWMUtility.DoKnockback(t.HitList[i].HitActor,t.HitList[i].x+(0,0,0.025),realdmg*20.*FRandom[SilverBullet](.8,1.2)); - if ( t.HitList[i].HitActor.bNOBLOOD ) - { - let p = Spawn("SilverImpact",t.HitList[i].HitLocation); - p.angle = atan2(t.HitList[i].x.y,t.HitList[i].x.x)+180; - p.pitch = asin(t.HitList[i].x.z); - p.target = self; - } - else + if ( t.HitList[i].HitActor && !t.HitList[i].HitActor.bNOBLOOD ) { t.HitList[i].HitActor.TraceBleed(realdmg,self); t.HitList[i].HitActor.SpawnBlood(t.HitList[i].HitLocation,atan2(t.HitList[i].x.y,t.HitList[i].x.x)+180,realdmg); @@ -723,6 +716,13 @@ Class SilverBullet : SWWMWeapon p.special1 = 1; p.target = self; } + else + { + let p = Spawn("SilverImpact",t.HitList[i].HitLocation); + p.angle = atan2(t.HitList[i].x.y,t.HitList[i].x.x)+180; + p.pitch = asin(t.HitList[i].x.z); + p.target = self; + } } for ( int i=0; i