// Modify the powers.

addHook("PlayerThink", function(player)
	if player.mo and player.mo.valid
		if player.mo.skin == "dark"
		or player.mo.skin == "xkz"
			if player.powers[pw_invulnerability]
				local d94xkzinvulsparkling = P_SpawnMobjFromMobj(player.mo, P_RandomRange(-player.mo.radius/FRACUNIT, player.mo.radius/FRACUNIT)*FRACUNIT, P_RandomRange(-player.mo.radius/FRACUNIT, player.mo.radius/FRACUNIT)*FRACUNIT, P_RandomRange(-player.mo.height/FRACUNIT, player.mo.height/FRACUNIT)*FRACUNIT*P_MobjFlip(player.mo), MT_BOXSPARKLE)
				d94xkzinvulsparkling.target = player.mo
				d94xkzinvulsparkling.tics = 5
				d94xkzinvulsparkling.frame = $|FF_FULLBRIGHT
				d94xkzinvulsparkling.scale = player.mo.scale*3
				d94xkzinvulsparkling.destscale = player.mo.scale
				d94xkzinvulsparkling.momx = P_RandomRange(-6, 6)*FRACUNIT
				d94xkzinvulsparkling.momy = P_RandomRange(-6, 6)*FRACUNIT
				d94xkzinvulsparkling.momz = P_RandomRange(-6, 6)*FRACUNIT
				d94xkzinvulsparkling.blendmode = AST_ADD
			end
			if player.powers[pw_sneakers]
			and (leveltime % 30) == 0
				local d94xkzsneakersghost = P_SpawnGhostMobj(player.mo)
				d94xkzsneakersghost.colorized = true
				d94xkzsneakersghost.scale = player.mo.scale*2
				d94xkzsneakersghost.destscale = player.mo.scale
				d94xkzsneakersghost.momx = player.mo.momx/2
				d94xkzsneakersghost.momy = player.mo.momy/2
				d94xkzsneakersghost.momz = player.mo.momz/2
				d94xkzsneakersghost.destscale = -1
			end
		end
	end
end)

// no.
//[
addHook("MobjThinker", function(mobj)
	if mobj and mobj.valid
	and mobj.target and mobj.target.valid
		if mobj.target.skin == "dark"
		or mobj.target.skin == "xkz"
			mobj.sprite = SPR_SFBR
			mobj.frame = mobj.frame|(leveltime%16)|FF_FULLBRIGHT
		end
	end
end, MT_FIREBALL)