actor SeaCallWep_NormalBar : NormalBar{args 160,74}
actor SeaCallWep : BaseMM8BDMWep
{
Weapon.AmmoUse 6
Weapon.AmmoGive 30
Weapon.SlotNumber 5
Inventory.Pickupmessage "$PU_SEACALL"
Obituary "$OB_SEACALL"
Tag "$TAG_SEACALL"
weapon.ammotype "SeaCallAmmo"
inventory.icon "SCALICON"
States
{
SpawnLoop:
SCAL Z -1
loop
Ready:
SCAL A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_SEACALL)
SCAL A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
Deselect:
SCAL A 0 
goto DeselectSwap
Select:
SCAL A 0 
goto SelectSwap
Fire:
SCAL B 0 A_JumpIfNoAmmo("NoAmmo")
SCAL B 0 A_PlaySound("weapon/seacall","Weapon")
SCAL B 0 A_PlaySound("weapon/mbuster","Weapon")
SCAL B 1 A_FireCustomMissile("SeaCallHelper1",0,1,8,0)
SCAL B 8
SCAL C 12
SCAL A 5
Goto Ready+1
NoAmmo:
SCAL A 1 ACS_NamedExecuteAlways("core_noammo",0)
Goto Ready+1
}
}

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

actor SeaCallHelper1
{
+MISSILE
-SOLID
+NOCLIP
+NOINTERACTION
+NOGRAVITY
+DONTBLAST
+DONTREFLECT
+THRUACTORS
+NOBLOCKMAP
renderstyle none
radius 2
height 2
Translation "202:202=161:161"
States
{
Spawn:
TNT1 A 0

TNT1 A 0 ACS_NamedExecuteAlways("core_targetyawpitch", 0, 0)//Change pitch to player pitch
TNT1 A 0 A_SpawnItemEx("SeaCallHelper2",-4,0,0,3,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("SeaCallHelper2",-4,0,0,3,10,-2,0,1)
TNT1 A 0 A_SpawnItemEx("SeaCallHelper2",-4,0,0,3,-10,-2,0,1)
TNT1 A 2
TNT1 A 0 ACS_NamedExecuteAlways("core_targetyawpitch", 0, 0)//Change pitch to player pitch
stop
}
}

actor SeaCallHelper2
{
var int user_A;
Translation "202:202=161:161"
PROJECTILE
Damagetype "SeaCall"
Obituary "%o was floundered by %k's Sea Call."
+DONTREFLECT
+THRUGHOST
+THRUACTORS
+NOEXPLODEFLOOR
+HEXENBOUNCE
renderstyle translucent
Alpha 0.0
Damage (0)
Radius 12
Height 12
Speed 2
Scale 0.5
States
{
Spawn:
TNT1 A 0
TNT1 a 0 A_GiveInventory("ProjTeamColor1Server",1)
TNT1 A 0 ACS_NamedExecuteWithResult("vilecbm_CopyPointerAnglePitch",2,0)//Change pitch to player pitch
TNT1 A 0 A_SetUserVar("user_A",CallACS("vilecbm_FetchPointerAngle",2)*360.0/256.0*100000.0)//Record player angle
goto Spawn2
Spawn2:
TNT1 A 0 A_JumpIfInventory("CutterFlag",4,"Spawn3")
TNT1 A 1 A_Recoil(1.5)
TNT1 A 0 A_GiveInventory("CutterFlag",1)
loop
Spawn3:
TNT1 A 0 A_Stop
TNT1 A 1 A_GiveInventory("ReSyncPickup_V",1)
goto Spawn4
Spawn4:
SCAL I 0 A_JumpIfInventory("CutterFlag",14,"SpawnEnd")
SCAL I 0 A_SetScale(ScaleX+0.2,ScaleY+0.2)
SCAL I 0 A_FadeIn(0.1)
SCAL I 1 A_GiveInventory("CutterFlag",1)
loop
SpawnEnd:
SPLP T 0 A_SpawnItemEx("SeaCallFlounder",0,0,0,cos(-pitch)*64,0,sin(-pitch)*64,user_A/100000.0,4)
stop
Death:
TNT1 A 1 A_SetScale(2.5,2.5)
TNT1 A 1 A_SetScale(ScaleX-0.5,ScaleY-0.5)
stop
}
}

actor SeaCallFlounder : BasicProjectile
{
Translation "202:202=161:161"
PROJECTILE
Damagetype "SeaCall"
Obituary "$OB_SEACALL"
+DONTREFLECT
Damage (CallACS("vile_cbm_damage",8))
radius 12
height 12
Speed 64
scale 2.5
States
{
Spawn:
SCAL IJ 6
loop
Death:
TNT1 A 0 A_Explode(CallACS("vile_cbm_damage",18),96,0,0,16)
TNT1 A 0 A_SetScale(2.25,2.25)
TNT1 A 0 A_PlaySoundEx("misc/mm3explosion","Weapon")
NAPA EFGHIJKLMNOPQRS 1
stop
}
}

actor ReSyncPickup_V : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ThrustThingZ(0,0,0,1)
TNT1 A 0 ThrustThing(angle*256/360,0,1,0)
stop
}
}