actor ReggaeCanA : ReggaeCan replaces ReggaeCan
{
+HITTRACER
States
{
XDeath:
TNT1 A 0 A_GiveInventory("ReggaePain",1,AAPTR_TRACER)
Goto Death
}
}


actor SparkShockA : SparkShock replaces SparkShock
{
+HITTRACER
States
{
XDeath:
TNT1 A 0 A_GiveInventory("SparkShockPain",1,AAPTR_TRACER)
stop
}
}

actor FlameSwordTrailA : FlameSwordTrail replaces FlameSwordTrail
{
+HITTRACER
States
{
XDeath:
TNT1 A 0 A_GiveInventory("FlameSwordPain",1,AAPTR_TRACER)
stop
}
}

actor ConcreteShotA : ConcreteShot replaces ConcreteShot
{
+HITTRACER
States
{
XDeath:
TNT1 A 0 A_JumpIf(CheckClass("PartyBall",AAPTR_TRACER),"SDeath")
TNT1 A 0 A_GiveInventory("GravityHoldPain",1,AAPTR_TRACER)
stop

SDeath:
TNT1 A 0
stop
}
}

actor BlackHoleBombExplosionA : BlackHoleBombExplosion replaces BlackHoleBombExplosion
{
States
{
Spawn:
BLKH F 0
BLKH F 0 A_GiveToTarget("BlackHoleBombCooldown", 1)
BLKH F 0 A_SpawnItemEx("BlackHoleBombFXSpawner", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERTRANSLATION)
BLKH F 0 A_PlaySoundEx("weapon/blackholebombdetonate", "body", 1)
//BLKH F 0 ACS_ExecuteAlways(247, 0, 7, 256)
BLKH F 0 A_GiveInventory("BlackHoleBombExplosionAFunc",1)
BLKH F 0 A_Explode(5,128,0)
BLKH FFGG 1
//BLKH F 0 ACS_ExecuteAlways(247, 0, 7, 256)
BLKH F 0 A_GiveInventory("BlackHoleBombExplosionAFunc",1)
BLKH F 0 A_Explode(5,128,0)
BLKH HHII 1
//BLKH F 0 ACS_ExecuteAlways(247, 0, 7, 256)
BLKH F 0 A_GiveInventory("BlackHoleBombExplosionAFunc",1)
BLKH F 0 A_Explode(5,128,0)
BLKH JJKK 1
//BLKH F 0 ACS_ExecuteAlways(247, 0, 7, 256)
BLKH F 0 A_GiveInventory("BlackHoleBombExplosionAFunc",1)
BLKH F 0 A_Explode(5,128,0)
BLKH LLMM 1
//BLKH F 0 ACS_ExecuteAlways(247, 0, 7, 256)
BLKH F 0 A_GiveInventory("BlackHoleBombExplosionAFunc",1)
BLKH F 0 A_Explode(5,128,0)
BLKH NNOO 1
//BLKH F 0 ACS_ExecuteAlways(247, 0, 7, 256)
BLKH F 0 A_GiveInventory("BlackHoleBombExplosionAFunc",1)
BLKH F 0 A_Explode(5,128,0)
BLKH PPQQ 1
BLKH Q 0 A_Countdown
goto Spawn+3
}
}

actor BlackHoleBombExplosionAFunc : CustomInventory
{
States
{
Pickup:
BLKH F 0 ACS_ExecuteAlways(247, 0, 7, 256)
BLKH F 0 ACS_NamedExecuteWithResult("Save_Coords")
//BLKH F 0 A_RadiusGive("BlackHoleMonsterPull",256,RGF_MONSTERS|RGF_PLAYERS,1)
BLKH F 0 A_RadiusGive("BlackHoleMonsterPull",256,RGF_MONSTERS,1)
stop
}
}

actor BlackHoleMonsterPull : CustomInventory
{
States
{
Pickup:
BLKH F 0 ACS_NamedExecuteWithResult("XYPullTowardsCoords_Falloff",7,256)
stop
}
}

actor ChillShotA : ChillShot replaces ChillShot
{
+HITTRACER
States
{
XDeath:
TNT1 A 0 A_GiveInventory("ChillFreeze",1,AAPTR_TRACER)
TNT1 A 0 A_GiveInventory("ChillSpikePain",1,AAPTR_TRACER)
stop
}
}

actor SparkChaserA : SparkChaser replaces SparkChaser
{
    States
    {
    Spawn:
        TNT1 A 0
        SCHS D 0 ACS_ExecuteAlways(259, 0, 0) // Set the starting pitch
        SCHS D 0 A_SetUserVar(user_speed, 40)
        SCHS D 0 A_SetUserVar(user_frameMax, 10)
        goto FlashMove
    SpawnMove:
        SCHS D 0 A_SpawnItemEx("SparkChaserTrail", cos(pitch)*user_speed/2, 0, sin(-pitch)*user_speed/2)
        SCHS D 1 A_SpawnItemEx("SparkChaserTrail", 0, 0, 0)
        SCHS D 0 A_SetUserVar(user_frames, user_frames-1)
        SCHS D 0 A_JumpIf(user_frames == 0, "Flash")
        loop
    Flash:
        SCHS D 0 A_JumpIfInventory("SparkChaserTagged", 1, "SetTag", AAPTR_TRACER)
        SCHS D 0 A_PlaySoundEx("weapon/sparkchaserchase", "body")
        SCHS D 0 A_RearrangePointers(AAPTR_DEFAULT, AAPTR_DEFAULT, AAPTR_NULL) // Clear previous hit
        SCHS D 0 A_SeekerMissile(0, 0, SMF_LOOK, 256, 8)
        SCHS D 0 A_Warp(AAPTR_DEFAULT, 0, 0, 0, 0, WARPF_STOP)
        SCHS D 0 A_JumpIf(CallACS("core_compareptr", AAPTR_TRACER, AAPTR_MASTER), "FlashRetarget")
        SCHS CCBBC 2
        SCHS D 0 A_Countdown
        SCHS D 0 A_JumpIfTargetInLOS("FlashSearch", 0, JLOSF_PROJECTILE)
        goto FlashMove
    SetTag:
        SCHS D 0 A_SetUserVar(user_tagwait, 4)
        SCHS D 0 A_RearrangePointers(AAPTR_DEFAULT, AAPTR_TRACER, AAPTR_DEFAULT) // Store Tracer in Master
        goto Flash+1
    ClearTag:
        SCHS D 0 A_RearrangePointers(AAPTR_DEFAULT, AAPTR_NULL, AAPTR_DEFAULT) // Clear Master
        goto Flash+6
    FlashRetarget:
        SCHS D 0 A_SetUserVar(user_tagwait, user_tagwait-1)
        SCHS D 0 A_JumpIf(user_tagwait <= 0, "ClearTag")
        SCHS D 1 A_GiveInventory("SparkChaserCantseek", 1, AAPTR_MASTER)
        goto Flash+2
    FlashSearch:
        //SCHS D 0 ACS_NamedExecuteAlways("core_lookatptr", 0, AAPTR_TRACER)
		SCHS D 0 ACS_NamedExecuteAlways("FacePointerCenter", 0, AAPTR_TRACER)
        goto FlashMove
    FlashMove:
        SCHS C 2
		SCHS D 0 A_ChangeVelocity(cos(pitch)*user_speed, 0, sin(-pitch)*user_speed, CVF_RELATIVE|CVF_REPLACE)
        SCHS D 0 A_SetUserVar(user_frames, user_frameMax)
        goto SpawnMove
    Death:
        TNT1 A 0
        stop
    }
}