更新
This commit is contained in:
parent
384bf38b03
commit
2f84f42378
@ -7,6 +7,7 @@ local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
--> Events
|
||||
local BD_ChallengeEnd = ReplicatedStorage.Events.BD_ChallengeEnd
|
||||
local RE_ChallengeBoss = ReplicatedStorage.Events.RE_ChallengeBoss
|
||||
local RE_ChallengeLevel = ReplicatedStorage.Events.RE_ChallengeLevel
|
||||
|
||||
--> Dependencies
|
||||
local LevelProxy = require(ServerStorage.Proxy.LevelProxy)
|
||||
@ -16,6 +17,10 @@ local Utils = require(ReplicatedStorage.Tools.Utils)
|
||||
--> Json
|
||||
local JsonLevel = require(ReplicatedStorage.Json.Level)
|
||||
|
||||
--> Constants
|
||||
local SpawnLocation = game.Workspace:WaitForChild("SpawnLocation")
|
||||
local ChallengeLocation
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
local LevelLoop = {}
|
||||
@ -27,6 +32,7 @@ function LevelLoop.new(Player: Player, PlayerRole: TypeList.Character)
|
||||
self.Player = Player
|
||||
self.PlayerRole = PlayerRole
|
||||
self.TaskAutoChallenge = nil
|
||||
self.AutoChallenge = false
|
||||
|
||||
self.ConChallengeEnd = BD_ChallengeEnd.Event:Connect(function(Player: Player, LevelId: number)
|
||||
if Player ~= self.Player then return end
|
||||
@ -36,13 +42,32 @@ function LevelLoop.new(Player: Player, PlayerRole: TypeList.Character)
|
||||
if Player ~= self.Player then return end
|
||||
self:OnChallengeBoss(Player)
|
||||
end)
|
||||
self.ConChallengeLevel = RE_ChallengeLevel.OnServerEvent:Connect(function(Player: Player, isStart: boolean)
|
||||
if Player ~= self.Player then return end
|
||||
self:OnChallengeLevel(isStart)
|
||||
end)
|
||||
|
||||
self:AutoChallenge()
|
||||
-- self:AutoChallenge()
|
||||
return self
|
||||
end
|
||||
|
||||
-- 手动挑战关卡
|
||||
function LevelLoop:OnChallengeLevel(isStart: boolean)
|
||||
self.AutoChallenge = isStart
|
||||
if isStart then
|
||||
self:AutoChallenge()
|
||||
else
|
||||
-- TODO: 传送回城镇
|
||||
|
||||
LevelProxy:ChallengeEnd(self.Player, false)
|
||||
end
|
||||
end
|
||||
|
||||
function LevelLoop:AutoChallenge(ignoreBoss: boolean?)
|
||||
if not self.AutoChallenge then return end
|
||||
print("AutoChallenge")
|
||||
|
||||
-- TODO: 传送到关卡起点
|
||||
|
||||
-- TODO: 回退有bug,不能一关一关回退
|
||||
|
||||
@ -62,6 +87,7 @@ function LevelLoop:AutoChallenge(ignoreBoss: boolean?)
|
||||
end
|
||||
|
||||
function LevelLoop:OnChallengeEnd(Player: Player, LevelId: number, result: boolean)
|
||||
if not self.AutoChallenge then return end
|
||||
if self.ChallengeBoss then self.ChallengeBoss = nil return end
|
||||
self.TaskAutoChallenge = task.spawn(function()
|
||||
task.wait(3)
|
||||
@ -95,6 +121,10 @@ function LevelLoop:Destroy()
|
||||
self.ConChallengeEnd:Disconnect()
|
||||
self.ConChallengeEnd = nil
|
||||
end
|
||||
if self.ConChallengeLevel then
|
||||
self.ConChallengeLevel:Disconnect()
|
||||
self.ConChallengeLevel = nil
|
||||
end
|
||||
self = nil
|
||||
end
|
||||
|
||||
|
@ -13,6 +13,7 @@ local Utils = require(ReplicatedStorage.Tools.Utils)
|
||||
|
||||
--> Events
|
||||
local RE_ChallengeBoss = ReplicatedStorage.Events.RE_ChallengeBoss
|
||||
local RE_ChallengeLevel = ReplicatedStorage.Events.RE_ChallengeLevel
|
||||
|
||||
local LocalPlayer = game:GetService("Players").LocalPlayer
|
||||
|
||||
@ -80,6 +81,8 @@ function MainWindow:Init(UIManager: table, Data: table?)
|
||||
["_btnMainCreate"] = 0,
|
||||
["_btnMainCha"] = 0,
|
||||
["_btnMainAttributeUpgrade"] = 0,
|
||||
["_btnStopChallenge"] = 0,
|
||||
["_btnStartChallenge"] = 0,
|
||||
|
||||
-- 关卡
|
||||
["_tmpNowLevel"] = 0,
|
||||
@ -157,6 +160,18 @@ function MainWindow:SetShowForgeBar(nowForgeTime : number, moneyValue: number)
|
||||
end
|
||||
end
|
||||
|
||||
function MainWindow:OnClickChallengeButton(isStart: boolean)
|
||||
if isStart then
|
||||
RE_ChallengeLevel:FireServer(true)
|
||||
self.Variables["_btnStartChallenge"].Visible = false
|
||||
self.Variables["_btnStopChallenge"].Visible = true
|
||||
else
|
||||
RE_ChallengeLevel:FireServer(false)
|
||||
self.Variables["_btnStartChallenge"].Visible = true
|
||||
self.Variables["_btnStopChallenge"].Visible = false
|
||||
end
|
||||
end
|
||||
|
||||
function MainWindow:OnOpenWindow()
|
||||
UIWindow.OnOpenWindow(self)
|
||||
|
||||
@ -172,11 +187,19 @@ function MainWindow:OnOpenWindow()
|
||||
local challengeBossCon = self.Variables["_btnChallengeBoss"].Activated:Connect(function()
|
||||
self:OnClickChallengeBoss()
|
||||
end)
|
||||
local stopChallengeCon = self.Variables["_btnStopChallenge"].Activated:Connect(function()
|
||||
self:OnClickChallengeButton(false)
|
||||
end)
|
||||
local startChallengeCon = self.Variables["_btnStartChallenge"].Activated:Connect(function()
|
||||
self:OnClickChallengeButton(true)
|
||||
end)
|
||||
|
||||
table.insert(self.Connections, createCon)
|
||||
table.insert(self.Connections, chaCon)
|
||||
table.insert(self.Connections, attributeUpgradeCon)
|
||||
table.insert(self.Connections, challengeBossCon)
|
||||
table.insert(self.Connections, stopChallengeCon)
|
||||
table.insert(self.Connections, startChallengeCon)
|
||||
|
||||
-- TODO: 暂时用主关卡数显示,我记得之前这里主要是记录的,Challenge中才是正在挑战的内容
|
||||
-- TODO: 之后LevelProxy也应该挪到ReplicatedStorage下,之前可能是因为觉得Challenge是临时的内容所以放在workspace下,但是逻辑做的不统一
|
||||
|
Loading…
x
Reference in New Issue
Block a user