local HeroTrialUI = class("HeroTrialUI", BaseUI)

function HeroTrialUI:isFullScreen()
    return false
end

function HeroTrialUI:getPrefabPath()
    return "assets/prefabs/ui/main_city/hero_trial_ui.prefab"
end

function HeroTrialUI:ctor(params)
    self.heroId = params.heroId
    self.chapterId = params.chapterId
end

function HeroTrialUI:onClose()
    if self.trialAtkInfo then
        DataManager.ChapterData:setChapterId(self.chapterId)
        ModuleManager.ChapterManager:startFight(true)
        DataManager.ChapterData:MarkTrailHero()
    end
end

function HeroTrialUI:onLoadRootComplete()
    local uiMap = self.root:genAllChildren()
    uiMap["hero_trial_ui.bg.desc_text"]:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_TRIAL_DESC_1))
    uiMap["hero_trial_ui.bg.func_btn.text"]:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_TRIAL_DESC_2))
    uiMap["hero_trial_ui.bg.title_bg.title"]:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_TRIAL_DESC_3))
    uiMap["hero_trial_ui.bg.func_btn"]:addClickListener(function()
        self:buildTrailParams()
        self:closeUI()
    end)
    uiMap["hero_trial_ui.close_btn"]:addClickListener(function()
        self:closeUI()
    end)
end

function HeroTrialUI:buildTrailParams()
    local heroEntity = DataManager.HeroData:getHeroById(self.heroId)
    local trailHeroEntity = DataManager.HeroData:getEntity({id = self.heroId, level = heroEntity:getBeginLv()})
    self.trialAtkInfo = {}
    local formation = DataManager.FormationData:getStageFormation()
    for elementType, heroId in pairs(formation) do
        local heroEntity = DataManager.HeroData:getHeroById(heroId)
        if heroEntity then
            if heroEntity:getMatchType() == trailHeroEntity:getMatchType() then
                self.trialAtkInfo[elementType] = trailHeroEntity
            else
                self.trialAtkInfo[elementType] = heroEntity
            end
        end
    end
    DataManager.ChapterData:cacheTrailAtkInfo(self.trialAtkInfo)
end

return HeroTrialUI