actor SurgeTorrentWep_NormalBar : NormalBar{args 161,70}
actor SurgeTorrentWep : BaseMM8BDMWep
{
Weapon.AmmoUse 3
Weapon.AmmoGive 27
Weapon.SlotNumber 2
Inventory.Pickupmessage "$PU_SURGETORRENT"
Obituary "$OB_SURGETORRENT"
Tag "$TAG_SURGETORRENT"
weapon.ammotype "SurgeTorrentAmmo"
inventory.icon "SGTRICON"
States
{
SpawnLoop:
SGTR Z -1
loop
Ready:
SGTR A 0 ACS_NamedExecuteWithResult("core_weaponcolor", COLOR_SURGETORRENT)
SGTR A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
Deselect:
SGTR A 0 
goto DeselectSwap
Select:
SGTR A 0 
goto SelectSwap
Fire:
SGTR B 0 A_JumpIfNoAmmo("NoAmmo")
SGTR B 0 A_PlaySoundEx("misc/wilybeam","Weapon")
SGTR B 1 A_GiveInventory("SurgeTorrent_Fire_P",1)
SGT0 ABCDEF 2
SGT0 G 10
SGT0 HIJK 2
SGTR A 5
Goto Ready+1
NoAmmo:
SGTR A 1 ACS_NamedExecuteAlways("core_noammo",0)
Goto Ready+1
}
}

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

actor SurgeTorrent_Fire_P : CustomInventory
{
    States
    {
    Pickup:
		TNT1 A 0 A_TakeInventory("SurgeTorrentAmmo",3,TIF_NOTAKEINFINITE)
        TNT1 A 0 A_SpawnItemEx("SurgeTorrentMaker", 0, 8, 32, cos(-pitch)*10, 0, sin(-pitch)*10, 0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERPITCH)
        TNT1 A 0 A_JumpIfInventory("PowerSpreadRune", 1, "PickupSpread")
        stop
    PickupSpread:
        TNT1 A 0 A_SpawnItemEx("SurgeTorrentMaker", 0, 8, 32, cos(-pitch)*10, 0, sin(-pitch)*10, 15, SXF_TRANSFERTRANSLATION|SXF_TRANSFERPITCH)
        TNT1 A 0 A_SpawnItemEx("SurgeTorrentMaker", 0, 8, 32, cos(-pitch)*10, 0, sin(-pitch)*10, -15, SXF_TRANSFERTRANSLATION|SXF_TRANSFERPITCH)
        stop
    }
}

actor SurgeTorrentMaker : BasicProjectile
{
translation "198:198=70:70", "192:192=161:161"
PROJECTILE
Radius 0
Height 0
damage (0)
speed 0
States
{
Spawn:
TNT1 A 0
//TNT1 A 0 ACS_NamedExecuteAlways("core_targetyawpitch", 0, 1)
TNT1 A 2
TNT1 A 2 A_SpawnItemEx("SurgeTorrent1", 0, 0, 0, 46*cos(pitch), 0, 46*sin(-pitch),0,SXF_TRANSFERTRANSLATION)
TNT1 AAAAAA 2 A_SpawnItemEx("SurgeTorrent2", 0, 0, 0, 46*cos(pitch), 0, 46*sin(-pitch),0,SXF_TRANSFERTRANSLATION)
TNT1 A 2 A_SpawnItemEx("SurgeTorrent1", 0, 0, 0, 46*cos(pitch), 0, 46*sin(-pitch),0,SXF_TRANSFERTRANSLATION)
stop
Death:
TNT1 A 0 
stop
}
}


actor SurgeTorrent1 : BasicProjectile
{
+BRIGHT
PROJECTILE
var int user_PierceRipper;
+RIPPER
Radius 24
Height 24
Obituary "$OB_SURGETORRENT"
damagetype "SurgeTorrent"
scale 3.25
damage (CallACS("vile_cbm_damage",6))
speed 46
States
{
Spawn:
SGTR NNOOPP 1 A_Weave(7, 7, 0.75, 0.75)
SGTR N 0 A_SpawnItemEx("SurgeTorrentFX",0,random(-16,16),random(-16,16),0,0,0,0,SXF_TRANSFERTRANSLATION)
loop
Death:
TNT1 A 0 
stop
}
}

actor SurgeTorrent2 : SurgeTorrent1
{
States
{
Spawn:
SGTR KKLLMM 1 A_Weave(7, 7, 0.75, 0.75)
SGTR M 0 A_SpawnItemEx("SurgeTorrentFX",0,random(-16,16),random(-16,16),0,0,0,0,SXF_TRANSFERTRANSLATION)
loop
Death:
TNT1 A 0 
stop
}
}


actor SurgeTorrentFX : CriticalPainFX
{
+BRIGHT
scale 1.15 // 0.15
States
{
Spawn:
TNT1 A 2
SGTR NN 2
TNT1 A 0 A_Stop
SGTR OOPPQ 1
SGTR Q 1 
stop
}
}

actor SurgeTorrentWatcher : BasicWatcher
{
States
{
Spawn:
TNT1 A 0
TNT1 A 1
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("vile_saxtoncheck")==1,"Death")
TNT1 AAAA 1 A_GiveToTarget("Vile_Stop",1)
Death:
TNT1 A 0
stop
}
}
