2020-08-06 17:37:07 +08:00
|
|
|
require("Base/BasePanel")
|
2020-07-16 20:24:28 +08:00
|
|
|
XuanYuanMirrorPanel = Inherit(BasePanel)
|
2020-08-05 15:00:56 +08:00
|
|
|
local specialConfig = ConfigManager.GetConfig(ConfigName.SpecialConfig)
|
2020-07-16 20:24:28 +08:00
|
|
|
local this = XuanYuanMirrorPanel
|
2020-07-15 16:27:58 +08:00
|
|
|
local hasFresh = false
|
|
|
|
local orginLayer = 0
|
2020-08-05 15:00:56 +08:00
|
|
|
|
|
|
|
local type = {
|
|
|
|
[1] = {
|
|
|
|
bg = "ui_fb_btn_jy",
|
2020-08-11 09:48:21 +08:00
|
|
|
name = "人杰宝境",
|
2020-08-05 15:00:56 +08:00
|
|
|
gameObject = "btnRoot/circle/root/renjiebaojing" ,
|
|
|
|
redPointType = RedPointType.People_Mirror
|
|
|
|
},
|
|
|
|
[2] = {
|
|
|
|
bg = "ui_fb_btn_gh",
|
2020-08-11 09:48:21 +08:00
|
|
|
name = "佛禅宝境",
|
2020-08-05 15:00:56 +08:00
|
|
|
gameObject = "btnRoot/circle/root/fuochanbaojing" ,
|
|
|
|
redPointType = RedPointType.Buddhist_Mirror
|
|
|
|
},
|
|
|
|
[3] = {
|
|
|
|
bg = "ui_fb_btn_sl",
|
2020-08-11 09:48:21 +08:00
|
|
|
name = "妖灵宝境",
|
2020-08-05 15:00:56 +08:00
|
|
|
gameObject = "btnRoot/circle/root/yaolingbaojing" ,
|
|
|
|
redPointType = RedPointType.Magic_Mirror
|
|
|
|
},
|
|
|
|
[4] = {
|
|
|
|
bg = "ui_fb_btn_jq",
|
2020-08-11 09:48:21 +08:00
|
|
|
name = "道玄宝境",
|
2020-08-05 15:00:56 +08:00
|
|
|
gameObject = "btnRoot/circle/root/daoxuanbaojing" ,
|
2020-08-11 09:48:21 +08:00
|
|
|
redPointType = RedPointType.Taoist_Mirror
|
2020-08-05 15:00:56 +08:00
|
|
|
},
|
|
|
|
}
|
2020-08-11 09:48:21 +08:00
|
|
|
local NumConvertWeek = {[1]="一",[2]="二",[3]="三",[4]="四",[5]="五",[6]="六",[7]="日"}
|
2020-07-15 16:27:58 +08:00
|
|
|
--初始化组件(用于子类重写)
|
2020-07-16 20:24:28 +08:00
|
|
|
function this:InitComponent()
|
|
|
|
this.btnHelp = Util.GetGameObject(self.gameObject, "btnRoot/btnhelp")
|
|
|
|
this.helpPosition = this.btnHelp:GetComponent("RectTransform").localPosition
|
|
|
|
this.btnRank = Util.GetGameObject(self.gameObject, "btnRoot/btnRank")
|
|
|
|
this.btnReward = Util.GetGameObject(self.gameObject, "btnRoot/btnReward")
|
|
|
|
this.btnClose = Util.GetGameObject(self.gameObject, "btnRoot/btnBack")
|
|
|
|
|
|
|
|
this.remainTimes = Util.GetGameObject(self.gameObject, "remainTimes") :GetComponent("Text")
|
2020-07-15 16:27:58 +08:00
|
|
|
|
|
|
|
this.effect = Util.GetGameObject(self.gameObject, "CarbonTypePanel_effect")
|
|
|
|
this.wind = Util.GetGameObject(self.gameObject, "CarbonTypePanel_effect/juneng_chenggong/GameObject")
|
|
|
|
|
|
|
|
orginLayer = 0
|
|
|
|
|
|
|
|
this.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform)
|
|
|
|
this.AnimRoot = Util.GetGameObject(self.gameObject, "btnRoot/circle/root")
|
|
|
|
end
|
|
|
|
|
|
|
|
local index = 1
|
|
|
|
--绑定事件(用于子类重写)
|
2020-07-16 20:24:28 +08:00
|
|
|
function this:BindEvent()
|
|
|
|
Util.AddClick(this.btnHelp, function()
|
|
|
|
UIManager.OpenPanel(UIName.HelpPopup,HELP_TYPE.XuanYuanMirror,this.helpPosition.x,this.helpPosition.y)
|
2020-07-15 16:27:58 +08:00
|
|
|
end)
|
2020-07-16 20:24:28 +08:00
|
|
|
Util.AddClick(this.btnRank, function()
|
2020-08-11 15:11:33 +08:00
|
|
|
UIManager.OpenPanel(UIName.XuanYuanMirrorRankPopup)
|
2020-07-15 16:27:58 +08:00
|
|
|
end)
|
2020-07-16 20:24:28 +08:00
|
|
|
Util.AddClick(this.btnReward, function()
|
2020-08-11 15:11:33 +08:00
|
|
|
UIManager.OpenPanel(UIName.XuanYuanMirrorRewardSortPopup)
|
2020-07-16 20:24:28 +08:00
|
|
|
end)
|
|
|
|
Util.AddClick(this.btnClose, function()
|
|
|
|
this:OnClose()
|
2020-07-15 16:27:58 +08:00
|
|
|
end)
|
|
|
|
end
|
|
|
|
|
|
|
|
--添加事件监听(用于子类重写)
|
2020-07-16 20:24:28 +08:00
|
|
|
function this:AddListener()
|
2020-08-11 09:48:21 +08:00
|
|
|
Game.GlobalEvent:AddEvent(GameEvent.FunctionCtrl.OnFunctionOpen, this.UpdateCarbonContent)
|
2020-07-15 16:27:58 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
--移除事件监听(用于子类重写)
|
2020-07-16 20:24:28 +08:00
|
|
|
function this:RemoveListener()
|
2020-08-11 09:48:21 +08:00
|
|
|
Game.GlobalEvent:RemoveEvent(GameEvent.FunctionCtrl.OnFunctionOpen, this.UpdateCarbonContent)
|
2020-07-15 16:27:58 +08:00
|
|
|
end
|
|
|
|
|
2020-07-16 20:24:28 +08:00
|
|
|
function this:OnOpen()
|
2020-07-15 16:27:58 +08:00
|
|
|
this.UpView:OnOpen({ showType = UpViewOpenType.ShowRight, panelType = PanelType.Main })
|
|
|
|
end
|
|
|
|
|
|
|
|
--界面打开时调用(用于子类重写)
|
2020-07-16 20:24:28 +08:00
|
|
|
function this:OnShow(...)
|
2020-08-11 09:48:21 +08:00
|
|
|
this.UpdateCarbonContent()
|
2020-07-15 16:27:58 +08:00
|
|
|
-- 音效
|
|
|
|
SoundManager.PlayMusic(SoundConfig.BGM_Carbon)
|
|
|
|
-- 播放动画
|
|
|
|
|
2020-07-16 20:24:28 +08:00
|
|
|
this:PlayAni()
|
2020-07-15 16:27:58 +08:00
|
|
|
this.PlayScaleAnim()
|
|
|
|
end
|
|
|
|
|
2020-08-05 15:00:56 +08:00
|
|
|
function this:GetOpenTime(id)
|
2020-08-05 21:01:20 +08:00
|
|
|
local str = nil
|
2020-08-11 09:48:21 +08:00
|
|
|
LogBlue("id:"..id)
|
|
|
|
local isFunction = false
|
2020-08-11 15:11:33 +08:00
|
|
|
local config = ConfigManager.GetConfigData(ConfigName.SpecialConfig,70)
|
2020-08-11 09:48:21 +08:00
|
|
|
if config then
|
|
|
|
LogBlue(config.Value)
|
|
|
|
for k,v in ipairs(string.split(config.Value,"|")) do
|
|
|
|
isFunction = false
|
|
|
|
LogBlue(v)
|
|
|
|
for n,m in ipairs(string.split(v,"#")) do
|
|
|
|
LogBlue("n:"..n.." m:"..m)
|
|
|
|
if tonumber(n) == 1 and tonumber(m) == id then
|
|
|
|
isFunction = true
|
|
|
|
else
|
|
|
|
if isFunction then
|
|
|
|
if str then
|
|
|
|
str =str.. "、周"..NumConvertWeek[tonumber(m)]
|
|
|
|
else
|
|
|
|
str = "周"..NumConvertWeek[tonumber(m)]
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2020-08-05 21:01:20 +08:00
|
|
|
return str
|
2020-08-05 15:00:56 +08:00
|
|
|
end
|
|
|
|
|
2020-08-11 09:48:21 +08:00
|
|
|
|
|
|
|
|
|
|
|
this.UpdateCarbonContent = function()
|
2020-08-05 15:00:56 +08:00
|
|
|
if not type then
|
|
|
|
return
|
|
|
|
end
|
2020-08-11 09:48:21 +08:00
|
|
|
local openFunctions = {}
|
2020-08-05 15:00:56 +08:00
|
|
|
for k,v in pairs(type) do
|
2020-08-11 09:48:21 +08:00
|
|
|
local go = Util.GetGameObject(this.gameObject, v.gameObject)
|
2020-08-05 15:00:56 +08:00
|
|
|
BindRedPointObject(v.redPointType, Util.GetGameObject(go, "redPoint"))
|
|
|
|
go:GetComponent("Image").sprite = Util.LoadSprite(v.bg)
|
|
|
|
Util.GetGameObject(go, "titileBg/Text"):GetComponent("Text").text =v.name
|
2020-08-11 09:48:21 +08:00
|
|
|
LogGreen("k.state:"..XuanYuanMirrorManager.GetMirrorState(k))
|
|
|
|
local state = XuanYuanMirrorManager.GetMirrorState(k) == 1
|
|
|
|
if not state then
|
|
|
|
local timeStr = this:GetOpenTime(k)
|
2020-08-05 21:01:20 +08:00
|
|
|
Util.GetGameObject(go, "timeBg/Text"):GetComponent("Text").text = timeStr.."开启"
|
|
|
|
else
|
2020-08-11 09:48:21 +08:00
|
|
|
openFunctions[k] = {}
|
|
|
|
openFunctions[k].timeComp = Util.GetGameObject(go, "timeBg/Text"):GetComponent("Text")
|
2020-08-05 21:01:20 +08:00
|
|
|
end
|
2020-08-11 09:48:21 +08:00
|
|
|
Util.SetGray(go,not state)
|
2020-08-05 15:00:56 +08:00
|
|
|
Util.AddOnceClick(go ,function()
|
2020-08-11 09:48:21 +08:00
|
|
|
if state then
|
|
|
|
UIManager.OpenPanel(UIName.XuanYuanMirrorPanelList,k,XuanYuanMirrorManager.GetMirrorLevelData(k))
|
|
|
|
else
|
|
|
|
PopupTipPanel.ShowTip(type[k].neme.."未开启!")
|
|
|
|
end
|
2020-08-05 15:00:56 +08:00
|
|
|
end)
|
|
|
|
end
|
2020-08-11 09:48:21 +08:00
|
|
|
this:TimeCountDown(openFunctions)
|
|
|
|
this.remainTimes.text = XuanYuanMirrorManager.GetTimeTip()
|
2020-08-05 15:00:56 +08:00
|
|
|
end
|
|
|
|
|
2020-07-15 16:27:58 +08:00
|
|
|
function this:OnSortingOrderChange()
|
|
|
|
Util.AddParticleSortLayer(this.effect, self.sortingOrder - orginLayer)
|
|
|
|
Util.AddParticleSortLayer(this.wind, self.sortingOrder - orginLayer)
|
|
|
|
|
|
|
|
orginLayer = self.sortingOrder
|
|
|
|
end
|
|
|
|
|
|
|
|
|
2020-07-16 20:24:28 +08:00
|
|
|
function this:PlayAni()
|
2020-07-15 16:27:58 +08:00
|
|
|
-- 启动定时器
|
|
|
|
this.StartCountTime()
|
|
|
|
-- 开门音效
|
|
|
|
if not this.isPlayDoorAudio then
|
|
|
|
this.isPlayDoorAudio = true
|
|
|
|
Timer.New(function ()
|
|
|
|
if this.isPlayDoorAudio then
|
|
|
|
SoundManager.PlaySound(SoundConfig.Sound_Door)
|
|
|
|
end
|
|
|
|
end, 1.3):Start()
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
function this.PlayScaleAnim()
|
|
|
|
local isOpen = FunctionOpenMananger.GetRootState(PanelTypeView.Carbon)
|
|
|
|
if isOpen then
|
|
|
|
PlayUIAnim(this.AnimRoot)
|
|
|
|
else
|
|
|
|
PlayUIAnimBack(this.AnimRoot)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
function this.StartCountTime()
|
2020-07-16 20:24:28 +08:00
|
|
|
|
2020-07-15 16:27:58 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
function this.FreshIconShow(id)
|
|
|
|
if not hasFresh then
|
|
|
|
hasFresh = true
|
|
|
|
|
|
|
|
this.refreshTimer = nil
|
|
|
|
this.refreshTimer = Timer.New(function ()
|
2020-07-21 10:42:20 +08:00
|
|
|
Util.SetGray(this.btnDaoxuan, not ActTimeCtrlManager.SingleFuncState(46))
|
2020-07-15 16:27:58 +08:00
|
|
|
this.StartCountTime()
|
|
|
|
end, 1)
|
|
|
|
this.refreshTimer:Start()
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
--界面关闭时调用(用于子类重写)
|
2020-07-16 20:24:28 +08:00
|
|
|
function this:OnClose()
|
2020-07-15 16:27:58 +08:00
|
|
|
this.isPlayDoorAudio = false
|
2020-08-11 09:48:21 +08:00
|
|
|
self.gameObject:SetActive(false)
|
|
|
|
PlayerManager.carbonType = 2
|
|
|
|
UIManager.OpenPanel(UIName.CarbonTypePanelV2)
|
2020-07-15 16:27:58 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
--界面销毁时调用(用于子类重写)
|
2020-07-16 20:24:28 +08:00
|
|
|
function this:OnDestroy()
|
2020-08-05 21:01:20 +08:00
|
|
|
for k,v in pairs(type) do
|
|
|
|
ClearRedPointObject(v.redPointType,Util.GetGameObject(self.gameObject, v.gameObject.."/redPoint"))
|
|
|
|
end
|
2020-07-15 16:27:58 +08:00
|
|
|
SubUIManager.Close(this.UpView)
|
2020-08-11 09:48:21 +08:00
|
|
|
if self.timer then
|
|
|
|
self.timer:Stop()
|
|
|
|
self.timer = nil
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
--刷新时间
|
|
|
|
function this:TimeCountDown(_openFunctions)
|
|
|
|
if self.timer then
|
|
|
|
self.timer:Stop()
|
|
|
|
self.timer = nil
|
|
|
|
end
|
|
|
|
for k,v in pairs(_openFunctions) do
|
|
|
|
v.remainTime = XuanYuanMirrorManager.GetMirrorEndTime(k) - PlayerManager.serverTime
|
|
|
|
v.timeComp.text = TimeToHMS(v.remainTime).."后关闭"
|
|
|
|
end
|
|
|
|
self.timer = Timer.New(function()
|
|
|
|
for k,v in pairs(_openFunctions) do
|
|
|
|
v.remainTime = v.remainTime - 1
|
|
|
|
if v.remainTime > 0 then
|
|
|
|
v.timeComp.text = TimeToHMS(v.remainTime).."后关闭"
|
|
|
|
else
|
|
|
|
this:UpdateCarbonContent()
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end, 1, -1, true)
|
|
|
|
self.timer:Start()
|
2020-07-15 16:27:58 +08:00
|
|
|
end
|
|
|
|
|
2020-07-16 20:24:28 +08:00
|
|
|
return XuanYuanMirrorPanel
|