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

329 lines
10 KiB
Plaintext

MainViewGvgPage = class("MainViewGvgPage",SubView)
autoImport("GvgProxy")
autoImport("GvgQuestTip")
local tempVector3 = LuaVector3.zero
-- MainViewGvgPage.FinishType = {
-- }
local calSize = NGUIMath.CalculateRelativeWidgetBounds
local getLocalPos = LuaGameObject.GetLocalPosition
function MainViewGvgPage:Init()
self:AddViewEvts()
self:initView()
self:initData()
self:resetData()
end
function MainViewGvgPage:resetData( )
self.isDefSide = false
if(self.tickMg)then
self.tickMg:ClearTick(self)
end
end
function MainViewGvgPage:initData( )
-- body
self.specialSusTime = GameConfig.specialSusTime
self.specialSusTime = self.specialSusTime and self.specialSusTime or 300
self.tickMg = TimeTickManager.Me()
self.gvgIns = GvgProxy.Instance
end
function MainViewGvgPage:Show( tarObj )
MainViewGvgPage.super.Show(self,tarObj)
if(not tarObj)then
self:SetData()
end
self.curServerT = ServerTime.CurServerTime()/1000
end
function MainViewGvgPage:Hide( tarObj )
MainViewGvgPage.super.Hide(self,tarObj)
if(not tarObj)then
self:resetData()
end
TipsView.Me():HideTip(GvgQuestTip)
end
function MainViewGvgPage:SetData( )
-- body
self:updateGuildInfo()
self:updateCalmdown()
self:updateHonorValue()
-- self:updateMetal_hpper()
self:updateDangerTime()
self:resizeContent()
self.tickMg:ClearTick(self)
self.tickMg:CreateTick(0,1000,self.updateCountTime,self)
end
function MainViewGvgPage:initView( )
-- body
self.gameObject = self:FindGO("GvgInfoBord")
self.progress = self:FindGO("progress")
self.progressSlider = self.progress:GetComponent(UISlider)
self.progressBg = self:FindComponent("bg",UISprite,self.progress)
self.progressForebg = self:FindComponent("forebg",UISprite,self.progress)
self.thumbBg = self:FindGO("bg",self.thumbCt):GetComponent(UISprite)
self.name = self:FindComponent("Title",UILabel)
-- self.countDownLabel = self:FindComponent("Title",UILabel)
self.countDownLabel = self:FindComponent("DescriptionText",UILabel)
self.scoreLabel = self:FindComponent("score",UILabel)
self.progressLabel = self:FindComponent("progressLabel",UILabel)
self.bg = self:FindComponent("contentBg",UISprite)
self.content = self:FindGO("content")
self.effectObj = self:FindGO("EffectHolder")
local resPath = ResourcePathHelper.EffectUI(EffectMap.UI.HlightBox);
local effect = Game.AssetManager_UI:CreateAsset(resPath,self.effectObj);
effect.transform.localScale = Vector3.one
local hlightTexture = self:FindGO("pic_skill_uv_add",effect)
hlightTexture = hlightTexture:GetComponent(UIWidget)
hlightTexture.depth = 3000
hlightTexture.width = 57
hlightTexture.height = 101
self:Hide(self.effectObj)
self.bgSizeX = self.bg.width
local objLua = self.gameObject:GetComponent(GameObjectForLua)
objLua.onEnable = function ( )
-- body
LeanTween.delayedCall(0.8, function ()
self:resizeContent()
end)
end
self.taskCellFoldSymbolSp = self:FindComponent("taskCellFoldSymbol",UISprite)
local clickBox = self:FindGO("taskBordFoldSymbol")
self:AddClickEvent(clickBox,function ( go )
-- helplog("xxxxxclick")
if(self.effectObj)then
self:Hide(self.effectObj)
end
self:stopDelayRemoveEffect()
TipManager.Instance:ShowGvgQuestTip(self.taskCellFoldSymbolSp,NGUIUtil.AnchorSide.Left,{-450,0})
-- if(isPress)then
-- TipsView.Me():ShowStickTip(QuestDetailTip,self.data,NGUIUtil.AnchorSide.TopLeft,self.bgSprite,{0,0})
-- else
-- TipsView.Me():HideTip(GvgQuestTip)
-- end
end)
self.honorValue = self:FindComponent("honorValue",UILabel)
self.honorProgress = self:FindComponent("honorProgress",UISlider)
self.GvgHonorTraceInfo = self:FindGO("GvgHonorTraceInfo")
end
function MainViewGvgPage:updateHonorValue()
local cur = self.gvgIns.questInfoData[FuBenCmd_pb.EGVGDATA_HONOR] or 0
local max = GameConfig.GVGConfig.reward.max_honor or 1200
self.honorProgress.value = cur/max
self.honorValue.text = string.format(ZhString.MainViewGvgPage_HonorValue,cur,max)
if(TipsView.Me().currentTipType == GvgQuestTip)then
TipManager.Instance:ShowGvgQuestTip(self.taskCellFoldSymbolSp,NGUIUtil.AnchorSide.Left,{-450,0})
end
end
function MainViewGvgPage:updateMetal_hpper()
local metal_hpper = self.gvgIns.metal_hpper
metal_hpper = metal_hpper and metal_hpper or 0
self.progressSlider.value = metal_hpper/100
self.progressLabel.text = math.floor(metal_hpper).."%"
if(metal_hpper >= 70)then
self.progressForebg.spriteName = "com_bg_hp"
elseif(metal_hpper >= 25)then
self.progressForebg.spriteName = "com_bg_hp_3s"
else
self.progressForebg.spriteName = "com_bg_hp_2s"
end
end
function MainViewGvgPage:AddViewEvts()
self:AddListenEvt(ServiceEvent.FuBenCmdGuildFireMetalHpFubenCmd, self.updateMetal_hpper)
self:AddListenEvt(ServiceEvent.FuBenCmdGuildFireDangerFubenCmd, self.updateDangerTime)
self:AddListenEvt(ServiceEvent.FuBenCmdGuildFireStopFubenCmd, self.handleFireStopFubenCmd)
self:AddListenEvt(ServiceEvent.FuBenCmdGuildFireNewDefFubenCmd, self.updateGuildInfo)
self:AddListenEvt(ServiceEvent.FuBenCmdGuildFireInfoFubenCmd, self.SetData)
self:AddListenEvt(ServiceEvent.FuBenCmdGuildFireRestartFubenCmd, self.SetData)
self:AddListenEvt(ServiceEvent.FuBenCmdGvgDataSyncCmd, self.updateHonorValue)
self:AddListenEvt(ServiceEvent.FuBenCmdGvgDataUpdateCmd, self.updateHonorValue)
self:AddListenEvt(GVGEvent.ShowNewAchievemnetEffect, self.HandleAchieveEffect)
end
function MainViewGvgPage:resizeContent( )
-- body
if(not self.container.gameObject.activeInHierarchy)then
return
end
local bd = calSize(self.content.transform,false)
local height = bd.size.y
self.bg.height = height+10
local x,y,z = getLocalPos(self.GvgHonorTraceInfo.transform)
local x1,y1,z1 = getLocalPos(self.bg.transform)
tempVector3:Set(x,y1 - height - 20,z)
self.GvgHonorTraceInfo.transform.localPosition = tempVector3
end
function MainViewGvgPage:updateCountTime( totalTime,type )
local susGuildName = self.gvgIns.susGuildName
local danger = self.gvgIns.danger
local finish = self.gvgIns.isFinish
local result = self.gvgIns.result
local dangerTime = self.gvgIns.danger_time
local endfire_time = self.gvgIns.endfire_time
local isDefPerfect = self.gvgIns.def_perfect
-- local calmdown = self.gvgIns.calmdown
-- if(calmdown)
danger = danger and danger or false
finish = finish and finish or false
result = result and result or FuBenCmd_pb.EGUILDFIRERESULT_DEFSPEC
susGuildName = susGuildName and susGuildName or "unknow"
dangerTime = dangerTime and dangerTime or self.curServerT+300
endfire_time = endfire_time and endfire_time or self.curServerT +3000
local leftTime = nil
local str = ""
local countLabel = nil
-- helplog("danger:",tostring(danger),tostring(self.isDefSide),tostring(finish),tostring(result))
if(finish)then
if(result == FuBenCmd_pb.EGUILDFIRERESULT_DEFSPEC)then
if(self.isDefSide)then
str = ZhString.MainViewGvgPage_FinishState_SpecialSus
else
str = ZhString.MainViewGvgPage_FinishState_DefSusCountLabel
end
elseif(result == FuBenCmd_pb.EGUILDFIRERESULT_DEF)then
str = ZhString.MainViewGvgPage_FinishState_Unbreak
else
str = ZhString.MainViewGvgPage_FinishState_Break
end
elseif(danger)then
if(self.isDefSide)then
str = ZhString.MainViewGvgPage_DangerState_Def
else
str = ZhString.MainViewGvgPage_DangerState_Attack
end
leftTime = dangerTime - ServerTime.CurServerTime()/1000
leftTime = math.floor(leftTime)
if(leftTime < 0)then
leftTime = 0
end
local m = math.floor(leftTime / 60)
local s = leftTime - m*60
local time = string.format(ZhString.MainViewGvgPage_LeftTime,m,s)
str = string.format(str,time)
elseif(isDefPerfect)then
str = ZhString.MainViewGvgPage_FinishState_SpecialSus
else
if(self.isDefSide)then
str = ZhString.MainViewGvgPage_NormalState_Def
else
str = ZhString.MainViewGvgPage_NormalState_Attack
end
leftTime = endfire_time - ServerTime.CurServerTime()/1000
end
--guild war left time
local titleLeftTime = endfire_time - ServerTime.CurServerTime()/1000
if(titleLeftTime < 0)then
titleLeftTime = 0
self.tickMg:ClearTick(self,type)
end
titleLeftTime = math.floor(titleLeftTime)
local m = math.floor(titleLeftTime / 60)
local s = titleLeftTime - m*60
self.name.text = string.format(ZhString.MainViewGvgPage_TitleDes,m,s)
--end
--des
local desText = ZhString.MainViewGvgPage_GvgPageTitleDes
local holdName
local sb = LuaStringBuilder.CreateAsTable()
local def_guildid = self.gvgIns.def_guildid
def_guildid = def_guildid and def_guildid or 0
if(def_guildid == 0)then
sb:Append(ZhString.MainViewGvgPage_GvgPageNoDefine)
else
sb:Append('[ ')
sb:Append(self.gvgIns.def_guildname)
sb:Append(' ]')
end
-- helplog("sb:Append(self.gvgIns.def_guildname):",self.gvgIns.def_guildname,self.gvgIns.def_guildid,tostring(isDefPerfect))
-- helplog(tostring(danger),tostring(finish),result)
holdName=sb:ToString()
sb:Destroy()
desText = string.format(desText,holdName,str)
self.countDownLabel.text = desText
--end
self:updateMetal_hpper()
self:resizeContent()
end
function MainViewGvgPage:updateGuildInfo()
local def_guildid = self.gvgIns.def_guildid
def_guildid = def_guildid and def_guildid or 0
local myGuildId = GuildProxy.Instance.myGuildData and GuildProxy.Instance.myGuildData.guid or nil
if(myGuildId == nil)then
self.isDefSide = false
elseif(myGuildId == def_guildid)then
self.isDefSide = true
else
self.isDefSide = false
end
end
function MainViewGvgPage:updateDangerTime()
local isDanger = self.gvgIns.danger
isDanger = isDanger and isDanger or false
if(isDanger)then
if(self.isDefSide)then
else
end
else
end
end
function MainViewGvgPage:stopDelayRemoveEffect()
if(self.BlockRemoveEffectTwId)then
LeanTween.cancel(self.gameObject,self.BlockRemoveEffectTwId)
self.BlockRemoveEffectTwId = nil
end
end
function MainViewGvgPage:delayRemoveEffect()
self:stopDelayRemoveEffect()
local ret = LeanTween.delayedCall(self.gameObject,2,function ( )
self.BlockRemoveEffectTwId = nil
if(self.effectObj)then
self:Hide(self.effectObj)
end
end)
self.BlockRemoveEffectTwId = ret.uniqueId
end
function MainViewGvgPage:HandleAchieveEffect()
if(self.effectObj and TipsView.Me().currentTipType ~= GvgQuestTip)then
self:Show(self.effectObj)
self:delayRemoveEffect()
end
end
function MainViewGvgPage:updateCalmdown(isCalmdown,calmTime)
end
function MainViewGvgPage:handleFireStopFubenCmd()
end