internal static void Post_ReceiveCommand(LG_ComputerTerminalCommandInterpreter __instance, TERM_Command cmd, string inputLine, string param1, string param2) { if ((int)cmd >= 100000) { var cmdStr = inputLine.Split(' ')[0].ToLower(); TerminalMessage.OnRecievedCustomCmd?.Invoke(__instance.m_terminal, cmdStr, param1, param2); } else { TerminalMessage.OnReceivedCmd?.Invoke(__instance.m_terminal, cmd, param1, param2); } }
public static void SetEndOfQueue(this LG_ComputerTerminalCommandInterpreter cmd, Action endOfQueue) { cmd.OnEndOfQueue = new Action(endOfQueue); }
public static void Postfix(TERM_Command cmd, string inputLine, string param1, string param2, LG_ComputerTerminalCommandInterpreter __instance) { OffshootMain.log.LogDebug("TERMINAL COMMAND: " + cmd); if (cmd == TERM_Command.ReactorShutdown) { OffshootMain.log.LogDebug("Triggered Shutdown"); __instance.ReactorShutdown(); } }
public static bool Prefix(LG_ComputerTerminalCommandInterpreter __instance, string param1, string param2, ref bool __result) { if (__instance.m_terminal.UplinkPuzzle.Connected) { __instance.AddOutput(TerminalLineType.SpinningWaitNoDone, "Attempting uplink verification ", 5f); if (__instance.m_terminal.UplinkPuzzle.CurrentRound.CorrectCode.ToUpper() == param1.ToUpper()) { __instance.AddOutput("Verfication code ", true); __instance.AddOutput(TerminalLineType.Warning, StringTools.RandomChars(true, 20, 40), 0.8f); __instance.AddOutput(TerminalLineType.Warning, StringTools.RandomChars(true, 20, 40), 0.8f); __instance.AddOutput(TerminalLineType.Warning, StringTools.RandomChars(true, 20, 40), 0.8f); __instance.AddOutput(TerminalLineType.Warning, StringTools.RandomChars(true, 20, 40), 0.8f); __instance.AddOutput(TerminalLineType.Warning, StringTools.RandomChars(true, 20, 40), 0.8f); __instance.AddOutput("correct!", true); if (__instance.m_terminal.UplinkPuzzle.TryGoToNextRound()) { __instance.AddOutput(TerminalLineType.ProgressWait, "Building uplink verification signature", 12f); __instance.AddOutput("", true); __instance.AddOutput("Verfication code", true); __instance.AddOutput(TerminalLineType.Warning, StringTools.RandomChars(true, 20, 40), 0.8f); __instance.AddOutput(TerminalLineType.Warning, StringTools.RandomChars(true, 20, 40), 0.8f); __instance.AddOutput(TerminalLineType.Warning, StringTools.RandomChars(true, 20, 40), 0.8f); __instance.AddOutput(TerminalLineType.Warning, StringTools.RandomChars(true, 20, 40), 0.8f); __instance.AddOutput(string.Concat(new string[] { "needed! Use public key <color=orange>", __instance.m_terminal.UplinkPuzzle.CurrentRound.CorrectPrefix, "</color> to obtain the code." }), true); __instance.OnEndOfQueue = new Action(() => { __instance.m_terminal.UplinkPuzzle.CurrentRound.ShowGui = true; }); } else { __instance.AddOutput(TerminalLineType.SpinningWaitNoDone, "Waiting for uplink host response..", 3f); __instance.AddOutput("", true); __instance.AddOutput(TerminalLineType.Normal, "SUCCESS! Uplink to " + __instance.m_terminal.UplinkPuzzle.TerminalUplinkIP + " Established Successfully!", 2f); __instance.AddOutput("", true); __instance.AddOutput(TerminalLineType.Warning, "<color=red>An unknown system error occured!</color>", 0.8f); __instance.AddOutput(TerminalLineType.Normal, "Please contact your network administrator."); __instance.OnEndOfQueue = new Action(() => { //WardenObjectiveManager.StopAllWardenObjectiveEnemyWaves(); __instance.m_terminal.UplinkPuzzle.Solved = true; Il2CppSystem.Action onPuzzleSolved = __instance.m_terminal.UplinkPuzzle.OnPuzzleSolved; if (onPuzzleSolved == null) { return; } onPuzzleSolved.Invoke(); }); } } else { __instance.AddOutput("", true); __instance.AddOutput(TerminalLineType.Fail, "Verfication failed! Use public key <color=orange>" + __instance.m_terminal.UplinkPuzzle.CurrentRound.CorrectPrefix + "</color> to obtain the code", 0f); __instance.AddOutput(TerminalLineType.Normal, "Returning to root..", 6f); } } else { __instance.AddOutput("", true); __instance.AddOutput("Uplink not connected! Use UPLINK_CONNECT to initialize a connection.", true); } __result = false; return(false); }