local UIFairAwakenSkillPlan = UIViewClass() local EventSystem = require('Event/EventSystem') local hero_awaken_info = require 'Proto/hero_awaken_info_pb' function UIFairAwakenSkillPlan:OnOpened(context) self:RegistSystemEvent(EventID.UI_HeroAwaken_FairAwakenSkillPlan_ChangeName, self.RefreshPlan) self:RegistSystemEvent(EventID.UI_HeroAwaken_FairAwakenSkillPlan_SetUse, self.RefreshPlan) UIUtils.SetLabelText(self.UITemplateTitlePanel.lab_Title, Const_IDS.IDS_HeroAwaken_FunctionName3) self.heroList = MDL.HeroAwaken.GetAwakenHeroInfoList() self.heroId = 0 self.planId = 0 self.planIndex = 1 self:InitLeftHeroScroll() self:RefreshPlan() local mainCanvas = self.gameObject:GetComponent(typeof(UnityEngine.Canvas)) UIUtils.SetCanvasSortingOrderByMainCanvas(mainCanvas, self.group_Main, 201) end function UIFairAwakenSkillPlan:InitLeftHeroScroll() if self.loopScroll_Hero.Count > 0 then self.loopScroll_Hero:ClearCells() end for i, v in ipairs(self.heroList) do self.loopScroll_Hero:AddData(v, 0) end self.loopScroll_Hero:SelectIndex(0) end function UIFairAwakenSkillPlan:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.loopScroll_Hero then UTL.Item.SetHeroIconByHeroId(cellTable.img_HeroHead, data.heroId, MDL.HeroAwaken.GetIsHeroAwaken(data.heroId)) local heroData = DataSheetManager.HeroNum:GetDataByID(data.heroId) UIUtils.SetLabelText(cellTable.txt_HeroName, Const_IDS[heroData.NameIDS]) UIUtils.SetActive(cellTable.img_Free, false) UIUtils.SetActive(cellTable.img_TestBg, false) elseif scrollRect == self.loop_ChoosePlan then if not string.isNilOrEmpty(data.name) then UIUtils.SetLabel(cellTable.txt_Choose01, data.name) else UIUtils.SetLabelText(cellTable.txt_Choose01, Const_IDS["IDS_HeroAwaken_SkillPlan" .. (index + 1)]) end end end function UIFairAwakenSkillPlan:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.loopScroll_Hero then self.heroId = data.heroId if self.currGroupSelect then UIUtils.SetActive(self.currGroupSelect, false) end self.currGroupSelect = cellTable.group_select UIUtils.SetActive(cellTable.group_select, true) self:SelectPlan(MDL.HeroAwaken.GetUsedPlanIndex(self.heroId)) elseif scrollRect == self.loop_ChoosePlan then self:SelectPlan(index + 1) self.state_Plan:SetState(0) self.openChoosePlan = false CTL.Sound.PlayGameSound("UI_fold") end end function UIFairAwakenSkillPlan:SelectPlan(index) self.planIndex = index self:RefreshPlan() if self.skillTreeView then EventSystem.Dispatch(EventID.UI_HeroAwaken_FairAwakenSkillPlan_SelectPlan, self.heroId, self.planId) else self.skillTreeView = self.subView:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UIFairAwakenSkillTreePanel), {weaponId = self.heroId, planId = self.planId}, Const_UI_Lua.UIEnum.UIDivineWeaponAwakenSkillTreePanel) end end function UIFairAwakenSkillPlan:RefreshPlan() self.plan = MDL.HeroAwaken.GetFairAwakenSkillPlanByIndex(self.heroId, self.planIndex) self.planId = self.plan.planId local heroAwakenInfo = MDL.HeroAwaken.GetHeroAwakenInfo(self.heroId) UIUtils.SetActive(self.btn_Use, heroAwakenInfo.curUsePlanId ~= self.plan.planId) self.state_Plan:SetState(0) self.openChoosePlan = false if not string.isNilOrEmpty(self.plan.name) then UIUtils.SetLabel(self.txt_ChoosePlan, self.plan.name) else UIUtils.SetLabelText(self.txt_ChoosePlan, Const_IDS["IDS_HeroAwaken_SkillPlan" .. self.planIndex]) end end function UIFairAwakenSkillPlan:OnButtonClicked(comp) if comp == self.UITemplateTitlePanel.btn_close then self:CloseView() elseif comp == self.btn_Use then local plan = MDL.HeroAwaken.GetFairAwakenSkillPlan(self.heroId, self.planId) if plan.curSkillPointNums > 0 then UTL.MessageBox.ShowOKCancelBox(Const_IDS.IDS_Item_Confirm, Const_IDS.IDS_HeroAwaken_OverSkillPoint, function() MDL.HeroAwaken.FairAwakenSkillPlanReq(self.heroId, hero_awaken_info.SetUse, self.planId) end) else MDL.HeroAwaken.FairAwakenSkillPlanReq(self.heroId, hero_awaken_info.SetUse, self.planId) end elseif comp == self.btn_ChoosePlan then if not self.openChoosePlan then self.state_Plan:SetState(1) self.loop_ChoosePlan:ReloadAll(MDL.HeroAwaken.GetFairAwakenSkillPlanList(self.heroId)) self.openChoosePlan = true CTL.Sound.PlayGameSound("UI_expand") else self.state_Plan:SetState(0) self.openChoosePlan = false CTL.Sound.PlayGameSound("UI_fold") end elseif comp == self.btn_ChangeName then UIManager.OpenView(Const_UI_Lua.UIEnum.UISkillPlanRenamePanel, { heroId = self.heroId, planId = self.planId }, Const_UI_Lua.UIEnum.UIRenamePanel) elseif comp == self.UITemplateTitlePanel.btn_Info then UIManager.OpenView(Const_UI_Lua.UIEnum.UICommonNoteView, {id = LuaConst.NoteID.WeaponAwakenSkillPlan}) end end return UIFairAwakenSkillPlan