//Taz Mania Flickies

//Replacement
addHook("MobjSpawn", function(mo)
	mo.radius = FRACUNIT*12
	mo.shadowscale = FRACUNIT/8
	mo.state = S_FLICK_1
	mo.flags = $|MF_SPECIAL
	mo.flags = $&~MF_NOCLIPTHING
	local coolor = P_RandomRange(1, 8)
	if coolor == 2
	or coolor == 3 
	or coolor == 4 then
		mo.color = SKINCOLOR_SALMON
	elseif coolor == 1 then
		mo.color = SKINCOLOR_YELLOW
	elseif coolor == 5 then
		mo.color = SKINCOLOR_GREEN
	else
		mo.color = SKINCOLOR_WAVE
	end
end, MT_FLICKY_16)

addHook("MobjSpawn", function(mo)
	mo.type = MT_FLICKY_16
	mo.state = S_FLICK_1
	mo.radius = FRACUNIT*12
	mo.shadowscale = FRACUNIT/8
	mo.flags = $|MF_SPECIAL
	mo.flags = $&~MF_NOCLIPTHING
	local coolor = P_RandomRange(1, 8)
	if coolor == 2
	or coolor == 3 
	or coolor == 4 then
		mo.color = SKINCOLOR_SALMON
	elseif coolor == 1 then
		mo.color = SKINCOLOR_YELLOW
	elseif coolor == 5 then
		mo.color = SKINCOLOR_GREEN
	else
		mo.color = SKINCOLOR_WAVE
	end
end, MT_FLICKY_01)

addHook("MobjSpawn", function(mo)
	mo.type = MT_FLICKY_12
	mo.state = mo.info.spawnstate
	mo.radius = FRACUNIT*32
	mo.shadowscale = FRACUNIT/8
	mo.flags = $|MF_SPECIAL
	mo.flags = $&~MF_NOCLIPTHING
end, MT_FLICKY_02)

addHook("MobjSpawn", function(mo)
	mo.type = MT_FLICKY_16
	mo.state = S_FLICK_1
	mo.radius = FRACUNIT*12
	mo.shadowscale = FRACUNIT/8
	mo.flags = $|MF_SPECIAL
	mo.flags = $&~MF_NOCLIPTHING
	local coolor = P_RandomRange(1, 8)
	if coolor == 2
	or coolor == 3 
	or coolor == 4 then
		mo.color = SKINCOLOR_SALMON
	elseif coolor == 1 then
		mo.color = SKINCOLOR_YELLOW
	elseif coolor == 5 then
		mo.color = SKINCOLOR_GREEN
	else
		mo.color = SKINCOLOR_WAVE
	end
end, MT_FLICKY_03)

addHook("MobjSpawn", function(mo)
	mo.radius = FRACUNIT*32
	mo.shadowscale = FRACUNIT/8
	mo.flags = $|MF_SPECIAL
	mo.flags = $&~MF_NOCLIPTHING
end, MT_FLICKY_04)

addHook("MobjSpawn", function(mo)
	mo.type = MT_FLICKY_15
	mo.state = mo.info.spawnstate
	mo.radius = FRACUNIT*32
	mo.shadowscale = FRACUNIT/8
	mo.flags = $|MF_SPECIAL
	mo.flags = $&~MF_NOCLIPTHING
end, MT_FLICKY_05)

addHook("MobjSpawn", function(mo)
	mo.type = MT_FLICKY_16
	mo.state = S_FLICK_1
	mo.radius = FRACUNIT*12
	mo.shadowscale = FRACUNIT/8
	mo.flags = $|MF_SPECIAL
	mo.flags = $&~MF_NOCLIPTHING
	local coolor = P_RandomRange(1, 8)
	if coolor == 2
	or coolor == 3 
	or coolor == 4 then
		mo.color = SKINCOLOR_SALMON
	elseif coolor == 1 then
		mo.color = SKINCOLOR_YELLOW
	elseif coolor == 5 then
		mo.color = SKINCOLOR_GREEN
	else
		mo.color = SKINCOLOR_WAVE
	end
end, MT_FLICKY_06)

addHook("MobjSpawn", function(mo)
	mo.type = MT_FLICKY_16
	mo.state = S_FLICK_1
	mo.radius = FRACUNIT*12
	mo.shadowscale = FRACUNIT/8
	mo.flags = $|MF_SPECIAL
	mo.flags = $&~MF_NOCLIPTHING
	local coolor = P_RandomRange(1, 8)
	if coolor == 2
	or coolor == 3 
	or coolor == 4 then
		mo.color = SKINCOLOR_SALMON
	elseif coolor == 1 then
		mo.color = SKINCOLOR_YELLOW
	elseif coolor == 5 then
		mo.color = SKINCOLOR_GREEN
	else
		mo.color = SKINCOLOR_WAVE
	end
end, MT_FLICKY_07)

addHook("MobjSpawn", function(mo)
	mo.radius = FRACUNIT*32
	mo.shadowscale = FRACUNIT/8
	mo.flags = $|MF_SPECIAL
	mo.flags = $&~MF_NOCLIPTHING
end, MT_FLICKY_08)

addHook("MobjSpawn", function(mo)
	mo.type = MT_FLICKY_15
	mo.state = mo.info.spawnstate
	mo.radius = FRACUNIT*32
	mo.shadowscale = FRACUNIT/8
	mo.flags = $|MF_SPECIAL
	mo.flags = $&~MF_NOCLIPTHING
end, MT_FLICKY_09)

addHook("MobjSpawn", function(mo)
	mo.type = MT_FLICKY_16
	mo.state = S_FLICK_1
	mo.radius = FRACUNIT*12
	mo.shadowscale = FRACUNIT/8
	mo.flags = $|MF_SPECIAL
	mo.flags = $&~MF_NOCLIPTHING
	local coolor = P_RandomRange(1, 8)
	if coolor == 2
	or coolor == 3 
	or coolor == 4 then
		mo.color = SKINCOLOR_SALMON
	elseif coolor == 1 then
		mo.color = SKINCOLOR_YELLOW
	elseif coolor == 5 then
		mo.color = SKINCOLOR_GREEN
	else
		mo.color = SKINCOLOR_WAVE
	end
end, MT_FLICKY_10)

addHook("MobjSpawn", function(mo)
	mo.type = MT_FLICKY_15
	mo.state = mo.info.spawnstate
	mo.radius = FRACUNIT*32
	mo.shadowscale = FRACUNIT/8
	mo.flags = $|MF_SPECIAL
	mo.flags = $&~MF_NOCLIPTHING
end, MT_FLICKY_11)

addHook("MobjSpawn", function(mo)
	mo.radius = FRACUNIT*32
	mo.shadowscale = FRACUNIT/8
	mo.flags = $|MF_SPECIAL
	mo.flags = $&~MF_NOCLIPTHING
end, MT_FLICKY_12)

addHook("MobjSpawn", function(mo)
	mo.type = MT_FLICKY_16
	mo.state = S_FLICK_1
	mo.radius = FRACUNIT*12
	mo.shadowscale = FRACUNIT/8
	mo.flags = $|MF_SPECIAL
	mo.flags = $&~MF_NOCLIPTHING
	local coolor = P_RandomRange(1, 8)
	if coolor == 2
	or coolor == 3 
	or coolor == 4 then
		mo.color = SKINCOLOR_SALMON
	elseif coolor == 1 then
		mo.color = SKINCOLOR_YELLOW
	elseif coolor == 5 then
		mo.color = SKINCOLOR_GREEN
	else
		mo.color = SKINCOLOR_WAVE
	end
end, MT_FLICKY_13)

addHook("MobjSpawn", function(mo)
	mo.radius = FRACUNIT*12
	mo.shadowscale = FRACUNIT/8
	mo.flags = $|MF_SPECIAL
	mo.flags = $&~MF_NOCLIPTHING
	mo.state = S_FLICK_4
	if P_RandomChance(FRACUNIT/4) == true then
		mo.type = MT_FLICKY_16
		mo.state = S_FLICK_1
		local coolor = P_RandomRange(1, 8)
		if coolor == 2
		or coolor == 3 
		or coolor == 4 then
			mo.color = SKINCOLOR_SALMON
		elseif coolor == 1 then
			mo.color = SKINCOLOR_YELLOW
		elseif coolor == 5 then
			mo.color = SKINCOLOR_GREEN
		else
			mo.color = SKINCOLOR_WAVE
		end
	end
end, MT_FLICKY_14)

addHook("MobjSpawn", function(mo)
	mo.radius = FRACUNIT*32
	mo.shadowscale = FRACUNIT/8
	mo.flags = $|MF_SPECIAL
	mo.flags = $&~MF_NOCLIPTHING
end, MT_FLICKY_15)

addHook("MobjSpawn", function(mo)
	mo.radius = FRACUNIT*32
	mo.shadowscale = FRACUNIT/8
	mo.flags = $|MF_SPECIAL
	mo.flags = $&~MF_NOCLIPTHING
end, MT_SECRETFLICKY_01)

addHook("MobjSpawn", function(mo)
	mo.type = MT_SECRETFLICY_01
	mo.state = mo.info.spawnstate
	mo.flags = $|MF_SPECIAL
	mo.flags = $&~MF_NOCLIPTHING
	mo.radius = FRACUNIT*32
	mo.shadowscale = FRACUNIT/8
end, MT_SECRETFLICKY_02)


//Last Dinner :P
addHook("TouchSpecial", function(s,t)
	if t.state == S_TAZBITE
	or t.state == S_TAZBITEG then
		local quil0 = P_SpawnMobj(t.x, t.y, t.z, MT_TMQUIL)
		quil0.color = s.color
		quil0.momz = P_RandomRange(3, 5)*FRACUNIT
		quil0.momx = P_RandomRange(-3, 3)*FRACUNIT
		quil0.momy = P_RandomRange(-3, 3)*FRACUNIT
		local quil2 = P_SpawnMobj(t.x, t.y, t.z, MT_TMQUIL)
		quil2.color = s.color
		quil2.momz = P_RandomRange(3, 5)*FRACUNIT
		quil2.momx = P_RandomRange(-3, 3)*FRACUNIT
		quil2.momy = P_RandomRange(-3, 3)*FRACUNIT
		local quil3 = P_SpawnMobj(t.x, t.y, t.z, MT_TMQUIL)
		quil3.color = s.color
		quil3.momz = P_RandomRange(3, 5)*FRACUNIT
		quil3.momx = P_RandomRange(-3, 3)*FRACUNIT
		quil3.momy = P_RandomRange(-3, 3)*FRACUNIT
		P_RemoveMobj(s)
		if not S_IdPlaying(sfx_taste)
			S_StartSound(t, sfx_taste)
		end
	end
return true
end, MT_FLICKY_16)

addHook("TouchSpecial", function(s,t)
	if t.state == S_TAZBITE
	or t.state == S_TAZBITEG then
		local dust = P_SpawnMobj(t.x, t.y, t.z+30*FRACUNIT, MT_DUST)
		dust.colorized = true
		dust.color = SKINCOLOR_SKY
		P_RemoveMobj(s)
		if not S_IdPlaying(sfx_taste)
			S_StartSound(t, sfx_taste)
		end
	end
return true
end, MT_FLICKY_04)

addHook("TouchSpecial", function(s,t)
	if t.state == S_TAZBITE
	or t.state == S_TAZBITEG then
		local dust = P_SpawnMobj(t.x, t.y, t.z+30*FRACUNIT, MT_DUST)
		dust.colorized = true
		dust.color = SKINCOLOR_SKY
		P_RemoveMobj(s)
		if not S_IdPlaying(sfx_taste)
			S_StartSound(t, sfx_taste)
		end
	end
return true
end, MT_FLICKY_08)

addHook("TouchSpecial", function(s,t)
	if t.state == S_TAZBITE
	or t.state == S_TAZBITEG then
		local dust = P_SpawnMobj(t.x, t.y, t.z+30*FRACUNIT, MT_DUST)
		dust.colorized = true
		dust.color = SKINCOLOR_SKY
		P_RemoveMobj(s)
		if not S_IdPlaying(sfx_taste)
			S_StartSound(t, sfx_taste)
		end
	end
return true
end, MT_FLICKY_12)

addHook("TouchSpecial", function(s,t)
	if t.state == S_TAZBITE
	or t.state == S_TAZBITEG then
		local quil0 = P_SpawnMobj(t.x, t.y, t.z, MT_TMQUIL)
		quil0.color = SKINCOLOR_BONE
		quil0.momz = P_RandomRange(3, 5)*FRACUNIT
		quil0.momx = P_RandomRange(-3, 3)*FRACUNIT
		quil0.momy = P_RandomRange(-3, 3)*FRACUNIT
		local quil2 = P_SpawnMobj(t.x, t.y, t.z, MT_TMQUIL)
		quil2.color = SKINCOLOR_BONE
		quil2.momz = P_RandomRange(3, 5)*FRACUNIT
		quil2.momx = P_RandomRange(-3, 3)*FRACUNIT
		quil2.momy = P_RandomRange(-3, 3)*FRACUNIT
		local quil3 = P_SpawnMobj(t.x, t.y, t.z, MT_TMQUIL)
		quil3.color = SKINCOLOR_BONE
		quil3.momz = P_RandomRange(3, 5)*FRACUNIT
		quil3.momx = P_RandomRange(-3, 3)*FRACUNIT
		quil3.momy = P_RandomRange(-3, 3)*FRACUNIT
		P_RemoveMobj(s)
		if not S_IdPlaying(sfx_taste)
			S_StartSound(t, sfx_taste)
		end
	end
return true
end, MT_FLICKY_14)

addHook("TouchSpecial", function(s,t)
	if t.state == S_TAZBITE
	or t.state == S_TAZBITEG then
		local dust = P_SpawnMobj(t.x, t.y, t.z+30*FRACUNIT, MT_DUST)
		dust.colorized = true
		dust.color = SKINCOLOR_SKY
		P_RemoveMobj(s)
		if not S_IdPlaying(sfx_taste)
			S_StartSound(t, sfx_taste)
		end
	end
return true
end, MT_FLICKY_15)

addHook("TouchSpecial", function(s,t)
	if t.state == S_TAZBITE
	or t.state == S_TAZBITEG then
		local dust = P_SpawnMobj(t.x, t.y, t.z+30*FRACUNIT, MT_DUST)
		dust.colorized = true
		dust.color = SKINCOLOR_APPLE
		P_RemoveMobj(s)
		if not S_IdPlaying(sfx_taste)
			S_StartSound(t, sfx_taste)
		end
	end
return true
end, MT_SECRETFLICKY_01)


//Bosses
addHook("BossDeath",function(m)
	m.destscale = 0
	m.flags = $&~MF_NOGRAVITY
return true
end,MT_EGGMOBILE3)

addHook("MobjSpawn",function(m)
	if gamemap == 09 then
		m.state = S_ALIENMISSILE
	end
end,MT_TORPEDO)
addHook("MobjSpawn",function(m)
	if gamemap == 09 then
		m.state = S_ALIENMISSILE
	end
end,MT_TORPEDO2)

addHook("MobjSpawn",function(m)
	m.spritexscale = FRACUNIT/10*9
	m.spritexscale = FRACUNIT/10*9
end,MT_EGGMOBILE3)
addHook("MobjSpawn",function(m)
	m.spritexscale = FRACUNIT/10*9
	m.spritexscale = FRACUNIT/10*9
end,MT_FAKEMOBILE)
addHook("MobjSpawn",function(m)
	m.spritexscale = FRACUNIT/2*3
	m.spritexscale = FRACUNIT/2*3
end,MT_FANG)

//
addHook("MobjSpawn", function(m)
m.fuse = TICRATE/30
end,MT_METALSONIC_RACE)
addHook("MobjFuse", function(mo)
	if mo.color != SKINCOLOR_FOREST then
		mo.color = SKINCOLOR_FOREST
	return true
	end
end,MT_METALSONIC_RACE)
addHook("MobjSpawn", function(mo)
mo.fuse = TICRATE/30
end, MT_METALSONIC_BATTLE)
addHook("MobjFuse", function(mo)
	if mo.color != SKINCOLOR_FOREST then
		mo.color = SKINCOLOR_FOREST
	return true
	end
end,MT_METALSONIC_BATTLE)