using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace ShiftOS { public partial class HijackScreen : Form { public HijackScreen() { InitializeComponent(); } string rtext; string gtexttotype; int charcount; int currentletter; int slashcount; int conversationcount = 0; Label textgeninput; bool needtoclose = false; public bool upgraded = false; FileStream fs; int hackeffect; int percentcount; // ERROR: Handles clauses are not supported in C# private void HijackScreen_Load(object sender, EventArgs e) { hackeffecttimer.Tick += new EventHandler(hackeffecttimer_Tick); conversationtimer.Tick += new EventHandler(conversationtimer_Tick); textgen.Tick += new EventHandler(textgen_Tick); this.FormBorderStyle = FormBorderStyle.None; this.WindowState = FormWindowState.Maximized; BackgroundWorker1.RunWorkerAsync(); conversationtimer.Start(); hackeffecttimer.Start(); } private void TextType(string texttotype) { conversationtimer.Stop(); charcount = texttotype.Length; gtexttotype = texttotype; currentletter = 0; slashcount = 1; textgen.Start(); } // ERROR: Handles clauses are not supported in C# private void textgen_Tick(object sender, EventArgs e) { switch (slashcount) { case 1: if (currentletter < gtexttotype.Length) { textgeninput.Text = rtext + "\\"; } break; case 2: if (currentletter < gtexttotype.Length) { textgeninput.Text = rtext + "|"; } break; case 3: if (currentletter < gtexttotype.Length) { textgeninput.Text = rtext + "/"; } break; case 4: if (currentletter < gtexttotype.Length) { rtext = rtext + gtexttotype.Substring(currentletter, 1); currentletter = currentletter + 1; textgeninput.Text = rtext; API.PlaySound(Properties.Resources.typesound); } break; } slashcount = slashcount + 1; if (slashcount == 5) slashcount = 1; if (currentletter == gtexttotype.Length) { gtexttotype = ""; conversationtimer.Start(); textgen.Stop(); } } // ERROR: Handles clauses are not supported in C# private void conversationtimer_Tick(object sender, EventArgs e) { switch (conversationcount) { case 0: if (needtoclose == true) this.Close(); break; case 1: textgeninput = lblHijack; TextType("Your computer is now being Hijacked"); conversationtimer.Interval = 1000; break; case 3: textgeninput = lblhackwords; textgen.Interval = 10; rtext = ""; btnskip.Show(); TextType("Congratulations, you have been involuntarily selected to be an Alpha Tester for ShiftOS." + Environment.NewLine + Environment.NewLine); break; case 4: TextType("At this current point in time I do not wish to reveal my identity or future intentions." + Environment.NewLine + Environment.NewLine); break; case 5: TextType("I just need to use you and your computer as an external test bed to evolve my experimental operating system." + Environment.NewLine + Environment.NewLine); break; case 6: TextType("Right now ShiftOS is practically non-existent but I’ll work on coding it remotely as you use it." + Environment.NewLine + Environment.NewLine); break; case 7: TextType("Your hard drive will now be formatted in preparation for the installation of ShiftOS" + Environment.NewLine + Environment.NewLine); break; case 8: TextType("Starting Format."); conversationtimer.Interval = 500; break; case 9: case 10: case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: TextType("."); break; case 19: rtext = ""; break; case 20: TextType("Scanning System Drive..."); break; case 21: TextType(Environment.NewLine + Environment.NewLine + "Current OS: " + OSInfo.GetPlatformID().Replace("microsoft", "Windows")); break; case 22: if(OSInfo.GetPlatformID() == "microsoft") { var dinf = new DriveInfo(Environment.GetFolderPath(Environment.SpecialFolder.Windows).Substring(0, 3)); TextType(Environment.NewLine + $"Mountpoint and File System: {dinf.Name} ({dinf.DriveFormat})"); } break; case 23: if (OSInfo.GetPlatformID() == "microsoft") { var dinf = new DriveInfo(Environment.GetFolderPath(Environment.SpecialFolder.Windows).Substring(0, 3)); TextType(Environment.NewLine + $"Size: {dinf.TotalFreeSpace} free, {dinf.TotalSize} total"); } break; case 24: TextType(Environment.NewLine + "New File System: ShiftFS"); break; case 25: TextType(Environment.NewLine + Environment.NewLine + "Formatting system drive - "); conversationtimer.Interval = 100; break; case 26: case 28: case 30: case 32: case 36: case 38: case 40: case 42: case 44: case 46: case 48: case 50: case 52: case 54: case 56: case 58: case 60: case 62: case 64: case 66: case 68: case 70: case 72: case 74: case 76: case 78: case 80: case 82: case 84: case 86: case 88: case 90: case 92: case 94: case 96: case 98: case 100: case 102: case 104: case 106: case 108: case 110: case 112: case 114: case 116: case 118: case 120: case 122: case 124: case 126: textgeninput.Text = rtext + percentcount + "%"; if (percentcount < 101) { percentcount += 2; API.PlaySound(Properties.Resources.writesound); } break; case 127: rtext = rtext + "100%"; conversationtimer.Interval = 1000; break; case 128: TextType(Environment.NewLine + "Format Complete"); break; case 129: rtext = ""; percentcount = 0; TextType("Installing ShiftOS Alpha 0.0.1 - "); conversationtimer.Interval = 200; break; case 130: case 131: case 132: case 133: case 134: case 135: case 136: case 137: case 138: case 139: case 140: case 141: case 142: case 143: case 144: case 145: case 146: case 147: case 148: case 149: case 150: case 151: case 152: case 153: case 154: case 155: case 156: case 157: case 158: case 159: case 160: case 161: case 162: case 163: case 164: case 165: case 166: case 167: case 168: case 169: case 170: case 171: case 172: case 173: case 174: case 175: case 176: case 177: case 178: case 179: case 180: case 181: case 182: case 183: case 184: case 185: case 186: case 187: case 188: case 189: case 190: case 191: case 192: case 193: case 194: case 195: case 196: case 197: case 198: case 199: case 200: case 201: case 202: case 203: case 204: case 205: case 206: case 207: case 208: case 209: case 210: case 211: case 212: case 213: case 214: case 215: case 216: case 217: case 218: case 219: case 220: case 221: case 222: case 223: case 224: case 225: case 226: case 227: case 228: case 229: case 230: textgeninput.Text = rtext + percentcount + "%" + Environment.NewLine + Environment.NewLine; if (percentcount < 101) { percentcount = percentcount + 1; API.PlaySound(Properties.Resources.writesound); } switch (percentcount) { case 1: case 2: textgeninput.Text = textgeninput.Text + "/Home"; if ((!System.IO.Directory.Exists(Paths.Home))) System.IO.Directory.CreateDirectory(Paths.Home); break; case 3: case 4: textgeninput.Text = textgeninput.Text + "/Home/Documents"; if ((!System.IO.Directory.Exists(Paths.Documents))) System.IO.Directory.CreateDirectory(Paths.Documents); break; case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: textgeninput.Text = textgeninput.Text + "/Home/Music"; if ((!System.IO.Directory.Exists(Paths.Music))) System.IO.Directory.CreateDirectory(Paths.Music); break; case 13: case 14: case 15: textgeninput.Text = textgeninput.Text + "/Home/Pictures"; if ((!System.IO.Directory.Exists(Paths.Pictures))) System.IO.Directory.CreateDirectory(Paths.Pictures); break; case 16: case 17: case 18: textgeninput.Text = textgeninput.Text + "/Shiftum42"; if ((!System.IO.Directory.Exists(Paths.SystemDir))) System.IO.Directory.CreateDirectory(Paths.SystemDir); break; case 19: case 20: textgeninput.Text = textgeninput.Text + "/Shiftum42/Drivers"; if ((!System.IO.Directory.Exists(Paths.Drivers))) System.IO.Directory.CreateDirectory(Paths.Drivers); break; case 21: case 22: case 23: case 24: case 25: case 26: case 27: textgeninput.Text = textgeninput.Text + "/Shiftum42/Drivers/HDD.dri"; break; case 28: case 29: case 30: case 31: case 32: case 33: case 34: case 35: textgeninput.Text = textgeninput.Text + "/Shiftum42/Drivers/Keyboard.dri"; fs = File.Create(Paths.Drivers + "Keyboard.dri"); fs.Close(); break; case 36: case 37: case 38: case 39: case 40: case 41: case 42: case 43: case 44: textgeninput.Text = textgeninput.Text + "/Shiftum42/Drivers/Monitor.dri"; fs = File.Create(Paths.Drivers + "Monitor.dri"); fs.Close(); break; case 45: case 46: case 47: case 48: case 49: case 50: case 51: case 52: textgeninput.Text = textgeninput.Text + "/Shiftum42/Drivers/Mouse.dri"; fs = File.Create(Paths.Drivers + "Mouse.dri"); fs.Close(); break; case 53: case 54: case 55: case 56: case 57: case 58: case 59: case 60: textgeninput.Text = textgeninput.Text + "/Shiftum42/Drivers/Printer.dri"; fs = File.Create(Paths.Drivers + "Printer.dri"); fs.Close(); break; case 61: case 62: case 63: case 64: case 65: case 66: case 67: case 68: textgeninput.Text = textgeninput.Text + "/Shiftum42/Languages/"; if ((!System.IO.Directory.Exists(Paths.SystemDir + "Languages"))) System.IO.Directory.CreateDirectory(Paths.SystemDir + "Languages"); break; case 69: case 70: case 71: case 72: case 73: case 74: case 75: case 76: textgeninput.Text = textgeninput.Text + "/Shiftum42/Languages/Current.lang"; fs = File.Create(Paths.SystemDir + "Languages/Current.lang"); fs.Close(); break; case 77: case 78: case 79: case 80: case 81: case 82: case 83: case 84: textgeninput.Text = textgeninput.Text + "/Shiftum42/HDAccess.sft"; break; case 85: case 86: case 87: case 88: case 89: textgeninput.Text = textgeninput.Text + "/Shiftum42/ShiftGUI.sft"; fs = File.Create(Paths.SystemDir + "ShiftGUI.sft"); fs.Close(); break; case 90: case 91: case 92: case 93: textgeninput.Text = textgeninput.Text + "/Shiftum42/SKernal.sft"; fs = File.Create(Paths.SystemDir + "SKernal.sft"); fs.Close(); break; case 94: case 95: case 96: case 97: textgeninput.Text = textgeninput.Text + "/Shiftum42/SRead.sft"; fs = File.Create(Paths.SystemDir + "SRead.sft"); fs.Close(); break; case 98: case 99: case 100: case 101: textgeninput.Text = textgeninput.Text + "/Shiftum42/SWrite.sft"; fs = File.Create(Paths.SystemDir + "SWrite.sft"); fs.Close(); break; } break; case 231: textgeninput.Text = rtext + "100%" + Environment.NewLine + Environment.NewLine + "/Shiftum42/SWrite.sft"; conversationtimer.Interval = 1000; API.PlaySound(Properties.Resources.writesound); break; case 232: textgeninput.Text = rtext + "100%" + Environment.NewLine + Environment.NewLine + "ShiftOS Installation Complete!"; API.PlaySound(Properties.Resources.typesound); if ((!System.IO.Directory.Exists(Paths.SoftwareData))) System.IO.Directory.CreateDirectory(Paths.SoftwareData); if ((!System.IO.Directory.Exists(Paths.KnowledgeInput))) System.IO.Directory.CreateDirectory(Paths.KnowledgeInput); break; case 234: SaveSystem.Utilities.LoadedSave.newgame = false; API.CurrentSession.Opacity = 100; Terminal term = new Terminal(); term.Show(); term.tmrfirstrun.Start(); this.Close(); break; } conversationcount = conversationcount + 1; } // ERROR: Handles clauses are not supported in C# private void hackeffecttimer_Tick(object sender, EventArgs e) { if (hackeffect < 101) { switch (hackeffect) { case 1: case 3: case 5: case 7: case 9: case 11: case 13: case 15: case 17: case 19: case 21: case 23: case 25: case 27: case 29: case 31: case 33: case 35: case 37: case 39: case 41: case 43: case 45: case 47: case 49: case 51: case 53: case 55: case 57: case 59: case 61: case 63: case 65: case 67: case 69: case 71: case 73: case 75: case 77: case 79: case 81: case 83: case 85: case 87: case 89: case 91: case 93: case 95: this.BackColor = Color.Magenta; this.TransparencyKey = Color.Magenta; API.PlaySound(Properties.Resources.writesound); this.TopMost = true; break; case 2: case 4: case 6: case 8: case 10: case 12: case 14: case 16: case 18: case 20: case 22: case 24: case 26: case 28: this.BackColor = Color.Magenta; API.PlaySound(Properties.Resources.typesound); break; case 30: case 32: case 34: case 36: case 38: case 40: case 42: case 44: case 46: case 48: case 50: this.BackColor = Color.Magenta; API.PlaySound(Properties.Resources.typesound); break; case 52: case 54: case 56: case 58: case 60: case 62: case 64: case 66: case 68: case 70: case 72: case 74: case 76: this.BackColor = Color.Magenta; API.PlaySound(Properties.Resources.typesound); break; case 78: case 80: case 82: case 84: case 86: case 88: case 90: case 92: case 94: this.BackColor = Color.DimGray; API.PlaySound(Properties.Resources.typesound); break; case 96: lblHijack.BackColor = Color.LightGray; break; case 97: lblHijack.BackColor = Color.DarkGray; break; case 98: lblHijack.BackColor = Color.DimGray; break; case 99: this.BackColor = Color.Black; lblHijack.BackColor = Color.Black; lblHijack.ForeColor = Color.DimGray; break; case 100: lblHijack.Hide(); break; } } else { hackeffecttimer.Stop(); } hackeffect = hackeffect + 1; } private void btnskip_Click(object sender, EventArgs e) { conversationcount = 19; btnskip.Hide(); } } }