源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

79 lines
2.4 KiB

DungeonTimer = DungeonTimer or BaseClass(UIPartical)
function DungeonTimer:__init(parent, endTime, callBack, layer_name,position)
self.gameObject = GameObject.New("timer")
self.gameObject.transform:SetParent(parent, false)
-- self.img = self.gameObject:AddComponent(typeof(UnityEngine.UI.Image))
self.transform = self.gameObject.transform
-- self.transform.sizeDelta = Vector2(0,0)
self.position = position
self.runOut_callBack = callBack
self.endTime = endTime
self.layer_name = layer_name or "Main"
self:Run()
end
function DungeonTimer:Run()
self:Stop()
local leftTime = self.endTime - TimeUtil:getServerTime()
if leftTime <= 0 then
if self.runOut_callBack then self.runOut_callBack() end
return
elseif leftTime == 3 then
self:AddUIEffect("ui_effect_paiweinumber", self.transform, self.layer_name, nil, 1, false, 3)
-- lua_resM:setImageSprite(self, self.img, "sceneUI_asset", "scene_countdown_"..leftTime, true)
end
if self.timer_id then
GlobalTimerQuest:CancelQuest(self.timer_id)
self.timer_id = nil
end
local function timer_handler()
local leftTime = self.endTime - TimeUtil:getServerTime()
if leftTime == 0 then
-- lua_resM:setImageSprite(self, self.img, "sceneUI_asset", "scene_countdown_start", true)
-- self:AddUIEffect("effect_paiwei_02", self.transform, self.layer_name, nil, 1, false, 2, nil, function()
self:Stop(true)
if self.runOut_callBack then
self.runOut_callBack()
self.runOut_callBack = nil
end
-- end)
elseif leftTime < 0 then
if self.runOut_callBack then
self.runOut_callBack()
self.runOut_callBack = nil
end
else
if leftTime == 3 then
self:AddUIEffect("ui_effect_paiweinumber", self.transform, self.layer_name, nil, 1, false, 3)
-- lua_resM:setImageSprite(self, self.img, "sceneUI_asset", "scene_countdown_"..leftTime, true)
end
end
end
if self.position then
SetLocalPosition(self.transform,self.position.x,self.position.y,0)
end
self.gameObject:SetActive(true)
self.timer_id = GlobalTimerQuest:AddPeriodQuest(timer_handler, 1)
end
function DungeonTimer:Stop(hide)
if self.timer_id then
GlobalTimerQuest:CancelQuest(self.timer_id)
self.timer_id = nil
end
if hide and self.gameObject then
self.gameObject:SetActive(false)
end
end
function DungeonTimer:__delete()
self:Stop()
if self.gameObject then
destroy(self.gameObject, false)
self.gameObject = nil
end
self.runOut_callBack = nil
end