actor SparkShockBoss : BaseMM8BDMWep_CBM
{
tag "$TAGC_3G"
dropitem "SparkShockWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 28
Obituary "$OB_SPARKSHOCK"
Inventory.Pickupmessage "Power up! Mighty Spark Shock!"
weapon.ammotype "MightyGodAmmo"
States
{
Spawn:
C_03 G 1
loop
Ready:
SPAH A 10 ACS_ExecuteAlways(998,0,DYE_SPARKMAN)
SPAH A 1 A_SpawnItemEx("SparkShockHelper",0,0,90,0,0,0,0,1)
Ready1:
SPAH A 0 A_TakeInventory("MightyGodAmmo",56)
SPAH A 1 A_WeaponReady
wait
Ready2:
SPAH P 0 Offset(0, -24)A_PlaySoundEx("weapon/sparkreset", "Weapon")
Ready2Wait:
SPAH PPPZZZ 1 A_WeaponReady(WRF_NOBOB)
loop

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
SPAH A 1 A_Lower
Loop

Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
SPAH A 1 A_Raise
Loop

Fire:
SPAH P 0 A_JumpIfInventory("MightyGodAmmo",28,"FireEnd")//which is funny, as it isn't a fireball!
SPAH A 1 Offset(0,64)
SPAH A 1 Offset(0,96)
SPAH A 1 Offset(0,128)
TNT1 A 1 Offset(0, -56)
SPAH P 1 Offset(0, -72)
SPAH P 1 Offset(0, -56)
SPAH P 1 Offset(0, -40)
SPAH P 1 Offset(0, -40)
SPAH P 0 A_PlaySoundEx("weapon/sparkingup","Weapon")
SPAH P 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,2,3)
FireCharge.a:
SPAH P 0 A_JumpIfInventory("MightyGodAmmo",14,"FireCharge.b")
SPAH PP 1 Offset(0, -32)A_GiveInventory("MightyGodAmmo",1)
//SPAH Z 0 A_PlaySoundEx("weapon/sparkshock","Weapon")
SPAH Z 0 A_JumpIfInventory("MightyGodAmmo",14,"FireCharge.b")
SPAH ZZ 1 Offset(0, -36) A_GiveInventory("MightyGodAmmo",1)
loop

FireCharge.b:
//SPAH P 0 A_PlaySoundEx("weapon/sparkshock","Weapon")
SPAH P 0 A_JumpIfInventory("MightyGodAmmo",28,"Ready2")
FAKR A 0 A_JumpIf(ACS_NamedExecuteWithResult("Get_Button_A") == 1, "MedSynthFire")
SPAH PP 1 Offset(0, -32)A_GiveInventory("MightyGodAmmo",1)
//SPAH Z 0 A_PlaySoundEx("weapon/sparkshock","Weapon")
SPAH Z 0 A_JumpIfInventory("MightyGodAmmo",28,"Ready2")
FAKR A 0 A_JumpIf(ACS_NamedExecuteWithResult("Get_Button_A") == 1, "MedSynthFire")
SPAH ZZ 1 Offset(0, -36) A_GiveInventory("MightyGodAmmo",1)
loop

FireEnd:
SPAH P 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,1,1)
SPAH P 0 A_PlaySoundEx("weapon/sparkfire","Weapon")
SPAH P 0 A_GiveInventory("SparkM_Main_CI",1)
SPAH P 0 ACS_NamedExecuteAlways("BULL_SetState",0,2)
SPAH P 0 A_TakeInventory("MightyGodAmmo",28)
SPAH Q 1 Offset(0, 8)
SPAH Q 1 Offset(0, 16)
SPAH R 1 Offset(0, 24)
SPAH Y 1 Offset(0, 32)
SPAH W 1 Offset(0, 32)
SPAH Y 1 Offset(0, 32)
SPAH W 1 Offset(0, 32)
SPAH Y 1 Offset(0, 32)
SPAH W 1 Offset(0, 32)
SPAH Y 1 Offset(0, 32)
SPAH W 1 Offset(0, 32)
SPAH Y 1 Offset(0, 32)
SPAH W 10 Offset(0, 32)
FireEnd2:
SPAH R 1 Offset(0, 16)
SPAH R 1 Offset(0, 8)//A_TakeInventory("MightyGodAmmo",99)
SPAH Q 1 Offset(0, -8)
SPAH P 1 Offset(0, -32)
TNT1 A 11 Offset(0,128)
SPAH A 2 Offset(0,196)
SPAH A 2 Offset(0,128)
SPAH A 2 Offset(0,64)
SPAH A 4 A_WeaponReady(WRF_NOFIRE)
goto Ready1

Altfire:
TNT1 A 0 A_JumpIfInventory("MightyGodAmmo",28,"SparkSpread")
SPAH E 0 A_JumpIfInventory("SparkDelayCounter",1,"Ready1")
SPAH ABEE 1 Offset(0, 24)
SPAH R 1 Offset(0, 36)
SPAH R 1 Offset(0, 72)A_JumpIfInventory("ImpairmentStack",1,2)
SPAH R 0 Offset(0, 48)A_Recoil(-33)
goto AltContinue
SPAH R 0 Offset(0, 48)A_Recoil(-33*ACS_NamedExecuteWithResult("ImpairmentACS")/100)
goto AltContinue
AltContinue:
SPAH R 0 Offset(0, 48)ACS_NamedExecuteAlways("BULL_SetState",0,3)
SPAH W 0 A_PlaySoundEx("weapon/sparklunge","Weapon")
AltLoop:
TNT1 A 0 A_GiveInventory("WeaponCharge",1)
SPAH W 1 Offset(0, 48)A_SpawnItemEx("SparkGrabHitbox",8,0,-8,momx,momy,momz,0,8)
SPAH W 0 A_JumpIfInventory("SuplexID",1,"SparkySuplex")
SPAH W 0 A_JumpIfInventory("WeaponCharge",12,"AltEnd")
loop

AltEnd:
TNT1 A 0 A_TakeInventory("WeaponCharge",12)
SPAH R 1 Offset(0, 16)
SPAH R 1 Offset(0, 8)
SPAH Q 1 Offset(0, -8)
SPAH P 1 Offset(0, -32)
TNT1 A 8 Offset(0,128)
TNT1 A 0 A_GiveInventory("SparkDelayCounter",105)
TNT1 A 0 A_SpawnItemEx("SparkDelayHelper")
SPAH A 2 Offset(0,196)
SPAH A 2 Offset(0,164)
SPAH A 2 Offset(0,128)
goto Ready1

SparkySuplex:
TNT1 A 0 A_TakeInventory("WeaponCharge",12)
SPAH R 0 A_GiveInventory("IsPerformingSuplex",1)
SPAH R 0 A_GiveInventory("ThorIsGrabbingF",1)
SPAH R 0 A_TakeInventory("ThorIsLungingF",999)
SPAH R 0 A_PlaySoundEx("weapon/sparkgrab","Weapon")
SPAH R 0 ACS_NamedExecuteAlways("BULL_SetState",0,4)
SPAH R 1 Offset(0, -8) ACS_NamedExecuteAlways("cbm_ZangiefStartGrab",0,CallACS("cbm_ZangiefCountInv",2)+999)

SPAH R 1 Offset(0, -24)A_JumpIf(CallACS("cbm_ZangiefGrab",350,angle*256/360,70)==0,"AltEnd")
SPAH Q 1 Offset(0, -40)A_JumpIf(CallACS("cbm_ZangiefGrab",345,angle*256/360,70)==0,"AltEnd")
SPAH P 1 Offset(0, -56)A_JumpIf(CallACS("cbm_ZangiefGrab",340,angle*256/360,70)==0,"AltEnd")
SPAH P 1 Offset(0, -56)A_JumpIf(CallACS("cbm_ZangiefGrab",335,angle*256/360,70)==0,"AltEnd")
SPAH P 1 Offset(0, -56)A_JumpIf(CallACS("cbm_ZangiefGrab",330,angle*256/360,70)==0,"AltEnd")
SPAH P 1 Offset(0, -56)A_JumpIf(CallACS("cbm_ZangiefGrab",310,angle*256/360,78)==0,"AltEnd")
SPAH P 1 Offset(0, -56)A_JumpIf(CallACS("cbm_ZangiefGrab",310,angle*256/360,86)==0,"AltEnd")
SparkySuplexWait:
SPAH P 1 Offset(0, -56)A_JumpIf(CallACS("cbm_ZangiefGrab",310,angle*256/360,94)==0,"AltEnd")
SPAH P 0 A_GiveInventory("WeaponCharge",1)
SPAH P 0 A_JumpIfInventory("WeaponCharge",9,"SparkySuplexZap")
goto SparkySuplexWait

SparkySuplexZap:
//SPAH P 0 A_PlaySound("weapon/brightspark","Body",0.5)
SPAH W 0 A_PlaySoundEx("weapon/sparkzaps","Weapon")
SparkySuplexZapCont:
SPAH P 0 A_FireCustomMissile("SparkSuplexAOE",0,1,0,50)

SPAH P 0 A_SpawnItemEx("SparkWaveFX",0,0,120,0,-90,0,0,1)
SPAH P 0 A_SpawnItemEx("SparkWaveFX",0,0,120,0,90,0,0,1)
SPAH P 0 A_SpawnItemEx("SparkWaveFX",0,0,120,0,-45,-45,0,1)
SPAH P 0 A_SpawnItemEx("SparkWaveFX",0,0,120,0,45,45,0,1)
SPAH P 1 Offset(0, -58)A_JumpIf(CallACS("cbm_ZangiefGrab",310,angle*256/360,94)==0,"AltEnd")

SPAH P 0 A_SpawnItemEx("SparkWaveFX",0,0,120,0,0,-90,0,1)
SPAH P 0 A_SpawnItemEx("SparkWaveFX",0,0,120,0,0,90,0,1)
SPAH P 0 A_SpawnItemEx("SparkWaveFX",0,0,120,0,45,-45,0,1)
SPAH P 0 A_SpawnItemEx("SparkWaveFX",0,0,120,0,-45,45,0,1)
SPAH Z 1 Offset(0, -54)A_JumpIf(CallACS("cbm_ZangiefGrab",310,angle*256/360,94)==0,"AltEnd")

SPAH P 0 A_GiveInventory("WeaponCharge",1)
SPAH P 0 A_JumpIfInventory("WeaponCharge",20,"SparkySuplexEnd")
goto SparkySuplexZapCont

SparkySuplexEnd:
TNT1 A 0 A_StopSound("Body")
TNT1 A 0 A_TakeInventory("WeaponCharge",999)
TNT1 A 0 A_TakeInventory("IsPerformingSuplex",999)
TNT1 A 0 A_TakeInventory("ThorIsGrabbingF",999)
TNT1 A 0 A_TakeInventory("WeaponCharge",999)
TNT1 A 0 A_GiveInventory("SparkDelayCounter",105)
TNT1 A 0 A_SpawnItemEx("SparkDelayHelper")
SPAH A 1 Offset(0,128)A_GiveInventory("RaThorSuplexReset_P",1)
goto Ready1

MedSynthFire:
//SPAH P 0 A_ScaleVelocity(.5)
SPAH P 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,1,1)
SPAA C 0 A_PlaySoundEx("weapon/sparkalt","Weapon")
SPAA C 0 A_GiveInventory("SparkmanAltMid_CI",1)
SPAA C 0 A_GiveInventory("SparkmanAltSpreadCheck",1)
SPAA C 0 ACS_NamedExecuteAlways("BULL_SetState",0,1)
SPAH J 1 Offset(0, 14) A_TakeInventory("MightyGodAmmo",28)
SPAH K 1 Offset(0, 12)
SPAH K 1 Offset(0, 8)
SPAH K 1 Offset(0, 12)
SPAH K 1 Offset(0, 8)
SPAH K 1 Offset(0, 12)
SPAH G 1 Offset(0, 8)
SPAH D 1 Offset(0, 12)
SPAH C 1 Offset(0, 8)
SPAH B 1 Offset(0, 14) A_TakeInventory("MightyGodAmmo",28)
SPAH A 14 A_WeaponReady(14)
Goto Ready1

SparkSpread:
//SPAH P 0 A_ScaleVelocity(.5)
SPAH P 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,1,1)
SPAA C 0 A_PlaySoundEx("weapon/sparkalt","Weapon")
SPAA C 0 A_GiveInventory("SparkmanAlt_CI",1)
SPAA C 0 A_GiveInventory("SparkmanAlt2SpreadCheck",1)
SPAA C 0 ACS_NamedExecuteAlways("BULL_SetState",0,1)
SPAH J 1 Offset(0, 14) A_TakeInventory("MightyGodAmmo",28)
SPAH K 1 Offset(0, 12)
SPAH K 1 Offset(0, 8)
SPAH K 1 Offset(0, 12)
SPAH K 1 Offset(0, 8)
SPAH K 1 Offset(0, 12)
SPAH G 1 Offset(0, 8)
SPAH D 1 Offset(0, 12)
SPAH C 1 Offset(0, 8)
SPAH B 1 Offset(0, 14) A_TakeInventory("MightyGodAmmo",28)
SPAH A 14 A_WeaponReady(14)
Goto Ready1
}
}

actor SparkHealToggleIcon : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
inventory.icon "SPHEAL"
scale 2.0
Tag "Disable Healing Aura"
inventory.pickupmessage "I'm gonna get a real CHARGE out of blowing you away, Mega Jerk!"
+INVBAR
states
{
Spawn:
CRAA X 1
loop
Use:
TNT1 A 0 A_PlaySoundEx("item/ItemUseMM9","SoundSlot6")
TNT1 A 0 A_GiveInventory("SparkHealToggleOff",1)
TNT1 A 0 A_GiveInventory("SparkHealToggleIcon2",1)
TNT1 A 0 A_TakeInventory("SparkHealToggleOn",1)
TNT1 A 0 A_TakeInventory("SparkHealToggleIcon",1)
fail
No:
TNT1 A 0
fail
}
}

actor SparkHealToggleIcon2 : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
inventory.icon "SNHEAL"
scale 2.0
Tag "Enable Healing Aura"
inventory.pickupmessage "I'm NOT gonna get a real CHARGE out of blowing you away, Mega Friend!"
+INVBAR
states
{
Spawn:
CRAA X 1
loop
Use:
TNT1 A 0 A_PlaySoundEx("item/ItemUseMM9","SoundSlot6")
TNT1 A 0 A_GiveInventory("SparkHealToggleOn",1)
TNT1 A 0 A_GiveInventory("SparkHealToggleIcon",1)
TNT1 A 0 A_TakeInventory("SparkHealToggleOff",1)
TNT1 A 0 A_TakeInventory("SparkHealToggleIcon2",1)
fail
No:
TNT1 A 0
fail
}
}

actor MightyGodAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
+INVENTORY.IGNORESKILL
}

actor SparkHealAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 56
+INVENTORY.IGNORESKILL
}

actor SparkDelayHelper : BasicHelper
{
reactiontime 106
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_TakeFromTarget("SparkDelayCounter",1)
TNT1 A 1 A_Countdown
loop
}
}

actor SparkAuraDelay : Powerup
{
powerup.duration 35
}

actor SparkDelayCounter : Inventory
{
inventory.amount 1
inventory.maxamount 105
}

actor SparkHealToggleOff : OnceC{}
actor SparkHealToggleOn : OnceC{}

actor SparkReloadProtect : PowerProtection
{
Powerup.Duration 6
DamageFactor "SparkSuplex", 0.0
}

actor ShockProtect : PowerProtection
{
Powerup.Duration 5
DamageFactor "SparkShot3", 1.0
}

actor ShockChainsawProtect : PowerProtection
{
Powerup.Duration 12
DamageFactor "SparkSaw", 0.0
}

actor SparkM_LobProtect : Inventory {}

actor SparkShockHelper
{
PROJECTILE
damage (0)
Radius 0
height 0
scale 2.5
+THRUACTORS
+NOINTERACTION
//+FORCEXYBILLBOARD
States
{
Spawn:
TNT1 AA 0
Check:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
"----" "#" 1 A_Warp(AAPTR_TARGET,0,0,90,180,WARPF_NOCHECKPOSITION)
Check2:
TNT1 A 1 A_JumpIfInTargetInventory("MightyGodAmmo",1,"Mini")
goto Check

Mini:
SSHO AAA 1 Bright A_Warp(AAPTR_TARGET,0,0,90,180,WARPF_NOCHECKPOSITION)
SPAH P 0 A_SpawnItemEx("SparkShockBitFX",0,0,0,frandom(1,24),0,frandom(-24,24),frandom(0,359),1)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
SSHO BB 1 Bright A_Warp(AAPTR_TARGET,0,0,90,180,WARPF_NOCHECKPOSITION)
SPAH P 0 A_SpawnItemEx("SparkShockBitFX",0,0,0,frandom(1,24),0,frandom(-24,24),frandom(0,359),1)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("MightyGodAmmo",28,"Max")
TNT1 A 0 A_JumpIfInTargetInventory("MightyGodAmmo",14,"Med")
SSHO B 0 A_JumpIfInTargetInventory("MightyGodAmmo",7,"Forming")
SSHO B 1
goto Check

Forming:
SSHO BBB 1 Bright A_Warp(AAPTR_TARGET,0,0,90,180,WARPF_NOCHECKPOSITION)
SPAH PP 0 A_SpawnItemEx("SparkShockBitFX",0,0,0,frandom(1,24),0,frandom(-24,24),frandom(0,359),1)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
SSHO CC 1 Bright A_Warp(AAPTR_TARGET,0,0,90,180,WARPF_NOCHECKPOSITION)
SPAH PP 0 A_SpawnItemEx("SparkShockBitFX",0,0,0,frandom(1,24),0,frandom(-24,24),frandom(0,359),1)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("MightyGodAmmo",28,"Max")
TNT1 A 0 A_JumpIfInTargetInventory("MightyGodAmmo",14,"Med")
SSHO B 0 A_JumpIfInTargetInventory("MightyGodAmmo",7,"Forming")
SSHO C 1
goto Check

Med:
SSHO CCC 1 Bright A_Warp(AAPTR_TARGET,0,0,90,180,WARPF_NOCHECKPOSITION)
SPAH PPP 0 A_SpawnItemEx("SparkShockBitFX",0,0,0,frandom(1,24),0,frandom(-24,24),frandom(0,359),1)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
SSHO DD 1 Bright A_Warp(AAPTR_TARGET,0,0,90,180,WARPF_NOCHECKPOSITION)
SPAH PPP 0 A_SpawnItemEx("SparkShockBitFX",0,0,0,frandom(1,24),0,frandom(-24,24),frandom(0,359),1)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("MightyGodAmmo",28,"Max")
TNT1 A 0 A_JumpIfInTargetInventory("MightyGodAmmo",14,"Med")
SSHO D 1
goto Check

Max:
TNT1 A 0 A_GiveToTarget("SparkmanHealAura")
SSHO D 1 Bright A_Warp(AAPTR_TARGET,0,0,90,180,WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 0 A_GiveToTarget("SparkmanHealAura")
SSHO D 1 Bright A_Warp(AAPTR_TARGET,0,0,90,180,WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 0 A_GiveToTarget("SparkmanHealAura")
SSHO D 1 Bright A_Warp(AAPTR_TARGET,0,0,90,180,WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("MightyGodAmmo",28,"Max.b")
SSHO D 1
goto Check

Max.b:
TNT1 A 0 A_GiveToTarget("SparkmanHealAura")
SSHO E 1 Bright A_Warp(AAPTR_TARGET,0,0,90,180,WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 0 A_GiveToTarget("SparkmanHealAura")
SSHO E 1 Bright A_Warp(AAPTR_TARGET,0,0,90,180,WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 0 A_GiveToTarget("SparkmanHealAura")
SSHO E 1 Bright A_Warp(AAPTR_TARGET,0,0,90,180,WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("MightyGodAmmo",28,"Max")
SSHO E 1
goto Check

Death:
TNT1 A 0
stop
}
}

actor SparkmanHealAura : CustomInventory
{
States
{
Pickup://checking heal condition
TNT1 A 0 A_JumpIfInventory("SparkHealToggleOff",1,"Pickup3")
TNT1 A 0 A_JumpIfInventory("SparkHealAmmo",8,"Pickup2")
stop
Pickup2://healing in teams
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_getplayerteam",-1)==255,"PickupSelf")
TNT1 A 0 A_JumpIfInventory("SparkAuraDelay",1,"Pickup3")
SPAH PP 0 A_SpawnItemEx("SparkShockBitFX",frandom(35,45),0,random(80,120),0,0,0,frandom(0,359),1)
SPAH P 0 A_SpawnItemEx("SparkHealper",0,0,90,0,0,0,0,1)
//TNT1 A 0 ACS_NamedExecuteWithResult("SparkRadiusGive",250)
TNT1 A 0 A_GiveInventory("SparkAuraDelay")
stop
Pickup3://nothing
TNT1 A 0
stop
PickupSelf:
TNT1 A 0 A_JumpIf(Health>ACS_ExecuteWithResult(CBM_FetchMyHealth,1),"Pickup3")
TNT1 A 0 A_JumpIfInventory("SparkAuraDelay",1,"Pickup3")
TNT1 A 0 A_GiveInventory("SparkHeal_P")
TNT1 A 0 A_TakeInventory("SparkHealAmmo",8)
TNT1 A 0 A_GiveInventory("SparkAuraDelay")
stop
}
}

actor SparkHealper : BasicHelper
{
States
{
Spawn:
TNT1 AA 0
TNT1 A 0 ACS_NamedExecuteWithResult("SparkRadiusGive",300)
stop
}
}

actor SparkHealperAura_P : CustomInventory
{
States
{
Pickup:
TNT1 AA 0
SPAH P 0 A_SpawnItemEx("SparkHealperAuraFX",0,0,90,0,0,0,0,1)
stop
}
}

actor SparkHeal_P : CustomInventory
{//ClassBase
States
{
Pickup:
TNT1 A 0 A_JumpIf(Health>0,"Pickup2")
stop
Pickup2:
TNT1 A 0 A_PlaySoundEx("weapon/sparkheal","Body")
TNT1 A 0 HealThing(10,ACS_ExecuteWithResult(CBM_FetchMyHealth,1))
SPAH P 0 A_SpawnItemEx("SparkHealperFX",0,0,0,0,0,0,0,1)
SPAH PPPPPPPPPP 0 A_SpawnItemEx("SparkShockBitFX",frandom(-32,32),0,frandom(16,48),0,0,frandom(0,12),frandom(0,359),1)
stop
}
}

actor SparkHealperFX : BasicHelper
{
reactiontime 35
States
{
Spawn:
TNT1 AA 0
SpawnLoop:
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_NOCHECKPOSITION)
TNT1 A 0 A_SpawnItemEx("SparkShockBitFX2",frandom(-32,32),0,frandom(16,48),0,0,frandom(0,12),frandom(0,359),1)
TNT1 A 1 A_Countdown
loop
Death:
TNT1 A 0
stop
}
}

actor SparkHealperAuraFX : BasicClientSide
{
States
{
Spawn:
TNT1 A 0
SPMS E 1 A_SetScale(ScaleX+0.5)
SPMS E 0 A_Fadeout(.15)
SPMS E 1 A_SetScale(ScaleX+0.5)
SPMS E 0 A_Fadeout(.15)
SPMS F 1 A_SetScale(ScaleX+0.5)
SPMS F 0 A_Fadeout(.15)
SPMS F 1 A_SetScale(ScaleX+0.5)
SPMS F 0 A_Fadeout(.15)
SPMS G 1 A_SetScale(ScaleX+0.5)
SPMS G 0 A_Fadeout(.15)
SPMS G 1 A_SetScale(ScaleX+0.5)
SPMS G 0 A_Fadeout(.15)
stop
}
}

//-SPARK SHOCK

actor BigShock
{
Translation "198:198=225:225"
PROJECTILE
+FORCEXYBILLBOARD
+HITTRACER
damagetype "SparkShot3"
Obituary "$OB_SPARKSHOCK"
damage (30)
Radius 18
Height 18
Speed 30
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
SSHO DDDEEE 1 A_SpawnItemEx("SparkShockBitFX",frandom(25,30),0,random(-1,1)*frandom(25,30),random(0,1)*12,0,random(0,1)*frandom(-12,12),frandom(0,359),1,128)
loop
XDeath:
XMFX R 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerenemy")==1, "DeathSpread")
Death:
SSHO DDDDDDDDDDDD 0 A_SpawnItemEx("SparkShockBitFX",frandom(25,30),0,random(-1,1)*frandom(25,30),random(0,1)*24,0,random(0,1)*frandom(-24,24),frandom(0,359),1)
SPMS EFG 1 A_SpawnItemEx("SparkShockBitFX",frandom(25,30),0,random(-1,1)*frandom(25,30),random(0,1)*24,0,random(0,1)*frandom(-24,24),frandom(0,359),1)
stop
DeathSpread:
SPMS EEEEFFGG 1 A_SpawnItemEx("SparkShockBitFX",frandom(25,30),0,random(-1,1)*frandom(25,30),random(0,1)*24,0,random(0,1)*frandom(-24,24),frandom(0,359),1)
DeathSpreadLoop:
SPMS F 0 A_SetDamageType("ClassPainStop")
TNT1 A 0 A_PlaySoundEx("weapon/sparklinger","Body")
SPMS F 0 A_Explode(2,48,0,0,48)
SPMS FFFFGGGG 1 A_SpawnItemEx("SparkShockBitFX",frandom(25,30),0,random(-1,1)*frandom(25,30),random(0,1)*24,0,random(0,1)*frandom(-24,24),frandom(0,359),1)
//TNT1 A 0 A_PlaySoundEx("weapon/sparklinger","Body")
SPMS F 0 A_Explode(2,48,0,0,48)
SPMS FFFFGGGG 1 A_SpawnItemEx("SparkShockBitFX",frandom(25,30),0,random(-1,1)*frandom(25,30),random(0,1)*24,0,random(0,1)*frandom(-24,24),frandom(0,359),1)
TNT1 A 0 A_PlaySoundEx("weapon/sparklinger","Body")
SPMS F 0 A_Explode(2,48,0,0,48)
SPMS FFFFGGGG 1 A_SpawnItemEx("SparkShockBitFX",frandom(25,30),0,random(-1,1)*frandom(25,30),random(0,1)*24,0,random(0,1)*frandom(-24,24),frandom(0,359),1)
//TNT1 A 0 A_PlaySoundEx("weapon/sparklinger","Body")
SPMS F 0 A_Explode(2,48,0,0,48)
SPMS FFFFGGGG 1 A_SpawnItemEx("SparkShockBitFX",frandom(25,30),0,random(-1,1)*frandom(25,30),random(0,1)*24,0,random(0,1)*frandom(-24,24),frandom(0,359),1)
TNT1 A 0 A_PlaySoundEx("weapon/sparklinger","Body")
SPMS F 0 A_Explode(2,48,0,0,48)
SPMS FFFFGGGG 1 A_SpawnItemEx("SparkShockBitFX",frandom(25,30),0,random(-1,1)*frandom(25,30),random(0,1)*24,0,random(0,1)*frandom(-24,24),frandom(0,359),1)
stop
}
}

actor SparkShockBitFX
{
Scale 2.5
PROJECTILE
+CLIENTSIDEONLY
-NOGRAVITY
gravity 2
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
SPMS NNOOO 1
stop
}
}

actor SparkShockBitFX2 : SparkShockBitFX
{
renderstyle translucent
alpha 0.25
+NOGRAVITY
}

actor SparkShockFX1 : BasicClientSide
{
+FORCEXYBILLBOARD
RenderStyle "Add"
ReactionTime 8
States
{
Spawn:
TNT1 AA 0
TNT1 A 1
SpawnLOOP:
SPAX J 1 A_CountDown
SPAX J 0 A_FadeOut
SPAX J 0 A_SetScale(scaleX-0.25)
loop
}
}

actor SparkShockFX2 : SparkShockFX1
{
States
{
Spawn:
TNT1 AA 0
TNT1 A 1
SpawnLOOP:
SPAX K 1 A_CountDown
SPAX K 0 A_FadeOut
SPAX K 0 A_SetScale(scaleX-0.25)
loop
}
}

actor BigShockB : BigShock{Translation "198:198=74:74","202:202=205:205"}
actor BigShockR : BigShock{Translation "198:198=41:41","202:202=54:54"}
actor BigShockO : BigShock{Translation "198:198=128:128","202:202=104:104"}
actor BigShockP : BigShock{Translation "198:198=232:232","202:202=229:229"}

//-SPARK SPREAD

actor SmallShock
{
Translation "198:198=225:225"
PROJECTILE
+FORCEXYBILLBOARD
damagetype "SparkM_Shock2"
Obituary "$OB_SPARKSMOLSPREAD"
damage (5)
Radius 12
Height 12
speed 40
scale 2.5
reactiontime 6
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
SSSP AB 2 A_Countdown
loop
Death:
SPMS NO 2
stop
}
}

actor SmallShockB : SmallShock{Translation "198:198=74:74","202:202=205:205"}
actor SmallShockR : SmallShock{Translation "198:198=41:41","202:202=54:54"}
actor SmallShockO : SmallShock{Translation "198:198=128:128","202:202=104:104"}
actor SmallShockP : SmallShock{Translation "198:198=232:232","202:202=229:229"}

actor SmallShockBig : SmallShock
{
Obituary "$OB_SPARKBIGSPREAD"
damage (10)
Radius 18
Height 18
speed 60
reactiontime 0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
SSSP CD 2
loop
Death:
SSSP AB 2
SPMS NO 2
stop
}
}

actor SmallShockBigB : SmallShockBig{Translation "198:198=74:74","202:202=205:205"}
actor SmallShockBigR : SmallShockBig{Translation "198:198=41:41","202:202=54:54"}
actor SmallShockBigO : SmallShockBig{Translation "198:198=128:128","202:202=104:104"}
actor SmallShockBigP : SmallShockBig{Translation "198:198=232:232","202:202=229:229"}

actor SparkmanAltSpreadCheck : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*2,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*3,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*4,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*5,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*6,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*7,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*8,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*9,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*10,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*11,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*12,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*13,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*14,1)
TNT1 A 0 A_JumpIfInventory("PowerSpread_ST",1,"PickupS")
stop
PickupS:
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*2+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*3+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*4+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*5+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*6+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*7+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*8+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*9+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*10+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*11+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*12+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*13+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*14+15,1)

TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*2-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*3-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*4-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*5-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*6-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*7-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*8-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*9-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*10-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*11-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*12-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*13-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShock",16,0,32,40,0,0,22.5*14-15,1)
stop
}
}

actor SparkmanAlt2SpreadCheck : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*2,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*3,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*4,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*5,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*6,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*7,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*8,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*9,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*10,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*11,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*12,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*13,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*14,1)
TNT1 A 0 A_JumpIfInventory("PowerSpread_ST",1,"PickupS")
stop
PickupS:
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*2+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*3+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*4+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*5+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*6+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*7+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*8+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*9+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*10+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*11+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*12+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*13+15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*14+15,1)

TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*2-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*3-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*4-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*5-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*6-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*7-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*8-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*9-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*10-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*11-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*12-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*13-15,1)
TNT1 A 0 A_SpawnItemEx("SmallShockBig",16,0,32,60,0,0,22.5*14-15,1)
stop
}
}

//-SPARK SUPLEX

actor SparkSuplexAOE
{
Obituary "$OB_SPARKSUPLEX"
-SOLID
+NOGRAVITY
PROJECTILE
+DONTBLAST
+NOINTERACTION
damage 0
radius 1
height 1
damagetype "SparkSuplex"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(5,80,0,0,81)
stop
}
}

actor SparkWaveFX
{
Scale 1.75
PROJECTILE
+CLIENTSIDEONLY
+NOINTERACTION
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
SPAX F 1 A_FadeOut(.25)
SPAX F 0 A_SetScale(ScaleX-0.4375)
SPAX H 1 A_FadeOut(.25)
SPAX H 0 A_SetScale(ScaleX-0.4375)
SPAX G 1 A_FadeOut(.25)
SPAX G 0 A_SetScale(ScaleX-0.4375)
SPAX I 1 A_FadeOut(.25)
SPAX I 0 A_SetScale(ScaleX-0.4375)
stop
}
}

actor SmallSparkWaveFX : SparkWaveFX{Scale 0.75}

actor SparkGrabHitbox
{
//+NOINTERACTION
+MISSILE
+NOBLOCKMAP
+NOGRAVITY
+NOEXPLODEFLOOR
+DONTBLAST
+DONTREFLECT
+HITTRACER
+THRUGHOST
+THRUSPECIES
species "SmartSparkGrab"
height 64
radius 64
renderstyle none
states
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
Crash:
TNT1 A 0 A_JumpIfInTargetInventory("SuplexID",1,"DeathI")
TNT1 A 0 A_JumpIfInventory("IsPerformingSuplex",1,"DeathJ",8)
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerenemy")==1,"GiveSuplex")
stop
GiveSuplexT:
TNT1 A 0 A_JumpIfInTargetInventory("SuplexID",1,"DeathI")
TNT1 A 0 A_JumpIfInventory("IsPerformingSuplex",1,"DeathJ",8)
TNT1 A 0 A_GiveToTarget("IsPerformingSuplex",1)
TNT1 A 4 A_GiveToTarget("SuplexID",(ACS_ExecuteWithResult(147,1)-1000)+1)
stop
GiveSuplex:
TNT1 A 0 A_JumpIfInTargetInventory("SuplexID",1,"DeathI")
TNT1 A 0 A_JumpIfInventory("IsPerformingSuplex",1,"DeathJ",8)
TNT1 A 0 A_GiveToTarget("IsPerformingSuplex",1)
TNT1 A 0 A_GiveToTarget("SuplexID",(ACS_ExecuteWithResult(147,1)-1000)+1)
TNT1 A 1 A_GiveInventory("TempPitProtect_P",1,8)
Carry:
TNT1 A 0 A_GiveInventory("TempPitProtect_P",1,8)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"DeathD")
TNT1 A 1 //A_GiveToTarget("",1)
TNT1 A 1 A_JumpIfInTargetInventory("ThorIsGrabbingF",1,"Carry")
StopCarry:
TNT1 A 1 //A_TakeFromTarget("",9)
stop


DeathD:
TNT1 A 1 //A_LOG("OWNER IS DEAD!")
stop
DeathI:
TNT1 A 1 //A_LOG("FAILED, OWNER HAS ID")
stop
DeathJ:
TNT1 A 1 //A_LOG("FAILED, CAN'T GRAB SOMEONE GRABBING!")
stop
Death:
TNT1 A 1
stop
}
}

//-Spark Stun FX (Handled in a unique way where more hits culminate in a longer stun)

actor Shock_5 : PowerSpeed
{
+ADDITIVETIME
powerup.duration 5
Speed 0.0
}

actor ShockFX_G : ShockFX
{
+BRIGHT
States
{
Spawn:
SPAS FF 0
SpawnLoop:
SPAS FFGG 1 
SPAS F 0 A_JumpIfInTargetInventory("Shock_5",1,"SpawnLoop")
Death:
TNT1 A 0
stop
}
}

actor SparkShockFXGiver : CustomInventory
{
States
{
Pickup:
TNT1 A 0
//TNT1 A 0 A_JumpIfInventory("PowerTundra",1,3)
TNT1 A 0 A_SpawnItemEx("ShockFXWatcher")
TNT1 A 0
stop
}
}

actor ShockFXWatcher : BasicHelper
{
States
{
Spawn:
TNT1 A 0 
TNT1 A 0 A_GiveToTarget("ShockFXG_P",1)
stop
}
}

actor ShockFXG_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("ShockFX_G", 4, 0, 28, 0, 0, 0, 0,1)
stop
}
}

actor SparkM_Main_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("BigShock",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("BigShockB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("BigShockR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("BigShockO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("BigShockP",0,0,0,0)
goto Done
}
}

actor SparkmanAltMid_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("SmallShock",22.5*1,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShock",22.5*15,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShock",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("SmallShockB",22.5*1,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShockB",22.5*15,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShockB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("SmallShockR",22.5*1,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShockR",22.5*15,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShockR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("SmallShockO",22.5*1,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShockO",22.5*15,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShockO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("SmallShockP",22.5*1,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShockP",22.5*15,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShockP",0,0,0,0)
goto Done
}
}

actor SparkmanAlt_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("SmallShockBig",22.5*1,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShockBig",22.5*15,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShockBig",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("SmallShockBigB",22.5*1,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShockBigB",22.5*15,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShockBigB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("SmallShockBigR",22.5*1,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShockBigR",22.5*15,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShockBigR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("SmallShockBigO",22.5*1,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShockBigO",22.5*15,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShockBigO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("SmallShockBigP",22.5*1,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShockBigP",22.5*15,0,0,0)
TNT1 A 0 A_FireCustomMissile("SmallShockBigP",0,0,0,0)
goto Done
}
}

//You found the secret message!

//I know I shouldn't be wasting precious filespace on my tangents but every now and then I'll look back at things
//and remember how Spark's rework back in CCBM was my first contribution to the community
//er, first *positive* contribution. lol it was nice while it lasted