traitor hooks

This commit is contained in:
Evil Factory
2021-10-11 12:36:22 -03:00
parent 65f956741f
commit 8ba8b7c0c6
2 changed files with 12 additions and 1 deletions
@@ -92,6 +92,13 @@ namespace Barotrauma
var traitorCandidates = new List<Tuple<Client, Character>>();
foreach (Client c in server.ConnectedClients)
{
var result = new LuaResult(GameMain.Lua.hook.Call("traitor.findTraitorCandidate", new object[] { c, team }));
if (result.Bool())
{
traitorCandidates.Add(Tuple.Create(c, c.Character));
continue;
}
if (c.Character == null || c.Character.IsDead || c.Character.Removed || !traitorRoleFilter(c.Character) ||
(team != CharacterTeamType.None && c.Character.TeamID != team))
{
@@ -227,6 +234,7 @@ namespace Barotrauma
foreach (var traitor in Traitors.Values)
{
traitor.Greet(server, CodeWords, CodeResponse, message => pendingMessages[traitor].Add(message));
GameMain.Lua.hook.Call("traitor.traitorAssigned", new object[] { traitor });
}
pendingMessages.ForEach(traitor => traitor.Value.ForEach(message => traitor.Key.SendChatMessage(message, Identifier)));
pendingMessages.ForEach(traitor => traitor.Value.ForEach(message => traitor.Key.SendChatMessageBox(message, Identifier)));
@@ -392,6 +392,8 @@ namespace Barotrauma
UserData.RegisterType<Rand.RandSync>();
UserData.RegisterType<Skill>();
UserData.RegisterType<SkillPrefab>();
UserData.RegisterType<TraitorMissionPrefab>();
UserData.RegisterType<TraitorMissionResult>();
UserData.RegisterType<World>();
UserData.RegisterType<Fixture>();
@@ -412,7 +414,8 @@ namespace Barotrauma
AddCallMetaMember(UserData.RegisterType<SubmarineInfo>());
#if SERVER
UserData.RegisterType<Traitor>();
UserData.RegisterType<Traitor.TraitorMission>();
#elif CLIENT
UserData.RegisterType<LuaGUI>();
UserData.RegisterType<ChatBox>();