From f8854f0e4477f87ef68649e769b8126e7586865a Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 29 Jul 2017 11:01:32 -0400 Subject: subshells and shell-specific cmds --- ShiftOS.Frontend/Apps/Terminal.cs | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'ShiftOS.Frontend/Apps') diff --git a/ShiftOS.Frontend/Apps/Terminal.cs b/ShiftOS.Frontend/Apps/Terminal.cs index 343bb5d..0621139 100644 --- a/ShiftOS.Frontend/Apps/Terminal.cs +++ b/ShiftOS.Frontend/Apps/Terminal.cs @@ -199,7 +199,7 @@ namespace ShiftOS.Frontend.Apps protected override void OnKeyEvent(KeyEvent a) { - if(a.ControlDown && (a.Key == Keys.OemPlus || a.Key == Keys.Add)) + if (a.ControlDown && (a.Key == Keys.OemPlus || a.Key == Keys.Add)) { _zoomFactor *= 2; RecalculateLayout(); @@ -209,7 +209,7 @@ namespace ShiftOS.Frontend.Apps if (a.ControlDown && (a.Key == Keys.OemMinus || a.Key == Keys.Subtract)) { - _zoomFactor = Math.Max(1, _zoomFactor/2); + _zoomFactor = Math.Max(1, _zoomFactor / 2); RecalculateLayout(); Invalidate(); return; @@ -221,7 +221,7 @@ namespace ShiftOS.Frontend.Apps if (!PerformTerminalBehaviours) { Text = Text.Insert(Index, Environment.NewLine); - Index+=2; + Index += 2; RecalculateLayout(); Invalidate(); return; @@ -239,12 +239,12 @@ namespace ShiftOS.Frontend.Apps var text2 = text[text.Length - 1]; var text3 = ""; var text4 = Regex.Replace(text2, @"\t|\n|\r", ""); - WriteLine(""); + WriteLine(""); - if (TerminalBackend.PrefixEnabled) - { - text3 = text4.Remove(0, $"{SaveSystem.CurrentSave.Username}@{SaveSystem.CurrentSave.SystemName}:~$ ".Length); - } + if (TerminalBackend.PrefixEnabled) + { + text3 = text4.Remove(0, TerminalBackend.ShellOverride.Length); + } if (!string.IsNullOrWhiteSpace(text3)) { TerminalBackend.LastCommand = text3; @@ -288,7 +288,7 @@ namespace ShiftOS.Frontend.Apps { var tostring3 = Lines[Lines.Length - 1]; var tostringlen = tostring3.Length + 1; - var workaround = $"{SaveSystem.CurrentSave.Username}@{SaveSystem.CurrentSave.SystemName}:~$ "; + var workaround = TerminalBackend.ShellOverride; var derp = workaround.Length + 1; if (tostringlen != derp) { @@ -310,9 +310,9 @@ namespace ShiftOS.Frontend.Apps Debug.WriteLine("Drunky alert in terminal."); } } - else if(a.Key == Keys.Right) + else if (a.Key == Keys.Right) { - if(Index < Text.Length) + if (Index < Text.Length) { Index++; AppearanceManager.CurrentPosition++; @@ -326,7 +326,7 @@ namespace ShiftOS.Frontend.Apps { var getstring = Lines[Lines.Length - 1]; var stringlen = getstring.Length + 1; - var header = $"{SaveSystem.CurrentSave.Username}@{SaveSystem.CurrentSave.SystemName}:~$ "; + var header = TerminalBackend.ShellOverride; var headerlen = header.Length + 1; var selstart = Index; var remstrlen = Text.Length - stringlen; @@ -343,7 +343,7 @@ namespace ShiftOS.Frontend.Apps else if (a.Key == Keys.Up && PerformTerminalBehaviours) { var tostring3 = Lines[Lines.Length - 1]; - if (tostring3 == $"{SaveSystem.CurrentSave.Username}@{SaveSystem.CurrentSave.SystemName}:~$ ") + if (tostring3 == TerminalBackend.ShellOverride) Console.Write(TerminalBackend.LastCommand); ConsoleEx.OnFlush?.Invoke(); return; @@ -360,7 +360,7 @@ namespace ShiftOS.Frontend.Apps Text = Text.Insert(Index, a.KeyChar.ToString()); Index++; AppearanceManager.CurrentPosition++; -// RecalculateLayout(); + // RecalculateLayout(); InvalidateTopLevel(); } } -- cgit v1.2.3 From 38c78acaffdc8d04fb2201ac4517d20895c31759 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 30 Jul 2017 12:12:26 -0400 Subject: fuckng hell --- ShiftOS.Frontend/Apps/Terminal.cs | 27 +++++++++++++++------------ ShiftOS.Frontend/Hacking/HackingCommands.cs | 2 ++ ShiftOS_TheReturn/CommandParser.cs | 4 ++-- ShiftOS_TheReturn/Hacking.cs | 3 +++ 4 files changed, 22 insertions(+), 14 deletions(-) (limited to 'ShiftOS.Frontend/Apps') diff --git a/ShiftOS.Frontend/Apps/Terminal.cs b/ShiftOS.Frontend/Apps/Terminal.cs index 0621139..4af1196 100644 --- a/ShiftOS.Frontend/Apps/Terminal.cs +++ b/ShiftOS.Frontend/Apps/Terminal.cs @@ -164,34 +164,37 @@ namespace ShiftOS.Frontend.Apps /// An absolute fucking mess. Seriously, can someone fix this method so it uhh WORKS PROPERLY? public System.Drawing.Point GetPointAtIndex(Graphics gfx) { - int vertMeasure = 2; + var font = new Font(LoadedSkin.TerminalFont.Name, LoadedSkin.TerminalFont.Size * _zoomFactor, LoadedSkin.TerminalFont.Style); + + int _textHeight = (int)gfx.SmartMeasureString("#", font).Height; + float vertMeasure = 2; int horizMeasure = 2; if (string.IsNullOrEmpty(Text)) - return new System.Drawing.Point(horizMeasure, vertMeasure); + return new System.Drawing.Point(horizMeasure, (int)vertMeasure); int lineindex = 0; int line = GetCurrentLine(); for (int l = 0; l < line; l++) { - if (string.IsNullOrEmpty(Lines[l])) + lineindex += Lines[l].Length; + if (string.IsNullOrWhiteSpace(Lines[l])) { - vertMeasure += LoadedSkin.TerminalFont.Height * _zoomFactor; + vertMeasure += _textHeight; continue; } - lineindex += Lines[l].Length; - var stringMeasure = gfx.SmartMeasureString(Lines[l] == "\r" ? " " : Lines[l], LoadedSkin.TerminalFont, Width - 4); - vertMeasure += (int)stringMeasure.Height * _zoomFactor; - + var stringMeasure = gfx.SmartMeasureString(Lines[l], font, Width - 4); + vertMeasure += (int)(stringMeasure.Height); + } - var lnMeasure = gfx.SmartMeasureString(Text.Substring(lineindex, Index - lineindex), LoadedSkin.TerminalFont); - int w = (int)Math.Floor(lnMeasure.Width) * _zoomFactor; + var lnMeasure = gfx.SmartMeasureString(Text.Substring(lineindex, Index - lineindex), font); + int w = (int)Math.Floor(lnMeasure.Width); while (w > Width - 4) { w = w - (Width - 4); - vertMeasure += (int)lnMeasure.Height * _zoomFactor; + vertMeasure += (int)lnMeasure.Height; } horizMeasure += w; - return new System.Drawing.Point(horizMeasure, vertMeasure); + return new System.Drawing.Point(horizMeasure, (int)vertMeasure); } private PointF CaretPosition = new PointF(2, 2); diff --git a/ShiftOS.Frontend/Hacking/HackingCommands.cs b/ShiftOS.Frontend/Hacking/HackingCommands.cs index 5d51006..9ebb824 100644 --- a/ShiftOS.Frontend/Hacking/HackingCommands.cs +++ b/ShiftOS.Frontend/Hacking/HackingCommands.cs @@ -14,11 +14,13 @@ namespace ShiftOS.Frontend { TerminalBackend.SetShellOverride("sploitset> "); } + [Command("ftp")] public static void FTPEnter(Dictionary args) { TerminalBackend.SetShellOverride("SimplFTP> "); } + //TODO: Implement firewall cracking [Command("connect")] [MetaCommand] diff --git a/ShiftOS_TheReturn/CommandParser.cs b/ShiftOS_TheReturn/CommandParser.cs index bd274cd..7568b98 100644 --- a/ShiftOS_TheReturn/CommandParser.cs +++ b/ShiftOS_TheReturn/CommandParser.cs @@ -131,9 +131,9 @@ namespace ShiftOS.Engine if(id_found == false) { id_found = true; - id_text = inp; + id_text = inp.Remove(0,1); res = ""; - arguments.Add("id", inp); + arguments.Add("id", id_text); } } } diff --git a/ShiftOS_TheReturn/Hacking.cs b/ShiftOS_TheReturn/Hacking.cs index 0186e51..8412203 100644 --- a/ShiftOS_TheReturn/Hacking.cs +++ b/ShiftOS_TheReturn/Hacking.cs @@ -124,10 +124,13 @@ namespace ShiftOS.Engine throw new NaughtyDeveloperException("Someone tried to fail a non-existent hack."); if (CurrentHackable.IsPwn3d) throw new NaughtyDeveloperException("A developer tried to un-pwn a pwn3d hackable."); + Console.WriteLine(); Console.WriteLine("[sploitset] [FAIL] disconnected - connection terminated by remote machine "); if (!string.IsNullOrWhiteSpace(CurrentHackable.Data.OnHackFailedStoryEvent)) Story.Start(CurrentHackable.Data.OnHackFailedStoryEvent); CurrentHackable = null; + TerminalBackend.SetShellOverride(""); + TerminalBackend.PrintPrompt(); } public static void EndHack() -- cgit v1.2.3