local XUiGridResonanceSkill = require("XUi/XUiEquipResonanceSkill/XUiGridResonanceSkill") local CSInstantiate = CS.UnityEngine.Object.Instantiate local Vector3Zero = CS.UnityEngine.Vector3.zero local XUiEquipResonanceSkillV2P6 = XLuaUiManager.Register(XLuaUi, "UiEquipResonanceSkillV2P6") function XUiEquipResonanceSkillV2P6:OnAwake() self:InstantiateCharGrid() self:InstantiateEquipGrid() self.GridResonanceSkills = {} end function XUiEquipResonanceSkillV2P6:OnStart(parent, characterId, forceShowBindCharacter) self.Parent = parent self.CharacterId = characterId self.ForceShowBindCharacter = forceShowBindCharacter end function XUiEquipResonanceSkillV2P6:OnEnable() self.EquipId = self.Parent.EquipId self.TemplateId = XDataCenter.EquipManager.GetEquipTemplateId(self.EquipId) self.IsWeapon = XDataCenter.EquipManager.IsWeaponByTemplateId(self.TemplateId) self:UpdateView() end function XUiEquipResonanceSkillV2P6:InstantiateCharGrid() self.GridSkillChar1 = self.GridSkillChar:GetComponent("UiObject") self.GridSkillChar2 = CSInstantiate(self.GridSkillChar.gameObject, self.GridCharPos2):GetComponent("UiObject") self.GridSkillChar2.transform.localPosition = Vector3Zero self.GridSkillChar3 = CSInstantiate(self.GridSkillChar.gameObject, self.GridCharPos3):GetComponent("UiObject") self.GridSkillChar3.transform.localPosition = Vector3Zero local btnClick1 = self.GridSkillChar1:GetObject("BtnClick") local btnClick2 = self.GridSkillChar2:GetObject("BtnClick") local btnClick3 = self.GridSkillChar3:GetObject("BtnClick") local btnResonance1 = self.GridSkillChar1:GetObject("BtnResonance") local btnResonance2 = self.GridSkillChar2:GetObject("BtnResonance") local btnResonance3 = self.GridSkillChar3:GetObject("BtnResonance") self:RegisterClickEvent(btnClick1, function() self:OnBtnSkillItemClick(1) end) self:RegisterClickEvent(btnClick2, function() self:OnBtnSkillItemClick(2) end) self:RegisterClickEvent(btnClick3, function() self:OnBtnSkillItemClick(3) end) self:RegisterClickEvent(btnResonance1, function() self:OnBtnSkillItemClick(1) end) self:RegisterClickEvent(btnResonance2, function() self:OnBtnSkillItemClick(2) end) self:RegisterClickEvent(btnResonance3, function() self:OnBtnSkillItemClick(3) end) end function XUiEquipResonanceSkillV2P6:InstantiateEquipGrid() self.GridSkillEquip1 = self.GridSkillEquip self.GridSkillEquip2 = CSInstantiate(self.GridSkillEquip.gameObject, self.GridEquipPos2):GetComponent("UiObject") self.GridSkillEquip2.transform.localPosition = Vector3Zero local btnClick1 = self.GridSkillEquip1:GetObject("BtnClick") local btnClick2 = self.GridSkillEquip2:GetObject("BtnClick") local btnResonance1 = self.GridSkillEquip1:GetObject("BtnResonance") local btnResonance2 = self.GridSkillEquip2:GetObject("BtnResonance") self:RegisterClickEvent(btnClick1, function() self:OnBtnSkillItemClick(1) end) self:RegisterClickEvent(btnClick2, function() self:OnBtnSkillItemClick(2) end) self:RegisterClickEvent(btnResonance1, function() self:OnBtnSkillItemClick(1) end) self:RegisterClickEvent(btnResonance2, function() self:OnBtnSkillItemClick(2) end) end function XUiEquipResonanceSkillV2P6:OnBtnSkillItemClick(pos) -- 5星武器只能共鸣一次 local equip = XMVCA:GetAgency(ModuleId.XEquip):GetEquip(self.EquipId) local star = XMVCA:GetAgency(ModuleId.XEquip):GetEquipQuality(equip.TemplateId) if equip:IsWeapon() and equip:GetResonanceInfo(pos) and star == XEnumConst.EQUIP.FIVE_STAR then XUiManager.TipText("EquipResonance5StarWeaponRepeatTip") return end self.Parent:JumpToEquipResonanceSelect(pos) end function XUiEquipResonanceSkillV2P6:UpdateView() self.PanelCharSkill.gameObject:SetActiveEx(self.IsWeapon) self.PanelEquipSkill.gameObject:SetActiveEx(not self.IsWeapon) local count = self.IsWeapon and XEnumConst.EQUIP.WEAPON_RESONANCE_COUNT or XEnumConst.EQUIP.AWARENESS_RESONANCE_COUNT local gridName = self.IsWeapon and "GridSkillChar" or "GridSkillEquip" for pos = 1, count do local gridObj = self[gridName .. pos] local isEquip = XDataCenter.EquipManager.CheckEquipPosResonanced(self.EquipId, pos) ~= nil gridObj:GetObject("GridResonanceSkill").gameObject:SetActiveEx(isEquip) gridObj:GetObject("PanelAdd").gameObject:SetActiveEx(not isEquip) if isEquip then local skillGrid = self.GridResonanceSkills[pos] if not skillGrid then local item = gridObj:GetObject("GridResonanceSkill") skillGrid = XUiGridResonanceSkill.New(item, self.EquipId, pos, self.CharacterId, nil, nil, self.ForceShowBindCharacter, true) self.GridResonanceSkills[pos] = skillGrid end skillGrid:SetEquipIdAndPos(self.EquipId, pos) skillGrid:Refresh() local effect = skillGrid.Transform:Find("Effect") local showEffect = self.Parent.ResonanceSuccessPos == pos effect.gameObject:SetActiveEx(showEffect) if showEffect then self.Parent:ClearResonanceSuccessPos() end end end end return XUiEquipResonanceSkillV2P6