5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
86 lines
3.4 KiB
Lua
86 lines
3.4 KiB
Lua
local LocalData = require("GameCore.Data.LocalData")
|
|
local RapidJson = require("rapidjson")
|
|
local PureAvgPanel = class("PureAvgPanel", BasePanel)
|
|
PureAvgPanel._bAddToBackHistory = false
|
|
PureAvgPanel._tbDefine = {
|
|
{
|
|
sPrefabPath = "Avg/PureAvgUI.prefab",
|
|
sCtrlName = "Game.UI.Avg.PureAvgCtrl"
|
|
}
|
|
}
|
|
function PureAvgPanel:LoadData(sType)
|
|
local sJson = LocalData.GetPlayerLocalData("PlayedAvgNodeId")
|
|
local tb = decodeJson(sJson)
|
|
if type(tb) == "table" then
|
|
self.tbNodeId = tb
|
|
end
|
|
if (self.tbNodeId[tostring(self.mapData.nNodeId)] or {})[sType] then
|
|
local callback = self.mapData.callback
|
|
if callback then
|
|
callback()
|
|
end
|
|
else
|
|
EventManager.Add("StoryDialog_DialogEnd", self, self.OnEvent_StoryDialog_DialogEnd)
|
|
if not self.tbNodeId[tostring(self.mapData.nNodeId)] then
|
|
self.tbNodeId[tostring(self.mapData.nNodeId)] = {}
|
|
end
|
|
self.tbNodeId[tostring(self.mapData.nNodeId)][sType] = true
|
|
LocalData.SetPlayerLocalData("PlayedAvgNodeId", RapidJson.encode(self.tbNodeId))
|
|
EventManager.Hit("StoryDialog_DialogStart", self.mapData.sAvgId, Settings.sCurrentTxtLanguage, Settings.sCurrentVoLanguage, self.mapData.sGroupId)
|
|
end
|
|
end
|
|
function PureAvgPanel:Awake()
|
|
self.tbNodeId = {}
|
|
self.mapData = self._tbParam[1]
|
|
if not self.mapData then
|
|
local wait = function()
|
|
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
|
PanelManager.Home()
|
|
end
|
|
cs_coroutine.start(wait)
|
|
elseif type(self.mapData.sGroupId) ~= "string" then
|
|
self.mapData.sGroupId = nil
|
|
elseif self.mapData.sGroupId == "" then
|
|
self.mapData.sGroupId = nil
|
|
end
|
|
end
|
|
function PureAvgPanel:OnEnable()
|
|
if self.mapData.nType == AllEnum.StoryAvgType.Preview then
|
|
EventManager.Add("StoryDialog_DialogEnd", self, self.OnEvent_StoryDialog_DialogEnd)
|
|
EventManager.Hit("StoryDialog_DialogStart", self.mapData.sAvgId, Settings.sCurrentTxtLanguage, Settings.sCurrentVoLanguage, self.mapData.sGroupId)
|
|
elseif self.mapData.nType == AllEnum.StoryAvgType.PureAvg then
|
|
EventManager.Add("StoryDialog_DialogEnd", self, self.OnEvent_StoryDialog_DialogEnd)
|
|
EventManager.Hit("StoryDialog_DialogStart", self.mapData.sAvgId, Settings.sCurrentTxtLanguage, Settings.sCurrentVoLanguage, self.mapData.sGroupId)
|
|
elseif self.mapData.nType == AllEnum.StoryAvgType.BeforeBattle then
|
|
self:LoadData("Before")
|
|
elseif self.mapData.nType == AllEnum.StoryAvgType.AfterBattle then
|
|
self:LoadData("After")
|
|
elseif self.mapData.nType == AllEnum.StoryAvgType.Plot then
|
|
EventManager.Add("StoryDialog_DialogEnd", self, self.OnEvent_StoryDialog_DialogEnd)
|
|
EventManager.Hit("StoryDialog_DialogStart", self.mapData.sAvgId, Settings.sCurrentTxtLanguage, Settings.sCurrentVoLanguage, self.mapData.sGroupId)
|
|
end
|
|
end
|
|
function PureAvgPanel:OnDisable()
|
|
end
|
|
function PureAvgPanel:OnDestroy()
|
|
end
|
|
function PureAvgPanel:OnEvent_StoryDialog_DialogEnd()
|
|
if self.mapData.nType == AllEnum.StoryAvgType.PureAvg then
|
|
EventManager.Hit("LevelStateChanged", true, true)
|
|
elseif self.mapData.nType == AllEnum.StoryAvgType.BeforeBattle or self.mapData.nType == AllEnum.StoryAvgType.AfterBattle then
|
|
local callback = self.mapData.callback
|
|
if callback then
|
|
callback()
|
|
end
|
|
elseif self.mapData.nType == AllEnum.StoryAvgType.Preview then
|
|
EventManager.Hit(EventId.CloesCurPanel)
|
|
elseif self.mapData.nType == AllEnum.StoryAvgType.Plot then
|
|
local callback = self.mapData.callback
|
|
if callback then
|
|
callback()
|
|
end
|
|
end
|
|
EventManager.Remove("StoryDialog_DialogEnd", self, self.OnEvent_StoryDialog_DialogEnd)
|
|
end
|
|
return PureAvgPanel
|