FreezeOneShot = class(Room, function(o, x, y, world, ...)
	local arg = {...}
	if arg[1] == nil then
		options = {}
	else
		options = arg[1]
	end
	o.settingName = options.settingName or 'freeze_one_shot_'
	o.prefix = options.prefix or '1star'
	o.typecount = 1
	Room.init(o, x, y, world, ...)
	
	o.shootRate = o.shootRate*4
	o.drawType = 'svg'
	o.svg = SvgLoader(svg_root .. "defence/freeze_room_" .. player.currentWorld.id .. ".svg", true)
	o.svg:setPosition(x, y)

	Room.setHealth(o, game_settings[o.settingName .. "health"], game_settings[o.settingName .. "health"])
end)
FreezeOneShot.rtype = FreezeOneShot
function FreezeOneShot:pulse()
	-- explode self, freeze all enemies on screen  
	Room.pulse(self)
	Room.kill(self)
	mainState.particles:addRecycle(Flash())
	for i,v in ipairs(self.world.enemies.members) do
		v:hit(game_settings[self.settingName .. "freeze_time"] or 10, "freeze")
		mainState.particles:addRecycle(ParticleHandler(v.pos.x, v.pos.y, "particle_data_snowsplosion.lua", sprites['tiles']['freeze_flake.png'], {preroll=.1, lifetime=0.1, cooldown=2}))
	end
end

FreezeOneShot.rtype = FreezeOneShot
FreezeOneShot.cost = 200
FreezeOneShot.color = {r=255, g=255, b=255, a=255, rtype=FreezeOneShot, typecount=1}
FreezeOneShot.settingName = "room_rentable_"