----- 献祭弹窗 ----- local this = {} --传入父脚本模块 local parent --传入特效层级 local sortingOrder=0 --item容器 local itemList = {} --传入选择英雄 local itemConfig=ConfigManager.GetConfig(ConfigName.ItemConfig) local selectChip = {} local isSendMassage = false local myguildHelpInfo local fun = nil local upSelectChipId = 0 local isHaveLock = false function this:InitComponent(gameObject) this.spLoader = SpriteLoader.New() this.aidBtn=Util.GetGameObject(gameObject,"aidBtn") this.btnSelect=Util.GetGameObject(gameObject,"toggleGrid/btnSelect") this.SelectImage=Util.GetGameObject(this.btnSelect,"SelectImage") this.BodyText=Util.GetGameObject(gameObject,"Body/Text"):GetComponent("Text") for i = 1, 4 do itemList[i] = Util.GetGameObject(gameObject, "Root/frame (".. i ..")") end end function this:BindEvent() Util.AddClick(this.btnSelect,function() isSendMassage = not isSendMassage this.SelectImage:SetActive(isSendMassage) end) Util.AddClick(this.aidBtn,function() local aidChips = {} for i, v in pairs(selectChip) do if not v.lock then --LogError("v "..v.dataId) table.insert(aidChips,v.dataId) end end if aidChips and #aidChips > 0 then local itemId1 = nil local itemId2 = nil if not itemId1 and aidChips[1] then itemId1 = aidChips[1] end if not itemId2 and aidChips[2] then itemId2 = aidChips[2] end if not MyGuildManager.ShowGuildAidCdTime(false) then MyGuildManager.ShowGuildAidCdTime() return end --LogGreen("isSendMassage "..tostring(isSendMassage)) NetManager.GuildSendHelpRequest(aidChips,isSendMassage,function(msg) --这块后端有问题 不管isSendMassage真与否 能发时msg.sendMessage都为ture if msg.sendMessage and isSendMassage then ChatManager.RequestSendGuildAid(itemId1,itemId2,function() PopupTipPanel.ShowTip(Language[10985]) --MyGuildManager.SetGuildHelpCDTimeData() end) else --MyGuildManager.ShowGuildAidCdTime() end if fun then fun() fun = nil end end) parent:ClosePanel() else PopupTipPanel.ShowTip(Language[11551]) end end) end function this:AddListener() end function this:RemoveListener() end function this:OnShow(_parent,...) isSendMassage = false this.SelectImage:SetActive(isSendMassage) local args = {...} parent=_parent fun=args[1] sortingOrder = _parent.sortingOrder local items = ConfigManager.GetConfigData(ConfigName.GuildHelpConfig,1).RecourseReward myguildHelpInfo = MyGuildManager.MyFeteInfo.guildHelpInfo selectChip = {} isHaveLock = false for i = 1, #items do if myguildHelpInfo and #myguildHelpInfo > 0 then for j = 1, #myguildHelpInfo do if myguildHelpInfo[j].type == items[i][2] then selectChip[items[i][2]] = {dataId = items[i][2],lock = true} isHaveLock = true end end end end this.ShowPanelData(items) this.BodyText.text = Language[11552] end function this.ShowPanelData(items) for i = 1, #items do itemList[i]:GetComponent("Image").sprite = this.spLoader:LoadSprite(GetHeroQuantityImageByquality(itemConfig[items[i][2]].Quantity)) Util.GetGameObject(itemList[i], "Icon"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetResourcePath(itemConfig[items[i][2]].ResourceID)) Util.GetGameObject(itemList[i], "chipImage"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetHeroChipQuantityImageByquality(itemConfig[items[i][2]].Quantity)) Util.GetGameObject(itemList[i], "lock"):SetActive(false) Util.GetGameObject(itemList[i], "proIcon"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetProStrImageByProNum(itemConfig[items[i][2]].PropertyName)) local choosed = Util.GetGameObject(itemList[i], "selectImage") choosed:SetActive(false) if selectChip[items[i][2]] then choosed:SetActive(true) if selectChip[items[i][2]].lock then Util.GetGameObject(itemList[i], "lock"):SetActive(true) else Util.GetGameObject(itemList[i], "lock"):SetActive(false) end end Util.AddOnceClick(Util.GetGameObject(itemList[i], "Icon"), function() if selectChip[items[i][2]] then if not selectChip[items[i][2]].lock then selectChip[items[i][2]]=nil this.ShowPanelData(items) return else return end else if LengthOfTable(selectChip) >= 2 then for key, val in pairs(selectChip) do if not val.lock and (key ~= upSelectChipId or isHaveLock) then selectChip[key]=nil selectChip[items[i][2]] = {dataId = items[i][2],lock = false} upSelectChipId = items[i][2] this.ShowPanelData(items) return end end else selectChip[items[i][2]] = {dataId = items[i][2],lock = false} upSelectChipId = items[i][2] this.ShowPanelData(items) end end end) end end function this:OnClose() end function this:OnDestroy() this.spLoader:Destroy() end return this