actor PierceSnakeWep_NormalBar : NormalBar{args 216,165}
actor PierceSnakeWep : BaseMM8BDMWep 
{
Weapon.AmmoUse 3
Weapon.AmmoGive 30
Weapon.SlotNumber 2
Inventory.Pickupmessage "$PU_PIERCESNAKE"
Obituary "$OB_PIERCESNAKE"
Tag "$TAG_PIERCESNAKE"
weapon.ammotype "PierceSnakeAmmo"
inventory.pickupsound "weapon/weaponup"
inventory.icon "PSNKICON"
+WEAPON.AMMO_OPTIONAL
Scale 2.0
States
{
SpawnLoop:
PSNK Z 1
loop
Ready:
PSNK A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_PIERCESNAKE)
PSNK A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
Deselect:
PSNK A 0 
goto DeselectSwap
Select:
PSNK A 0 
goto SelectSwap
Fire:
PSNK A 0 A_JumpIfNoAmmo("NoAmmo")
PSNK A 0 A_PlaySoundEx("Weapon/PierceSnake","Weapon")
PSNK A 0 A_FireCustomMissile("PierceSnakeShot",0,1,8,8)
PSNK BC 3
PSNK A 7
goto Ready+1
NoAmmo:
PSNK A 0 ACS_NamedExecuteAlways("core_noammo",0)
Goto Ready+1
}
}

actor PierceSnakeShot : BasicProjectile
{
+BRIGHT
var int user_TranslateWhiteColors;
PROJECTILE
Radius 24
Height 24
+NOCLIP
+NOINTERACTION
Obituary "$OB_PIERCESNAKE"
damagetype "PierceSnake"
scale 3.0
damage (0)
speed 28
reactiontime 48
States
{
Spawn:
PSNK D 0
SpawnLoopA:
PSNK D 0 A_SpawnItemEx("PierceSnakeTrail3")
PSNK D 1 A_SpawnItemEx("PierceSnakeDamager",0,0,0,2,0,0)
PSNK D 0 A_Weave(6, 6, 2, 2)
PSNK D 0 A_Countdown

PSNK E 0 A_SpawnItemEx("PierceSnakeTrail1")
PSNK E 1 A_SpawnItemEx("PierceSnakeDamager",0,0,0,2,0,0)
PSNK E 0 A_Weave(6, 6, 2, 2)
PSNK E 0 A_Countdown
PSNK F 0 A_SpawnItemEx("PierceSnakeTrail2")
PSNK F 1 A_SpawnItemEx("PierceSnakeDamager",0,0,0,2,0,0)
PSNK F 0 A_Weave(6, 6, 2, 2)
PSNK F 0 A_Countdown

loop
Death:
TNT1 A 0 
stop
}
}

actor PierceSnakeTrail1 : BasicGraphicEffect
{
+BRIGHT
var int user_TranslateWhiteColors;
scale 3.0
renderstyle translucent
States
{
SpawnFrame:
TNT1 A 1
PSNK GHIJKLMNO 1 A_FadeOut(0.07)
TNT1 A 0 
stop
}
}

actor PierceSnakeTrail2 : PierceSnakeTrail1
{
States
{
SpawnFrame:
TNT1 A 1
PSNK HIGKLJNOM 1 A_FadeOut(0.07)
TNT1 A 0 
stop
}
}

actor PierceSnakeTrail3 : PierceSnakeTrail1
{
States
{
SpawnFrame:
TNT1 A 1
PSNK IGHLJKOMN 1 A_FadeOut(0.07)
TNT1 A 0 
stop
}
}

actor PierceSnakeDamager : BasicProjectile
{
+DONTSPLASH
+DONTBLAST
+THRUGHOST
+DONTREFLECT
Damagetype "PierceSnake" 
Obituary "$OB_PIERCESNAKE"
radius 24
height 24
Damage (CallACS("vile_cbm_damage",9))
States
{
Spawn:
TNT1 A 2
TNT1 D 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
stop
}
}


actor PierceSnakeAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 30
+INVENTORY.IGNORESKILL
}
