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

115 lines
4.1 KiB
Lua

----- 森罗次元炸弹 -----
local this = {}
--传入父脚本模块
local parent
--传入特效层级
local sortingOrder = 0
local ctrlView = require("Modules/Map/View/MapControllView")
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
local trialSetting = ConfigManager.GetConfig(ConfigName.TrialSetting)
local trialConfig = ConfigManager.GetConfig(ConfigName.TrialConfig)
local item
local itemId = 0 --消耗道具ID
local itemNum = 0 --消耗道具数量
local usedNum = 0 --已使用的数量
function this:InitComponent(gameObject)
this.spLoader = SpriteLoader.New()
this.titleText = Util.GetGameObject(gameObject, "TitleText"):GetComponent("Text")
this.body = Util.GetGameObject(gameObject, "Body")
this.item = Util.GetGameObject(this.body, "Item")
this.leftTime = Util.GetGameObject(this.body, "leftTime"):GetComponent("Text")
this.num = Util.GetGameObject(this.body, "Num"):GetComponent("Text")
this.cancelBtn = Util.GetGameObject(gameObject, "CancelBtn")
this.confirmBtn = Util.GetGameObject(gameObject, "ConfirmBtn")
item = SubUIManager.Open(SubUIConfig.ItemView, this.item.transform)
end
function this:BindEvent()
--取消按钮
Util.AddClick(this.cancelBtn, function()
parent:ClosePanel()
end)
--使用按钮
Util.AddClick(this.confirmBtn, function()
if itemNum > 0 then
if MapTrialManager.isHaveBoss then
PopupTipPanel.ShowTip(Language[12394])
return
elseif MapTrialManager.curTowerLevel > 10000 then
PopupTipPanel.ShowTip(Language[12395])
return
elseif usedNum >= 5 then
PopupTipPanel.ShowTip(Language[12396])
else
NetManager.RequestUseBomb(function(msg) --请求使用炸弹
SoundManager.PlaySound(SoundConfig.Sound_zd)
parent:ClosePanel()
UIManager.OpenPanel(UIName.RewardItemPopup, msg.drop, 1, function()
MapTrialManager.bombUsed = MapTrialManager.bombUsed + 1
MapTrialManager.UpdatePowerValue(msg.essenceValue)
Game.GlobalEvent:DispatchEvent(GameEvent.Map.PointAdd, msg.cell.cellId, msg.cell.pointId)
MapTrialManager.killCount = MapTrialManager.killCount + msg.monsterNum
end)
end)
end
else
PopupTipPanel.ShowTip(Language[12397])
end
end)
end
-- 弄死所有的小怪
function this:KillAllBitch()
--杀死所有的小怪
MapManager.isRemoving = true
local pointData = trialConfig[MapTrialManager.curTowerLevel].MonsterPoint --MonsterPoint
for i = 1, #pointData do
local mapPointId = pointData[i][1]
if mapPointId then
LogPink("需要删除的怪物地图点ID " .. mapPointId)
MapManager.DeletePos(mapPointId)
end
end
MapManager.isRemoving = false
end
function this:AddListener()
Game.GlobalEvent:AddEvent(GameEvent.Bag.BagGold, this.RefreshPanel) --监听背包信息改变刷新 用于回春散数量刷新
end
function this:RemoveListener()
Game.GlobalEvent:RemoveEvent(GameEvent.Bag.BagGold, this.RefreshPanel)
end
function this:OnShow(_parent, ...)
parent = _parent
sortingOrder = _parent.sortingOrder
--不定参中包含的不定参 _args[1]为面板类型 _args[2]之后(包括)为打开面板后传入的不定参
local _args = { ... }
itemId = trialSetting[1].BombId[1][1]
itemNum = BagManager.GetTotalItemNum(itemId)
usedNum = MapTrialManager.bombUsed
this.RefreshPanel()
end
function this:OnClose()
end
function this:OnDestroy()
this.spLoader:Destroy()
item = nil
end
--刷新面板
function this.RefreshPanel()
item:OnOpen(false, { itemId, 1 }, 1.2, false, false, false, sortingOrder)
item:Reset({ itemId, 1 }, ItemType.NoType, { nil, false, nil, false })
this.num.text = Language[12398] .. itemNum
this.leftTime.text = Language[12399] .. (usedNum >= 5 and 0 or (trialSetting[1].PrivilegeReward[2] - usedNum))
end
return this