traitor hooks
This commit is contained in:
@@ -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>();
|
||||
|
||||
Reference in New Issue
Block a user