miduo_client/Assets/ManagedResources/~Lua/View/JumpViewNew.lua

155 lines
6.5 KiB
Lua
Raw Normal View History

local JumpConfig=ConfigManager.GetConfig(ConfigName.JumpConfig)
local ItemConfig=ConfigManager.GetConfig(ConfigName.ItemConfig)
JumpViewNew = {}
function JumpViewNew:New(gameObject)
local b = {}
b.gameObject = gameObject
b.transform = gameObject.transform
setmetatable(b,{ __index = JumpViewNew })
return b
end
--初始化组件(用于子类重写)
function JumpViewNew:InitComponent()
self.spLoader = SpriteLoader.New()
local tran = Util.GetGameObject(self.gameObject, "content")
self.info = Util.GetGameObject(tran, "info"):GetComponent("Text")
self.btnSure = Util.GetGameObject(tran, "btnSure")
self.btnSureText = Util.GetGameObject(tran, "btnSure/Text"):GetComponent("Text")
self.desc = Util.GetGameObject(tran, "grid/Text"):GetComponent("Text")
self.costIconPos = Util.GetGameObject(tran, "grid/itemPos")
self.itemView = SubUIManager.Open(SubUIConfig.ItemView,self.costIconPos.transform)
end
--绑定事件(用于子类重写)
function JumpViewNew:BindEvent()
Util.AddOnceClick(self.btnSure, function()
self:GoToJumpData()
if self.parent then
self.parent:ClosePanel()
end
end)
end
--添加事件监听(用于子类重写)
function JumpViewNew:AddListener()
end
--移除事件监听(用于子类重写)
function JumpViewNew:RemoveListener()
end
--界面打开时调用(用于子类重写)
function JumpViewNew:OnOpen(jumpId,heroConfig,parent)
self.parent = parent
self.jumpSData=JumpConfig[jumpId]
self.needChipId = heroConfig.PiecesId
self.needChipNum = ItemConfig[self.needChipId].UsePerCount
if self.jumpSData then
self.info.text=GetLanguageStrById(self.jumpSData.Title)
self.btnSureText.text = Language[10556]
end
if self.jumpSData.Type == JumpType.firstRecharge then
self.costIconPos.gameObject:SetActive(false)
self.desc.text = "首次充值可直接获得孙悟空"
elseif self.jumpSData.Type == JumpType.ZhiZunJiangShi then
self.costIconPos.gameObject:SetActive(false)
self.desc.text = "完成至尊降世可直接获得玉皇大帝"
elseif self.jumpSData.Type == JumpType.Lottery then
self.costIconPos.gameObject:SetActive(false)
self.desc.text = "设为心愿神将会有更高概率"
elseif self.jumpSData.Type == JumpType.Lottery then
self.costIconPos.gameObject:SetActive(false)
self.desc.text = "设为心愿神将会有更高概率"
elseif self.jumpSData.Type == JumpType.ElementDrawCard then
self.costIconPos.gameObject:SetActive(false)
self.desc.text = "抽取时额外赠送元神玉"
elseif self.jumpSData.Type == JumpType.ElementDrawCard then
self.costIconPos.gameObject:SetActive(false)
self.desc.text = "抽取时额外赠送元神玉"
elseif self.jumpSData.Type == JumpType.ZhuTiHuoDong then
self.costIconPos.gameObject:SetActive(false)
self.desc.text = "每期轮替可召唤的神将"
elseif self.jumpSData.Type == JumpType.Store then
LogGreen("self.jumpSData.Skipfactor[1]:"..self.jumpSData.Skipfactor[1])
local storeTypeConfig = ConfigManager.GetConfigDataByKey(ConfigName.StoreTypeConfig,"StoreType",self.jumpSData.Skipfactor[1])
local configs = ConfigManager.GetAllConfigsDataByKey(ConfigName.StoreConfig,"StoreId",storeTypeConfig.Id)
local getChipNum = 1
local costItemId = 0
local costItemNum = 0
for i = 1,#configs do
LogGreen("self.needChipId:"..self.needChipId.." configs[i].Goods[1][1]:"..configs[i].Goods[1][1])
if self.needChipId == configs[i].Goods[1][1] then
getChipNum = configs[i].Goods[1][2]
costItemId = configs[i].Cost[1][1]
local a,b,c,d = configs[i].Cost[2][1],configs[i].Cost[2][2],configs[i].Cost[2][3],configs[i].Cost[2][4]
local x = 1
costItemNum = a*x^3+b*x^2+c*x+d
break
end
end
local needCostNum = math.ceil(self.needChipNum/getChipNum)*costItemNum
self.desc.text = ItemConfig[costItemId].Name..":"..BagManager.GetItemCountById(costItemId).."/"..needCostNum
self.itemView:OnOpen(false, {costItemId,needCostNum}, 0.6, false, false, false, self.parent.sortingOrder)
elseif self.jumpSData.Type == 30003 then
self.btnSureText.text = "合成"
self.itemView:OnOpen(false, {self.needChipId,self.needChipNum}, 0.6, false, false, false, self.parent.sortingOrder)
self.desc.text = ItemConfig[self.needChipId].Name..":"..BagManager.GetItemCountById(self.needChipId).."/"..self.needChipNum
end
end
function JumpViewNew:GoToJumpData()
if self.jumpSData.Type == 30003 then
if BagManager.GetItemCountById(self.needChipId) >= self.needChipNum then
local gameSetting = ConfigManager.GetConfigData(ConfigName.GameSetting, 1)
local endHeroNum=gameSetting.HeroNumlimit-LengthOfTable(HeroManager.GetAllHeroDatas())
local sum = math.floor(BagManager.GetItemCountById(self.needChipId) / self.needChipNum)
if sum > 1 then
local _itemData = BagManager.bagDatas[self.needChipId]
if endHeroNum > 0 then
UIManager.OpenPanel(UIName.BagResolveAnCompoundPanel, 3, _itemData, function()
func()
end)
else
PopupTipPanel.ShowTip(Language[12157])
end
else
-- body
local compoundNum = 1
local _itemData = BagManager.bagDatas[self.needChipId]
local item={}
item.itemId= _itemData.id
item.itemNum=compoundNum*self.needChipNum
if endHeroNum > 0 then
NetManager.HeroComposeRequest(item,function (drop)
this.SendBackCompoundReCallBack(drop)
end)
if compoundNum<=0 then
PopupTipPanel.ShowTip(Language[10183])
end
else
PopupTipPanel.ShowTip(Language[12157])
end
end
else
PopupTipPanel.ShowTip("碎片不足!")
end
else
JumpManager.GoJump(self.jumpSData.Id)
end
end
--界面关闭时调用(用于子类重写)
function JumpViewNew:OnClose()
self.spLoader:Destroy()
end
--界面销毁时调用(用于子类重写)
function JumpViewNew:OnDestroy()
SubUIManager.Close(self.itemView)
end
return JumpViewNew