actor ClammyHarpoonWep_NormalBar : NormalBar{args 4,112}
actor ClammyHarpoonWep : BaseMM8BDMWep //by MegaVile
{
//$Category MM8BDME-Weapons
//$Title Clammy Harpoon
//$Sprite CHRPZ0
Weapon.AmmoUse 3
Weapon.AmmoGive 27
Weapon.SlotNumber 2
Inventory.Pickupmessage "$PU_CLAMMYHARPOON"
Obituary "$OB_CLAMMYHARPOON"
Tag "$TAG_CLAMMYHARPOON"
weapon.ammotype "ClammyHarpoonAmmo"
inventory.icon "CHRPICON"
States
{
SpawnLoop:
CHRP Z -1
loop
Ready:
CHRP A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_CLAMMYHARPOON)
CHRP A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
Deselect:
CHRP A 0 
goto DeselectSwap
Select:
CHRP A 0 
goto SelectSwap
Fire:
CHRP A 0 A_JumpIfNoAmmo("NoAmmo")
CHRP A 2 
CHRP A 0 A_PlaySoundEx("weapon/pshot","Weapon")
CHRP G 0 A_FireCustomMissile("ClammyHarpoon",0,1,8,0)
CHRP BC 4
CHRP A 18
CHRP B 0 A_Refire
Goto Ready+1
NoAmmo:
CHRP A 1 ACS_NamedExecuteAlways("core_noammo",0)
Goto Ready+1
}
}

actor ClammyHarpoonAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 27
+INVENTORY.IGNORESKILL
}


actor ClammyHarpoon : BasicProjectile
{
Obituary "$OB_CLAMMYHARPOON"
+MISSILE
-RIPPER
+NOGRAVITY
Radius 14
Height 12
scale 2.9
+DONTBLAST
damagetype "ClammyHarpoon"
damage (CallACS("vile_cbm_damage",14))
speed 40
states
{
Spawn:
CHRP D 3 A_SpawnItemEx("ClammyHarpoonTrail")
loop
Death:
TNT1 A 0 A_CheckFloor("Floor")
TNT1 A 0 A_CheckCeiling("Ceiling")
TNT1 A 0 A_SpawnItemEx("ClammyHarpoonFalling", 0, 0, 0, 0, 0, -12)
stop
XDeath:
Floor:
TNT1 A 0 A_SpawnItemEx("ClammyHarpoonSpout",0,0,-(z-floorz))
stop
Ceiling:
TNT1 A 0 A_SpawnItemEx("ClammyHarpoonFalling", 0, 0, -8, 0, 0, -12)
stop
}
}

actor ClammyHarpoonTrail : BasicGraphicEffect
{
+NOINTERACTION
+NOGRAVITY
renderstyle "translucent"
alpha 0.9
+CLIENTSIDEONLY
+FORCEXYBILLBOARD
scale 3.2
States
{
SpawnFrame:
TNT1 A 3
TNT1 A 0 A_Jump(256,"Water1","Water2","Water3")
MWSZ MMNNOO 1 A_FadeOut(0.05)
stop
Water1:
MWSZ MMMMMM 1 A_FadeOut(0.05)
stop
Water2:
MWSZ NNNNNN 1 A_FadeOut(0.05)
stop
Water3:
MWSZ OOOOOO 1 A_FadeOut(0.05)
stop
}
}

actor ClammyHarpoonFalling : ClammyHarpoon
{
+RIPPER
-NOGRAVITY
damage (0)
gravity 4.0
States
{
Spawn:
CHRP E 1
loop
Death:
TNT1 A 0 A_CheckFloor("Floor")
TNT1 A 0
stop
Floor:
TNT1 A 0 A_SpawnItemEx("ClammyHarpoonSpout")
stop
}
}


actor ClammyHarpoonSpout : BasicProjectile
{
PROJECTILE
//+NOINTERACTION
+RIPPER
+THRUGHOST
+FLOORHUGGER
+DONTBLAST
+DONTREFLECT
+THRUACTORS
radius 4
height 12
scale 0.80
damagetype "ClammyHarpoon2"
Obituary "$OB_CLAMMYHARPOON"
damage (0)
reactiontime 3
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_GiveInventory("WeaponCharge",1)
TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ClammyHarpoonTrail",0,0,4,random(-10,10),random(-10,10),15,0,1)
MWSS A 0 A_PlaySound("weapon/ClammySpout1",4,0.55)
MWSS A 0 A_PlaySound("weapon/ClammySpout2",5,0.55)
MWSS A 1
MWSS B 0 A_Explode(CallACS("vile_cbm_damage",9),48,0,0,48)
MWSS BCDEFG 1
Burst:
MWSS H 0 A_SpawnItemEx("ClammySpoutDamage",0,0,35)
MWSS H 0 A_SpawnItemEx("ClammySpoutDamage",0,0,70)
MWSS HHIIJJ 1
MWSS H 0 A_CountDown
loop
Death:
TNT1 A 1 A_JumpIfInventory("WeaponCharge",1,"RealDeath")
TNT1 A 1
stop
RealDeath:
MWSS GFEDCBA 2
stop
}
}

actor ClammySpoutDamage : BasicExplosion
{
damagetype "ClammyHarpoon2"
Obituary "$OB_CLAMMYHARPOON"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(CallACS("vile_cbm_damage",6),48,0,0,48)
stop
}
}