// Itamex Hammer projectiles and effects // akin to the land shockwave, but with sliiiiightly different behavior Class HammerShockwave : SWWMNonInteractiveActor { Default { Obituary "$O_HAMMER"; +NODAMAGETHRUST; +FORCERADIUSDMG; } override void PostBeginPlay() { Super.PostBeginPlay(); A_QuakeEx(5.,5.,5.,20,0,300+special1*4,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,falloff:200,rollIntensity:.8); SWWMUtility.DoExplosion(self,80+special1,100000+special1*2000,80+special1,40,DE_BLAST|DE_EXTRAZTHRUST|DE_NONEXPLOSIVE,'HammerShockwave',target); for ( int i=0; i<360; i+=5 ) { Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,3); let s = Spawn('SWWMSmoke',Vec3Angle(4,i,8)); s.vel = pvel+SWWMUtility.AngleToVector3(i,7.); s.SetShade(Color(1,1,1)*Random[ExploS](64,224)); s.special1 = Random[ExploS](1,4); s.scale *= 1.5; s.alpha *= .4; } for ( int i=0; i<360; i+=5 ) { let r = Spawn('HammerRadiusShockwave',Vec3Angle(5,i)); r.target = target; r.angle = i; r.vel.xy = AngleToVector(i,r.speed+special1*.1); r.alpha *= .3+special1*.0005; } int numpt = Random[ExploS](10,20); for ( int i=0; i