diff --git a/ShiftOS.WinForms/Oobe.cs b/ShiftOS.WinForms/Oobe.cs index 7623d82..0a55602 100644 --- a/ShiftOS.WinForms/Oobe.cs +++ b/ShiftOS.WinForms/Oobe.cs @@ -208,6 +208,7 @@ namespace ShiftOS.WinForms { this.Invoke(new Action(() => { + rtext = ""; textgeninput.Text = ""; })); } @@ -222,6 +223,77 @@ namespace ShiftOS.WinForms throw new NotImplementedException(); } + public void StartTrailer() + { + while(AppearanceManager.OpenForms.Count > 0) + { + AppearanceManager.OpenForms[0].Close(); + } + + this.Show(); + this.TopMost = true; + this.TransparencyKey = Color.Magenta; + this.BackColor = this.TransparencyKey; + textgeninput = lblHijack; + textgeninput.BackColor = Color.Black; + textgeninput.Font = new Font("Lucida Console", 13F, FontStyle.Bold); + textgeninput.AutoSize = true; + textgeninput.TextAlign = ContentAlignment.MiddleCenter; + textgeninput.TextChanged += (o, a) => + { + textgeninput.Location = new Point( + (this.Width - textgeninput.Width) / 2, + (this.Height - textgeninput.Height) / 2 + ); + }; + var t = new Thread(() => + { + Clear(); + Thread.Sleep(5000); + TextType("Michael VanOverbeek"); + TextType("presents..."); + Thread.Sleep(2000); + Clear(); + Thread.Sleep(1000); + TextType("A community-developed game"); + Thread.Sleep(3000); + Clear(); + Thread.Sleep(1000); + this.Invoke(new Action(() => + { + textgeninput.Font = new Font("Lucida Console", 14F, FontStyle.Bold); + this.BackColor = Color.Black; + })); + TextType("Welcome to ShiftOS."); + Thread.Sleep(4000); + Clear(); + textgeninput = lblhackwords; + TextType("Hello."); + Thread.Sleep(500); + TextType("You have been cordially and involuntarily selected to participate in the development and testing of an experimental operating system called ShiftOS."); + Thread.Sleep(500); + TextType("I want ShiftOS to be the most advanced operating system in the world."); + Thread.Sleep(500); + TextType("In ShiftOS, you start out with nothing."); + Thread.Sleep(500); + TextType("And your goal is to upgrade the operating system from a barebones command line to a fully graphical operating system."); + Thread.Sleep(500); + TextType("Along the way, you'll meet many people - hackers, rebels, programmers, administrators and many more."); + Thread.Sleep(500); + TextType("You'll meet new friends and foes."); + Thread.Sleep(500); + TextType("Your goal: Take it over. Upgrade the operating system, and take over its multi-user domain."); + Thread.Sleep(500); + TextType("I won't reveal quite what you have to do, but if you can handle it, head over to http://getshiftos.ml/ and download the operating system now."); + Thread.Sleep(5000); + Clear(); + textgeninput = lblHijack; + TextType("Think you can handle it?"); + }); + t.IsBackground = false; + t.Start(); + } + public void Start() { foreach(var frm in AppearanceManager.OpenForms) diff --git a/ShiftOS.WinForms/ShiftOS.WinForms.csproj b/ShiftOS.WinForms/ShiftOS.WinForms.csproj index f3a2efa..c58c7bf 100644 --- a/ShiftOS.WinForms/ShiftOS.WinForms.csproj +++ b/ShiftOS.WinForms/ShiftOS.WinForms.csproj @@ -201,6 +201,7 @@ + Form diff --git a/ShiftOS.WinForms/TrailerCommands.cs b/ShiftOS.WinForms/TrailerCommands.cs new file mode 100644 index 0000000..6264db0 --- /dev/null +++ b/ShiftOS.WinForms/TrailerCommands.cs @@ -0,0 +1,24 @@ +#define TRAILER +#if TRAILER +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ShiftOS.Engine; + +namespace ShiftOS.WinForms +{ + [Namespace("trailer")] + public static class TrailerCommands + { + [Command("init")] + public static bool TrailerInit() + { + var oobe = new Oobe(); + oobe.StartTrailer(); + return true; + } + } +} +#endif \ No newline at end of file