-- Original by Glaber
--I'm just an idiot using it
freeslot(
	"MT_SPIKES",
	"S_SPKS_STND",
	"S_SPKS_FOUN",
	"S_SPKS_CHASE1",
	"S_SPKS_CHASE2",
	"S_SPKS_CHASE3",
	"S_SPKS_CHASE4",
	"S_SPKS_CHASE5",
	"S_SPKS_CHASE6",
	"S_SPKS_CHASE7",
	"S_SPKS_CHASE8",
	"S_SPKS_CHASE9",
	"S_SPKS_CHASE10",
	"S_SPKS_CHASE11",
	"S_SPKS_CHASE12",
	"S_SPKS_CHASE13",
	"SPR_SPKS"
)

addHook("TouchSpecial", function(mo, pmo)
    if ((mo.state == mo.info.xdeathstate) or (pmo.z > mo.z + mo.height/3))
    and not (pmo.player.powers[pw_invulnerability])
    and not (pmo.player.powers[pw_super])
	and not ((pmo.player.powers[pw_carry] == CR_NIGHTSMODE) and (pmo.player.pflags & PF_DRILLING))
        P_DamageMobj(pmo, mo, mo)
        return true
    end
end, MT_SPIKES)


// originally old sharp
mobjinfo[MT_SPIKES] = {
		//$Name "Spikes"
		//$Sprite SPKSA1
		//$Category Sonic 1 Enemies
		doomednum = 4088,
        spawnstate = S_SPKS_STND,
        spawnhealth = 1,
        seestate = S_SPKS_FOUN,
        seesound = sfx_None,
        reactiontime = 3*TICRATE,
        attacksound = sfx_None,
        painstate = S_NULL,
        painchance = 5*TICRATE,
        painsound = sfx_dmpain,
		meleestate = S_NULL,
		missilestate = S_NULL,
        deathstate = S_XPLD_FLICKY,
        xdeathstate = S_NULL,
        deathsound = sfx_pop,
        speed = 2,
        radius = 16*FRACUNIT,
        height = 24*FRACUNIT,
        dispoffset = 0,
        mass = DMG_SPIKE,
        damage = 0,
        activesound = sfx_None,
		raisestate = S_NULL,
        flags = MF_ENEMY|MF_SPECIAL|MF_SHOOTABLE|MF_BOUNCE
}

states[S_SPKS_STND] = {SPR_SPKS, A, 1, A_Look, 0, 0, S_SPKS_STND}
states[S_SPKS_FOUN] = {SPR_SPKS, A, 1, A_FaceTarget, 0, 0, S_SPKS_CHASE1}
states[S_SPKS_CHASE1] = {SPR_SPKS, A, 1, A_Chase, 0, 0, S_SPKS_CHASE2}
states[S_SPKS_CHASE2] = {SPR_SPKS, A, 1, A_Chase, 0, 0, S_SPKS_CHASE3}
states[S_SPKS_CHASE3] = {SPR_SPKS, A, 1, A_Chase, 0, 0, S_SPKS_CHASE4}
states[S_SPKS_CHASE4] = {SPR_SPKS, A, 1, A_Chase, 0, 0, S_SPKS_CHASE5}
states[S_SPKS_CHASE5] = {SPR_SPKS, B, 1, A_Chase, 0, 0, S_SPKS_CHASE6}
states[S_SPKS_CHASE6] = {SPR_SPKS, B, 1, A_Chase, 0, 0, S_SPKS_CHASE7}
states[S_SPKS_CHASE7] = {SPR_SPKS, B, 1, A_Chase, 0, 0, S_SPKS_CHASE8}
states[S_SPKS_CHASE8] = {SPR_SPKS, A, 1, A_Chase, 0, 0, S_SPKS_CHASE9}
states[S_SPKS_CHASE9] = {SPR_SPKS, A, 1, A_Chase, 0, 0, S_SPKS_CHASE10}
states[S_SPKS_CHASE10] = {SPR_SPKS, A, 1, A_Chase, 0, 0, S_SPKS_CHASE11}
states[S_SPKS_CHASE11] = {SPR_SPKS, C, 1, A_Chase, 0, 0, S_SPKS_CHASE12}
states[S_SPKS_CHASE12] = {SPR_SPKS, C, 1, A_Chase, 0, 0, S_SPKS_CHASE13}
states[S_SPKS_CHASE13] = {SPR_SPKS, C, 1, A_Chase, 0, 0, S_SPKS_CHASE1}