class 'l_06_Wall' (PlayField)

function l_06_Wall:__init(game_scene, name, path)
	PlayField.__init(self, game_scene, name, path)

	self.is_outdoor_scene = false
	
	local tools_button = '04_crowbar_button'
	local tools_skeleton_key = '06_skeleton_key'
	local tools_map = '06_treasure_picture_part_1'
	--local tools_map = '09_treasure_picture_part_1'

	--self:entityHide('chip_5')
	
	-----------------------финальные координаты ---------------------------------
	----------			 1 			  2 		   3 			4 			 5 			  6 		   7 			8 	----
	self.final =   {{   0,-250}, { 177,-177}, { 250,   0}, { 177, 177}, {   0, 250}, {-177, 177}, {-250,   0}, {-177,-177}}
	------------------------- координаты узлов ----------------------------------
	self.current = {{   0,-190}, { 134,-134}, { 190,   0}, { 134, 134}, {   0, 190}, {-134, 134}, {-190,   0}, {-134,-134}}
	------------------ казуальная раскладка - позиции фишка - узел --------------
	--self.chip_pos =  	{5, 3, 4, 6, 1, 7, 8, 2} -- casual
	self.chip_pos = {8, 7, 6, 5, 4, 3, 2, 1} -- hard

	------------------ казуальная раскладка - позиции узел - фишка --------------
	--self.pos_chip = 	{5, 8, 2, 3, 1, 4, 6, 7} -- casual
	self.pos_chip = 	{8, 7, 6, 5, 4, 3, 2, 1} -- hards
	-----------------------------------------------------------------------------
	self.startMG = false
	self.lvl = true
	-----------------------------------------------------------------------------

	self:registerToolFindMG(tools_map);
	
	self.game_scene:getPanel():setMode(EPanelMode.QUEST)
	self:hardButton()

	local function on_apply_button(e)
		self:entityHide(e.target)
		self.startMG = true
		--self:entityShow('area_click_hard', 'area_click_casual')
		if e.save then
			self:entityShow('chip_5')
		else
			self:entityFadeShow('chip_5')
			self:playSound('06mg_insert_chip')
		end
		self.game_scene:getPanel():setMode(EPanelMode.MINIGAME)
	end
	self:registerToolApplyInfo(tools_button, 'area_apply_button', on_apply_button, 'BBT_06_NEED_CROWBAR_BUTTON')

	local function on_find_jimmy(e)
		self:entityHide(e.target)
		self:entityShow('area_find_map_part_1')
		if not e.save then
			self:entityFadeHide('jimmy_1', 'jimmy_2')
		else
			self:entityHide('jimmy_1', 'jimmy_2')
		end
	end
	self:registerToolFindInfo(tools_skeleton_key, 'area_find_jimmy', on_find_jimmy)
	--self:registerActiveObject('area_find_jimmy', on_find_jimmy)

	local function on_find_part_of_map(e)
		self:entityHide(e.target)
		if not e.save then
			self:entityFadeHide('map')
		else
			self:entityHide('map')
		end
		self:completeMinigame()
	end
	self:registerActiveObject('area_find_map_part_1', on_find_part_of_map)


	----------------------------------------- если игра засейвлена ------------------------------------------------
	if HasGameState('06_Wall_status') then
		self.lvl = Helpers.RestoreObjectFromGameState('06_Wall_lvl')

		if self.startMG then
			self:entityShow('chip_5')
			self:entityHide('area_apply_button')
		end

		if self.lvl then
			self:hardButton()
		else
			self:casualButton()
		end

		--[[
		if isCasualPlayMode() then
			self:entityHide('casual_off', 'hard_act')
			self:entityShow('hard_off', 'casual_act')
		else
			self:entityHide('hard_off', 'casual_act')
			self:entityShow('casual_off', 'hard_act')
		end
		]]

		if HasGameState('06_Wall', 'Final') then
			self.game_scene:getPanel():setMode(EPanelMode.QUEST);
			self:entityHide('area_click_reset')
			self:entityShow('area_find_jimmy')
			self:getEntityNamed('top_BG'):setXY(0, -580)
			for i=1,8 do
				self:getEntityNamed('chip_'..i):setRespondable(false)
				self:getEntityNamed('chip_'..i):setXY(self.final[i][1], self.final[i][2])
				self:getEntityNamed('chip_l_ins_'..i):setVisible(true)
			end
			self:getEntityNamed('hook_r'):setRotationDeg(-18)
			self:getEntityNamed('hook_r'):setRotationDeg(18)
		else
			self.chip_pos = Helpers.RestoreObjectFromGameState('06_Wall_status')
			self:initStatus()
		end
		--print('isSave')
	else
		--self:selectMode()
		self:initStatus()
		--print('start')
	end

	---------------------------------------------------------------------------------------------------------------

	for i = 1, 8 do
		self:getEntityNamed('chip_'..i):setCursorOverName('CursorActive')
		self:getEntityNamed('chip_'..i).onPress:add(bind(self.chipOnPress, self));
		self:getEntityNamed('chip_'..i).onFocusIn:add(bind(self.chipInFocus, self));
	   	self:getEntityNamed('chip_'..i).onFocusOut:add(bind(self.chipOutFocus, self));
	end

	--self:getEntityNamed('area_click_casual').onFocusIn:add(bind(self.casualInFocus, self));
	--self:getEntityNamed('area_click_casual').onFocusOut:add(bind(self.casualOutFocus, self));
	self:getEntityNamed('area_click_casual').onPress:add(bind(self.casualOnPress, self));

	--self:getEntityNamed('area_click_hard').onFocusIn:add(bind(self.hardInFocus, self));
	--self:getEntityNamed('area_click_hard').onFocusOut:add(bind(self.hardOutFocus, self));
	self:getEntityNamed('area_click_hard').onPress:add(bind(self.hardOnPress, self));

	self:getEntityNamed('area_click_reset'):setCursorOverName('CursorActive')
	self:getEntityNamed('area_click_reset').onPress:add(bind(self.resetOnPress, self));
	self:getEntityNamed('area_click_reset').onFocusIn:add(bind(self.resetInFocus, self));
	self:getEntityNamed('area_click_reset').onFocusOut:add(bind(self.resetOutFocus, self));
end

function l_06_Wall:initStatus()
	local coordX = 0
	local coordY = 0

	for i = 1,8 do
		coordX = self.current[self.chip_pos[i]][1]
		coordY = self.current[self.chip_pos[i]][2]
		self.pos_chip[self.chip_pos[i]] = i

		self:getEntityNamed('chip_'..i):setXY(coordX, coordY)
		self:chipLight(i)
	end
	Helpers.SaveObjectToGameState('06_Wall_status', self.chip_pos)
end

function l_06_Wall:chipLight(e)
		if self.chip_pos[e] == e then
			self:getEntityNamed('chip_l_ins_'..e):setVisible(true)
		else
			self:getEntityNamed('chip_l_ins_'..e):setVisible(false)
		end
end

--[[
function l_06_Wall:selectMode()
	if isCasualPlayMode() then
		self.chip_pos = {5, 3, 4, 6, 1, 7, 8, 2}
		--print('CASUAL')
		self:entityHide('casual_off', 'hard_act')
		self:entityShow('hard_off', 'casual_act')
	else
		--print('HARD')
		self.chip_pos = {8, 7, 6, 5, 4, 3, 2, 1}
		self:entityHide('hard_off', 'casual_act')
		self:entityShow('casual_off', 'hard_act')
	end
end
]]

-------------------------------------------focus -------------------------------------
function l_06_Wall:chipInFocus(e)
	local num = tonumber(string.sub(e:getName(), -1))

	self:getEntityNamed('chip_l_'..num):setVisible(true)
end


function l_06_Wall:resetInFocus(e)
	self:getEntityNamed('reset_act'):setVisible(true)
end

function l_06_Wall:chipOutFocus(e)
	local num = tonumber(string.sub(e:getName(), -1))

	self:getEntityNamed('chip_l_'..num):setVisible(false)
end

--[[
function l_06_Wall:casualInFocus(e)
	self:getEntityNamed('casual_act'):setVisible(true)
end

function l_06_Wall:hardInFocus(e)
	self:getEntityNamed('hard_act'):setVisible(true)
end

function l_06_Wall:casualOutFocus(e)
	self:getEntityNamed('casual_act'):setVisible(false)
end

function l_06_Wall:hardOutFocus(e)
	self:getEntityNamed('hard_act'):setVisible(false)
end
]]


function l_06_Wall:resetOutFocus(e)
	self:getEntityNamed('reset_act'):setVisible(false)
end
------------------------------------------------------------------------------------------

--------------------------------------------------------on Click (press) ------------------
function l_06_Wall:resetOnPress(e)
	if self.lvl then
		self:hardOnPress()
	else
		self:casualOnPress()
	end
	--self:selectMode()
	-----------------------------сейв ----------------------------------------------------------
	--Helpers.SaveObjectToGameState('06_Wall_lvl', self.lvl)
	--Helpers.SaveObjectToGameState('06_Wall_status', self.chip_pos)
	--self:entityShow('area_click_hard', 'area_click_casual', 'lock_area', 'hard', 'casual')
	--self:entityHide('area_click_reset', 'casual_act', 'casual_off', 'hard_act', 'hard_off')
end

--- блок смены сложности игры CASUAL/HARD -------------

function l_06_Wall:casualOnPress(e)
	self:playSound('06mg_press_button')
	self.chip_pos =  	{5, 3, 4, 6, 1, 7, 8, 2}
	self.lvl = false
	Helpers.SaveObjectToGameState('06_Wall_lvl', self.lvl)
	self:casualButton()
	self:initStatus()
end

function l_06_Wall:casualButton()
	self:getEntityNamed('area_click_hard'):setRespondable(true)
	self:getEntityNamed('area_click_casual'):setRespondable(false)
	self:entityHide('casual_off', 'hard_act')
	self:entityShow('hard_off', 'casual_act')
end

function l_06_Wall:hardOnPress(e)
	self:playSound('06mg_press_button')
	self.chip_pos = {8, 7, 6, 5, 4, 3, 2, 1}
	self.lvl = true
	Helpers.SaveObjectToGameState('06_Wall_lvl', self.lvl)
	self:hardButton()
	self:initStatus()
end

function l_06_Wall:hardButton()
	self:getEntityNamed('area_click_hard'):setRespondable(false)
	self:getEntityNamed('area_click_casual'):setRespondable(true)
	self:entityHide('hard_off', 'casual_act')
	self:entityShow('casual_off', 'hard_act')
end
--------------------------- конец блока ---------------   

function l_06_Wall:chipOnPress(e)
	local curr_num = tonumber(string.sub(e:getName(), -1)) -- номер фишки
	local curr_pos = self.chip_pos[curr_num] --позиция фишки
	local next_pos1 = curr_pos + 1 -- позиция след фишки
	local next_pos2 = curr_pos + 2 -- позиция постслед. фишки
	if next_pos1 > 8 then next_pos1 = 1 end
	if next_pos2 > 8 then next_pos2 = next_pos2 % 8 end
	local next_num1 = self.pos_chip[next_pos1]
	local next_num2 = self.pos_chip[next_pos2]

	self:playSound('06mg_move_chip')
	self.mouseBlocker:push()
	self.timer:add(function ()
		self.mouseBlocker:pop()
	end, 1)

	self:moveEffector(curr_num, next_num1, next_num2, curr_pos, next_pos1, next_pos2)

	--print('f='..curr_num..' f1='..next_num1..' f2='..next_num2..' pos='..curr_pos..' pos1='..next_pos1..' pos2='..next_pos2)

	-----------------------запись позиций для перемещенных фишек ------------------------------------
	self.chip_pos[curr_num] = next_pos2
	self.chip_pos[next_num1] = curr_pos
	self.chip_pos[next_num2] = next_pos1
	------------------------ запись положений фишек в соотв. позициях -------------------------------
	self.pos_chip[curr_pos] = next_num1
	self.pos_chip[next_pos1] = next_num2
	self.pos_chip[next_pos2] = curr_num
	-------------------------засветка/тушение фишек при смене на правильную/неправильную позицию ----
	self:chipLight(curr_pos)
	self:chipLight(next_pos1)
	self:chipLight(next_pos2)
	-------------------------проверка на победу ----------------------------------------------
	--print("1-"..self.chip_pos[1].." 2-"..self.chip_pos[2].." 3-"..self.chip_pos[3].." 4-"..self.chip_pos[4].." 5-"..self.chip_pos[5].." 6-"..self.chip_pos[6].." 7-"..self.chip_pos[7].." 8-"..self.chip_pos[8])
	
	if self:win() then
		AddGameState('06_Wall', 'Final')
		for i=1,8 do
			self:getEntityNamed('chip_'..i):setRespondable(false)
		end
		self.timer:add(function()
			self:onFinal()
		end, 0.6)
	end
	-----------------------------сейв ----------------------------------------------------------
	Helpers.SaveObjectToGameState('06_Wall_status', self.chip_pos)
end

function l_06_Wall:win()
	return (self.chip_pos[1] == 1 and self.chip_pos[2] == 2
	   and  self.chip_pos[3] == 3 and self.chip_pos[4] == 4
	   and  self.chip_pos[5] == 5 and self.chip_pos[6] == 6
	   and  self.chip_pos[7] == 7 and self.chip_pos[8] == 8)
end

function l_06_Wall:moveEffector(curr_num, next_num1, next_num2, curr_pos, next_pos1, next_pos2)
	---------------------------------------начальные позиции фишек ------------------
	local startPos_curr = self:getEntityNamed('chip_'..curr_num):getPosition()
	local startPos_next1 = self:getEntityNamed('chip_'..next_num1):getPosition()
	local startPos_next2 = self:getEntityNamed('chip_'..next_num2):getPosition()
	---------------------------------------конечные позиции фишек -------------------
	local finishPos_curr =  Vector2f(self.current[next_pos2][1], self.current[next_pos2][2])
	local finishPos_next1 = Vector2f(self.current[curr_pos][1], self.current[curr_pos][2])
	local finishPos_next2 = Vector2f(self.current[next_pos1][1], self.current[next_pos1][2])
	---------------------------------------направление движения ---два последние исправить ...--------------
	local vec_curr = Vector2f(self.final[curr_pos][1]*(-0.7071), self.final[curr_pos][2]*(-0.7071))
	--local vec_next1 = Vector2f((self.final[next_pos1][1]-self.final[curr_pos][1])*self.cos, (self.final[next_pos1][2]-self.final[curr_pos][2])*self.sin)
	--local vec_next2 = Vector2f((self.final[next_pos2][1]-self.final[next_pos1][1])*self.cos, (self.final[next_pos2][2]-self.final[next_pos1][2])*self.cos)
	local vec_next1 = Vector2f(-self.current[next_pos1][2]*0.4142, self.current[next_pos1][1]*0.4142)
	local vec_next2 = Vector2f(-self.current[next_pos2][2]*0.4142, self.current[next_pos2][1]*0.4142)


	local effector_curr = HelpersEffect.createSplineBezierEffector(
                                                            startPos_curr,                          -- start position
                                                            startPos_curr + vec_curr,				-- vector of spline from start position
                                                            finishPos_curr,                      	-- finish position
                                                            finishPos_curr,     	-- vector of spline from finish pos
                                                            30,     					       		-- number of points to calc
                                                            0.5,        				            	-- move time
                                                            0                                   	-- move delay
                                                         	)
    effector_curr:setDestroysOnEnd(true)
    effector_curr:attachTo(self:getEntityNamed('chip_'..curr_num))
    effector_curr:play()

    local effector_next1 = HelpersEffect.createSplineBezierEffector(
                                                            startPos_next1,                          -- start position
                                                            startPos_next1 - vec_next1,				-- vector of spline from start position
                                                            finishPos_next1,                      	-- finish position
                                                            finishPos_next1,     	-- vector of spline from finish pos
                                                            15,     					       		-- number of points to calc
                                                            0.5,        				            	-- move time
                                                            0                                   	-- move delay
                                                         	)
    effector_next1:setDestroysOnEnd(true)
    effector_next1:attachTo(self:getEntityNamed('chip_'..next_num1))
    effector_next1:play()

    local effector_next2 = HelpersEffect.createSplineBezierEffector(
                                                            startPos_next2,                          -- start position
                                                            startPos_next2 - vec_next2,				-- vector of spline from start position
                                                            finishPos_next2,                      	-- finish position
                                                            finishPos_next2,     	-- vector of spline from finish pos
                                                            15,     					       		-- number of points to calc
                                                            0.5,        				            	-- move time
                                                            0                                   	-- move delay
                                                         	)
    effector_next2:setDestroysOnEnd(true)
    effector_next2:attachTo(self:getEntityNamed('chip_'..next_num2))
    effector_next2:play()
end


---------------------------что происходит по завершении--------------
function l_06_Wall:onFinal()
	AddGameState('06_Wall', 'Final')
	self.game_scene:getPanel():setMode(EPanelMode.QUEST);
	self:entityHide('area_click_reset')
	self:entityShow('area_find_jimmy')
	self.mouseBlocker:push()
	self:playSound('06mg_final')
	for i=1,8 do
		self:getEntityNamed('chip_'..i):MoveTo(self.final[i][1], self.final[i][2], 0.5)
	end
	self.timer:add(function ()
		self:getEntityNamed('disk'):Rotate(math.rad(360), 0.9)
		self:getEntityNamed('hook_r'):Rotate(math.rad(-18), 0.9)
		self:getEntityNamed('hook_r'):Rotate(math.rad(18), 0.9)
		self.timer:add(function ()
			self:getEntityNamed('top_BG'):MoveTo(0, -580, 0.4)
			self.timer:add(function ()
				self.mouseBlocker:pop()
			end, 0.5)
		end, 0.9)
	end, 0.6)

end
------------------------------------------------------------------------------------------

------------------ "пройдите за меня" Skip------------------------------------------------
function l_06_Wall:SkipMiniGame()
	self.mouseBlocker:push()
	
	for i=1,8 do
		self.chip_pos[i] = i
		self.pos_chip[i] = i
		self:getEntityNamed('chip_'..i):MoveTo(self.current[i][1], self.current[i][2], 0.5)
		self:chipLight(i)
		self:getEntityNamed('chip_'..i):setRespondable(false)
	end

	Helpers.SaveObjectToGameState('06_Wall_status', self.chip_pos)
	self.timer:add(function ()
		self.mouseBlocker:pop()
		self:onFinal()
	end, 0.6)
	
end
------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------
--                      GENERATED CONTENT. DO NOT EDIT.                       --
--------------------------------------------------------------------------------

function l_06_Wall:CreateLoaderTable()
	local objects =
	{
		{ name = 'BG0',  entityType = 'SpriteEntity',  x = 512,  y = 384,  order = 0,  editingLocked = true,  treeItemIsExpanded = true,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/Ph3_MG_06_Wall_BG.jpg',  width = 1366,  height = 768,  },
		{ name = 'top_BG',  entityType = 'SpriteEntity',  parentName = 'BG0',  x = 0,  y = -104,  order = 25,  editingLocked = true,  treeItemIsExpanded = true,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/top_BG.jpg',  width = 1366,  height = 560,  },
		{ name = 'disk_BG',  entityType = 'SpriteEntity',  parentName = 'top_BG',  x = 0,  y = 74,  order = 5,  editingLocked = true,  treeItemIsExpanded = true,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/disk_BG.png',  width = 734,  height = 734,  },
		{ name = 'disk',  entityType = 'SpriteEntity',  parentName = 'disk_BG',  x = 0,  y = 0,  order = 0,  editingLocked = true,  treeItemIsExpanded = true,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/disk.png',  width = 734,  height = 734,  },
		{ name = 'chip_1',  entityType = 'SpriteEntity',  parentName = 'disk',  x = 0,  y = -190,  order = 5,  editingLocked = true,  treeItemIsExpanded = true,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_strongbox.png',  width = 130,  height = 130,  },
		{ name = 'chip_l_1',  entityType = 'SpriteEntity',  parentName = 'chip_1',  x = 0,  y = 0,  order = 0,  isVisible = false,  isRespondable = false,  isActive = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_light.png',  width = 130,  height = 130,  },
		{ name = 'chip_l_ins_1',  entityType = 'SpriteEntity',  parentName = 'chip_1',  x = 0,  y = 0,  order = 0,  isVisible = false,  isRespondable = false,  isActive = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_strongbox_light.png',  width = 130,  height = 130,  },
		{ name = 'chip_2',  entityType = 'SpriteEntity',  parentName = 'disk',  x = 134,  y = -134,  order = 5,  editingLocked = true,  treeItemIsExpanded = true,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_match.png',  width = 130,  height = 130,  },
		{ name = 'chip_l_2',  entityType = 'SpriteEntity',  parentName = 'chip_2',  x = 0,  y = 0,  order = 0,  isVisible = false,  isRespondable = false,  isActive = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_light.png',  width = 130,  height = 130,  },
		{ name = 'chip_l_ins_2',  entityType = 'SpriteEntity',  parentName = 'chip_2',  x = 0,  y = 0,  order = 0,  isVisible = false,  isRespondable = false,  isActive = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_match_light.png',  width = 130,  height = 130,  },
		{ name = 'chip_3',  entityType = 'SpriteEntity',  parentName = 'disk',  x = 190,  y = -3.05176e-005,  order = 5,  editingLocked = true,  treeItemIsExpanded = true,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_trumpet.png',  width = 130,  height = 130,  },
		{ name = 'chip_l_3',  entityType = 'SpriteEntity',  parentName = 'chip_3',  x = 0,  y = 0,  order = 0,  isVisible = false,  isRespondable = false,  isActive = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_light.png',  width = 130,  height = 130,  },
		{ name = 'chip_l_ins_3',  entityType = 'SpriteEntity',  parentName = 'chip_3',  x = 0,  y = 0,  order = 0,  isVisible = false,  isRespondable = false,  isActive = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_trumpet_light.png',  width = 130,  height = 130,  },
		{ name = 'chip_4',  entityType = 'SpriteEntity',  parentName = 'disk',  x = 134,  y = 134,  order = 5,  editingLocked = true,  treeItemIsExpanded = true,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_mask.png',  width = 130,  height = 130,  },
		{ name = 'chip_l_4',  entityType = 'SpriteEntity',  parentName = 'chip_4',  x = 0,  y = 0,  order = 0,  isVisible = false,  isRespondable = false,  isActive = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_light.png',  width = 130,  height = 130,  },
		{ name = 'chip_l_ins_4',  entityType = 'SpriteEntity',  parentName = 'chip_4',  x = 0,  y = 0,  order = 0,  isVisible = false,  isRespondable = false,  isActive = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_mask_light.png',  width = 130,  height = 130,  },
		{ name = 'chip_5',  entityType = 'SpriteEntity',  parentName = 'disk',  x = 0,  y = 190,  order = 5,  isVisible = false,  editingLocked = true,  treeItemIsExpanded = true,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_crowbar.png',  width = 130,  height = 130,  },
		{ name = 'chip_l_5',  entityType = 'SpriteEntity',  parentName = 'chip_5',  x = 0,  y = 0,  order = 0,  isVisible = false,  isRespondable = false,  isActive = false,  editingLocked = true,  treeItemIsExpanded = true,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_light.png',  width = 130,  height = 130,  },
		{ name = 'chip_l_ins_5',  entityType = 'SpriteEntity',  parentName = 'chip_5',  x = 0,  y = 0,  order = 0,  isVisible = false,  isRespondable = false,  isActive = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_crowbar_light.png',  width = 130,  height = 130,  },
		{ name = 'chip_6',  entityType = 'SpriteEntity',  parentName = 'disk',  x = -134,  y = 134,  order = 5,  editingLocked = true,  treeItemIsExpanded = true,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_key.png',  width = 130,  height = 130,  },
		{ name = 'chip_l_6',  entityType = 'SpriteEntity',  parentName = 'chip_6',  x = 0,  y = 0,  order = 0,  isVisible = false,  isRespondable = false,  isActive = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_light.png',  width = 130,  height = 130,  },
		{ name = 'chip_l_ins_6',  entityType = 'SpriteEntity',  parentName = 'chip_6',  x = 0,  y = 0,  order = 0,  isVisible = false,  isRespondable = false,  isActive = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_key_light.png',  width = 130,  height = 130,  },
		{ name = 'chip_7',  entityType = 'SpriteEntity',  parentName = 'disk',  x = -190,  y = -3.05176e-005,  order = 5,  editingLocked = true,  treeItemIsExpanded = true,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_rasp.png',  width = 130,  height = 130,  },
		{ name = 'chip_l_7',  entityType = 'SpriteEntity',  parentName = 'chip_7',  x = 0,  y = 0,  order = 0,  isVisible = false,  isRespondable = false,  isActive = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_light.png',  width = 130,  height = 130,  },
		{ name = 'chip_l_ins_7',  entityType = 'SpriteEntity',  parentName = 'chip_7',  x = 0,  y = 0,  order = 0,  isVisible = false,  isRespondable = false,  isActive = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_rasp_light.png',  width = 130,  height = 130,  },
		{ name = 'chip_8',  entityType = 'SpriteEntity',  parentName = 'disk',  x = -134,  y = -134,  order = 4,  editingLocked = true,  treeItemIsExpanded = true,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_magnifier.png',  width = 130,  height = 130,  },
		{ name = 'chip_l_8',  entityType = 'SpriteEntity',  parentName = 'chip_8',  x = 0,  y = 0,  order = 0,  isVisible = false,  isRespondable = false,  isActive = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_light.png',  width = 130,  height = 130,  },
		{ name = 'chip_l_ins_8',  entityType = 'SpriteEntity',  parentName = 'chip_8',  x = 0,  y = 0,  order = 0,  isVisible = false,  isRespondable = false,  isActive = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/fishka_magnifier_light.png',  width = 130,  height = 130,  },
		{ name = 'disk_shine',  entityType = 'SpriteEntity',  parentName = 'disk',  x = 0,  y = 0,  order = 1,  isRespondable = false,  isActive = false,  editingLocked = true,  treeItemIsExpanded = true,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/disk_shine.png',  width = 734,  height = 734,  },
		{ name = 'hook_r',  entityType = 'SpriteEntity',  parentName = 'top_BG',  x = 201,  y = 52,  order = 4,  isRespondable = false,  editingLocked = true,  treeItemIsExpanded = true,  hotSpot = {x = 10, y = 50},  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/hook_r.png',  width = 234,  height = 108,  },
		{ name = 'hook_l',  entityType = 'SpriteEntity',  parentName = 'top_BG',  x = -202,  y = 53,  order = 4,  isRespondable = false,  editingLocked = true,  treeItemIsExpanded = false,  hotSpot = {x = 224, y = 50},  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/hook_l.png',  width = 234,  height = 108,  },
		--{ name = 'lock_area',  entityType = 'SpriteEntity',  parentName = 'top_BG',  x = 0.00012207,  y = 24.749,  order = 40,  scaleX = 110,  scaleY = 61,  color = {r = 1, g = 1, b = 1, a = 0.00392157},  editingLocked = true,  treeItemIsExpanded = true,  width = 10,  height = 10,  },
		{ name = 'area_click_hard',  entityType = 'SpriteEntity',  parentName = 'top_BG',  x = 397,  y = -120,  order = 50,  isVisible = true,  isRespondable = false,  isActive = false,  scaleX = 7,  scaleY = 20,  color = {r = 1, g = 1, b = 1, a = 0.00392157},  editingLocked = true,  treeItemIsExpanded = true,  width = 10,  height = 10,  },
		{ name = 'area_click_casual',  entityType = 'SpriteEntity',  parentName = 'top_BG',  x = -403,  y = -120,  order = 50,  isVisible = true,  isRespondable = true,  isActive = false,  scaleX = 7,  scaleY = 20,  color = {r = 1, g = 1, b = 1, a = 0.00392157},  editingLocked = true,  treeItemIsExpanded = false,  width = 10,  height = 10,  },
		{ name = 'area_click_reset',  entityType = 'SpriteEntity',  parentName = 'top_BG',  x = 464,  y = 237,  order = 30,  isVisible = true,  isRespondable = true,  isActive = false,  scaleX = 16,  scaleY = 10,  color = {r = 1, g = 1, b = 1, a = 0.00392157},  editingLocked = true,  treeItemIsExpanded = true,  width = 10,  height = 10,  },
		{ name = 'hard',  entityType = 'SpriteEntity',  parentName = 'top_BG',  x = 397,  y = -120,  order = 2,  isRespondable = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/hard.png',  width = 58,  height = 196,  },
		{ name = 'hard_act',  entityType = 'SpriteEntity',  parentName = 'hard',  x = 0,  y = 0,  order = 3,  isVisible = false,  isRespondable = false,  editingLocked = false,  treeItemIsExpanded = true,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/hard_act.png',  width = 58,  height = 196,  },
		{ name = 'hard_off',  entityType = 'SpriteEntity',  parentName = 'hard',  x = 0,  y = 0,  order = 5,  isVisible = false,  isRespondable = false,  editingLocked = false,  treeItemIsExpanded = true,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/hard_off.png',  width = 58,  height = 196,  },
		{ name = 'casual',  entityType = 'SpriteEntity',  parentName = 'top_BG',  x = -403,  y = -120,  order = 2,  isRespondable = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/casual.png',  width = 58,  height = 196,  },
		{ name = 'casual_act',  entityType = 'SpriteEntity',  parentName = 'casual',  x = 0,  y = 0,  order = 3,  isVisible = false,  isRespondable = false,  editingLocked = false,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/casual_act.png',  width = 58,  height = 196,  },
		{ name = 'casual_off',  entityType = 'SpriteEntity',  parentName = 'casual',  x = 0,  y = 0,  order = 5,  isVisible = false,  isRespondable = false,  editingLocked = false,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/casual_off.png',  width = 58,  height = 196,  },
		{ name = 'reset',  entityType = 'SpriteEntity',  parentName = 'top_BG',  x = 458,  y = 235,  order = 6,  isRespondable = false,  isActive = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/reset.png',  width = 95,  height = 44,  },
		{ name = 'reset_act',  entityType = 'SpriteEntity',  parentName = 'reset',  x = -2,  y = -1,  order = 1,  isVisible = false,  isRespondable = false,  isActive = false,  editingLocked = false,  treeItemIsExpanded = true,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/reset_act.png',  width = 95,  height = 44,  },
		{ name = 'reset_off',  entityType = 'SpriteEntity',  parentName = 'reset',  x = 2,  y = 0,  order = 2,  isVisible = false,  isRespondable = false,  isActive = false,  editingLocked = false,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/reset_off.png',  width = 87,  height = 41,  },
		{ name = 'layer_hook_over',  entityType = 'SpriteEntity',  parentName = 'top_BG',  x = 0,  y = 81,  order = 4,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/Layer_hook_over.png',  width = 936,  height = 78,  },
		{ name = 'jimmy_2',  entityType = 'SpriteEntity',  parentName = 'BG0',  x = 132,  y = 52,  order = 1,  isRespondable = false,  editingLocked = true,  treeItemIsExpanded = true,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/jimmy_02.png',  width = 224,  height = 180,  },
		{ name = 'area_find_jimmy',  entityType = 'SpriteEntity',  parentName = 'BG0',  x = 14,  y = 20,  order = 20,  isVisible = false,  isRespondable = false,  isActive = false,  scaleX = 45,  scaleY = 25,  color = {r = 1, g = 1, b = 1, a = 0.00392157},  editingLocked = true,  treeItemIsExpanded = true,  width = 10,  height = 10,  },
		{ name = 'jimmy_1',  entityType = 'SpriteEntity',  parentName = 'BG0',  x = -53,  y = 111,  order = 3,  isRespondable = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/jimmy_01.png',  width = 288,  height = 246,  },
		{ name = 'Layers_jimmy_over',  entityType = 'SpriteEntity',  parentName = 'BG0',  x = -1,  y = 194,  order = 5,  isRespondable = false,  isActive = false,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/Layers_jimmy_over.png',  width = 532,  height = 138,  },
		{ name = 'area_find_map_part_1',  entityType = 'SpriteEntity',  parentName = 'BG0',  x = 14,  y = 20,  order = 19,  isVisible = false,  isRespondable = false,  isActive = false,  scaleX = 30,  scaleY = 24,  color = {r = 1, g = 1, b = 1, a = 0.00392157},  editingLocked = true,  treeItemIsExpanded = true,  width = 10,  height = 10,  },
		{ name = 'map',  entityType = 'SpriteEntity',  parentName = 'BG0',  x = 24,  y = 71,  order = 0,  editingLocked = true,  treeItemIsExpanded = false,  texturePath = 'Data/Textures/Minigames/06_Wall/Layers/map.png',  width = 331,  height = 275,  },
		{ name = 'area_apply_button',  entityType = 'SpriteEntity',  x = 512,  y = 304.749,  order = 60,  scaleX = 110,  scaleY = 61,  color = {r = 1, g = 1, b = 1, a = 0.00392157},  editingLocked = true,  treeItemIsExpanded = true,  width = 10,  height = 10,  },
	}
	return objects
end
