From c5b6cc5f0d295162d3ccc983a0cfbd384853edf4 Mon Sep 17 00:00:00 2001 From: Evil Factory <36804725+evilfactory@users.noreply.github.com> Date: Tue, 3 May 2022 20:06:34 -0300 Subject: [PATCH] made it possible to change the round summary traitor results --- .../ServerSource/Networking/GameServer.cs | 9 ++++++--- .../ServerSource/Traitors/TraitorMissionResult.cs | 11 +++++++++++ .../BarotraumaShared/Lua/DefaultLib/LibShared.lua | 1 + 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/Barotrauma/BarotraumaServer/ServerSource/Networking/GameServer.cs b/Barotrauma/BarotraumaServer/ServerSource/Networking/GameServer.cs index a3ee147ce..de81f0364 100644 --- a/Barotrauma/BarotraumaServer/ServerSource/Networking/GameServer.cs +++ b/Barotrauma/BarotraumaServer/ServerSource/Networking/GameServer.cs @@ -2590,12 +2590,15 @@ namespace Barotrauma.Networking Log("Ending the round...", ServerLog.MessageType.ServerMessage); } - GameMain.LuaCs.Hook.Call("roundEnd"); - - string endMessage = TextManager.FormatServerMessage("RoundSummaryRoundHasEnded"); var traitorResults = TraitorManager?.GetEndResults() ?? new List(); + List customTraitorResults = GameMain.LuaCs.Hook.Call>("roundEnd"); + if (customTraitorResults != null) + { + traitorResults = customTraitorResults; + } + List missions = GameMain.GameSession.Missions.ToList(); if (GameMain.GameSession.IsRunning) { diff --git a/Barotrauma/BarotraumaServer/ServerSource/Traitors/TraitorMissionResult.cs b/Barotrauma/BarotraumaServer/ServerSource/Traitors/TraitorMissionResult.cs index 2f90a016d..90053ec80 100644 --- a/Barotrauma/BarotraumaServer/ServerSource/Traitors/TraitorMissionResult.cs +++ b/Barotrauma/BarotraumaServer/ServerSource/Traitors/TraitorMissionResult.cs @@ -15,6 +15,17 @@ namespace Barotrauma } } + public TraitorMissionResult(Identifier identifier, string globalEndMessage, bool isCompleted, Character[] characters = null) + { + MissionIdentifier = identifier; + EndMessage = globalEndMessage; + Success = isCompleted; + if (Characters != null) + { + Characters.AddRange(characters); + } + } + public void ServerWrite(IWriteMessage msg) { msg.Write(MissionIdentifier); diff --git a/Barotrauma/BarotraumaShared/Lua/DefaultLib/LibShared.lua b/Barotrauma/BarotraumaShared/Lua/DefaultLib/LibShared.lua index d63b82d1e..fd141fe8a 100644 --- a/Barotrauma/BarotraumaShared/Lua/DefaultLib/LibShared.lua +++ b/Barotrauma/BarotraumaShared/Lua/DefaultLib/LibShared.lua @@ -70,6 +70,7 @@ defaultLib["NetEntityEvent"] = CreateStatic("Barotrauma.Networking.NetEntityEven defaultLib["Screen"] = CreateStatic("Barotrauma.Screen") defaultLib["AttackResult"] = CreateStatic("Barotrauma.AttackResult", true) defaultLib["TempClient"] = CreateStatic("Barotrauma.Networking.TempClient", true) +defaultLib["TraitorMissionResult"] = CreateStatic("Barotrauma.TraitorMissionResult", true) defaultLib["Explosion"] = CreateStatic("Barotrauma.Explosion", true)