-- отлавливаем клики по сцене
--[[local original_post_click_event = post_click_event
function post_click_event()
    original_post_click_event()
    
    local profile = game.g_ProfileManager.Instance().GetCurrentProfile()
    __assert(profile)
    local stats = profile.GetAchievementsStats()
    
    if quest.GetModifyFlag() then
        -- был правильный клик
        stats.RightClicksInSuccess = stats.RightClicksInSuccess + 1
        if stats.RightClicksInSuccess >= 10 then
            -- 10 правильных кликов подряд - ачивмент
            achievements.GetAchievement("complete_minigame")
        end
    else
    end
end]]

local original_quest_OnWrongClick = quest.OnWrongClick
function quest.OnWrongClick(_pos)
    original_quest_OnWrongClick(_pos)
    
    local profile = game.g_ProfileManager.Instance().GetCurrentProfile()
    __assert(profile)
    local stats = profile.GetAchievementsStats()
    
    --stats.RightClicksInSuccess = 0
    
    if hidden_object.GetActiveScene() then
        -- неправильный клик внутри ХОГа
        stats.HogObjectsFoundInSuccess = 0
    end
end

-- отлавливаем клик по ХОГ объекту
local original_hidden_object_click = hidden_object.click
function hidden_object.click(_take_object)
    local object_taken, cell_cleared = original_hidden_object_click(_take_object)
    if cell_cleared then
        local profile = game.g_ProfileManager.Instance().GetCurrentProfile()
        __assert(profile)
        local stats = profile.GetAchievementsStats()
        stats.HogObjectsFoundInSuccess = stats.HogObjectsFoundInSuccess + 1
        if stats.HogObjectsFoundInSuccess >= 10 then
            achievements.GetAchievement("hog_10_right_clicks")
        end
    end
    return object_taken, cell_cleared
end

function hidden_object.OnStart()
end

function hidden_object.OnUpdate()
	local profile = game.g_ProfileManager.Instance().GetCurrentProfile()
    __assert(profile)
    local stats = profile.GetAchievementsStats()
    
    
    stats.HogTime = stats.HogTime + quest.level_timer.Get().GetFrameDelta()
end

function hidden_object.OnEnd()
	local profile = game.g_ProfileManager.Instance().GetCurrentProfile()
    __assert(profile)
    local stats = profile.GetAchievementsStats()
    
    -- ХОГ меньше чем за минуту
    if stats.HogTime < 60000 then
        achievements.GetAchievement("hog_per_minute")
    end
    stats.HogTime = 0
    
    stats.HogObjectsFoundInSuccess = -1
    -- -1 т.к. при текущей реализации хога OnEnd вызывается до выхода из 
    -- hidden_object.click; на выходе из click к HogObjectsFoundInSuccess добавится 1 
    -- и HogObjectsFoundInSuccess станет равен нулю
end
