miduo_client/Assets/ManagedResources/~Lua/Modules/Popup/View/GeneralPopup_QinglongSerect...

148 lines
4.8 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 itemConfig=ConfigManager.GetConfig(ConfigName.ItemConfig)
local count = 0
local id = 0
local a = 0
local b = 0
local c = 0
local d = 0
local lv = 0
local itemlist = {}
local templv = 0
function this:InitComponent(gameObject)
this.bodyText=Util.GetGameObject(gameObject,"BodyText"):GetComponent("Text")
this.rewardGroup=Util.GetGameObject(gameObject,"scroll/grid")
this.confirmBtn=Util.GetGameObject(gameObject,"ConfirmBtn")
this.addBtn=Util.GetGameObject(gameObject,"GameObject/add")
this.reduceBtn=Util.GetGameObject(gameObject,"GameObject/reduce")
this.slider=Util.GetGameObject(gameObject,"GameObject/Slider"):GetComponent("Slider")
this.tip=Util.GetGameObject(gameObject,"GameObject/tip"):GetComponent("Text")
this.num=Util.GetGameObject(gameObject,"GameObject/total/num"):GetComponent("Text")
this.icon=Util.GetGameObject(gameObject,"GameObject/total/icon"):GetComponent("Image")
this.cancelBtn = Util.GetGameObject(gameObject,"BG/BackBtn")
end
function this:BindEvent()
Util.AddClick(this.cancelBtn,function()
parent:ClosePanel()
end)
Util.AddClick(this.confirmBtn,function()
if templv == 0 or count == 0 then
PopupTipPanel.ShowTip("购买等级不能为0")
return
end
NetManager.RequestBuyTreasureLevel(templv, function(msg)
-- Timer.New(function()
PopupTipPanel.ShowTip(Language[12368])
parent:ClosePanel()
Game.GlobalEvent:DispatchEvent(GameEvent.TreasureOfHeaven.BuyQinglongSerectLevelSuccess)
-- end,1):Start()
end)
end)
Util.AddClick(this.addBtn,function()
if (lv + count) < 50 then
this:SetCount(count + 1)
else
PopupTipPanel.ShowTip("已到达最大购买等级!")
end
end)
Util.AddClick(this.reduceBtn,function()
if count > 0 then
this:SetCount(count - 1)
else
PopupTipPanel.ShowTip("已到达最小购买等级!")
end
end)
end
function this:SetCount(value)
count = value
this.slider.value = value
templv = lv + count
this.tip.text = string.format(Language[12369],count,templv)
this.num.text = a * count ^ 3 + b * count ^ 2 + c * count + d
local tempCount = this:Caculate(templv)
this.bodyText.text=string.format(Language[12370],templv,tempCount)
end
function this:Caculate(templv)
local rewardData = QinglongSerectTreasureManager.GetAllRewardData()
local direct = {}
local treasureState = QinglongSerectTreasureManager.GetTreasureState()
for i = 1, #rewardData do
local reward = rewardData[i]
if reward.level > lv and reward.level <= templv then
for j=1,#reward.Reward do
local id = reward.Reward[j].item[1]
local num = reward.Reward[j].item[2]
if reward.Reward[j].type == 1 then
if not direct[id] then
direct[id] = 0
end
direct[id] = direct[id] + num
elseif reward.Reward[j].type == 2 and treasureState then
if not direct[id] then
direct[id] = 0
end
direct[id] = direct[id] + num
end
end
end
end
for i=1,#itemlist do
itemlist[i].gameObject:SetActive(false)
end
local index = 1
for k,v in pairs(direct) do
if not itemlist[index] then
itemlist[index] = SubUIManager.Open(SubUIConfig.ItemView,this.rewardGroup.transform)
end
itemlist[index].gameObject:SetActive(true)
itemlist[index]:OnOpen(false, {k,v}, 1,false)
index = index + 1
end
return LengthOfTable(direct)
end
function this:AddListener()
end
function this:RemoveListener()
end
function this:OnShow(_parent,...)
parent=_parent
sortingOrder =_parent.sortingOrder
parent.BG:SetActive(false)
local config = ConfigManager.GetConfigData(ConfigName.SpecialConfig,18)
local strs = string.split(config.Value,"|")
local id =tonumber(strs[1])
strs = string.split(strs[2],"#")
count = 1
a = tonumber(strs[1])
b = tonumber(strs[2])
c = tonumber(strs[3])
d = tonumber(strs[4])
lv = QinglongSerectTreasureManager.GetLevel()
this.slider.minValue = 1
this.slider.maxValue = 50 - lv
this:SetCount(1)
this.icon.sprite = SetIcon(id)
this.slider.onValueChanged:AddListener(function()
this:SetCount(this.slider.value)
end)
end
function this:OnClose()
end
function this:OnDestroy()
itemlist = {}
end
return this