aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael <[email protected]>2017-05-20 15:43:10 -0400
committerMichael <[email protected]>2017-05-20 15:43:10 -0400
commit96804248dd1c6f427dafba0027e4953cda6c3fbe (patch)
tree36930e4e7165522c2170de9fa9a081e995b56720
parent4178d71cb9acfed6c171923e02e58e1273e14208 (diff)
downloadshiftos_thereturn-96804248dd1c6f427dafba0027e4953cda6c3fbe.tar.gz
shiftos_thereturn-96804248dd1c6f427dafba0027e4953cda6c3fbe.tar.bz2
shiftos_thereturn-96804248dd1c6f427dafba0027e4953cda6c3fbe.zip
remove obsolete story code and document non-obsolete code
-rw-r--r--ShiftOS_TheReturn/Story.cs233
1 files changed, 12 insertions, 221 deletions
diff --git a/ShiftOS_TheReturn/Story.cs b/ShiftOS_TheReturn/Story.cs
index 8c726ed..bcee49c 100644
--- a/ShiftOS_TheReturn/Story.cs
+++ b/ShiftOS_TheReturn/Story.cs
@@ -35,8 +35,15 @@ using Newtonsoft.Json;
namespace ShiftOS.Engine
{
- public class Story
+ /// <summary>
+ /// Storyline management class.
+ /// </summary>
+ public static class Story
{
+ /// <summary>
+ /// Starts the storyline with the specified Storyline ID.
+ /// </summary>
+ /// <param name="stid">The storyline ID to start.</param>
public static void Start(string stid)
{
foreach (var exec in System.IO.Directory.GetFiles(Environment.CurrentDirectory))
@@ -78,231 +85,12 @@ namespace ShiftOS.Engine
#endif
}
-
+ [Obsolete("Please use Story.Start() in tandem with [StoryAttribute].")]
public static void RunFromInternalResource(string resource_id)
{
- var t = typeof(Properties.Resources);
-
- foreach(var prop in t.GetProperties(System.Reflection.BindingFlags.NonPublic | BindingFlags.Static))
- {
- if(prop.Name == resource_id)
- {
- if(prop.PropertyType == typeof(string))
- {
- WriteStory(prop.GetValue(null) as string);
-
- return;
- }
- }
- }
- throw new ArgumentException("Couldn't find resource ID inside the engine: " + resource_id);
- }
-
-
- public string Character { get; set; }
- public List<string> Lines { get; set; }
-
- public static void Start()
- {
- Console.WriteLine();
- if(SaveSystem.CurrentSave.StoryPosition == 5)
- {
- StartDevXLies();
- }
}
- public static void StartDevXLies()
- {
- int chatProgress = 0;
- //bool LoopStuck = false;
- string textToWrite = "";
- const int TYPE_SPEED_MS = 45;
- bool done = false;
- bool write = true;
-
- while (done == false) {
- write = true;
- switch (chatProgress)
- {
- case 0:
- textToWrite = "User joined: @" + SaveSystem.CurrentSave.Username;
- break;
- case 1:
- textToWrite = $"Hello, {SaveSystem.CurrentSave.Username}.";
- break;
- case 2: //If C:\ShiftOS doesn't exist the player won't notice this is here.
- if (Directory.Exists(Paths.GetPath("classic")))
- {
- textToWrite = "I see you've participated in my previous ShiftOS experiment. Welcome back, Shifter. I assume you know lots about ShiftOS, but there are some updates I have to tell you.";
- }
- else
- {
- write = false;
- }
- break;
- case 3: //DevX hates ShiftOS-Next secretly.
- if (Directory.Exists(Paths.GetPath("classic") + "-Next"))
- {
- textToWrite = "Hmmmm.... looking at my sentience records, I see you've participated in ShiftOS-Next. This is gonna be difficult.";
- }
- else
- {
- write = false;
- }
- break;
- case 4:
- textToWrite = "There's a lot that has changed within ShiftOS.";
- break;
- case 5:
- textToWrite = "First off, I want to tell you a bit about myself in case you don't already know.";
- break;
- case 6:
- textToWrite = "My name is DevX. I am the architect of ShiftOS. I have chosen you to take part in helping me out with it.";
- break;
- case 7:
- textToWrite = "You see, in my past attempts it has all been about an evolving operating system and seeing how the users work with it...";
- break;
- case 8:
- textToWrite = "Almost one hundred percent of the time, people have found out it was an experiment and they could simply return to their regular system with a specific upgrade.";
- break;
- case 9:
- textToWrite = "But now, I want to try something different - something unique.";
- break;
- case 10:
- textToWrite = "ShiftOS is the same as it has been in my previous attempts, but now, your goal is to gain as much wealth and power as possible.";
- break;
- case 11:
- textToWrite = "Right now you are inside my segregation LAN. Only you and me exist within this domain. You are free from other users unless I create them.";
- break;
- case 12:
- textToWrite = "Since you have proved your sentience, I have a task for you outside the segregation LAN.";
- break;
- case 13:
- textToWrite = "But first... you need to be taught a few things.";
- break;
- case 14:
- textToWrite = "First off, when I bring you into my multi-user domain, you'll first want to establish as much wealth as possible.";
- break;
- case 15:
- textToWrite = "Wealth comes in the form of Codepoints - a currency used among users of the multi-user domain.";
- break;
- case 16:
- textToWrite = @"You can get Codepoints by doing the following:
-
- - Stealing them from other users
- - Extracting them from inactive/unverified sentiences
- - Using specific scripts/programs within ShiftOS
- - Creating paid scripts/applications within ShiftOS";
- break;
- case 17:
- textToWrite = "You can use Codepoints to buy upgrades using the 'shiftorium.buy' command, or you can use them to pay other users, or scripts.";
- break;
- case 18:
- textToWrite = "Within the multi-user domain you are free to do whatever you want. Larcany, theft, deceiving, lies, and distribution of malware is permitted under my watch.";
- break;
- case 19:
- textToWrite = "Do whatever you have to to get Codepoints.";
- break;
- case 20:
- textToWrite = "Then use them to make yourself stronger by buying upgrades at the shiftorium.";
- break;
- case 21:
- textToWrite = "If you want to get a bit devious within the multi-user domain, look around for scripts that will expose user account information.";
- break;
- case 22:
- textToWrite = "Or just spread a virus around the mud.";
- break;
- case 23:
- textToWrite = "Or you can be the 'good' guy and stop these attacks and gain the trust of other users.";
- break;
- case 24:
- textToWrite = "It's up to you. Just, don't mess with my system. You won't want me coming to you after that. I'm watching.";
- break;
- case 25:
- textToWrite = "User left chat: @" + SaveSystem.CurrentSave.Username;
- done = true;
- SaveSystem.CurrentSave.StoryPosition++;
- TerminalBackend.InvokeCommand("sos.save");
- break;
-
- }
-
- if (write == true)
- {
- Console.WriteLine();
- Console.Write("DevX: ");
- foreach(char c in textToWrite)
- {
- Console.Beep(750, TYPE_SPEED_MS);
- if (c == '\n')
- {
- }
- else if (c == '\r')
- {
- Console.WriteLine();
- }
- else
- {
- Console.Write(c);
- }
- }
- Thread.Sleep(1000);
- }
- chatProgress += 1;
- }
- }
-
-
- public static void WriteStory(string json)
- {
- var thread = new Thread(new ThreadStart(() =>
- {
- var story = JsonConvert.DeserializeObject<Story>(json);
-
- const int TYPESPEED = 45;
-
- foreach (var line in story.Lines)
- {
- var localized = Localization.Parse(line);
-
-
- if (line.StartsWith("cmd:"))
- {
- string[] cmdsplit = line.Replace("cmd:", "").Split(' ');
- switch (cmdsplit[0])
- {
- case "givecp":
- SaveSystem.TransferCodepointsFrom(story.Character, Convert.ToInt32(cmdsplit[1]));
- break;
- }
- }
- else
- {
- Console.Write(story.Character + ": ");
-
- foreach (var c in localized)
- {
- Console.Beep(1024, TYPESPEED);
- if (c == '\r')
- {
-
- }
- else if (c == '\n')
- Console.WriteLine();
- else
- Console.Write(c);
- }
-
- Console.WriteLine();
- Thread.Sleep(1000);
- }
- }
- Console.Write($"{SaveSystem.CurrentSave.Username}@{SaveSystem.CurrentSave.SystemName}:~$ ");
- }));
- thread.IsBackground = true;
- thread.Start();
- }
}
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
@@ -322,6 +110,9 @@ namespace ShiftOS.Engine
StoryID = id;
}
+ /// <summary>
+ /// Gets the storyline ID stored in this attribute.
+ /// </summary>
public string StoryID { get; private set; }
}