states[S_SPEAREXPLOSION1] = {
		sprite = SPR_EXER,
		frame = A|TR_TRANS30|FF_FULLBRIGHT,
		tics = 2,
		action = A_PlaySound,
		var1 = sfx_cssfx1,
		var2 = 1,
		nextstate = S_SPEAREXPLOSION2
}
states[S_SPEAREXPLOSION2] = {
		sprite = SPR_EXER,
		frame = B|TR_TRANS30|FF_FULLBRIGHT,
		tics = 2,
		action = A_PlaySound, 
		var1 = sfx_cssfx1,
		var2 = 1,
		nextstate = S_SPEAREXPLOSION3
}
states[S_SPEAREXPLOSION3] = {
		sprite = SPR_EXER,
		frame = C|TR_TRANS30|FF_FULLBRIGHT,
		tics = 2,
		action = A_PlaySound,
		var1 = sfx_cssfx1,
		var2 = 1,
		nextstate = S_SPEAREXPLOSION4
}
states[S_SPEAREXPLOSION4] = {
		sprite = SPR_EXER,
		frame = D|TR_TRANS30|FF_FULLBRIGHT,
		tics = 2,
		action = A_PlaySound,
		var1 = sfx_cssfx1,
		var2 = 1,
		nextstate = S_SPEAREXPLOSION5
}
states[S_SPEAREXPLOSION5] = {
		sprite = SPR_EXER,
		frame = E|TR_TRANS30|FF_FULLBRIGHT,
		tics = 2,
		action = A_PlaySound,
		var1 = sfx_cssfx1,
		var2 = 1,
		nextstate = S_SPEAREXPLOSION6
}
states[S_SPEAREXPLOSION6] = {
		sprite = SPR_EXER,
		frame = F|TR_TRANS30|FF_FULLBRIGHT,
		tics = 2,
		action = A_PlaySound,
		var1 = sfx_cssfx1,
		var2 = 1,
		nextstate = S_SPEAREXPLOSION7
}
states[S_SPEAREXPLOSION7] = {
		sprite = SPR_NULL,
		frame = A,
		tics = 1,
		action = None,
		var1 = 0,
		var2 = 0,
		nextstate = S_NULL
}
states[S_CHAOSSPEARSTATE1] = {
		sprite = SPR_CHSP,
		frame = A|TR_TRANS30|FF_FULLBRIGHT,
		tics = 1,
		action = None,
		nextstate = S_CHAOSSPEARSTATE2
}
states[S_CHAOSSPEARSTATE2] = {
		sprite = SPR_CHSP,
		frame = A|TR_TRANS30|FF_FULLBRIGHT,
		tics = 1,
		action = A_Pain,
		nextstate = S_CHAOSSPEARSTATE3
}
states[S_CHAOSSPEARSTATE3] = {
		sprite = SPR_CHSP,
		frame = A|TR_TRANS30|FF_FULLBRIGHT,
		tics = 1,
		action = None, 
		nextstate = S_CHAOSSPEARSTATE3
}

mobjinfo[MT_CHAOSSPEAR] = {
		mapthingnum = -1,
		spawnstate = S_CHAOSSPEARSTATE1,
		spawnhealth = 1000,
		seestate = 0,
		seesound = 0,
		reactiontime = 8,
		attacksound = 0,
		painstate = 0,
		painchance = 400,
		painsound = sfx_cspear,
		meleestate = 0,
		missilestate = 0,
		deathstate = S_SPEAREXPLOSION1,
		deathsound = sfx_cssfx1,
		xdeathstate = 0,
		speed = FRACUNIT * 90,
		radius = FRACUNIT * 23,
		height = FRACUNIT * 24,
		mass = 0,
		damage = 32 * FRACUNIT,
		activesound = 0,
		raisestate = 0,
		flags = MF_NOGRAVITY|MF_MISSILE|MF_NOCLIPHEIGHT
}

addHook("MobjThinker", function(shadow)
	if shadow.valid
		shadow.color = SKINCOLOR_YELLOW
		P_SpawnGhostMobj(shadow)
	end	
end, MT_CHAOSSPEAR)