aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael <[email protected]>2017-04-09 19:33:34 -0400
committerMichael <[email protected]>2017-04-09 19:33:34 -0400
commit700a6a95cf2ca623aa6c0a780d2dc7003f4994f2 (patch)
tree0c336515b0d7b35e4ce098b8fc97d89eb49a4ab7
parent2ac1033c2dcd0e70114ab9ee5c7bd129bff6c1fa (diff)
downloadshiftos_thereturn-700a6a95cf2ca623aa6c0a780d2dc7003f4994f2.tar.gz
shiftos_thereturn-700a6a95cf2ca623aa6c0a780d2dc7003f4994f2.tar.bz2
shiftos_thereturn-700a6a95cf2ca623aa6c0a780d2dc7003f4994f2.zip
Finish the MUD Control Centre story
-rw-r--r--ShiftOS.WinForms/Applications/MUDControlCentre.cs11
-rw-r--r--ShiftOS.WinForms/Stories/LegionStory.cs33
-rw-r--r--ShiftOS_TheReturn/Commands.cs8
3 files changed, 50 insertions, 2 deletions
diff --git a/ShiftOS.WinForms/Applications/MUDControlCentre.cs b/ShiftOS.WinForms/Applications/MUDControlCentre.cs
index 5a51f48..b8ba5f3 100644
--- a/ShiftOS.WinForms/Applications/MUDControlCentre.cs
+++ b/ShiftOS.WinForms/Applications/MUDControlCentre.cs
@@ -569,6 +569,8 @@ System version: {SaveSystem.CurrentSave.MajorVersion}.{SaveSystem.CurrentSave.Mi
Shared scripts: {scripts}
+Reputation: {SaveSystem.CurrentSave.RawReputation} ({SaveSystem.CurrentSave.Reputation})
+
Current legions: {legionname}";
}
@@ -640,6 +642,11 @@ Current legions: {legionname}";
ServerManager.SendMessage("legion_get_all", "");
}
+ public void ShowLegionSelector()
+ {
+ ServerManager.SendMessage("legion_get_all", "");
+ }
+
private void btnjoinlegion_Click(object sender, EventArgs e)
{
string shortname = lblegiontitle.Text.Split(']')[0].Remove(0, 1);
@@ -648,8 +655,12 @@ Current legions: {legionname}";
SaveSystem.SaveGame();
ServerManager.SendMessage("user_get_legion", JsonConvert.SerializeObject(SaveSystem.CurrentSave));
+ LegionChanged?.Invoke();
+
}
+ public event Action LegionChanged;
+
private void btnleavelegion_Click(object sender, EventArgs e)
{
string shortname = lblegiontitle.Text.Split(']')[0].Remove(0, 1);
diff --git a/ShiftOS.WinForms/Stories/LegionStory.cs b/ShiftOS.WinForms/Stories/LegionStory.cs
index 424c54b..00c7544 100644
--- a/ShiftOS.WinForms/Stories/LegionStory.cs
+++ b/ShiftOS.WinForms/Stories/LegionStory.cs
@@ -122,6 +122,39 @@ namespace ShiftOS.WinForms.Stories
waiting = true;
while (waiting == true)
Thread.Sleep(25);
+ WriteLine($"Your class has been selected. You are a(n) {SaveSystem.CurrentSave.Class}.");
+ WriteLine("On this screen, you can see a detailed view of your status within the digital society.");
+ WriteLine("You'll see this screen everytime you start the MUD Control Centre.");
+ WriteLine("Like the sos.status command, it shows your Codepoints, the upgrades you've bought and the upgrades available, but it also shows your reputation, legion, shops, and various other details.");
+ WriteLine("Right now, you are not in any legions. This is about to change.");
+ WriteLine("I will open the Legion Selector for you. The best legions will be shown at the top of the list.");
+ WriteLine("Pay attention to their Perdominent Class and their Collective Reputation values. These values will indicate how morally correct the legion is, and may affect your personal reputation.");
+ Desktop.InvokeOnWorkerThread(() =>
+ {
+ mud.ShowLegionSelector();
+ mud.LegionChanged += () =>
+ {
+ waiting = false;
+ };
+ });
+ waiting = true;
+ while (waiting == true)
+ Thread.Sleep(25);
+ WriteLine($"So, you've joined the [{SaveSystem.CurrentSave.CurrentLegions[0]}] legion.");
+ WriteLine("Now you can see a more detailed view of the legion - who's inside, how many Codepoints the legion has, and you can also join their private chat.");
+ WriteLine("It's up to you what you do next. Get acquianted with your new team. I've gotta go work on something.");
+ WriteLine("I will contact you as you become more well-known.");
+ WriteLine("OH, one more thing.");
+ WriteLine("You're probably wondering about your reputation. Well, right now you have a Neutral reputation.");
+ WriteLine("This means, of course, that people don't have an opinion on you. They don't really know you exist.");
+ WriteLine("As you start performing large-scale operations within the digital society, your reputation will raise or lower gradually depending on how morally correct that action was.");
+ WriteLine("For example, if you start performing criminal actions, your reputation will start to drop, and people will start to distrust you.");
+ WriteLine("And if your rep drops too far, the MUD Safety Task Force, and other safety activists may start going after you and trying to take you off the MUD.");
+ WriteLine("However, if you perform morally-correct actions, your reputation will rise, and more people will trust you with more sensitive data and operations.");
+ WriteLine("Be careful though, if you have too high of a reputation, lower-rep groups will try to attack you.");
+ WriteLine("And, I'd be careful of Investigators. If they suspect anything bad about you, they'll do whatever they can to prove you guilty and dramatically decrease your reputation.");
+ WriteLine("Anyways, I've got some other sentiences I need to... have a little...word...with. Keep on shifting.");
+ WriteLine("--user has disconnected from your system.--", false);
TerminalBackend.PrefixEnabled = true;
TerminalBackend.PrintPrompt();
});
diff --git a/ShiftOS_TheReturn/Commands.cs b/ShiftOS_TheReturn/Commands.cs
index 3cd1640..0257f11 100644
--- a/ShiftOS_TheReturn/Commands.cs
+++ b/ShiftOS_TheReturn/Commands.cs
@@ -480,11 +480,15 @@ namespace ShiftOS.Engine
[Command("status")]
public static bool Status()
{
- Console.WriteLine($@"ShiftOS version {Assembly.GetExecutingAssembly().GetName().Version.ToString()}
+ string status = $@"ShiftOS version {Assembly.GetExecutingAssembly().GetName().Version.ToString()}
Codepoints: {SaveSystem.CurrentSave.Codepoints}
Upgrades: {SaveSystem.CurrentSave.CountUpgrades()} installed,
- {Shiftorium.GetAvailable().Length} available");
+ {Shiftorium.GetAvailable().Length} available";
+
+ if (Shiftorium.UpgradeInstalled("mud_control_centre"))
+ status += Environment.NewLine + $"Reputation: {SaveSystem.CurrentSave.RawReputation} ({SaveSystem.CurrentSave.Reputation})";
+ Console.WriteLine(status);
return true;
}
}