diff --git a/ShiftOS.Objects/Save.cs b/ShiftOS.Objects/Save.cs index 3c7cb39..23c1d0f 100644 --- a/ShiftOS.Objects/Save.cs +++ b/ShiftOS.Objects/Save.cs @@ -65,6 +65,8 @@ namespace ShiftOS.Objects } } + public int LastMonthPaid { get; set; } + public int CountUpgrades() { int count = 0; diff --git a/ShiftOS.WinForms/Applications/Shiftnet.cs b/ShiftOS.WinForms/Applications/Shiftnet.cs index 3da7d6a..22eeec1 100644 --- a/ShiftOS.WinForms/Applications/Shiftnet.cs +++ b/ShiftOS.WinForms/Applications/Shiftnet.cs @@ -122,10 +122,55 @@ namespace ShiftOS.WinForms.Applications { e.Cancel = true; Future.Clear(); + if (Url.StartsWith("runsyscmd/")) + { + ProcessShiftnetCmd(Url.Replace("runsyscmd/", "")); + } + ShiftnetNavigate(Url.ToString()); } } + public void ProcessShiftnetCmd(string cmd) + { + var args = cmd.Split('/'); + switch (args[0]) + { + case "setsnsub": + for(int i = 0; i < DownloadManager.GetAllSubscriptions().Length; i++) + { + if(DownloadManager.GetAllSubscriptions()[i].Name == args[1]) + { + var sub = DownloadManager.GetAllSubscriptions()[i]; + Infobox.PromptYesNo("Shiftnet", $"Are you sure you want to switch your system's Shiftnet subscription to {sub.Name} by {sub.Company}?{Environment.NewLine}{Environment.NewLine}Cost per month: {sub.CostPerMonth} CP{Environment.NewLine}Download speed: {sub.DownloadSpeed} bytes per second", new Action((answer) => + { + if(answer == true) + { + if(SaveSystem.CurrentSave.Codepoints >= sub.CostPerMonth) + { + //Initial fee gets deducted. + SaveSystem.CurrentSave.Codepoints -= sub.CostPerMonth; + //Then we set the subscription. + SaveSystem.CurrentSave.ShiftnetSubscription = i; + //Then we say that we have paid this month. + SaveSystem.CurrentSave.LastMonthPaid = DateTime.Now.Month; + //Then we send our save to the MUD. + SaveSystem.SaveGame(); + + } + else + { + //User can't afford this subscription. + Infobox.Show("Shiftnet - Not enough Codepoints", $"You cannot afford to pay for this subscription at this time. You need {sub.CostPerMonth - SaveSystem.CurrentSave.Codepoints} more Codepoints."); + } + } + })); + } + } + break; + } + } + public Stack History = new Stack(); public Stack Future = new Stack(); diff --git a/ShiftOS.WinForms/Resources/ShiftnetServices.txt b/ShiftOS.WinForms/Resources/ShiftnetServices.txt index d5b8ab4..d8582b6 100644 --- a/ShiftOS.WinForms/Resources/ShiftnetServices.txt +++ b/ShiftOS.WinForms/Resources/ShiftnetServices.txt @@ -26,5 +26,6 @@ With Freebie Solutions from ShiftSoft, you'll be able to traverse the Shiftnet w Name: "theNet", CostPerMonth: 3000, DownloadSpeed: 786342, //768 kb/s + Description: "theNet is not *just* a Shiftnet service provider. It is theGateway to all of theShiftnet and your needs. It is also theValue service provider with theGreatest price and download speed." }, ] \ No newline at end of file