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