miduo_client/Assets/ManagedResources/~Lua/Modules/JumpServer/JumpServerHightLadderPanel.lua

619 lines
28 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.

require("Base/BasePanel")
JumpServerHightLadderPanel = Inherit(BasePanel)
local this = JumpServerHightLadderPanel
local datas = {}
local liveNodeList = {}
local goList = {}
local stage = 0
local enterable = false
--local JoinRank = ConfigManager.GetConfigData(ConfigName.MServerArenaSetting,1).JoinRank
local isFirstRefresh = false
local curPos = 1
--初始化组件(用于子类重写)
function JumpServerHightLadderPanel:InitComponent()
this.spLoader = SpriteLoader.New()
this.timeText = Util.GetGameObject(self.gameObject, "titleObg/timeImage/Text")
this.helpBtn = Util.GetGameObject(self.gameObject, "HelpBtn")
this.helpPos = this.helpBtn:GetComponent("RectTransform").localPosition
this.sortBtn = Util.GetGameObject(self.gameObject, "rightBtns/sortBtn")
this.rewardSortBtn = Util.GetGameObject(self.gameObject, "rightBtns/rewardSortBtn")
this.recordBtn = Util.GetGameObject(self.gameObject, "rightBtns/recordBtn")
this.shopBtn = Util.GetGameObject(self.gameObject, "rightBtns/shopBtn")
this.formationBtn = Util.GetGameObject(self.gameObject, "rightBtns/formationBtn")
this.backBtn = Util.GetGameObject(self.gameObject, "backBtn")
-- this.singlePre = Util.GetGameObject(self.gameObject, "middleObg/singlePre")
-- this.rect = Util.GetGameObject(self.gameObject, "middleObg/rect")
-- this.scrollView=SubUIManager.Open(SubUIConfig.ScrollCycleView,this.rect.transform,this.singlePre,
-- nil,Vector2.New(1079.9,1533.4),1,1,Vector2.New(0,0))
-- this.scrollView.moveTween.MomentumAmount = 1
-- this.scrollView.moveTween.Strength = 2
for i = 1, 4 do
goList[i] = Util.GetGameObject(self.gameObject, "middleObg/rect/singlePre (" .. i .. ")")
end
this.mySortText = Util.GetGameObject(self.gameObject, "endObg/mySortText")
this.sdBtn = Util.GetGameObject(self.gameObject, "endObg/sdBtn")
this.numInfo = Util.GetGameObject(self.gameObject, "endObg/numInfo")
Util.GetGameObject(self.gameObject, "endObg/sdBtn/Text"):GetComponent("Text").text = Language[10312]
Util.GetGameObject(self.gameObject, "endObg/numInfo/mianfeiText"):GetComponent("Text").text = Language[11642]
this.mianfeiText = Util.GetGameObject(self.gameObject, "endObg/numInfo/mianfeiText/Text"):GetComponent("Text")
Util.GetGameObject(self.gameObject, "endObg/numInfo/buyText"):GetComponent("Text").text = Language[11643]
this.buyText = Util.GetGameObject(self.gameObject, "endObg/numInfo/buyText/Text"):GetComponent("Text")
this.addNumBtn = Util.GetGameObject(self.gameObject, "endObg/numInfo/addNumBtn/click")
this.canPlayerTipText = Util.GetGameObject(self.gameObject, "endObg/canPlayerTipText")
this.signObj = Util.GetGameObject(self.gameObject, "signObj")
this.btn_left = Util.GetGameObject(self.gameObject, "signObj/btn_left")
this.btn_right = Util.GetGameObject(self.gameObject, "signObj/btn_right")
this.selectObj = Util.GetGameObject(self.gameObject, "signObj/selectBar/selectBtn")
this.signBtnList = {}
for i = 1, 4 do
local proObj = {}
local btn = Util.GetGameObject(self.gameObject, "signObj/selectBar/btn" .. i)
proObj.img = btn:GetComponent("Image")
proObj.img.sprite = this.spLoader:LoadSprite(GetProStrImageByProNum(i))
proObj.btn_sign = Util.GetGameObject(btn, "btn")
proObj.red = Util.GetGameObject(btn, "btn/red")
proObj.info = Util.GetGameObject(self.gameObject, "signObj/selectBar/btn" .. i .. "/info"):GetComponent("Text")
proObj.btn = btn
this.signBtnList[i] = proObj
end
this.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform)
end
--绑定事件(用于子类重写)
function JumpServerHightLadderPanel:BindEvent()
for i = 1, #this.signBtnList do
Util.AddClick(this.signBtnList[i].btn_sign, function()
local sureFunc = function()
NetManager.LuofuRegisterRequest(i, function()
this.SetSignBtnShow()
end)
end
local args = {}
args[1] = Language[11644]
args[2] = Language[11089]
args[3] = Language[10685]
args[4] = sureFunc
UIManager.OpenPanel(UIName.GMCommonConfirmPanel, args)
end)
end
Util.AddClick(this.btn_left, function()
if curPos - 1 <= 0 then
curPos = 4
else
curPos = curPos - 1
end
JumpServerManager.GetWorldArenaInfoRequest(curPos, function()
this.SetSelectPos()
--this.OnShowPanel()
end)
end)
Util.AddClick(this.btn_right, function()
if curPos + 1 > 4 then
curPos = 1
else
curPos = curPos + 1
end
JumpServerManager.GetWorldArenaInfoRequest(curPos, function()
this.SetSelectPos()
--this.OnShowPanel()
end)
end)
Util.AddClick(this.backBtn, function()
self:ClosePanel()
end)
Util.AddClick(this.helpBtn, function()
UIManager.OpenPanel(UIName.HelpPopup, HELP_TYPE.JumpServerHeightLadder, this.helpPos.x, this.helpPos.y)
end)
Util.AddClick(this.sortBtn, function()
JumpServerManager.SetCurPersonInfo(nil)
UIManager.OpenPanel(UIName.RankingSingleListPanel, rankKingList[18])
end)
Util.AddClick(this.rewardSortBtn, function()
UIManager.OpenPanel(UIName.JumpServerHightLadderRewardSortPanel, FUNCTION_OPEN_TYPE.JumpServer_HightLadder)
end)
Util.AddClick(this.recordBtn, function()
UIManager.OpenPanel(UIName.JumpServerHightLadderRecordPopup)
end)
Util.AddClick(this.shopBtn, function()
JumpManager.GoJump(40083)
end)
Util.AddClick(this.formationBtn, function()
-- if not ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.JumpServer_HightLadder) then
-- PopupTipPanel.ShowTip("战斗力")
-- return
-- end
if JumpServerManager.arenaType == 0 then
PopupTipPanel.ShowTip(Language[11645])
return
end
UIManager.OpenPanel(UIName.FormationPanelV2, FORMATION_TYPE.JUMPSERVER_HIGHTLADDER)
end)
Util.AddClick(this.sdBtn, function()
--条件判断
this.BuyVipFun(1, 2, function()
--直接战斗
JumpServerManager.StarFightHightLadder(nil, 1, function(msg)
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.JUMPSERVER_GIGHTLADDER_MIANFEINUM, 1) --更新特权
this.RefreshBuyNum()
this.OnShowPanel()
end)
end)
end)
Util.AddClick(this.addNumBtn, function()
this.BuyVipFun(2, nil)
end)
end
--添加事件监听(用于子类重写)
function JumpServerHightLadderPanel:AddListener()
Game.GlobalEvent:AddEvent(GameEvent.JumpServerHeightLadder.UpdateHeightLadderPanel, this.OnShowPanel)
Game.GlobalEvent:AddEvent(GameEvent.Privilege.OnPrivilegeZeroUpdate, this.RefreshBuyNum)
Game.GlobalEvent:AddEvent(GameEvent.Privilege.OnPrivilegeUpdate, this.RefreshBuyNum)
-- Game.GlobalEvent:AddEvent(GameEvent.JumpServerHeightLadder.UpdateHeightLadderNum, this.RefreshBuyNum)
end
--移除事件监听(用于子类重写)
function JumpServerHightLadderPanel:RemoveListener()
Game.GlobalEvent:RemoveEvent(GameEvent.JumpServerHeightLadder.UpdateHeightLadderPanel, this.OnShowPanel)
Game.GlobalEvent:RemoveEvent(GameEvent.Privilege.OnPrivilegeZeroUpdate, this.RefreshBuyNum)
Game.GlobalEvent:RemoveEvent(GameEvent.Privilege.OnPrivilegeUpdate, this.RefreshBuyNum)
-- Game.GlobalEvent:AddEvent(GameEvent.JumpServerHeightLadder.UpdateHeightLadderNum, this.RefreshBuyNum)
end
--跨服
function JumpServerHightLadderPanel:OnOpen()
FormationManager.GetFormationByID(FormationTypeDef.JUMPSERVER_HIGHTLADDER)
curPos = JumpServerManager.arenaType
if curPos == 0 then
curPos = 1
end
this.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.JumpServerHightLadder })
this.RefreshOnOpen()
isFirstRefresh = false
end
--界面打开时调用(用于子类重写)
function JumpServerHightLadderPanel:OnShow()
local timeStr = Language[11646]
if stage == JumpServer_Stage.Attack then
timeStr = Language[10799]
elseif stage == JumpServer_Stage.End then
timeStr = Language[11646]
end
this.RemainTimeDown(this.timeText, this.timeText:GetComponent("Text"), JumpServerManager.GetHightLadderDataEndTime(),
timeStr)
end
function this.SetSelectPos()
this.selectObj.transform:SetParent(this.signBtnList[curPos].btn.transform)
this.selectObj.transform.localPosition = Vector3.zero
end
function this.SetSignBtnShow()
--攻击阶段不显示膜拜信息
this.signObj:SetActive(stage ~= JumpServer_Stage.Attack)
for i = 1, #this.signBtnList do
this.signBtnList[i].btn_sign:SetActive(JumpServerManager.arenaType == 0)
this.signBtnList[i].info.gameObject:SetActive(false)
if JumpServerManager.arenaType > 0 then
this.signBtnList[JumpServerManager.arenaType].info.gameObject:SetActive(true)
end
end
end
function JumpServerHightLadderPanel.RefreshOnOpen()
JumpServerManager.GetWorldArenaInfoRequest(curPos)
end
function this:OnSortingOrderChange()
-- Util.AddParticleSortLayer(this.effect, self.sortingOrder - orginLayer)
end
function this.OnShowPanel()
stage = JumpServerManager.GetHightLadderDatastage()
datas = JumpServerManager.GetHightLadderDataArenaInfo()
enterable = JumpServerManager.GetHightLadderDataEnterable()
LogError("datas.arenaEnemys " .. #datas.arenaEnemys)
for i = 1, 4 do
local curData = datas.arenaEnemys[i] or {}
this.ShowSingleData(goList[i], curData, i)
end
this.SetSignBtnShow()
this.SetSelectPos()
LogError("JumpServerManager.arenaType==" .. JumpServerManager.arenaType)
this.canPlayerTipText:SetActive(false)
this.mySortText:SetActive(false)
this.sdBtn:SetActive(false)
this.numInfo:SetActive(false)
local timeStr = ""
LogPink("stage " .. stage)
this.canPlayerTipText.transform.localPosition = Vector3.New(1.3, 46.5, 0)
this.canPlayerTipText:GetComponent("Text").text = "" -- Language[11647]..JoinRank..Language[11648]
timeStr = Language[11646]
--1 未开始 2 战斗阶段 3 膜拜阶段
if stage == JumpServer_Stage.NoStar then
this.canPlayerTipText:SetActive(true)
elseif stage == JumpServer_Stage.Attack then
timeStr = Language[10799]
if enterable then
this.mySortText:SetActive(true)
this.sdBtn:SetActive(true)
this.numInfo:SetActive(true)
local myRank = JumpServerManager.GetHightLadderDataMyRank() <= 1000 and
JumpServerManager.GetHightLadderDataMyRank() or "1000+"
this.mySortText:GetComponent("Text").text = Language[10118] .. myRank
this.RefreshBuyNum()
else
this.canPlayerTipText:SetActive(true)
end
elseif stage == JumpServer_Stage.End then
timeStr = Language[11646]
if enterable then
if GetTimeStampCorrespondingWeekNum(GetTimeStamp()) >= 2 and GetTimeStampCorrespondingWeekNum(GetTimeStamp()) < 3 then --优化战斗阶段结束后的下个周二零点后本服竞技场重置不再显示上期排名和邮件提示改为显示本服千战逐胜台前100名可参加
this.canPlayerTipText:GetComponent("Text").text = "" --Language[11647]..JoinRank..Language[11648]
else
this.canPlayerTipText.transform.localPosition = Vector3.New(1.3, 11.85, 0)
local myRank = JumpServerManager.GetHightLadderDataMyRank() <= 1000 and
JumpServerManager.GetHightLadderDataMyRank() or "1000+"
this.mySortText:GetComponent("Text").text = Language[10118] .. myRank
if JumpServerManager.GetHightLadderDataMyRank() <= 1000 then
this.canPlayerTipText:GetComponent("Text").text = Language[11649]
else
this.canPlayerTipText:GetComponent("Text").text = Language[11650]
end
this.mySortText:SetActive(true)
end
else
end
this.canPlayerTipText:SetActive(true)
end
this.RemainTimeDown(this.timeText, this.timeText:GetComponent("Text"), JumpServerManager.GetHightLadderDataEndTime(),
timeStr)
end
function this.RefreshBuyNum()
LogGreen("JumpServerManager.GetCanBattleCount() " .. JumpServerManager.GetCanBattleCount())
LogGreen("JumpServerManager.GetCanBuyBattleCount() " .. JumpServerManager.GetCanBuyBattleCount())
this.mianfeiText.text = JumpServerManager.GetCanBattleCount()
this.buyText.text = JumpServerManager.GetCanBuyBattleCount()
end
function this.ShowSingleData(go, data, i)
if not data then return end
local playerInfo = Util.GetGameObject(go, "playerInfo")
local sdBtn = Util.GetGameObject(go, "sdBtn")
local cliclBtn = Util.GetGameObject(go, "click")
local sdBtnRedPoint = Util.GetGameObject(go, "sdBtn/redPoint")
local dianzanImage = Util.GetGameObject(go, "sdBtn/dianzanImage")
local liveDef = Util.GetGameObject(go, "liveDef")
playerInfo:SetActive(false)
sdBtn:SetActive(false)
liveDef:SetActive(false)
sdBtnRedPoint:SetActive(false)
dianzanImage:SetActive(false)
--1 未开始 2 战斗阶段 3 膜拜阶段
if stage == JumpServer_Stage.NoStar and data.personInfo == nil then
sdBtn:SetActive(true)
liveDef:SetActive(true)
Util.GetGameObject(go, "sdBtn/Text"):SetActive(true)
Util.GetGameObject(go, "sdBtn/Text"):GetComponent("Text").text = Language[11651]
local str = "s_sanjiechumo_ren_1" --i % 2 > 0 and "s_sanjiechumo_ren_1" or "s_sanjiechumo_ren_2"
Util.GetGameObject(go, "liveDef"):GetComponent("Image").sprite = this.spLoader:LoadSprite(str)
Util.AddOnceClick(sdBtn, function()
end)
Util.AddOnceClick(cliclBtn, function()
end)
elseif stage == JumpServer_Stage.Attack and data and data.personInfo then
playerInfo:SetActive(true)
sdBtn:SetActive(true)
Util.GetGameObject(go, "sdBtn/Text"):SetActive(true)
Util.GetGameObject(go, "sdBtn/Text"):GetComponent("Text").text = Language[10311]
Util.GetGameObject(go, "playerInfo/name/nameText"):GetComponent("Text").text = data.personInfo.servername ..
" " .. data.personInfo.name
Util.GetGameObject(go, "playerInfo/warPower/powerBtn/value"):GetComponent("Text").text = data.personInfo
.totalForce
Util.GetGameObject(go, "playerInfo/warPower/Text"):GetComponent("Text").text = Language[10286] ..
data.personInfo.rank --.. Language[11652]
local live = Util.GetGameObject(go, "playerInfo/live")
this.LocadPersonInfoLive(go, data.personInfo, live.transform) --NameManager.roleSex
sdBtnRedPoint:SetActive(JumpServerManager.GetCanBattleCount() > 0 and enterable)
Util.AddOnceClick(sdBtn, function()
if not enterable then
--PopupTipPanel.ShowTip("本服千战逐胜台前"..JoinRank.."名可以参加")
PopupTipPanel.ShowTip(Language[11653])
return
end
this.BuyVipFun(1, 1, function()
--直接战斗
JumpServerManager.StarFightHightLadder(data.personInfo, 0, function(msg)
if msg then
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.JUMPSERVER_GIGHTLADDER_MIANFEINUM, 1) --更新特权
this.OnShowPanel()
end
this.RefreshBuyNum()
end)
end)
end)
Util.AddOnceClick(cliclBtn, function()
JumpServerManager.SetCurPersonInfo(data.personInfo)
local formation = FormationTypeDef.LuoFuZhengFeng1
if JumpServerManager.arenaType ~= 0 and JumpServerManager.stage == 3 then
if JumpServerManager.arenaType == 1 then
formation = FormationTypeDef.LuoFuZhengFeng1
elseif JumpServerManager.arenaType == 2 then
formation = FormationTypeDef.LuoFuZhengFeng2
elseif JumpServerManager.arenaType == 3 then
formation = FormationTypeDef.LuoFuZhengFeng3
elseif JumpServerManager.arenaType == 4 then
formation = FormationTypeDef.LuoFuZhengFeng4
end
else
if curPos == 1 then
formation = FormationTypeDef.LuoFuZhengFeng1
elseif curPos == 2 then
formation = FormationTypeDef.LuoFuZhengFeng2
elseif curPos == 3 then
formation = FormationTypeDef.LuoFuZhengFeng3
elseif curPos == 4 then
formation = FormationTypeDef.LuoFuZhengFeng4
end
end
JumpServerManager.showRankType = formation
UIManager.OpenPanel(UIName.PlayerInfoPopup, data.personInfo.uid, PLAYER_INFO_VIEW_TYPE.JUPMSERVER,
data.personInfo.servername, formation)
end)
elseif stage == JumpServer_Stage.NoStar and data and data.personInfo then
playerInfo:SetActive(true)
sdBtn:SetActive(true)
LogPink("data.personInfo.name " ..
data.personInfo.name ..
" data.personInfo.rank " .. data.personInfo.rank .. " data.hadProud " .. tostring(data.hadProud))
Util.GetGameObject(go, "playerInfo/name/nameText"):GetComponent("Text").text = data.personInfo.servername ..
" " .. data.personInfo.name
Util.GetGameObject(go, "playerInfo/warPower/powerBtn/value"):GetComponent("Text").text = data.personInfo
.totalForce
Util.GetGameObject(go, "playerInfo/warPower/Text"):GetComponent("Text").text = Language[10286] ..
data.personInfo.rank --.. Language[11652]
local live = Util.GetGameObject(go, "playerInfo/live")
this.LocadPersonInfoLive(go, data.personInfo, live.transform)
sdBtnRedPoint:SetActive(not data.hadProud)
Util.GetGameObject(go, "sdBtn/Text"):GetComponent("Text").text = Language[11654]
Util.GetGameObject(go, "sdBtn/Text"):SetActive(not data.hadProud)
Util.GetGameObject(go, "sdBtn/dianzanImage/Text"):GetComponent("Text").text = data.worshipTime
dianzanImage:SetActive(data.hadProud)
LogError("data.hadProud===" ..
tostring(data.hadProud) ..
" data.worshipTime==" .. data.worshipTime .. " personInfo.servername==" .. data.personInfo.servername)
if data.hadProud then
sdBtn:GetComponent("Image").sprite = this.spLoader:LoadSprite("r_chouka_button_004")
else
sdBtn:GetComponent("Image").sprite = this.spLoader:LoadSprite("f_feishengshi_huanganniu")
end
Util.AddOnceClick(sdBtn, function()
if not data.hadProud then
JumpServerManager.GetWorldArenaProudRequest(data.personInfo, function(msg)
this.RefreshOnOpen()
end)
end
end)
Util.AddOnceClick(cliclBtn, function()
JumpServerManager.SetCurPersonInfo(nil)
local formation = FormationTypeDef.LuoFuZhengFeng1
if JumpServerManager.arenaType ~= 0 and JumpServerManager.stage == 3 then
if JumpServerManager.arenaType == 1 then
formation = FormationTypeDef.LuoFuZhengFeng1
elseif JumpServerManager.arenaType == 2 then
formation = FormationTypeDef.LuoFuZhengFeng2
elseif JumpServerManager.arenaType == 3 then
formation = FormationTypeDef.LuoFuZhengFeng3
elseif JumpServerManager.arenaType == 4 then
formation = FormationTypeDef.LuoFuZhengFeng4
end
else
if curPos == 1 then
formation = FormationTypeDef.LuoFuZhengFeng1
elseif curPos == 2 then
formation = FormationTypeDef.LuoFuZhengFeng2
elseif curPos == 3 then
formation = FormationTypeDef.LuoFuZhengFeng3
elseif curPos == 4 then
formation = FormationTypeDef.LuoFuZhengFeng4
end
end
UIManager.OpenPanel(UIName.PlayerInfoPopup, data.personInfo.uid, PLAYER_INFO_VIEW_TYPE.JUPMSERVER,
data.personInfo.servername)
end)
end
end
function this.LocadPersonInfoLive(go, data, live)
-- if liveNodeList[go] then
-- poolManager:UnLoadLive(liveNodeList[go].name, liveNodeList[go].go, PoolManager.AssetType.GameObject)
-- end
-- local npc = roleSex == ROLE_SEX.BOY and "live2d_npc_map_boy" or "live2d_npc_map_nv"
-- local scale = roleSex == ROLE_SEX.BOY and Vector3.one * 0.26 or Vector3.one * 0.16
-- local live2d = poolManager:LoadLive(npc, live,scale, Vector3.zero)
-- local SkeletonGraphic = live2d:GetComponent("SkeletonGraphic")
-- if SkeletonGraphic then
-- SkeletonGraphic.AnimationState:SetAnimation(0, "idle", true)
-- SkeletonGraphic.transform.localEulerAngles = Vector3.New(0, 0, 0)
-- end
-- liveNodeList[go] = {name=npc, go=live2d}
if liveNodeList[go] then
liveNodeList[go]:OnClose()
liveNodeList[go] = nil
end
local curPlayerLiveViewData = {
skin = data.userSkin,
sex = data.gender,
ride = data.userMount,
designation = 0 --data.userTitle,
}
liveNodeList[go] = PlayerLiveView:New(live.transform, 2, curPlayerLiveViewData, this.sortingOrder)
liveNodeList[go]:SetNameHeight(-2.5)
if data.userMount and data.userMount > 0 and data.userMount ~= PlayerRide.YUJIAN then
liveNodeList[go]:OnOpen(GetPlayerRoleSingleConFig().Scale6, Vector3.New(0, -118.65, 0), WALK_DIR.IDLE_LEFT)
else
liveNodeList[go]:OnOpen(GetPlayerRoleSingleConFig().Scale6, Vector3.New(0, -118.65, 0), WALK_DIR.IDLE_FRONT)
end
-- liveNodeList[go] = {name=npc, go=live2d}
end
--刷新倒计时显示
function this.RemainTimeDown(_timeTextExpertgo, _timeTextExpert, timeDown, str)
if timeDown - GetTimeStamp() > 0 then
if _timeTextExpertgo then
_timeTextExpertgo:SetActive(true)
end
if _timeTextExpert then
_timeTextExpert.text = this.TimeStampToDateString(timeDown - GetTimeStamp()) .. str
end
if this.timer then
this.timer:Stop()
this.timer = nil
end
this.timer = Timer.New(function()
if _timeTextExpert then
-- LogGreen(" 跨服天梯 "..this.TimeStampToDateString(timeDown)..str)
_timeTextExpert.text = this.TimeStampToDateString(timeDown - GetTimeStamp()) .. str
end
if timeDown - GetTimeStamp() < 0 then
if _timeTextExpertgo then
_timeTextExpertgo:SetActive(false)
end
this.timer:Stop()
this.timer = nil
if not isFirstRefresh then
Timer.New(function()
LogError("跨服天梯前端刷新")
JumpServerManager.GetWorldArenaInfoRequest(curPos)
isFirstRefresh = true
end, 2):Start()
end
end
-- timeDown = timeDown - 1
end, 1, -1, true)
this.timer:Start()
else
if _timeTextExpertgo then
_timeTextExpertgo:SetActive(false)
end
if not isFirstRefresh then
Timer.New(function()
LogError("跨服天梯前端刷新")
JumpServerManager.GetWorldArenaInfoRequest(curPos)
isFirstRefresh = true
end, 2):Start()
end
end
end
function this.TimeStampToDateString(second)
local day = math.floor(second / (24 * 3600))
local minute = math.floor(second / 60) % 60
local sec = second % 60
local hour = math.floor(math.floor(second - day * 24 * 3600 - sec - minute * 60) / 3600)
if day > 0 then
return string.format(Language[10702], day, hour, minute, sec)
else
return string.format(Language[10664], hour, minute, sec)
end
end
function this.BuyVipFun(type, warOrSd, fun)
if type == 1 then
if JumpServerManager.GetCanBattleCount() <= 0 then --今日已无剩余次数!
if JumpServerManager.GetCanBuyBattleCount() <= 0 then
PopupTipPanel.ShowTip(Language[11655])
else
--是否花费XX妖晶购买1次挑战次数并发起挑战
local costId, finalNum, oriCostNum = ShopManager.calculateBuyCost(SHOP_TYPE.FUNCTION_SHOP,
JumpServerManager.shopGoodId, 1)
local itemName = GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.ItemConfig, costId).Name)
local tipStr = warOrSd == 1 and Language[11511] or Language[11656]
MsgPanel.ShowTwo(string.format(tipStr, finalNum, itemName), nil, function()
--买东西
if finalNum > BagManager.GetItemCountById(costId) then
PopupTipPanel.ShowTip(string.format(Language[10320], itemName))
return
end
--买东西
ShopManager.RequestBuyShopItem(SHOP_TYPE.FUNCTION_SHOP, JumpServerManager.shopGoodId, 1, function()
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.JUMPSERVER_GIGHTLADDER_BUYNUM, 1) --更新特权
local tipStr2 = warOrSd == 1 and Language[10939] or Language[11657]
if warOrSd == 2 then
PopupTipPanel.ShowTip(tipStr2)
end
if fun then
fun()
end
end)
end)
end
else
if warOrSd == 1 then
if fun then
fun()
end
else
MsgPanel.ShowTwo(Language[11658], nil, function()
if fun then
fun()
end
end)
end
end
elseif type == 2 then
if JumpServerManager.GetCanBuyBattleCount() <= 0 then
PopupTipPanel.ShowTip(Language[11659])
else
local costId, finalNum, oriCostNum = ShopManager.calculateBuyCost(SHOP_TYPE.FUNCTION_SHOP,
JumpServerManager.shopGoodId, 1)
local itemName = GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.ItemConfig, costId).Name)
local tipStr = Language[10627]
MsgPanel.ShowTwo(string.format(tipStr, finalNum, itemName), nil, function()
--买东西
if finalNum > BagManager.GetItemCountById(costId) then
PopupTipPanel.ShowTip(string.format(Language[11660], itemName))
return
end
ShopManager.RequestBuyShopItem(SHOP_TYPE.FUNCTION_SHOP, JumpServerManager.shopGoodId, 1, function()
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.JUMPSERVER_GIGHTLADDER_BUYNUM, 1) --更新特权
this.RefreshBuyNum()
end)
end)
end
end
end
--界面关闭时调用(用于子类重写)
function JumpServerHightLadderPanel:OnClose()
if this.timer then
this.timer:Stop()
this.timer = nil
end
end
--界面销毁时调用(用于子类重写)
function JumpServerHightLadderPanel:OnDestroy()
for key, value in pairs(liveNodeList) do
-- poolManager:UnLoadLive(value.name, value.go, PoolManager.AssetType.GameObject)
-- liveNodeList = {}
value:OnClose()
end
this.spLoader:Destroy()
end
return JumpServerHightLadderPanel