miduo_client/Assets/ManagedResources/~Lua/Modules/Popup/View/GeneralPopup_ResolveRecall.lua

144 lines
5.3 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 parent
--层级
local sortingOrder = 0
--传入不定参
local _args = {}
--传入选择英雄计算返回奖励数据列表
local dropList = {}
--item容器
local itemList = {}
--传入选择英雄
local selectHeroData
local heroConfig=ConfigManager.GetConfig(ConfigName.HeroConfig)
local itemConfig=ConfigManager.GetConfig(ConfigName.ItemConfig)
local itemNum = nil
local heroUseCount = nil
local heroUseItemId = nil
function this:InitComponent(gameObject)
this.spLoader = SpriteLoader.New()
this.titleText = Util.GetGameObject(gameObject, "TitleText"):GetComponent("Text")
this.bodyText = Util.GetGameObject(gameObject, "BodyText"):GetComponent("Text")
this.cancelBtn = Util.GetGameObject(gameObject, "CancelBtn")
this.confirmBtn = Util.GetGameObject(gameObject, "ConfirmBtn")
this.itemImage = Util.GetGameObject(gameObject, "ConfirmBtn/itemImage"):GetComponent("Image")
this.itemImageText = Util.GetGameObject(gameObject, "ConfirmBtn/itemText"):GetComponent("Text")
--滚动条根节点
this.root = Util.GetGameObject(gameObject, "Root/Viewport/Content")
end
function this:BindEvent()
Util.AddClick(this.cancelBtn,function()
parent:ClosePanel()
end)
Util.AddClick(this.confirmBtn,function()
local data
for k,v in pairs(selectHeroData) do
data=v.dynamicId
break
end
if itemNum < heroUseCount then
PopupTipPanel.ShowTip(string.format( Language[10298],ConfigManager.GetConfigData(ConfigName.ItemConfig,heroUseItemId).Name))
return
end
NetManager.HeroRetureEvent(data, function(msg)
local oldPowerNum = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
HeroManager.ResetHero(data)
PopupTipPanel.ShowTip(Language[11608])
parent:ClosePanel()
UIManager.OpenPanel(UIName.RewardItemPopup,msg.drop,1,function ()
-- ResolvePanel.SwitchView(2,true,true)
local mainFormationHeroList = FormationManager.GetAllMainFormationHeroId()
if mainFormationHeroList[data] then
local newPowerNum = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
if oldPowerNum ~= newPowerNum then
UIManager.OpenPanel(UIName.WarPowerChangeNotifyPanelV2,{oldValue = oldPowerNum,newValue = newPowerNum})
end
end
Game.GlobalEvent:DispatchEvent(GameEvent.Role.UpdateRoleInfoPanel)
end,0,nil,nil,1)
end)
end)
end
function this:AddListener()
end
function this:RemoveListener()
end
function this:OnShow(_parent,...)
LogBlue("sssssssssssssssssssssssssssss")
parent=_parent
sortingOrder =_parent.sortingOrder
local args = {...}
dropList = args[1]
selectHeroData=args[2]
this.root.transform:GetComponent("RectTransform"):DOAnchorPosX(0, 0)
this.titleText.text=Language[11609]
--返还比
local num=tonumber(ConfigManager.GetConfigData(ConfigName.SpecialConfig,34).Value)/100
this.bodyText.text = Language[11610]--string.format(Language[11610], num, "%")
local _data={}
for i=1,#dropList do
_data[i] = {dropList[i].id,dropList[i].num,nil,dropList[i].star}
end
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
table.sort(_data,function(a,b)
if itemConfig[a[1]].ItemType == itemConfig[b[1]].ItemType then
return itemConfig[a[1]].Quantity > itemConfig[b[1]].Quantity
else
return itemConfig[a[1]].ItemType > itemConfig[b[1]].ItemType
end
end)
FindFairyManager.ResetItemView(this.root,this.root.transform,itemList,8,1,sortingOrder,false,_data)
--英雄消耗道具数量
heroUseCount=0
heroUseItemId=0
local pId = nil
local curHeroData = nil
for k,v in pairs(selectHeroData) do
curHeroData=v
break
end
if curHeroData == nil then return end
local heroRankupConfig = ConfigManager.GetConfig(ConfigName.HeroRankupConfig)
if curHeroData.breakId == 0 then
pId=0
else
pId= heroRankupConfig[curHeroData.breakId].Phase[2]
end
local heroReturnConfig = ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.HeroReturn,"HeroId",curHeroData.id,"Star",pId)
if not heroReturnConfig then
LogRed("HeroId"..curHeroData.id.." Star"..pId.." curHeroData.breakId"..curHeroData.breakId)
heroUseCount= 50
heroUseItemId = 16
else
heroUseCount= heroReturnConfig.ReturnConsume[1][2]
heroUseItemId = heroReturnConfig.ReturnConsume[1][1]
end
itemNum = BagManager.GetItemCountById(heroUseItemId)
LogBlue("heroUseItemId "..heroUseItemId.." itemNum "..itemNum.." heroUseCount "..heroUseCount)
if itemNum >= heroUseCount then
this.itemImageText.text = string.format("<color=#FFF8EC>×%s</color>", heroUseCount)
else
this.itemImageText.text = string.format("<color=#C66366FF>×%s</color>", heroUseCount)
end
this.itemImage.sprite = this.spLoader:LoadSprite(GetResourcePath(itemConfig[heroUseItemId].ResourceID))
end
function this:OnClose()
end
function this:OnDestroy()
this.spLoader:Destroy()
end
return this