miduo_client/Assets/ManagedResources/~Lua/Modules/Guild/Aid/GuildAid_MyAid.lua

186 lines
8.9 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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 = Language[11009]
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)
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 ()
MyGuildManager.SetMyAidInfoHadtakenum(data.type,data.num - data.hadtakenum)
this.ShowPanelData()
end)
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