271 lines
10 KiB
Plaintext
271 lines
10 KiB
Plaintext
DeathPopView = class("DeathPopView", ContainerView)
|
|
-- autoImport("CountDownView")
|
|
DeathPopView.ViewType = UIViewType.ReviveLayer
|
|
|
|
DeathPopView.TextureBg = "persona_bg_npc"
|
|
|
|
function DeathPopView:Init()
|
|
self:initData()
|
|
self:initView()
|
|
self:addEventListener()
|
|
self:AddViewEvts()
|
|
end
|
|
|
|
function DeathPopView:initData( )
|
|
-- body
|
|
self.isPvpMap = SceneProxy.Instance:IsPvPScene()
|
|
self.totalTime = GameConfig.DeathPopViewShowTime.showTime
|
|
self.leftTime = self.totalTime
|
|
self.costItem = GameConfig.UserRelive.deathcost2[1].id
|
|
self.reliveCostCount = GameConfig.UserRelive.deathcost2[1].num
|
|
self.isDaoChangMap = DojoProxy.Instance:IsSelfInDojo()
|
|
self.currentMap = SceneProxy.Instance.currentScene
|
|
self.mapMng = Game.MapManager
|
|
end
|
|
|
|
function DeathPopView:initView( )
|
|
-- body
|
|
-- self.goldCount = self:FindChild("GoldCount"):GetComponent(UILabel)
|
|
self.goldIcon = self:FindGO("gold"):GetComponent(UISprite)
|
|
self.title = self:FindGO("deathTitle"):GetComponent(UILabel)
|
|
self.title.text = ZhString.DeathPopView_Title
|
|
|
|
local ReliveInSituLabel = self:FindComponent("ReliveInSituLabel",UILabel)
|
|
ReliveInSituLabel.text = ZhString.DeathPopView_ReliveInSitu
|
|
|
|
self.ReliveInRelivePointLabel = self:FindComponent("ReliveInRelivePointLabel",UILabel)
|
|
self.ReliveInRelivePointLabel.text = ZhString.DeathPopView_ReliveInRelivePoint
|
|
|
|
self.ReliveInSavePointLabel = self:FindComponent("ReliveInSavePointLabel",UILabel)
|
|
self.ReliveInSavePointLabel.text = ZhString.DeathPopView_ReliveInSavePoint
|
|
|
|
local ReliveInRelivePointBtn = self:FindGO("ReliveInRelivePointBtn")
|
|
self.timeCt = self:FindGO("timeCt")
|
|
self.timeThumnail = self:FindGO("timeThumnail")
|
|
self.timeSlider = self:FindComponent("timeSlider",UISlider)
|
|
|
|
-- local moneytype = GameConfig.UserRelive.deathcost1.moneytype
|
|
-- local money = GameConfig.UserRelive.deathcost1.money
|
|
-- local param = GameConfig.UserRelive.param
|
|
|
|
-- local deathCount = 0
|
|
-- if(self.isPvpMap)then
|
|
-- deathCount = MyselfProxy.Instance:getVarValueByType(Var_pb.EVARTYPE_PVP_DEAD_COUNT)
|
|
-- else
|
|
-- deathCount = MyselfProxy.Instance:getVarValueByType(Var_pb.EVARTYPE_RELIVE)
|
|
-- end
|
|
-- if deathCount == nil then
|
|
-- deathCount =0
|
|
-- end
|
|
-- if deathCount >= 9 then
|
|
-- deathCount = 9
|
|
-- end
|
|
|
|
-- if self.goldCount ~= nil then
|
|
-- self.reliveGoldCount = param*(deathCount+1)*money
|
|
|
|
-- self.goldCount.text = self.reliveCostCount
|
|
self.itemData = Table_Item[self.costItem]
|
|
if(self.itemData)then
|
|
IconManager:SetItemIcon(self.itemData.Icon,self.goldIcon)
|
|
end
|
|
-- end
|
|
|
|
local totalCount =BagProxy.Instance:GetItemNumByStaticID(self.costItem)
|
|
self.ReliveInRelivePointBtnBox = self:FindComponent("ReliveInRelivePointBtn",BoxCollider)
|
|
self.ReliveInRelivePointBtnSp = self:FindComponent("ReliveInRelivePointBtn",UISprite)
|
|
local ReliveInRelivePointBtnCt = self:FindGO("ReliveInRelivePointBtnCt")
|
|
self.ReliveInSavePointBtn = self:FindGO("ReliveInSavePointBtn")
|
|
local ReliveInSavePointBtnCt = self:FindGO("ReliveInSavePointBtnCt")
|
|
local ReliveInSavePointBg = self:FindComponent("ReliveInSavePointBtn",UISprite)
|
|
self.ReliveInSituBtnCt = self:FindGO("ReliveInSituBtnCt")
|
|
|
|
local DeathHint = self:FindComponent("DeathHint",UILabel)
|
|
local userData = Game.Myself.data.userdata
|
|
local defeat = userData:GetBytes(UDEnum.KILLERNAME)
|
|
local base = userData:Get(UDEnum.DROPBASEEXP)
|
|
if(self.isPvpMap)then
|
|
DeathHint.text = string.format(ZhString.DeathPopView_TitleHintPvP,defeat)
|
|
else
|
|
DeathHint.text = string.format(ZhString.DeathPopView_TitleHint,defeat,base)
|
|
end
|
|
|
|
if(self.isPvpMap)then
|
|
self:Hide(self.ReliveInSituBtnCt)
|
|
elseif(self.isDaoChangMap)then
|
|
self:Hide(ReliveInRelivePointBtnCt)
|
|
self:Hide(self.timeCt)
|
|
if(totalCount < self.reliveCostCount)then
|
|
self:Hide(self.ReliveInSituBtnCt)
|
|
end
|
|
-- local btnText = self:FindGO("BtnText",self:FindGO("immediatelyBtn")):GetComponent(UILabel)
|
|
-- btnText.text = ZhString.DeathPopView_ImmRelive
|
|
-- btnText.transform.localPosition = Vector3.zero
|
|
-- btnText = self:FindChild("backToRevivePointBtn"):GetComponentInChildren(UILabel)
|
|
-- btnText.text = ZhString.DeathPopView_ReturnRelive
|
|
-- self:FindGO("Cost"):SetActive(false)
|
|
elseif(not self.isPvpMap)then
|
|
-- TimeTickManager.Me():CreateTick(0,10,self.updateCdTime,self)
|
|
self:Hide(ReliveInRelivePointBtnCt)
|
|
ReliveInSavePointBg.spriteName = "com_btn_3s"
|
|
self.ReliveInSavePointLabel.effectColor = Color(41/255,105/255,0,1)
|
|
|
|
self.timeCt.transform:SetParent(self.ReliveInSavePointBtn.transform,false)
|
|
if(totalCount < self.reliveCostCount)then
|
|
self:Hide(self.ReliveInSituBtnCt)
|
|
end
|
|
-- local btnText = self:FindGO("BtnText",self:FindGO("immediatelyBtn")):GetComponent(UILabel)
|
|
-- btnText.text = ZhString.DeathPopView_ImmRelive
|
|
-- btnText.transform.localPosition = Vector3.zero
|
|
-- btnText = self:FindChild("backToRevivePointBtn"):GetComponentInChildren(UILabel)
|
|
-- btnText.text = ZhString.DeathPopView_ReturnRelive
|
|
-- self:FindGO("Cost"):SetActive(false)
|
|
end
|
|
|
|
if(Game.MapManager:IsGvgMode_Droiyan() or Game.MapManager:IsPVPMode_TeamPws())then
|
|
self:Hide(ReliveInSavePointBtnCt) --ReliveInSavePointBtnCt:SetActive(false)
|
|
end
|
|
local BoundCt = self:FindGO("BoundCt")
|
|
local grid = BoundCt:GetComponent(UITable)
|
|
grid:Reposition()
|
|
|
|
local btnCt = self:FindGO("btnCt"):GetComponent(UISprite)
|
|
local bound = NGUIMath.CalculateRelativeWidgetBounds(BoundCt.transform,false)
|
|
local tmp = bound.size.y+54.0
|
|
bound = NGUIMath.CalculateRelativeWidgetBounds(DeathHint.transform,false)
|
|
tmp = tmp+bound.size.y
|
|
btnCt.height = tmp
|
|
-- printRed("size:","btnCt",bound.size.y,tmp,btnCt.height)
|
|
|
|
-- self.CountDownView = self:AddSubView("CountDownView",CountDownView)
|
|
|
|
if(self.currentMap:IsInDungeonMap())then
|
|
self.ReliveInSavePointLabel.text = ZhString.DeathPopView_ReliveAndLeave
|
|
end
|
|
|
|
self.bgTexture = self:FindComponent("Texture",UITexture)
|
|
PictureManager.Instance:SetUI(DeathPopView.TextureBg, self.bgTexture);
|
|
self:HandleReliveCd()
|
|
end
|
|
|
|
function DeathPopView:AddViewEvts()
|
|
self:AddListenEvt(MyselfEvent.ReliveStatus,self.HandleReliveStatus)
|
|
end
|
|
|
|
function DeathPopView:HandleReliveStatus(note)
|
|
self:CloseSelf()
|
|
end
|
|
|
|
function DeathPopView:addEventListener( )
|
|
-- body
|
|
self:AddButtonEvent("ReliveInSituBtn",function ( obj )
|
|
-- body
|
|
ServiceNUserProxy.Instance:CallRelive(SceneUser2_pb.ERELIVETYPE_MONEY)
|
|
-- FunctionFollowCaptain.Me():Shutdown()
|
|
end)
|
|
|
|
self:AddButtonEvent("ReliveInRelivePointBtn",function ( obj )
|
|
-- body
|
|
-- if(self.isPvpMap)then
|
|
-- ServiceNUserProxy.Instance:CallRelive(SceneUser2_pb.ERELIVETYPE_RAND)
|
|
-- else
|
|
ServiceNUserProxy.Instance:CallRelive(SceneUser2_pb.ERELIVETYPE_RETURN)
|
|
-- end
|
|
end)
|
|
|
|
self:AddButtonEvent("ReliveInSavePointBtn",function ( obj )
|
|
-- body
|
|
-- if(self.currentMap:IsInDungeonMap())then
|
|
-- ServiceNUserProxy.Instance:CallRelive(SceneUser2_pb.ERELIVETYPE_RETURN)
|
|
-- else
|
|
-- ServiceNUserProxy.Instance:CallRelive(SceneUser2_pb.ERELIVETYPE_RETURNSAVE)
|
|
-- end
|
|
-- FunctionFollowCaptain.Me():Shutdown()
|
|
-- self:CloseSelf()
|
|
|
|
if(self.isPvpMap)then
|
|
ServiceNUserProxy.Instance:CallRelive(SceneUser2_pb.ERELIVETYPE_RETURNSAVE)
|
|
else
|
|
ServiceNUserProxy.Instance:CallRelive(SceneUser2_pb.ERELIVETYPE_RETURN)
|
|
end
|
|
end)
|
|
self:AddListenEvt(ServiceEvent.UserEventDieTimeCountEventCmd,self.HandleReliveCd)
|
|
end
|
|
|
|
function DeathPopView:HandleReliveCd(data)
|
|
if(self.mapMng:IsPVPMode_GVGDetailed() or self.mapMng:IsGvgMode_Droiyan())then
|
|
self.ReliveInSavePointLabel.text = ZhString.DeathPopView_ReliveInSavePoint
|
|
local time = MyselfProxy.Instance.reliveStamp
|
|
time = time and time or 0
|
|
if(time > 0)then
|
|
self.ReliveInRelivePointBtnBox.enabled = false
|
|
self.ReliveInRelivePointBtnSp.spriteName = "com_btn_3s"
|
|
local currentTime = ServerTime.CurServerTime()
|
|
currentTime = currentTime / 1000
|
|
self.totalTime = math.floor(time - currentTime)
|
|
self.title.text = string.format(ZhString.DeathPopView_TitleReliveHintGVG,MyselfProxy.Instance.reliveName)
|
|
self.ReliveInRelivePointLabel.effectColor = Color(41/255,105/255,0,1)
|
|
if(self.totalTime >0)then
|
|
self.Show(self.timeCt)
|
|
-- self.timeCt.transform:SetParent(self.ReliveInSavePointBtn.transform,false)
|
|
TimeTickManager.Me():ClearTick(self)
|
|
TimeTickManager.Me():CreateTick(0,1000,self.updateCdTime,self)
|
|
end
|
|
else
|
|
self.ReliveInRelivePointBtnBox.enabled = false
|
|
self.ReliveInRelivePointLabel.effectColor = Color(158/255,158/255,158/255,1)
|
|
self.ReliveInRelivePointBtnSp.spriteName = "com_btn_13"
|
|
end
|
|
end
|
|
end
|
|
|
|
function DeathPopView:OnEnter()
|
|
DeathPopView.super.OnEnter(self)
|
|
self:sendNotification( MainViewEvent.ActiveShortCutBord, false);
|
|
end
|
|
|
|
function DeathPopView:OnExit()
|
|
self:sendNotification( MainViewEvent.ActiveShortCutBord, true);
|
|
self.super.OnExit(self)
|
|
TimeTickManager.Me():ClearTick(self)
|
|
PictureManager.Instance:UnLoadUI(DeathPopView.TextureBg,self.bgTexture);
|
|
MyselfProxy.Instance:ClearReliveCd()
|
|
end
|
|
|
|
function DeathPopView:updateCdTime( )
|
|
-- body
|
|
local currentTime = ServerTime.CurServerTime()
|
|
currentTime = currentTime / 1000
|
|
local time = MyselfProxy.Instance.reliveStamp
|
|
local leftTime = time - currentTime
|
|
leftTime = math.floor(leftTime)
|
|
local delta = 1 - leftTime/self.totalTime
|
|
if(leftTime <= 0)then
|
|
-- TimeTickManager.Me():ClearTick(self)
|
|
-- self:CloseSelf()
|
|
leftTime = 0
|
|
local isDead = Game.Myself:IsDead()
|
|
if(isDead)then
|
|
-- if(self.currentMap:IsInDungeonMap())then
|
|
-- ServiceNUserProxy.Instance:CallRelive(SceneUser2_pb.ERELIVETYPE_RETURN)
|
|
-- elseif(self.isPvpMap)then
|
|
-- ServiceNUserProxy.Instance:CallRelive(SceneUser2_pb.ERELIVETYPE_RAND)
|
|
-- else
|
|
-- ServiceNUserProxy.Instance:CallRelive(SceneUser2_pb.ERELIVETYPE_RETURNSAVE)
|
|
-- end
|
|
else
|
|
self:CloseSelf()
|
|
return
|
|
end
|
|
-- FunctionFollowCaptain.Me():Shutdown()
|
|
end
|
|
-- if(self.leftTime <= GameConfig.DeathPopViewShowTime.leftTimeRedLimit)then
|
|
-- self.existClock.color = Color(254,6/254.0,6/255.0,1)
|
|
-- else
|
|
-- -- self.existClock.color = Color(0,0,0,1)
|
|
-- end
|
|
self.ReliveInRelivePointLabel.text = string.format(ZhString.DeathPopView_ReliveHintDesGVG,leftTime)
|
|
self.timeSlider.value = delta
|
|
self.timeThumnail.transform.eulerAngles = Vector3(0,0,90-delta*360)
|
|
-- self.existClock.text ,_ = math.modf(self.leftTime).."s"
|
|
end |