local XUiEquipResonanceSelectCharacter = XLuaUiManager.Register(XLuaUi, "UiEquipResonanceSelectCharacter") function XUiEquipResonanceSelectCharacter:OnAwake() self:InitAutoScript() self.GridCharacter.gameObject:SetActive(false) end function XUiEquipResonanceSelectCharacter:OnStart(equipId, confirmCb) self.EquipId = equipId self.ConfirmCb = confirmCb self:InitCharacterList() end function XUiEquipResonanceSelectCharacter:OnEnable(...) self.SelectCharacterId = nil self:RefreshList() end function XUiEquipResonanceSelectCharacter:InitCharacterList() self.CharacterGridDic = {} local clickCallback = function(character) self.SelectCharacterId = character.Id self:RefreshList(self.SelectCharacterId) end local noCharacter = true local canResonanceCharacterList = XDataCenter.EquipManager.GetCanResonanceCharacterList(self.EquipId) for _, character in pairs(canResonanceCharacterList) do if not self.CharacterGridDic[character.Id] then local item = CS.UnityEngine.Object.Instantiate(self.GridCharacter) local grid = XUiGridCharacter.New(item, self, character, clickCallback) grid.GameObject:SetActive(true) grid.Transform:SetParent(self.PanelCharacterContent, false) self.CharacterGridDic[character.Id] = grid noCharacter = false end end self.PanelNoCharacter.gameObject:SetActive(noCharacter) end function XUiEquipResonanceSelectCharacter:RefreshList(selectCharacterId) self.BtnConfirm:SetDisable(not selectCharacterId, true) for characterId, characterGridDic in pairs(self.CharacterGridDic) do characterGridDic:UpdateGrid(nil, selectCharacterId) end end -- auto -- Automatic generation of code, forbid to edit function XUiEquipResonanceSelectCharacter:InitAutoScript() self:AutoAddListener() end function XUiEquipResonanceSelectCharacter:AutoAddListener() self:RegisterClickEvent(self.BtnConfirm, self.OnBtnConfirmClick) self:RegisterClickEvent(self.BtnClose, self.OnBtnCloseClick) self:RegisterClickEvent(self.Btncancel, self.OnBtnCloseClick) end -- auto function XUiEquipResonanceSelectCharacter:OnBtnCloseClick() self:Close() end function XUiEquipResonanceSelectCharacter:OnBtnConfirmClick() if self.ConfirmCb and self.SelectCharacterId then self.ConfirmCb(self.SelectCharacterId) self:Close() end end