|
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
|