mirror of
https://git.alee14.me/shiftos-archive/ShiftOS_TheReturn.git
synced 2025-01-22 18:02:16 +00:00
remove obsolete story code and document non-obsolete code
This commit is contained in:
parent
4178d71cb9
commit
96804248dd
1 changed files with 12 additions and 221 deletions
|
@ -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; }
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue