PGRData/Script/matrix/xui/xuicomeacross/XUiComeAcrossGame.lua

143 lines
No EOL
4.1 KiB
Lua

local XUiComeAcrossGame = XLuaUiManager.Register(XLuaUi, "UiComeAcrossGame")
local XUiPanelGame = require("XUi/XUiComeAcross/XUiPanelGame")
local XUiPanelEliminateGame = require("XUi/XUiComeAcross/XUiPanelEliminateGame")
local XUiPanelComeAcrossReward = require("XUi/XUiComeAcross/XUiPanelComeAcrossReward")
local XUiPanelStart = require("XUi/XUiComeAcross/XUiPanelStart")
function XUiComeAcrossGame:OnAwake()
self:InitAutoScript()
self:Init()
end
function XUiComeAcrossGame:Init()
self.ComeAcrossClickGame = XUiPanelGame.New(self.PanelGame, self)
self.ComeAcrossEliminateGame = XUiPanelEliminateGame.New(self.PanelEliminateGame, self)
self.ComeAcrossRewardPanel = XUiPanelComeAcrossReward.New(self.PanelComeAcrossReward, self)
self.StartPanel = XUiPanelStart.New(self.PanelStart, self)
self.CurGame = nil
self.PanelStart.gameObject:SetActive(true)
self.PanelComeAcrossReward.gameObject:SetActive(false)
self.PanelGame.gameObject:SetActive(false)
self.PanelEliminateGame.gameObject:SetActive(false)
self.PanelMask.gameObject:SetActive(false)
self.Timer = XScheduleManager.ScheduleForever(function()
self:Update()
end, 0)
end
function XUiComeAcrossGame:OnStart(gameData)
self.GameData = gameData
local gameType = gameData.GameConfig.Type
if gameType == ComeAcrossGameType.GAME_CLICK then
self.CurGame = self.ComeAcrossClickGame
else
self.CurGame = self.ComeAcrossEliminateGame
end
local position = self.GameData.Position
self.StartPanel:SetupContent(self.GameData)
self:SetUiSprite(self.ImgBg, position.BgIcon)
self:PlayAnimation("UiComeAcrossGameStartBegin")
end
function XUiComeAcrossGame:OnFinish(result)
if not self.GameData then
return
end
local finitshNum = 0
for _, v in ipairs(result) do
if v == 1 then
finitshNum = finitshNum + 1
end
end
XDataCenter.ComeAcrossManager.ReqTrustGameResultRequest(self.GameData.Character.Id, self.GameData.GameConfig.Id, finitshNum, function()
self.PanelStart.gameObject:SetActive(true)
self.PanelMask.gameObject:SetActive(false)
self.CurGame.GameObject:SetActive(false)
self.StartPanel:SetupResult()
end)
end
function XUiComeAcrossGame:SetupReward()
local result = XDataCenter.ComeAcrossManager.GetLastResult()
if result then
self.PanelComeAcrossReward.gameObject:SetActive(true)
self.ComeAcrossRewardPanel:SetupReward(self.GameData, result)
end
end
function XUiComeAcrossGame:OnEnable()
end
function XUiComeAcrossGame:OnDisable()
end
function XUiComeAcrossGame:OnDestroy()
if self.Timer ~= nil then
XScheduleManager.UnSchedule(self.Timer)
self.Timer = nil
end
end
function XUiComeAcrossGame:OnNotify()
end
function XUiComeAcrossGame:Update()
local dt = CS.UnityEngine.Time.deltaTime
if self.CurGame then
self.CurGame:Update(dt)
end
end
-- auto
-- Automatic generation of code, forbid to edit
function XUiComeAcrossGame:InitAutoScript()
self:AutoInitUi()
self:AutoAddListener()
end
function XUiComeAcrossGame:AutoInitUi()
self.PanelStart = self.Transform:Find("Animator/FullScreenBackground/PanelStart")
self.PanelGame = self.Transform:Find("Animator/FullScreenBackground/PanelGame")
self.PanelComeAcrossReward = self.Transform:Find("Animator/FullScreenBackground/PanelComeAcrossReward")
self.PanelMask = self.Transform:Find("Animator/FullScreenBackground/PanelMask")
self.PanelEliminateGame = self.Transform:Find("Animator/FullScreenBackground/PanelEliminateGame")
self.ImgBg = self.Transform:Find("Animator/FullScreenBackground/ImgBg"):GetComponent("Image")
end
function XUiComeAcrossGame:AutoAddListener()
end
-- auto
function XUiComeAcrossGame:OnBtnSelectClick()
if not self.CurGame then
return
end
self.PanelStart.gameObject:SetActive(false)
self.PanelMask.gameObject:SetActive(true)
self.CurGame.GameObject:SetActive(true)
self.CurGame:SetupGameData(self.GameData)
self.CurGame:Play()
end
function XUiComeAcrossGame:OnSliderFavorClick()
end