local this = {} local guildHelpConfig = ConfigManager.GetConfig(ConfigName.GuildHelpConfig) local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig) local allMyAidData = {} --初始化组件(用于子类重写) function this:InitComponent(gameObject) this.aidNumText = Util.GetGameObject(gameObject, "GuildAid_MyAid/aidNumText"):GetComponent("Text") this.refreshText = Util.GetGameObject(gameObject, "GuildAid_MyAid/refreshText"):GetComponent("Text") this.aidBtn = Util.GetGameObject(gameObject, "GuildAid_MyAid/aidBtn") this.boxBtn = Util.GetGameObject(gameObject, "GuildAid_MyAid/box") this.boxRedPoint = Util.GetGameObject(gameObject, "GuildAid_MyAid/box/redPoint") this.ItemPre = Util.GetGameObject(gameObject, "GuildAid_MyAid/ItemPre") local v2 = Util.GetGameObject(gameObject, "GuildAid_MyAid/rect"):GetComponent("RectTransform").rect this.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, Util.GetGameObject(gameObject, "GuildAid_MyAid/rect").transform, this.ItemPre, nil, Vector2.New(-v2.x*2, -v2.y*2), 1, 1, Vector2.New(50,-3)) this.ScrollView.moveTween.MomentumAmount = 1 this.ScrollView.moveTween.Strength = 1 end --绑定事件(用于子类重写) function this:BindEvent() BindRedPointObject(RedPointType.Guild_AidBox, this.boxRedPoint) Util.AddClick(this.aidBtn, function() --您还未进行求援 local isSend = 0 for i = 1, #allMyAidData do if not allMyAidData[i].type then isSend = isSend + 1 end end if isSend == #allMyAidData then PopupTipPanel.ShowTip(Language[11007]) return end local isFinish = 0 for i = 1, #allMyAidData do if allMyAidData[i].num == allMyAidData[i].hadtakenum and allMyAidData[i].hadtakenum == guildHelpConfig[1].RecourseTime[2] then isFinish = isFinish + 1 end end if isFinish >= 2 then PopupTipPanel.ShowTip(Language[12203]) return end local itemId1 = nil local itemId2 = nil if MyGuildManager.MyFeteInfo.guildHelpInfo and #MyGuildManager.MyFeteInfo.guildHelpInfo > 0 then for i = 1, #MyGuildManager.MyFeteInfo.guildHelpInfo do if not itemId1 then itemId1 = MyGuildManager.MyFeteInfo.guildHelpInfo[i].type else itemId2 = MyGuildManager.MyFeteInfo.guildHelpInfo[i].type end end end if not MyGuildManager.ShowGuildAidCdTime(false) then MyGuildManager.ShowGuildAidCdTime() return end NetManager.GuildSendHelpMessageRequest(function (msg) if msg.sendMessage then ChatManager.RequestSendGuildAid(itemId1,itemId2,function() PopupTipPanel.ShowTip(Language[11008]) MyGuildManager.SetGuildHelpCDTimeData() end) else MyGuildManager.ShowGuildAidCdTime() end end) end) Util.AddClick(this.boxBtn, function() local isSengGetBoxReward = true for i = 1, #allMyAidData do if allMyAidData[i].maxNum ~= allMyAidData[i].hadtakenum then isSengGetBoxReward = false end end if not MyGuildManager.MyFeteInfo.isTakeGuildHelpReward and isSengGetBoxReward then NetManager.GuildTakeHelpBoxRequest(function (msg) MyGuildManager.SetMyAidBoxStateInfo(true) UIManager.OpenPanel(UIName.RewardItemPopup,msg.drop,1,function () end) end) else UIManager.OpenPanel(UIName.GeneralPopup,GENERAL_POPUP_TYPE.GuildAidFindBoxReward,function () end) end end) end --添加事件监听(用于子类重写) function this:AddListener() Game.GlobalEvent:AddEvent(GameEvent.Guild.RefreshGuildAid, this.ShowPanelData) end --移除事件监听(用于子类重写) function this:RemoveListener() Game.GlobalEvent:RemoveEvent(GameEvent.Guild.RefreshGuildAid, this.ShowPanelData) end --界面打开或者重新打开后,界面刷新时调用(用于子类重写) function this:OnShow() --this this.refreshText.text = "每日凌晨0点重置求援次数" this.ShowPanelData() end function this.ShowPanelData() allMyAidData = {} for i = 1, guildHelpConfig[1].RecourseTime[1] do local GuildHelpInfo = {} GuildHelpInfo.type = nil GuildHelpInfo.num = nil GuildHelpInfo.hadtakenum = nil GuildHelpInfo.maxNum = guildHelpConfig[1].RecourseTime[2] table.insert(allMyAidData,GuildHelpInfo) end local curAidNum = 0 if MyGuildManager.MyFeteInfo.guildHelpInfo and #MyGuildManager.MyFeteInfo.guildHelpInfo > 0 then for i = 1, #MyGuildManager.MyFeteInfo.guildHelpInfo do local curguildHelpInfo = MyGuildManager.MyFeteInfo.guildHelpInfo[i] --LogError("MyGuildManager.MyFeteInfo.guildHelpInfo "..i.." "..curguildHelpInfo.type.." "..curguildHelpInfo.num) if allMyAidData[i] then allMyAidData[i].type = curguildHelpInfo.type allMyAidData[i].num = curguildHelpInfo.num allMyAidData[i].hadtakenum = curguildHelpInfo.hadtakenum --LogGreen("allMyAidData[i].num "..allMyAidData[i].num.." "..allMyAidData[i].hadtakenum.." "..guildHelpConfig[1].RecourseTime[2]) if allMyAidData[i].num == allMyAidData[i].hadtakenum and allMyAidData[i].hadtakenum == guildHelpConfig[1].RecourseTime[2] then curAidNum = curAidNum + 1 end end end end this.aidNumText.text = Language[11010]..curAidNum.."/"..guildHelpConfig[1].RecourseTime[1]..")" this.ScrollView:SetData(allMyAidData, function (index, go) this.SingleHelpDataShow(go, allMyAidData[index]) end,true,true) end function this.SingleHelpDataShow(go,data) local isHave = data.type ~= nil Util.GetGameObject(go, "heroPro/frame"):SetActive(isHave) Util.GetGameObject(go, "noAid"):SetActive(not isHave) Util.GetGameObject(go, "okAid"):SetActive(isHave) Util.GetGameObject(go, "noAid/tipText"):GetComponent("Text").text = Language[11011] if isHave then --LogError("data.type "..data.type.." " ..data.num .." ".. data.hadtakenum.." "..guildHelpConfig[1].RecourseTime[2]) Util.GetGameObject(go, "heroPro/frame"):GetComponent("Image").sprite = Util.LoadSprite(GetHeroQuantityImageByquality(itemConfig[data.type].Quantity)) Util.GetGameObject(go, "heroPro/frame/Icon"):GetComponent("Image").sprite = Util.LoadSprite(GetResourcePath(itemConfig[data.type].ResourceID)) Util.GetGameObject(go, "heroPro/frame/chipImage"):GetComponent("Image").sprite = Util.LoadSprite(GetHeroChipQuantityImageByquality(itemConfig[data.type].Quantity)) Util.GetGameObject(go, "heroPro/frame/proIcon"):GetComponent("Image").sprite = Util.LoadSprite(GetProStrImageByProNum(itemConfig[data.type].PropertyName)) Util.GetGameObject(go, "okAid/chipInfo"):GetComponent("Text").text = itemConfig[data.type].Name Util.GetGameObject(go, "okAid/getAidText/getAidNumText"):GetComponent("Text").text = data.num.."/"..guildHelpConfig[1].RecourseTime[2] Util.GetGameObject(go, "okAid/getFinishText"):SetActive(data.num == data.hadtakenum and data.hadtakenum == guildHelpConfig[1].RecourseTime[2]) Util.GetGameObject(go, "okAid/progressbar/progress1"):GetComponent("Image").fillAmount = data.num/guildHelpConfig[1].RecourseTime[2] Util.GetGameObject(go, "okAid/progressbar/progress2"):GetComponent("Image").fillAmount = data.hadtakenum/guildHelpConfig[1].RecourseTime[2] local getRewardBtn = Util.GetGameObject(go, "okAid/getRewardBtn") getRewardBtn:SetActive(not (data.num == data.hadtakenum and data.hadtakenum == guildHelpConfig[1].RecourseTime[2])) Util.SetGray(getRewardBtn, data.num == data.hadtakenum) getRewardBtn:GetComponent("Button").enabled = not (data.num == data.hadtakenum) Util.AddOnceClick(getRewardBtn, function() NetManager.GuildTakeHelpRewardRequest(data.type,function(msg) UIManager.OpenPanel(UIName.RewardItemPopup,msg.drop,1,function () end) MyGuildManager.SetMyAidInfoHadtakenum(data.type,data.num - data.hadtakenum) this.ShowPanelData() end) end) else Util.AddOnceClick(Util.GetGameObject(go, "noAid/clickBtn"), function() UIManager.OpenPanel(UIName.GeneralPopup,GENERAL_POPUP_TYPE.GuildAid,function () this.ShowPanelData() end) end) end end --界面关闭时调用(用于子类重写) function this:OnClose() end --界面销毁时调用(用于子类重写) function this:OnDestroy() ClearRedPointObject(RedPointType.Guild_AidBox) end return this