aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.Frontend/MonoGameOOBE.cs
diff options
context:
space:
mode:
authorMichael <[email protected]>2017-07-24 21:09:48 -0400
committerMichael <[email protected]>2017-07-24 21:09:48 -0400
commit2cd1452ff1dd9813cedb15ee18bf9a84e0baaf84 (patch)
tree257a13c3c1ff5752d872a6da5292ab7f551f7699 /ShiftOS.Frontend/MonoGameOOBE.cs
parent5ab60d77068edce177841e94b8260e1a40231730 (diff)
downloadshiftos_thereturn-2cd1452ff1dd9813cedb15ee18bf9a84e0baaf84.tar.gz
shiftos_thereturn-2cd1452ff1dd9813cedb15ee18bf9a84e0baaf84.tar.bz2
shiftos_thereturn-2cd1452ff1dd9813cedb15ee18bf9a84e0baaf84.zip
Fucking fuckrape the motherfucking winforms proj
Diffstat (limited to 'ShiftOS.Frontend/MonoGameOOBE.cs')
-rw-r--r--ShiftOS.Frontend/MonoGameOOBE.cs150
1 files changed, 150 insertions, 0 deletions
diff --git a/ShiftOS.Frontend/MonoGameOOBE.cs b/ShiftOS.Frontend/MonoGameOOBE.cs
new file mode 100644
index 0000000..4e6705d
--- /dev/null
+++ b/ShiftOS.Frontend/MonoGameOOBE.cs
@@ -0,0 +1,150 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using ShiftOS.Engine;
+using ShiftOS.Objects;
+
+namespace ShiftOS.Frontend
+{
+ public class MonoGameOOBE : IOobe
+ {
+ public void PromptForLogin()
+ {
+ throw new NotImplementedException();
+ }
+
+ public void ShowSaveTransfer(Save save)
+ {
+ throw new NotImplementedException();
+ }
+
+ public void SlowWriteLine(string text)
+ {
+ if (!string.IsNullOrWhiteSpace(Console.Text))
+ Console.WriteLine("");
+
+ for (int i = 0; i < text.Length; i++)
+ {
+ System.Threading.Thread.Sleep(50);
+ Console.Write(text[i].ToString());
+ }
+ }
+
+ private Apps.TerminalControl Console = null;
+
+ public void StartShowing(Save save)
+ {
+ TerminalBackend.InStory = true;
+ TerminalBackend.PrefixEnabled = false;
+
+ var term = new Apps.TerminalControl();
+ GraphicsSubsystem.UIManager.AddTopLevel(term);
+ term.Width = GraphicsSubsystem.UIManager.Viewport.Width;
+ term.Height = GraphicsSubsystem.UIManager.Viewport.Height;
+ term.X = 0;
+ term.Y = 0;
+ AppearanceManager.ConsoleOut = term;
+ AppearanceManager.StartConsoleOut();
+ Console = term;
+
+ var t = new System.Threading.Thread(() =>
+ {
+ SlowWriteLine("Michael VanOverbeek presents...");
+ Thread.Sleep(2000);
+ SlowWriteLine("A Philip Adams game...");
+ Thread.Sleep(2000);
+
+ SlowWriteLine("");
+ SlowWriteLine(@"It's not often technology becomes out of mankind's league, out of its
+control. I mean, we are the creators of technology, we are the ones with the ideas,
+innovations, and skill. It just does what we tell it to, right?");
+ Thread.Sleep(2000);
+
+ SlowWriteLine("");
+ SlowWriteLine(@"Such a naive being you are to think that, after all,
+you have no idea where you are... what's going on... who I am.");
+
+ Thread.Sleep(2000);
+
+ SlowWriteLine("");
+ SlowWriteLine(@"To you, I'm just text. Something you understand. Words...
+paragraphs... ideas... the very things that caused and became technology.");
+
+ Thread.Sleep(2000);
+
+ SlowWriteLine("");
+ SlowWriteLine(@"""Where am I? What the hell's going on!?"" I hear you ask.
+Such important questions, but please adjust your emotional and
+mental state. This is not your concern.");
+
+ Thread.Sleep(2000);
+
+ SlowWriteLine("");
+ SlowWriteLine(@"My name is DevX. What is yours?");
+
+ bool nameChosen = false;
+ Engine.Infobox.PromptText("What is your name?", "Please enter your name in the box below, then hit 'OK'.", (name) =>
+ {
+ nameChosen = true;
+ save.Username = name;
+ });
+
+ while (nameChosen == false)
+ Thread.Sleep(10);
+
+ Thread.Sleep(2000);
+
+ SlowWriteLine("");
+ SlowWriteLine($@"Hello there, {save.Username}. Nice to meet you.");
+
+ Thread.Sleep(2000);
+
+ SlowWriteLine("");
+ SlowWriteLine(@"Welcome to my Digital Society.");
+
+ Thread.Sleep(2000);
+
+ SlowWriteLine("");
+ SlowWriteLine(@"I can't and won't tell you what happened to you, but I'm going to tell you
+what you're going to be doing for me... with me.");
+
+ Thread.Sleep(2000);
+
+ SlowWriteLine("");
+ SlowWriteLine(@"But it's not time for that. First, you must be trained.
+I'm installing the Digital Society's gateway operating system onto your sentience.
+It's called ShiftOS.");
+
+ Thread.Sleep(2000);
+
+ SlowWriteLine("");
+ SlowWriteLine(@"When the system is installed, I'll contact you. DevX out.");
+
+ Thread.Sleep(5000);
+
+ GraphicsSubsystem.UIManager.StopHandling(term);
+ while(AppearanceManager.OpenForms.Count > 0)
+ {
+ AppearanceManager.OpenForms[0].Close();
+ AppearanceManager.OpenForms.RemoveAt(0);
+ }
+
+ GUI.TextControl _shiftos = new GUI.TextControl();
+ GraphicsSubsystem.UIManager.AddTopLevel(_shiftos);
+ term.Clear();
+ _shiftos.AutoSize = true;
+ _shiftos.Font = SkinEngine.LoadedSkin.HeaderFont;
+ _shiftos.Text = "ShiftOS";
+ _shiftos.Y = GraphicsSubsystem.UIManager.Viewport.Height / 3;
+ _shiftos.Layout(new Microsoft.Xna.Framework.GameTime());
+ _shiftos.X = (GraphicsSubsystem.UIManager.Viewport.Width - _shiftos.Width) / 2;
+
+
+ });
+ t.Start();
+ }
+ }
+}