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

151 lines
5.5 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)
HeroPropManager.SetDirtyByType(data, Hero_Prop_Type.Base)
HeroPropManager.SetDirtyByType(data, Hero_Prop_Type.PassiveSkill)
end)
end)
end
function this:AddListener()
end
function this:RemoveListener()
end
function this:OnShow(_parent,...)
parent=_parent
sortingOrder =_parent.sortingOrder
local args = {...}
dropList = args[1]
selectHeroData=args[2]
local curhero
for k,v in pairs(selectHeroData) do
curhero = v
end
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 = string.format("归元神将会返还所有的升级材料神将重置为1级\n 此操作不可逆,是否确认归元?")
local _data={}
for i=1,#dropList do
_data[i] = {dropList[i].id,dropList[i].num,nil,dropList[i].star,curhero.dynamicId}
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)
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 specailConfig = ConfigManager.GetConfigData(ConfigName.SpecialConfig, 173)
if not specailConfig then
-- LogRed("HeroId"..curHeroData.id.." Star"..pId.." curHeroData.breakId"..curHeroData.breakId)
heroUseCount= 50
heroUseItemId = 16
else
local str=specailConfig.Value
local t= string.split(str, "#")
heroUseCount= tonumber(t[2])
heroUseItemId = tonumber(t[1])
end
itemNum = BagManager.GetItemCountById(heroUseItemId)
-- LogBlue("heroUseItemId "..heroUseItemId.." itemNum "..itemNum.." heroUseCount "..heroUseCount)
if itemNum >= heroUseCount then
this.itemImageText.text = string.format("<color=#191717>×%s</color>", heroUseCount)
else
this.itemImageText.text = string.format("<color=#C66366>×%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