actor SonicPulseWep : BaseMM8BDMWep
{
//$Category MM8BDM-Weapons
//$Title Sonic Pulse
//$Sprite DOSWA0
Weapon.AmmoUse 1
Weapon.AmmoGive 32
Weapon.SlotNumber 3
Inventory.Pickupmessage "$PU_SONICPULSE"
Obituary "$OB_SONICPULSE"
Tag "$TAG_SONICPULSE"
weapon.ammotype "SonicPulseAmmo"
inventory.icon "SONICP"
States
{
SpawnLoop:
DOSW A -1
loop
Ready:
SPUH A 0 ACS_ExecuteAlways(998,0,DOSREBORN_COLOR_SONIC)
SPUH A 1 A_WeaponReady
Goto Ready+1
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
SPUH A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
SPUH I 1 A_Raise
Loop
Fire:
SPUH A 0 A_JumpIfNoAmmo("NoAmmo")
SPUH A 0 A_PlaySoundEx("weapon/noisecrush1","Weapon")
SPUH A 0 A_FireCustomMissile("SonicPulse",-10,1,8,0)
SPUH A 0 A_FireCustomMissile("SonicPulse",10,0,8,0)
SPUH BC 3
SPUH A 3
SPUH A 0 A_Refire
Goto Ready+1
NoAmmo:
SPUH A 1 ACS_Execute(979,0)
Goto Ready+1
}
}
actor SonicPulseWepSH : SonicPulseWep replaces SonicPulseWep {+INVENTORY.RESTRICTABSOLUTELY Inventory.RestrictedTo megamans}

actor SonicPulseAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 32
+INVENTORY.IGNORESKILL
}

//"The weapon was too simple for our tastes, so we gave it a ridiculously
// complicated animation to compensate!"

actor SonicPulse
{
PROJECTILE
Radius 5
Height 5
scale 2.5
damage (11)
damagetype "SonicPulse"
Obituary "$OB_SONICPULSE"
speed 30
BounceType "Hexen"
+CANBOUNCEWATER
+BRIGHT
BounceFactor 1.0
WallBounceFactor 1.0
States
{
Spawn:
TNT1 A 0 
SPUL AB 6 A_SpawnItemEx("SonicPulseTrail1",0,0,0,momx*0.7,momy*0.7,momz*0.7,0,SXF_ABSOLUTEMOMENTUM)
SPUL CD 6 A_SpawnItemEx("SonicPulseTrail2",0,0,0,momx*0.7,momy*0.7,momz*0.7,0,SXF_ABSOLUTEMOMENTUM)
SPUL EF 6 A_SpawnItemEx("SonicPulseTrail3",0,0,0,momx*0.7,momy*0.7,momz*0.7,0,SXF_ABSOLUTEMOMENTUM)
SPUL GH 6 A_SpawnItemEx("SonicPulseTrail4",0,0,0,momx*0.7,momy*0.7,momz*0.7,0,SXF_ABSOLUTEMOMENTUM)
SPUL IJ 6 A_SpawnItemEx("SonicPulseTrail5",0,0,0,momx*0.7,momy*0.7,momz*0.7,0,SXF_ABSOLUTEMOMENTUM)
stop
}
}

actor SonicPulseTrail1
{
+NOGRAVITY
+CLIENTSIDEONLY
-SOLID
+MISSILE
+BRIGHT
+HEXENBOUNCE
+CANBOUNCEWATER
RenderStyle "Translucent"
scale 2.5
height 0
radius 0
Alpha 0.4
BounceFactor 1.0
WallBounceFactor 1.0
States
{
Spawn:
TNT1 A 5
SPUL OMT 6
stop
}
}

actor SonicPulseTrail2 : SonicPulseTrail1
{
states
{
Spawn:
TNT1 A 5
SPUL PNU 6
stop
}
}

actor SonicPulseTrail3 : SonicPulseTrail1
{
states
{
Spawn:
TNT1 A 5
SPUL QOV 6
stop
}
}

actor SonicPulseTrail4 : SonicPulseTrail1
{
states
{
Spawn:
TNT1 A 5
SPUL RPW 6
stop
}
}

actor SonicPulseTrail5 : SonicPulseTrail1
{
states
{
Spawn:
TNT1 A 5
SPUL SQX 6
stop
}
}