mirror of
https://github.com/seriocomedy/ShiftOS-C-.git
synced 2025-01-23 01:22:16 +00:00
84f689b91a
It feels better to know what's responsible for what... Plus I removed some un-needed C# stuff.
723 lines
26 KiB
C#
723 lines
26 KiB
C#
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();
|
||
}
|
||
}
|
||
}
|