// Please just forget that "d4xkzeasethelag" mess, that is a failed attempt of a setting to ease the lag (if you are experiencing it)

freeslot("SKINCOLOR_D94XKZ_PITYGREEN")

// Ass Green Color for the Pity Shield
skincolors[SKINCOLOR_D94XKZ_PITYGREEN] = {
	name = "Pity green flash",
	ramp = {112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112},
	invcolor = SKINCOLOR_GREEN,
	invshade = 0,
	chatcolor = V_GREENMAP,
	accessible = false
}

addHook("MobjThinker", function(mobj)
	for player in players.iterate
		local d4xkzeasethelag = false
		if player.d94xkzmenu_easelag
			d4xkzeasethelag = true
		end
	end
	if not d4xkzeasethelag
		if not (mobj and mobj.valid) then return end
		if not (mobj.target and mobj.target.valid) then return end
		if mobj.target.skin != "dark" and mobj.target.skin != "xkz" then return end

		mobj.blendmode = AST_ADD
		mobj.color = SKINCOLOR_KETCHUP
		mobj.colorized = true
	end
end, MT_ARMAGEDDON_ORB)

addHook("MobjThinker", function(mobj)
	for player in players.iterate
		local d4xkzeasethelag = false
		if player.d94xkzmenu_easelag
			d4xkzeasethelag = true
		end
	end
	if not d4xkzeasethelag
		if not (mobj and mobj.valid) then return end
		if not (mobj.target and mobj.target.valid) then return end
		if mobj.target.skin != "dark" and mobj.target.skin != "xkz" then return end

		mobj.blendmode = AST_ADD
		local d94xkzshieldzap = P_SpawnMobjFromMobj(mobj, P_RandomRange(-mobj.radius/FRACUNIT/2, mobj.radius/FRACUNIT/2)*FRACUNIT, P_RandomRange(-mobj.radius/FRACUNIT/2, mobj.radius/FRACUNIT/2)*FRACUNIT, P_RandomRange(0, mobj.height/FRACUNIT/2)*FRACUNIT*P_MobjFlip(mobj), MT_WATERZAP)
		d94xkzshieldzap.momx = P_RandomRange(-3, 3)*FRACUNIT
		d94xkzshieldzap.momy = P_RandomRange(-3, 3)*FRACUNIT
		d94xkzshieldzap.momz = P_RandomRange(-3, 3)*FRACUNIT
		d94xkzshieldzap.blendmode = AST_ADD
	end
end, MT_ATTRACT_ORB)

addHook("MobjThinker", function(mobj)
	for player in players.iterate
		local d4xkzeasethelag = false
		if player.d94xkzmenu_easelag
			d4xkzeasethelag = true
		end
	end
	if not d4xkzeasethelag
		if not (mobj and mobj.valid) then return end
		if not (mobj.target and mobj.target.valid) then return end
		if mobj.target.skin != "dark" and mobj.target.skin != "xkz" then return end

		mobj.blendmode = AST_ADD
	end
end, MT_BUBBLEWRAP_ORB)

addHook("MobjThinker", function(mobj)
	for player in players.iterate
		local d4xkzeasethelag = false
		if player.d94xkzmenu_easelag
			d4xkzeasethelag = true
		end
	end
	if not d4xkzeasethelag
		if not (mobj and mobj.valid) then return end
		if not (mobj.target and mobj.target.valid) then return end
		if mobj.target.skin != "dark" and mobj.target.skin != "xkz" then return end

		mobj.blendmode = AST_ADD
		local d94xkzshieldfire = P_SpawnMobjFromMobj(mobj, P_RandomRange(-mobj.radius/FRACUNIT/2, mobj.radius/FRACUNIT/2)*FRACUNIT, P_RandomRange(-mobj.radius/FRACUNIT/2, mobj.radius/FRACUNIT/2)*FRACUNIT, P_RandomRange(0, mobj.height/FRACUNIT)*FRACUNIT*P_MobjFlip(mobj), MT_THOK)
		d94xkzshieldfire.sprite = SPR_SFLM
		d94xkzshieldfire.frame = $|(leveltime % 5)|FF_FULLBRIGHT
		d94xkzshieldfire.momx = P_RandomRange(-1, 1)*FRACUNIT
		d94xkzshieldfire.momy = P_RandomRange(-1, 1)*FRACUNIT
		d94xkzshieldfire.momz = 5*FRACUNIT*P_MobjFlip(mobj)
		d94xkzshieldfire.scale = mobj.scale
		d94xkzshieldfire.destscale = mobj.scale/4
		d94xkzshieldfire.blendmode = AST_ADD
		local d94xkzshieldbubble = P_SpawnMobjFromMobj(mobj, P_RandomRange(-mobj.radius/FRACUNIT/2, mobj.radius/FRACUNIT/2)*FRACUNIT, P_RandomRange(-mobj.radius/FRACUNIT/2, mobj.radius/FRACUNIT/2)*FRACUNIT, P_RandomRange(0, mobj.height/FRACUNIT)*FRACUNIT*P_MobjFlip(mobj), MT_THOK)
		d94xkzshieldbubble.sprite = SPR_BUBL
		d94xkzshieldbubble.frame = $|B|FF_FULLBRIGHT
		d94xkzshieldbubble.momx = P_RandomRange(-1, 1)*FRACUNIT
		d94xkzshieldbubble.momy = P_RandomRange(-1, 1)*FRACUNIT
		d94xkzshieldbubble.momz = 5*FRACUNIT*P_MobjFlip(mobj)
		d94xkzshieldbubble.scale = mobj.scale
		d94xkzshieldbubble.destscale = mobj.scale/4
		d94xkzshieldbubble.blendmode = AST_ADD
	end
end, MT_ELEMENTAL_ORB)

addHook("MobjThinker", function(mobj)
	for player in players.iterate
		local d4xkzeasethelag = false
		if player.d94xkzmenu_easelag
			d4xkzeasethelag = true
		end
	end
	if not d4xkzeasethelag
		if not (mobj and mobj.valid) then return end
		if not (mobj.target and mobj.target.valid) then return end
		if mobj.target.skin != "dark" and mobj.target.skin != "xkz" then return end

		mobj.blendmode = AST_ADD
		local d94xkzshieldfire = P_SpawnMobjFromMobj(mobj, P_RandomRange(-mobj.radius/FRACUNIT/2, mobj.radius/FRACUNIT/2)*FRACUNIT, P_RandomRange(-mobj.radius/FRACUNIT/2, mobj.radius/FRACUNIT/2)*FRACUNIT, P_RandomRange(0, mobj.height/FRACUNIT)*FRACUNIT*P_MobjFlip(mobj), MT_THOK)
		d94xkzshieldfire.sprite = SPR_SFLM
		d94xkzshieldfire.frame = $|(leveltime % 5)|FF_FULLBRIGHT
		d94xkzshieldfire.momx = P_RandomRange(-1, 1)*FRACUNIT
		d94xkzshieldfire.momy = P_RandomRange(-1, 1)*FRACUNIT
		d94xkzshieldfire.momz = 5*FRACUNIT*P_MobjFlip(mobj)
		d94xkzshieldfire.scale = mobj.scale
		d94xkzshieldfire.destscale = mobj.scale/4
		d94xkzshieldfire.blendmode = AST_ADD
	end
end, MT_FLAMEAURA_ORB)

addHook("MobjThinker", function(mobj)
	for player in players.iterate
		local d4xkzeasethelag = false
		if player.d94xkzmenu_easelag
			d4xkzeasethelag = true
		end
	end
	if not d4xkzeasethelag
		if not (mobj and mobj.valid) then return end
		if not (mobj.target and mobj.target.valid) then return end
		if mobj.target.skin != "dark" and mobj.target.skin != "xkz" then return end

		mobj.blendmode = AST_ADD
	end
end, MT_FORCE_ORB)

addHook("MobjThinker", function(mobj)
	for player in players.iterate
		local d4xkzeasethelag = false
		if player.d94xkzmenu_easelag
			d4xkzeasethelag = true
		end
	end
	if not d4xkzeasethelag
		if not (mobj and mobj.valid) then return end
		if not (mobj.target and mobj.target.valid) then return end
		if mobj.target.skin != "dark" and mobj.target.skin != "xkz" then return end

		mobj.color = SKINCOLOR_D94XKZ_PITYGREEN
		if (leveltime % 2) == 0
			mobj.colorized = true
			mobj.blendmode = 0
		else
			mobj.colorized = false
			mobj.blendmode = AST_ADD
		end
	end
end, MT_PITY_ORB)

addHook("MobjThinker", function(mobj)
	for player in players.iterate
		local d4xkzeasethelag = false
		if player.d94xkzmenu_easelag
			d4xkzeasethelag = true
		end
	end
	if not d4xkzeasethelag
		if not (mobj and mobj.valid) then return end
		if not (mobj.target and mobj.target.valid) then return end
		if mobj.target.skin != "dark" and mobj.target.skin != "xkz" then return end

		mobj.blendmode = AST_ADD
		local d94xkzshieldzap = P_SpawnMobjFromMobj(mobj, P_RandomRange(-mobj.radius/FRACUNIT/2, mobj.radius/FRACUNIT/2)*FRACUNIT, P_RandomRange(-mobj.radius/FRACUNIT/2, mobj.radius/FRACUNIT/2)*FRACUNIT, P_RandomRange(0, mobj.height/FRACUNIT/2)*FRACUNIT*P_MobjFlip(mobj), MT_WATERZAP)
		d94xkzshieldzap.color = SKINCOLOR_SUPERSILVER1
		d94xkzshieldzap.colorized = true
		d94xkzshieldzap.momx = P_RandomRange(-3, 3)*FRACUNIT
		d94xkzshieldzap.momy = P_RandomRange(-3, 3)*FRACUNIT
		d94xkzshieldzap.momz = P_RandomRange(-3, 3)*FRACUNIT
		d94xkzshieldzap.blendmode = AST_ADD
		if (leveltime % 30) == 0
			local d94xkzshieldspark = P_SpawnMobjFromMobj(mobj, P_RandomRange(-mobj.radius/FRACUNIT*2, mobj.radius/FRACUNIT*2)*FRACUNIT, P_RandomRange(-mobj.radius/FRACUNIT*2, mobj.radius/FRACUNIT*2)*FRACUNIT, P_RandomRange(0, mobj.height/FRACUNIT*2)*FRACUNIT*P_MobjFlip(mobj), MT_SUPERSPARK)
			d94xkzshieldspark.scale = mobj.scale
		end
	end
end, MT_THUNDERCOIN_ORB)

addHook("MobjThinker", function(mobj)
	for player in players.iterate
		local d4xkzeasethelag = false
		if player.d94xkzmenu_easelag
			d4xkzeasethelag = true
		end
	end
	if not d4xkzeasethelag
		if not (mobj and mobj.valid) then return end
		if not (mobj.target and mobj.target.valid) then return end
		if mobj.target.skin != "dark" and mobj.target.skin != "xkz" then return end

		mobj.blendmode = AST_ADD
	end
end, MT_WHIRLWIND_ORB)

addHook("MobjThinker", function(mobj)
	for player in players.iterate
		local d4xkzeasethelag = false
		if player.d94xkzmenu_easelag
			d4xkzeasethelag = true
		end
	end
	if not d4xkzeasethelag
		local d94xkzsearcher = 0
		for player in players.iterate
			if player.mo.skin == "dark"
			or player.mo.skin == "xkz"
				d94xkzsearcher = $+1
			end
		end

		if not d94xkzsearcher then return end

		if mobj and mobj.valid
		and mobj.health
			local d94xkzflowerfire = P_SpawnMobjFromMobj(mobj, P_RandomRange(-mobj.radius/FRACUNIT/2, mobj.radius/FRACUNIT/2)*FRACUNIT, P_RandomRange(-mobj.radius/FRACUNIT/2, mobj.radius/FRACUNIT/2)*FRACUNIT, P_RandomRange(0, mobj.height/FRACUNIT)*FRACUNIT*P_MobjFlip(mobj), MT_THOK)
			d94xkzflowerfire.fuse = 35
			d94xkzflowerfire.sprite = SPR_SFLM
			d94xkzflowerfire.frame = $|(leveltime % 5)|FF_FULLBRIGHT
			d94xkzflowerfire.momz = 3*mobj.scale*P_MobjFlip(mobj)
			d94xkzflowerfire.scale = mobj.scale
			d94xkzflowerfire.destscale = mobj.scale/4
			d94xkzflowerfire.blendmode = AST_ADD
		end
	end
end, MT_FIREFLOWER)