2025-06-04 05:12:01 +08:00

159 lines
5.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

MainViewPolyFightPage = class("MainViewPolyFightPage",SubView)
local tempVector3 = LuaVector3.zero
MainViewPolyFightPage.CointItemId = 157
-- MainViewPolyFightPage.CointItemId = 110
function MainViewPolyFightPage:Init()
self:AddViewEvts()
self:initView()
self:initData()
self:resetData()
end
function MainViewPolyFightPage:resetData( )
self.player_num = nil
self.starttime = nil
self.score = 0
self.tickMg:ClearTick(self)
end
function MainViewPolyFightPage:initData( )
-- body
local pvpCg = GameConfig.PVPConfig and GameConfig.PVPConfig[4] or nil
self.totalTime = pvpCg and pvpCg.Time or 300
self.personLimit = pvpCg and pvpCg.PeopleLimit or 10
self.tickMg = TimeTickManager.Me()
self.score = 0
end
function MainViewPolyFightPage:Show( tarObj )
MainViewPolyFightPage.super.Show(self,tarObj)
if(not tarObj)then
self:SetData()
end
end
function MainViewPolyFightPage:Hide( tarObj )
MainViewPolyFightPage.super.Hide(self,tarObj)
if(not tarObj)then
self:resetData()
end
end
function MainViewPolyFightPage:SetData( )
-- body
local fightInfo = PvpProxy.Instance:GetFightStatInfo()
if(fightInfo.player_num ~= self.player_num )then
self.player_num = fightInfo.player_num
self.curPersonNum.text = string.format(ZhString.MainViewPolyFightPage_CurPersonNum,
fightInfo.player_num,
self.personLimit)
end
-- self:setScoreLabelX()
if(fightInfo.starttime ~= self.starttime)then
self.starttime = fightInfo.starttime
self.tickMg:ClearTick(self)
self.tickMg:CreateTick(0,500,self.updatePvpTime,self)
end
if(fightInfo.score ~= self.score)then
self.score = fightInfo.score
local str = ZhString.MainViewPolyFightPage_GoldAppleNum
self.applCount:Reset()
str = string.format(str,self.score,MainViewPolyFightPage.CointItemId)
self.applCount:SetText(str,true)
end
local str = ZhString.MainViewPolyFightPage_MyRank
local myRank = fightInfo.myrank or "?"
self.myRank.text = string.format(str,myRank)
self:updateRankChangeCCmd()
end
function MainViewPolyFightPage:initView( )
-- body
self.gameObject = self:FindGO("PolyFightInfoBord")
self.name = self:FindComponent("Title",UILabel)
self.name.text = ZhString.MainViewPolyFightPage_Title
self.curPersonNum = self:FindComponent("curPersonNum",UILabel)
self.myRank = self:FindComponent("myRank",UILabel)
self.progressLabel = self:FindComponent("progressLabel",UILabel)
self.applCount = SpriteLabel.CreateAsTable()
self.goldAppleNum = self:FindComponent("goldAppleNum",UIRichLabel)
self.applCount:Init(self.goldAppleNum,nil,30,30,true)
self.progressSlider = self:FindComponent("progress",UISlider)
self.firstName = self:FindComponent("firstName",UILabel)
self.secondName = self:FindComponent("secondName",UILabel)
self.thirdName = self:FindComponent("thirdName",UILabel)
self.rankLabels = {self.firstName,self.secondName,self.thirdName}
self.bg = self:FindComponent("bg",UISprite)
self.content = self:FindGO("content")
self.bgSizeX = self.bg.width
end
function MainViewPolyFightPage:AddViewEvts()
self:AddListenEvt(ServiceEvent.MatchCCmdNtfFightStatCCmd, self.HandleMatchCCmdNtfFightStatCCmd)
self:AddListenEvt(ServiceEvent.MatchCCmdNtfRankChangeCCmd, self.updateRankChangeCCmd)
-- self:AddListenEvt(ItemEvent.ItemUpdate,self.ItemUpdate)
end
function MainViewPolyFightPage:ItemUpdate( )
-- local num = BagProxy.Instance:GetItemNumByStaticID(MainViewPolyFightPage.CointItemId) or 0
-- local str = ZhString.MainViewPolyFightPage_GoldAppleNum
-- self.applCount:Reset()
-- str = string.format(str,num,MainViewPolyFightPage.CointItemId)
-- self.applCount:SetText(str,true)
end
function MainViewPolyFightPage:HandleMatchCCmdNtfFightStatCCmd( note )
-- body
self:SetData()
end
function MainViewPolyFightPage:setScoreLabelX( )
-- body
-- local bd = NGUIMath.CalculateRelativeWidgetBounds(self.scoreLabel.transform,true)
-- local width = bd.size.x
-- local x,y1,z = LuaGameObject.GetLocalPosition(self.scoreLabel.transform)
-- tempVector3:Set((self.bgSizeX - width)/2,y1,z)
-- self.scoreLabel.transform.localPosition = tempVector3
-- x,y,z = LuaGameObject.GetLocalPosition(self.coinCountLable.transform)
-- tempVector3:Set(x,y1 - self.scoreLabel.height - 5,z)
-- self.coinCountLable.transform.localPosition = tempVector3
end
-- function MainViewPolyFightPage:resizeContent( )
-- -- body
-- local bd = NGUIMath.CalculateRelativeWidgetBounds(self.content.transform,true)
-- local height = bd.size.y
-- self.bg.height = height +20
-- end
function MainViewPolyFightPage:updateRankChangeCCmd( )
local fightInfo = PvpProxy.Instance:GetFightStatInfo()
for i=1,3 do
local label = self.rankLabels[i]
local data = fightInfo.ranks and fightInfo.ranks[i] or nil
label.text = data and data.name or ""
end
end
function MainViewPolyFightPage:updatePvpTime( )
local pastTime = ServerTime.CurServerTime()/1000 - self.starttime;
local leftTime = self.totalTime - pastTime
if(leftTime < 0)then
leftTime = 0
self.tickMg:ClearTick(self)
end
leftTime = math.floor(leftTime)
local m = math.floor(leftTime / 60)
local sd = leftTime - m*60
local leftTimeStr = string.format("%02d:%02d",m,sd)
self.progressLabel.text = leftTimeStr
self.progressSlider.value = leftTime/self.totalTime
end