local UIHorseSoulBase = UIViewClass() function UIHorseSoulBase:OnOpened(context) self:RegistSystemEvent(EventID.UI_HorseSoul_Upgrade, self.RefreshSlots) UIUtils.SetLabelText(self.UICommonPopUp.txt_Title, Const_IDS.IDS_HorseSoul_Button7) self.soulItemInfo = MDL.HorseSoul.GetSoulInfoById(context.soulId) if self.soulItemInfo.equipHorseId then local index = 0 for i, v in ipairs(MDL.HorseSoul.GetSoulSlotInfoByHorseId(self.soulItemInfo.equipHorseId)) do local soulId = v.soulPearl self.loop_SoulItem:AddData(CTL.HorseSoul.JudgeSoulId(soulId) and soulId or nil, 0) if string.isNilOrEmpty(MDL.HorseSoul.SelectSoulBaseSoulPearl) then if context.soulId == soulId then index = i - 1 self.selectData = soulId end else if MDL.HorseSoul.SelectSoulBaseSoulPearl == soulId then index = i - 1 self.selectData = soulId end end end self.selectIndex = index self.loop_SoulItem:SelectIndex(index) else self.loop_SoulItem:AddData(self.soulItemInfo.id, 0) self.selectIndex = 0 self.selectData = self.soulItemInfo.id self.loop_SoulItem:SelectIndex(0) end self.toggles:SelectIndex(MDL.HorseSoul.SelectSoulBaseType or 0) end function UIHorseSoulBase:RefreshSlots() self.loop_SoulItem:RefreshCells() end function UIHorseSoulBase:OnButtonClicked(comp) if comp == self.UICommonPopUp.btn_Close then MDL.HorseSoul.SelectSoulBaseType = 0 MDL.HorseSoul.SelectSoulBaseSoulPearl = "" self:CloseView() end end function UIHorseSoulBase:OnBackButtonPressed() self:OnButtonClicked(self.UICommonPopUp.btn_Close) end function UIHorseSoulBase:OnValueChanged(comp, index) if comp == self.toggles then if not self.selectToggleIndex or self.selectToggleIndex ~= index then self.selectToggleIndex = index self:OpenSunView() self.view:RefreshSoulItem(self.selectData) end end end function UIHorseSoulBase:OnCellSelect(scrollRect, index, cellTable, data) if scrollRect == self.loop_SoulItem then if data then if self.selectIndex ~= index then self.selectIndex = index self.selectData = data self.view:RefreshSoulItem(data) MDL.HorseSoul.SelectSoulBaseSoulPearl = self.selectData end else CTL.Tips.AddTipsMsg(Const_IDS.IDS_HorseSoul_LevelHint11) self.loop_SoulItem:SelectIndex(self.selectIndex) end end end function UIHorseSoulBase:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.loop_SoulItem then if data then local soulInfo = MDL.HorseSoul.GetSoulInfoById(data) local itemId = soulInfo.cfgId cellTable.state_Item:SetState(0) UTL.Color.SetQualityImageByType(cellTable.img_quality, DataSheetManager.ItemData:GetDataByID(itemId).Color, UTL.Color.QualityType.Circle) UTL.Item.OnlyItemIconWithoutBg(cellTable.img_Soul, itemId) cellTable.txt_Level.text = string.FormatByIdsKey("IDS_HorseSoul_Button3", soulInfo.levelInfo.level) UIUtils.SetActive(cellTable.group_Star.gameObject, soulInfo.itemData.Color >= LuaConst.QualityColor.Gold) if soulInfo.itemData.Color >= LuaConst.QualityColor.Gold then CTL.HorseSoul.SetStarLevel(cellTable.group_Star, soulInfo.star) end else cellTable.state_Item:SetState(1) UIUtils.SetActive(cellTable.group_Star.gameObject, false) end CTL.HorseSoul.SetPositionImage(cellTable.img_Pos, index + 1) end end function UIHorseSoulBase:OpenSunView() self.view = nil self.subView:CloseAll() MDL.HorseSoul.SelectSoulBaseType = self.selectToggleIndex if self.selectToggleIndex == 0 then self.view = self.subView:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UIHorseSoulLevelUp)) elseif self.selectToggleIndex == 1 then self.view = self.subView:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UIHorseSoulStar)) end end return UIHorseSoulBase