////
//Spread Pickups
////

actor CBM_FireThunderBeam : FireThunderBeam
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("ThunderBeam",0,8,32,cos(pitch)*30,0,sin(-pitch)*30,0)
TNT1 A 0 A_SpawnItemEx("ThunderBeam",cos(pitch)*8,0,32,cos(pitch)*30,0,sin(-pitch)*30,-90)
TNT1 A 0 A_SpawnItemEx("ThunderBeam",cos(pitch)*-8,0,32,cos(pitch)*30,0,sin(-pitch)*30,90)
TNT1 A 0 A_JumpIf(CallACS("cbm_CheckForSpread"),"PickupSpread")
stop
}
}

actor CBM_FireRainFlush : FireRainFlush
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("RainFlushPod",16,0,32, 10, 0, 0, 0)
TNT1 A 0 A_SpawnItemEx("RainFlush",0,0,0,0)
TNT1 A 0 A_JumpIf(CallACS("cbm_CheckForSpread"),"PickupSpread")
stop
}
}

actor CBM_FireThunderClaw : FireThunderClaw
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("ThunderClawAmmo", 2,TIF_NOTAKEINFINITE)
TNT1 A 0 A_SpawnItemEx("ThunderClawWatcher", cos(-pitch)*16, 0, 32+(sin(-pitch)*16), 0, 0, 0, 0, SXF_TRANSFERPITCH)
TNT1 A 0 A_JumpIf(CallACS("cbm_CheckForSpread"),"PickupSpread")
stop
}
}

actor CBM_FireTenguSlash1 : FireTenguSlash1
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx ("TenguSlash1",cos(-pitch)*56,8,32+(sin(-pitch)*48), momx, momy, 0,0,SXF_ABSOLUTEMOMENTUM,0)
TNT1 A 0 A_JumpIf(CallACS("cbm_CheckForSpread"),"PickupSpread")
stop
}
}

actor CBM_FireTenguSlash2 : FireTenguSlash2
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx ("TenguSlash2",cos(-pitch)*56,8,32+(sin(-pitch)*48), momx, momy, 0,0,SXF_ABSOLUTEMOMENTUM,0)
TNT1 A 0 A_JumpIf(CallACS("cbm_CheckForSpread"),"PickupSpread")
stop
}
}

actor CBM_FireIceWall : FireIceWall
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("IceWallSpawner",0,0,8,32)
TNT1 A 0 A_JumpIf(CallACS("cbm_CheckForSpread"),"PickupSpread")
stop
}
}

actor CBM_FireSpreadDrill : FireSpreadDrill
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("SpreadDrillAmmo",2,1)//A_FireCustomMissile("AmmoSync", 0, 1)
TNT1 A 0 A_JumpIf(CallACS("cbm_CheckForSpread"),"PickupSpread")
TNT1 A 0 A_SpawnItemEx("SpreadDrill",cos(pitch)*32,0,28-(sin(pitch)*32),cos(pitch)*13,0,-sin(pitch)*13,0,0,0)
stop
}
}

actor CBM_FireTornadoBlow1 : FireTornadoBlow1
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("TornadoBlow",100,100,0)
TNT1 A 0 A_JumpIf(CallACS("cbm_CheckForSpread"),"PickupSpread")
stop
}
}

actor CBM_FireTornadoBlow2 : FireTornadoBlow2
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("TornadoBlow",-100,100,0)
TNT1 A 0 A_JumpIf(CallACS("cbm_CheckForSpread"),"PickupSpread")
stop
}
}

actor CBM_FireTornadoBlow3 : FireTornadoBlow3
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("TornadoBlow",-100,-100,0)
TNT1 A 0 A_JumpIf(CallACS("cbm_CheckForSpread"),"PickupSpread")
stop
}
}

actor CBM_FireTornadoBlow4 : FireTornadoBlow4
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("TornadoBlow",100,-100,0)
TNT1 A 0 A_JumpIf(CallACS("cbm_CheckForSpread"),"PickupSpread")
stop
}
}

actor CBM_FireBlackHoleBomb : FireBlackHoleBomb
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("BlackHoleBomb", 0, 8, 32, cos(-pitch)*10, 0, sin(-pitch)*10, 0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERPITCH)
TNT1 A 0 A_JumpIf(CallACS("cbm_CheckForSpread"),"PickupSpread")
stop
}
}

actor CBM_SpawnWaterShield : SpawnWaterShield
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(CallACS("cbm_CheckForSpread"),"PickupSpread")
TNT1 A 0 A_SpawnItemEx("WaterShieldSpawner", 0, 0, 0, 0, 0, 0, 0)
stop
}
}

actor CBM_FireWheelCutter : FireWheelCutter
{
States
{
Pickup:
WHEE J 0 A_TakeInventory("WheelCutterCheck", 105)
WHEE J 0 A_TakeInventory("WheelCutterDestroy", 1)
WHEE J 0 A_SpawnItemEx("WheelBounceSpawner", 0, 8, 16, 32)
TNT1 A 0 A_JumpIf(CallACS("cbm_CheckForSpread"),"PickupSpread")
stop
}
}

actor CBM_FireWheelSaw : FireWheelSaw
{
States
{
Pickup:
WHEE J 0 A_SpawnItemEx("WheelCutterSaw", 48, 8, 32, 0, 0, 0, 0, SXF_NOCHECKPOSITION, 0)
TNT1 A 0 A_JumpIf(CallACS("cbm_CheckForSpread"),"PickupSpread")
stop
}
}

actor CBM_FirePhotonMissileLauncher : FirePhotonMissileLauncher
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(CallACS("cbm_CheckForSpread"),"PickupSpread")
TNT1 A 0 A_SpawnItemEx("PhotonMissileLauncher", 0, 8, 32, 48*cos(pitch), 0, 48*-sin(pitch), 0, SXF_TRANSFERPITCH)
stop
}
}

actor CBM_SpawnBlackHole : SpawnBlackHole
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("BlackHoleSpawner", 0, 0, 32)
TNT1 A 0 A_JumpIf(CallACS("cbm_CheckForSpread"),"PickupSpread")
stop
}
}


////////
////
//Weakened projectiles for SpreadRune
////
////////

actor MagnetMissileSpread : MagnetMissile
{
damage (20)//30
}

actor DiveMissileSpread : DiveMissile
{
damage (8)//12
}

actor HomingSniperSpread : HomingSniper
{
damage (12)//18
}

actor CopyVision_Spread : CopyVision replaces CopyVision
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIfInTargetInventory("PowerSpread_ST",1,"SpawnSpread")
TNT1 A 0 A_PlaySoundEx("weapon/copyvision","weapon")
TNT1 A 0 ACS_ExecuteAlways(259,0,0)
COPY FGHI 2
COPY I 0 A_JumpIfInTargetInventory("EvilFistBoss",1,"ShootingBuff")
COPY I 0 A_JumpIfInTargetInventory("DocBusterBoss",1,"ShootingBuff")
COPY I 0 A_JumpIfInTargetInventory("DuoFistC",1,"ShootingBuff")
Goto Shooting
SpawnSpread:
TNT1 A 0 A_GiveInventory("Once",1)
goto Spawn+2
Shooting:
COPY C 0 A_JumpIfInTargetInventory("CopyVisionRedirect",1,"Redirect")
COPY C 0 A_JumpIfInventory("Once",1,"ShootingSpread")
COPY C 0 A_CustomMissile("CopyShot",32,0,0,2,-pitch)
COPY CCCCCC 1 A_JumpIfInTargetInventory("CopyVisionRedirect",1,"Redirect")
COPY C 0 A_JumpIfInTargetInventory("IsDead",1,"Death")
COPY C 0 A_Countdown
Loop
ShootingSpread:
COPY C 0 A_CustomMissile("CopyShotSpread",32,0,0,2,-pitch)
goto Shooting+3
Redirect:
COPY CC 1 A_GiveToTarget("TargetMarker",1)
COPY C 0 ACS_ExecuteAlways(989,0,ACS_ExecuteWithResult(257)+100,32)
COPY C 0 A_TakeFromTarget("CopyVisionRedirect",9)
goto Shooting

ShootingBuff:
COPY L 0 A_JumpIfInTargetInventory("CopyVisionRedirect",1,"RedirectBuff")
COPY L 0 A_JumpIfInventory("Once",1,"ShootingBuffSpread")
COPY L 0 A_CustomMissile("CopyShot",32,0,0,2,-pitch)
COPY LLLLLL 1 A_JumpIfInTargetInventory("CopyVisionRedirect",1,"RedirectBuff")
COPY L 0 A_JumpIfInTargetInventory("IsDead",1,"Death")
COPY L 0 A_Countdown
Loop
ShootingBuffSpread:
COPY L 0 A_CustomMissile("CopyShotSpread",32,0,0,2,-pitch)
goto ShootingBuff+3
RedirectBuff:
COPY LL 1 A_GiveToTarget("TargetMarker",1)
COPY L 0 ACS_ExecuteAlways(989,0,ACS_ExecuteWithResult(257)+100,32)
COPY L 0 A_TakeFromTarget("CopyVisionRedirect",9)
goto ShootingBuff

}
}

actor CopyShotSpread : CopyShot
{
Damage (9)//13
}

actor HornetChaserSpread : HornetChaser
{
damage (14)//20
}


