diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/.gitignore b/Bobocraft 2 Launcher v9 CSC/.gitignore similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/.gitignore rename to Bobocraft 2 Launcher v9 CSC/.gitignore diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/App.xaml b/Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/App.xaml similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/App.xaml rename to Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/App.xaml diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/App.xaml.cs b/Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/App.xaml.cs similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/App.xaml.cs rename to Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/App.xaml.cs diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/AssemblyInfo.cs b/Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/AssemblyInfo.cs similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/AssemblyInfo.cs rename to Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/AssemblyInfo.cs diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/Bobocraft 2 Launcher Update Assistant.csproj b/Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/Bobocraft 2 Launcher Update Assistant.csproj similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/Bobocraft 2 Launcher Update Assistant.csproj rename to Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/Bobocraft 2 Launcher Update Assistant.csproj diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/LauncherBackground.png b/Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/LauncherBackground.png similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/LauncherBackground.png rename to Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/LauncherBackground.png diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/MainWindow.xaml b/Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/MainWindow.xaml similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/MainWindow.xaml rename to Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/MainWindow.xaml diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/MainWindow.xaml.cs b/Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/MainWindow.xaml.cs similarity index 93% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/MainWindow.xaml.cs rename to Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/MainWindow.xaml.cs index c9a9b0a..aa27b9f 100644 --- a/Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/MainWindow.xaml.cs +++ b/Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/MainWindow.xaml.cs @@ -36,6 +36,8 @@ namespace Bobocraft_2_Launcher_Update_Assistant private string configFile; private bool isNewInstall; private string chosenUserName; + private string launcherVersionFileLink; + private string launcherZipLink; private LauncherStatus _status; internal LauncherStatus Status @@ -76,7 +78,9 @@ namespace Bobocraft_2_Launcher_Update_Assistant versionFile = Path.Combine(rootPath, "version.txt"); launcherVersionFile = Path.Combine(rootPath, "launcherversion.txt"); tempZip = Path.Combine(rootPath, "temp"); - } + launcherVersionFileLink = "https://drive.google.com/uc?export=download&id=1MnPRLYIwUUQ_QBPMol8TQmQkaISoTldD"; + launcherZipLink = "https://cloud.norbipeti.eu/s/YWYN2mQL4p7ptWn/download/asd.zip"; + } private void CheckForLauncherUpdates() { @@ -87,7 +91,7 @@ namespace Bobocraft_2_Launcher_Update_Assistant try { WebClient webClient = new WebClient(); - Version onlineLauncherVersion = new Version(webClient.DownloadString("https://drive.google.com/uc?export=download&id=1MnPRLYIwUUQ_QBPMol8TQmQkaISoTldD")); + Version onlineLauncherVersion = new Version(webClient.DownloadString(launcherVersionFileLink)); if (onlineLauncherVersion.IsDifferentThan(localLauncherVersion)) { @@ -118,9 +122,9 @@ namespace Bobocraft_2_Launcher_Update_Assistant { WebClient webClient = new WebClient(); Status = LauncherStatus.downloadingUpdate; - _onlinelauncherVersion = new Version(webClient.DownloadString("https://drive.google.com/uc?export=download&id=1MnPRLYIwUUQ_QBPMol8TQmQkaISoTldD")); + _onlinelauncherVersion = new Version(webClient.DownloadString(launcherVersionFileLink)); webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadLauncherCompletedCallback); - webClient.DownloadFileAsync(new Uri("https://cloud.norbipeti.eu/s/YWYN2mQL4p7ptWn/download/asd.zip"), tempZip, _onlinelauncherVersion); + webClient.DownloadFileAsync(new Uri(launcherZipLink), tempZip, _onlinelauncherVersion); } catch (Exception ex) { diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/bobocraft 2 logo vector.png b/Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/bobocraft 2 logo vector.png similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/bobocraft 2 logo vector.png rename to Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/bobocraft 2 logo vector.png diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/discord-mark-blue.png b/Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/discord-mark-blue.png similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/discord-mark-blue.png rename to Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/discord-mark-blue.png diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/vector_dizzy.png b/Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/vector_dizzy.png similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/Bobocraft 2 Launcher Update Assistant/vector_dizzy.png rename to Bobocraft 2 Launcher v9 CSC/Bobocraft 2 Launcher Update Assistant/vector_dizzy.png diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher.sln b/Bobocraft 2 Launcher v9 CSC/GameLauncher.sln similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher.sln rename to Bobocraft 2 Launcher v9 CSC/GameLauncher.sln diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/App.config b/Bobocraft 2 Launcher v9 CSC/GameLauncher/App.config similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/App.config rename to Bobocraft 2 Launcher v9 CSC/GameLauncher/App.config diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/App.xaml b/Bobocraft 2 Launcher v9 CSC/GameLauncher/App.xaml similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/App.xaml rename to Bobocraft 2 Launcher v9 CSC/GameLauncher/App.xaml diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/App.xaml.cs b/Bobocraft 2 Launcher v9 CSC/GameLauncher/App.xaml.cs similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/App.xaml.cs rename to Bobocraft 2 Launcher v9 CSC/GameLauncher/App.xaml.cs diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/AssemblyInfo.cs b/Bobocraft 2 Launcher v9 CSC/GameLauncher/AssemblyInfo.cs similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/AssemblyInfo.cs rename to Bobocraft 2 Launcher v9 CSC/GameLauncher/AssemblyInfo.cs diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/Bobocraft 2 Launcher.csproj b/Bobocraft 2 Launcher v9 CSC/GameLauncher/Bobocraft 2 Launcher.csproj similarity index 91% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/Bobocraft 2 Launcher.csproj rename to Bobocraft 2 Launcher v9 CSC/GameLauncher/Bobocraft 2 Launcher.csproj index c2209a7..17a04b1 100644 --- a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/Bobocraft 2 Launcher.csproj +++ b/Bobocraft 2 Launcher v9 CSC/GameLauncher/Bobocraft 2 Launcher.csproj @@ -14,6 +14,7 @@ <None Remove="images\Icon.ico" /> <None Remove="images\LauncherBackground.png" /> <None Remove="LauncherBackground.png" /> + <None Remove="shape_square.png" /> <None Remove="vector_dizzy.png" /> </ItemGroup> @@ -24,6 +25,7 @@ <Resource Include="images\Icon.ico" /> <Resource Include="images\LauncherBackground.png" /> <Resource Include="LauncherBackground.png" /> + <Resource Include="shape_square.png" /> <Resource Include="vector_dizzy.png" /> </ItemGroup> diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/LauncherBackground.png b/Bobocraft 2 Launcher v9 CSC/GameLauncher/LauncherBackground.png similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/LauncherBackground.png rename to Bobocraft 2 Launcher v9 CSC/GameLauncher/LauncherBackground.png diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/MainWindow.xaml b/Bobocraft 2 Launcher v9 CSC/GameLauncher/MainWindow.xaml similarity index 72% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/MainWindow.xaml rename to Bobocraft 2 Launcher v9 CSC/GameLauncher/MainWindow.xaml index b6894a4..7abf7a0 100644 --- a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/MainWindow.xaml +++ b/Bobocraft 2 Launcher v9 CSC/GameLauncher/MainWindow.xaml @@ -14,26 +14,34 @@ <TextBlock Name="VersionText" VerticalAlignment="Bottom" HorizontalAlignment="Right" FontSize="20" Background="#7F000000" Foreground="White" Margin="0, 0, 5, 25" Text="Mod Version:"/> <TextBlock Name="LauncherVersionText" VerticalAlignment="Bottom" HorizontalAlignment="Left" FontSize="20" Background="#7F000000" Foreground="White" Margin="0, 0, 5, 25" Text="Launcher Version:"/> <TextBlock Name="DisclaimerText" VerticalAlignment="Top" HorizontalAlignment="Center" FontSize="8" Background="#7F000000" Foreground="White" Margin="0,0,5,0" Text="This is a community project and is not affiliated with or endorsed by Freejam in any way. Modify your game files at your own risk. We are forever grateful to Freejam for making this great game and we welcome anyone who would like to join us!"/> - <Button Name ="DiscordButton" BorderThickness="0" Click ="DiscordButton_Click" Background="#00000000" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,200,7,0" Height="90" Width="100"> + <Button Name ="DiscordButton" BorderThickness="0" Click ="DiscordButton_Click" Background="#00000000" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,250,7,0" Height="90" Width="100"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Top" Width="90" Height="90"> <Image Source="/discord-mark-blue.png" HorizontalAlignment="Left" VerticalAlignment="Center" Width="90" Height="90" /> </StackPanel> </Button> - <TextBlock Name="DiscordText" VerticalAlignment="Top" HorizontalAlignment="Right" FontSize="10" Background="#7F000000" Foreground="White" Margin="0,290,14,0" Text="Join Us On Discord!"/> - <Button Name ="FAQButton" BorderThickness="0" Click ="FAQButton_Click" Background="#00000000" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,310,7,0" Height="90" Width="100"> + <TextBlock Name="DiscordText" VerticalAlignment="Top" HorizontalAlignment="Right" FontSize="10" Background="#7F000000" Foreground="White" Margin="0,340,14,0" Text="Join Us On Discord!"/> + <Button Name ="FAQButton" BorderThickness="0" Click ="FAQButton_Click" Background="#00000000" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,360,7,0" Height="90" Width="100"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Top" Width="90" Height="90"> <Image Source="/vector_dizzy.png" HorizontalAlignment="Left" VerticalAlignment="Center" Width="90" Height="90" /> </StackPanel> </Button> - <TextBlock Name="FAQButtonText" VerticalAlignment="Top" HorizontalAlignment="Right" FontSize="8" Background="#7F000000" Foreground="White" Margin="0,400,7,0" Text="Frequently Asked Questions"/> + <TextBlock Name="FAQButtonText" VerticalAlignment="Top" HorizontalAlignment="Right" FontSize="8" Background="#7F000000" Foreground="White" Margin="0,450,7,0" Text="Frequently Asked Questions"/> <TextBlock Name="FAQFullText" TextWrapping="Wrap" VerticalAlignment="Center" HorizontalAlignment="Center" Background="#7F000000" Foreground="White" Text="Lorem ipsum" Height="460" Width="750" Margin="0,0,0,50" FontSize="10" Visibility="Hidden"/> <Button Name="PlayButton" Content="Checking For Updates" Click="PlayButton_Click" Height="60" FontSize="28" FontWeight="Bold" Foreground="#DDFFFFFF" Margin="0, 0, 0, 15" VerticalAlignment="Bottom" HorizontalAlignment="Center" MinWidth="150" Background="#FFFF9700" Padding="10,1,10,1"/> <TextBox x:Name ="mainWindowBox" Margin="300,200,300,256" FontSize="36" FontFamily="Bahnschrift SemiBold" Text="Enter Username" TextAlignment="Center" Background="White" VerticalAlignment="Center" Visibility="Hidden"/> - <Button Name ="CRF2ManagerButton" BorderThickness="0" Click ="CRF2ManagerButton_Click" Background="#00000000" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,100,7,0" Height="90" Width="100"> + <Button Name ="CRF2ManagerButton" BorderThickness="0" Click ="CRF2ManagerButton_Click" Background="#00000000" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,150,7,0" Height="90" Width="100"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Top" Width="90" Height="90"> <Image Source="/avatar.png" HorizontalAlignment="Left" VerticalAlignment="Center" Width="90" Height="90" /> </StackPanel> </Button> - <TextBlock x:Name="DiscordText_Copy" VerticalAlignment="Top" HorizontalAlignment="Right" FontSize="10" Background="#7F000000" Foreground="White" Margin="0,190,11,0" Text="Open CRF2 Manager"/> + <TextBlock x:Name="CRFText" VerticalAlignment="Top" HorizontalAlignment="Right" FontSize="10" Background="#7F000000" Foreground="White" Margin="0,240,11,0" Text="Open CRF2 Manager"/> + <TextBlock x:Name="CSCText" VerticalAlignment="Top" HorizontalAlignment="Right" FontSize="10" Background="#7F000000" Foreground="White" Margin="0,140,10,0" Text="Open CS Calculator"/> + <Button Name ="CSCButton" BorderThickness="0" Click ="CSCButton_Click" Background="#00000000" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,50,7,0" Height="90" Width="100"> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Top" Width="90" Height="90"> + <Image Source="/shape_square.png" Width="90" Height="90" /> + </StackPanel> + </Button> + <TextBlock x:Name="CountdownHeadline" VerticalAlignment="Top" HorizontalAlignment="Center" FontSize="10" Background="#7F000000" Foreground="White" Margin="0,50,0,0" Text="Time Until Next Scheduled Bobo Session:"/> + <Label Name="CountdownLabel" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0,70,0,0" Height="30" Width="235" Foreground="White" Background="#7F000000"/> </Grid> </Window> diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/MainWindow.xaml.cs b/Bobocraft 2 Launcher v9 CSC/GameLauncher/MainWindow.xaml.cs similarity index 74% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/MainWindow.xaml.cs rename to Bobocraft 2 Launcher v9 CSC/GameLauncher/MainWindow.xaml.cs index 7306051..3afa756 100644 --- a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/MainWindow.xaml.cs +++ b/Bobocraft 2 Launcher v9 CSC/GameLauncher/MainWindow.xaml.cs @@ -10,6 +10,7 @@ using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Input; +using System.Timers; namespace GameLauncher { @@ -20,7 +21,8 @@ namespace GameLauncher downloadingGame, downloadingUpdate, awaitingInput, - downloadingCRF2Manager + downloadingCRF2Manager, + downloadingCSC } /// <summary> @@ -43,6 +45,22 @@ namespace GameLauncher private string botDirectory; private string CRF2ManagerExe; private string CRF2ManagerVersionFile; + private string CSCExe; + private Timer RC2SessionTimer; + private DateTime NextRC2SessionDateTime; + private string launcherVersionFileLink; + private string launcherAssistantZipLink; + private string modVersionFileLink; + private string modInitInstallZipLink; + private string modUpdateZipLink; + private string CRF2ManagerVersionFileLink; + private string CRF2ManagerZipLink; + private string CSCZipLink; + private string StarterBotsZipLink; + private string NextSessionString; + private string NextSessionFile; + private string NextSessionFileLink; + private LauncherStatus _status; internal LauncherStatus Status @@ -71,6 +89,9 @@ namespace GameLauncher case LauncherStatus.downloadingCRF2Manager: PlayButton.Content = "Downloading CRF2 Manager"; break; + case LauncherStatus.downloadingCSC: + PlayButton.Content = "Downloading CSC"; + break; default: break; } @@ -103,11 +124,79 @@ namespace GameLauncher pluginPath = Path.Combine(rootPath, "BepInEx", "plugins"); configFile = Path.Combine(rootPath, "BepInEx", "config", "RC2MPWE.cfg"); CRF2ManagerExe = Path.Combine(launcherPath, "BOBOBloodhound.exe"); + CSCExe = Path.Combine(launcherPath, "Connection Health Calculator.exe"); CRF2ManagerVersionFile = Path.Combine(launcherPath, "crfmanagerversion.txt"); + NextSessionFile = Path.Combine(launcherPath,"nextsessiondatetime.txt"); botDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "AppData", "LocalLow", "Freejam", "Robocraft 2", "Modded", "Machines"); FAQFullText.Text = "Frequently Asked Questions:\r\n\tWhat is this? Is this the new Robocraft?\r\nThis game was originally under development by Freejam under the title ‘Robocraft 2’ until development was cancelled in early 2024. Freejam decided to change directions with their project, which is now under development as ‘Robocraft 2’ (often referred to as ‘The Robocraft 2 Rebuild’ by the community). When the original was cancelled, the community decided to preserve it and set up dedicated community servers so we could still play together. This launcher exists to help you play that original version of Robocraft 2, plus some community bug fixes and balance changes. If you are interested in the new version being currently developed by Freejam you can request access to the playtest on the Robocraft steam store page or visit Robocraft2.com for more information. \r\n\r\n\tHow do I use this thing?\r\nJust put it inside your main installation folder, “\\Robocraft 2” and run it, ask the discord if you are running into any problems and someone will help you. It will modify your vanilla Robocraft 2 install to a modded one and check for updates so you’ll have the latest community patch and will be able to connect to the community server. This launcher only works for windows users, check the discord for mac/linux information.\r\n\r\n\tHow do I install bots/precons/maps?\r\nThese are all stored inside your application data folder. To access it, follow these steps:\r\nPress the windows key, type ‘appdata’ and press enter\r\nNavigate to ‘\\AppData\\LocalLow\\Freejam\\Robocraft 2’\r\nBots are located in: Modded\\Machines\r\nMaps are located in: Mock\\Worlds\r\nPrecons are located in: Modded\\Precons\r\n\r\n\tCan I share this game on social media?\r\nYes, but you must make it clear that this is not an official Freejam project or endorsed by or affiliated with Freejam. This can be with a text disclaimer in the description, for example. Freejam has asked us to do this and we think it is quite reasonable and understandable, given that their new project is also called ‘Robocraft 2’ and they probably want to avoid confusion.\r\n\r\n\tCredits\r\nOriginal Game: Freejam\r\nMod/Server Build: NorbiPeti\r\nMain Server Host: shadowcrafter01\r\nBalance Changes: OXxzyDoOM\r\nDiscord Operator: Loading_._._.\r\nCRF2 Manager: Robocrafter Art (ARTGUK)\r\nLauncher: Ace73Streaming"; + launcherVersionFileLink = "https://drive.google.com/uc?export=download&id=1MnPRLYIwUUQ_QBPMol8TQmQkaISoTldD"; + launcherAssistantZipLink = "https://cloud.norbipeti.eu/s/ZwRmsKb3gLNKKNH/download/assist.zip"; + modVersionFileLink = "https://cloud.norbipeti.eu/s/j6TFGJbbS5z9Dp4/download/version.txt"; + modInitInstallZipLink = "https://cloud.norbipeti.eu/s/kZSSjFc2jqa22Hw/download/sus.zip"; + modUpdateZipLink = "https://cloud.norbipeti.eu/s/yyk3LBaZsXa4GpR/download/RC2MPWE.zip"; + StarterBotsZipLink = "https://drive.google.com/uc?export=download&id=1DBX1tnU2rw7zVcgXFHAydG4wsbK2O-go"; + CRF2ManagerVersionFileLink = "https://drive.google.com/uc?export=download&id=1SS5O7LRtFwPi6XbBB4It-tHhIzJw-_qN"; + CRF2ManagerZipLink = "https://drive.usercontent.google.com/u/0/uc?id=1ah4QN3HOj2nsCsHKxRkyTI_eKJIK3atb&export=download"; + CSCZipLink = "https://cloud.norbipeti.eu/s/6dTzZyAbyXRwHc9/download/Connection%20Health%20Calculator.zip"; + NextSessionFileLink = "https://drive.google.com/uc?export=download&id=1lMctvUExhyjw8FRrpiCKmfVnqNQMI7U7"; + SetupTimer(); } + private void SetupTimer() + { + PullSessionTimeFromLink(); + RC2SessionTimer = new Timer(1000); + RC2SessionTimer.Elapsed += TimerElapsed; + RC2SessionTimer.Start(); + } + + + + private void TimerElapsed(object sender, ElapsedEventArgs e) + { + Dispatcher.Invoke(() => + { + var timeLeft = NextRC2SessionDateTime - DateTime.Now; + if (timeLeft.TotalSeconds <= 0) + { + PullSessionTimeFromLink(); + timeLeft = NextRC2SessionDateTime - DateTime.Now; + } + CountdownLabel.Content = $"{timeLeft.Days} days {timeLeft.Hours} hours {timeLeft.Minutes} minutes {timeLeft.Seconds} seconds"; + }); + } + private void PullSessionTimeFromLink() + { + var currentUTCtime = DateTime.UtcNow; + var Localtimezone = TimeZoneInfo.Local; + var UTCtimezone = TimeZoneInfo.Utc; + WebClient webClient = new WebClient(); + NextSessionString = webClient.DownloadString(NextSessionFileLink); + NextRC2SessionDateTime = DateTime.Parse(NextSessionString); + if (NextRC2SessionDateTime > DateTime.UtcNow) + { + NextRC2SessionDateTime = TimeZoneInfo.ConvertTime(NextRC2SessionDateTime, Localtimezone); + } + else + { + CalculateDefaultSessionTime(); + } + } + + + private void CalculateDefaultSessionTime() + { + var currentUTCtime = DateTime.UtcNow; + var daysUntilFriday = ((int)DayOfWeek.Friday - (int)currentUTCtime.DayOfWeek + 7) % 7; + var nextFriday = currentUTCtime.AddDays(daysUntilFriday); + var PSTtimezone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"); + var Localtimezone = TimeZoneInfo.Local; + NextRC2SessionDateTime = new DateTime(nextFriday.Year, nextFriday.Month, nextFriday.Day, 9, 0, 0, DateTimeKind.Unspecified); + NextRC2SessionDateTime = TimeZoneInfo.ConvertTime(NextRC2SessionDateTime, PSTtimezone); + NextRC2SessionDateTime = TimeZoneInfo.ConvertTime(NextRC2SessionDateTime, Localtimezone); + } + + private void OpenCRF2Manager() { if (File.Exists(CRF2ManagerExe) && Status == LauncherStatus.ready) @@ -126,6 +215,61 @@ namespace GameLauncher } } + private void OpenCSC() + { + if (File.Exists(CSCExe) && Status == LauncherStatus.ready) + { + ProcessStartInfo CSCCalcProcess = new ProcessStartInfo(CSCExe); + CSCCalcProcess.WorkingDirectory = rootPath; + Process.Start(CSCCalcProcess); + } + else if (Status != LauncherStatus.ready) + { + MessageBox.Show($"Please Update The Launcher Before Running The CRF2 Manager"); + } + else if (!File.Exists(CSCExe)) + { + DownloadCSC(Version.zero); + } + } + + + private void DownloadCSC(Version _onlineCSCCalcVersion) + { + try + { + WebClient webClient = new WebClient(); + Status = LauncherStatus.downloadingCSC; + webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadCSCCompletedCallback); + webClient.DownloadFileAsync(new Uri(CSCZipLink), tempZip, Version.zero); + } + catch (Exception ex) + { + Status = LauncherStatus.failed; + MessageBox.Show($"Error downloading CSC Calculator: {ex}"); + } + } + + private void DownloadCSCCompletedCallback(object sender, AsyncCompletedEventArgs e) + { + try + { + ZipFile.ExtractToDirectory(tempZip, assistantPath, true); + ProcessStartInfo CSCProcess = new ProcessStartInfo(CSCExe); + CSCProcess.WorkingDirectory = rootPath; + Process.Start(CSCProcess); + Status = LauncherStatus.ready; + } + catch (Exception ex) + { + Status = LauncherStatus.failed; + MessageBox.Show($"Error installing CSC Calculator: {ex}"); + } + } + + + + private void UpdateCRF2Manager(Version _onlineCRF2ManagerVersion) { @@ -133,9 +277,9 @@ namespace GameLauncher { WebClient webClient = new WebClient(); Status = LauncherStatus.downloadingCRF2Manager; - _onlineCRF2ManagerVersion = new Version(webClient.DownloadString("https://drive.google.com/uc?export=download&id=1jQhH6nynSlrCCFw5STjc-evuNCSV7xsZ")); + _onlineCRF2ManagerVersion = new Version(webClient.DownloadString(CRF2ManagerVersionFileLink)); webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadCRF2ManagerCompletedCallback); - webClient.DownloadFileAsync(new Uri("https://drive.usercontent.google.com/u/0/uc?id=18mbNZXPfkHxUcLJFEvvbhZNi5ohWQome&export=download"), tempZip, _onlineCRF2ManagerVersion); + webClient.DownloadFileAsync(new Uri(CRF2ManagerZipLink), tempZip, _onlineCRF2ManagerVersion); } catch (Exception ex) { @@ -173,7 +317,7 @@ namespace GameLauncher try { WebClient webClient = new WebClient(); - Version onlineCRF2ManagerVersion = new Version(webClient.DownloadString("https://drive.google.com/uc?export=download&id=1jQhH6nynSlrCCFw5STjc-evuNCSV7xsZ")); + Version onlineCRF2ManagerVersion = new Version(webClient.DownloadString(CRF2ManagerVersionFileLink)); if (onlineCRF2ManagerVersion.IsDifferentThan(localCRF2ManagerVersion)) { @@ -207,7 +351,7 @@ namespace GameLauncher try { WebClient webClient = new WebClient(); - Version onlineLauncherVersion = new Version(webClient.DownloadString("https://drive.google.com/uc?export=download&id=1MnPRLYIwUUQ_QBPMol8TQmQkaISoTldD")); + Version onlineLauncherVersion = new Version(webClient.DownloadString(launcherVersionFileLink)); if (onlineLauncherVersion.IsDifferentThan(localLauncherVersion)) { @@ -240,9 +384,9 @@ namespace GameLauncher { WebClient webClient = new WebClient(); Status = LauncherStatus.downloadingUpdate; - _onlinelauncherVersion = new Version(webClient.DownloadString("https://drive.google.com/uc?export=download&id=1MnPRLYIwUUQ_QBPMol8TQmQkaISoTldD")); + _onlinelauncherVersion = new Version(webClient.DownloadString(launcherVersionFileLink)); webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadLauncherAssistantCompletedCallback); - webClient.DownloadFileAsync(new Uri("https://cloud.norbipeti.eu/s/ZwRmsKb3gLNKKNH/download/assist.zip"), tempZip, _onlinelauncherVersion); + webClient.DownloadFileAsync(new Uri(launcherAssistantZipLink), tempZip, _onlinelauncherVersion); } catch (Exception ex) { @@ -281,7 +425,7 @@ namespace GameLauncher try { WebClient webClient = new WebClient(); - Version onlineVersion = new Version(webClient.DownloadString("https://cloud.norbipeti.eu/s/j6TFGJbbS5z9Dp4/download/version.txt")); + Version onlineVersion = new Version(webClient.DownloadString(modVersionFileLink)); if (onlineVersion.IsDifferentThan(localVersion)) { @@ -314,15 +458,15 @@ namespace GameLauncher isNewInstall = false; Status = LauncherStatus.downloadingUpdate; webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadModCompletedCallback); - webClient.DownloadFileAsync(new Uri("https://cloud.norbipeti.eu/s/yyk3LBaZsXa4GpR/download/RC2MPWE.zip"), tempZip, _onlineVersion); + webClient.DownloadFileAsync(new Uri(modUpdateZipLink), tempZip, _onlineVersion); } else { isNewInstall = true; Status = LauncherStatus.downloadingGame; - _onlineVersion = new Version(webClient.DownloadString("https://cloud.norbipeti.eu/s/j6TFGJbbS5z9Dp4/download/version.txt")); + _onlineVersion = new Version(webClient.DownloadString(modVersionFileLink)); webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadModCompletedCallback); - webClient.DownloadFileAsync(new Uri("https://cloud.norbipeti.eu/s/kZSSjFc2jqa22Hw/download/sus.zip"), tempZip, _onlineVersion); + webClient.DownloadFileAsync(new Uri(modInitInstallZipLink), tempZip, _onlineVersion); } } catch (Exception ex) @@ -339,7 +483,7 @@ namespace GameLauncher WebClient webClient = new WebClient(); Status = LauncherStatus.downloadingUpdate; webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadStarterBotsCompletedCallback); - webClient.DownloadFileAsync(new Uri("https://drive.google.com/uc?export=download&id=1DBX1tnU2rw7zVcgXFHAydG4wsbK2O-go"), tempZip, _zero); + webClient.DownloadFileAsync(new Uri(StarterBotsZipLink), tempZip, _zero); } catch (Exception ex) { @@ -423,6 +567,11 @@ namespace GameLauncher CheckForCRFManagerUpdates(); } + private void CSCButton_Click(object sender, RoutedEventArgs e) + { + OpenCSC(); + } + private void DiscordButton_Click(object sender, RoutedEventArgs e) { Process.Start(new ProcessStartInfo() diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/Properties/Settings.Designer.cs b/Bobocraft 2 Launcher v9 CSC/GameLauncher/Properties/Settings.Designer.cs similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/Properties/Settings.Designer.cs rename to Bobocraft 2 Launcher v9 CSC/GameLauncher/Properties/Settings.Designer.cs diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/Properties/Settings.settings b/Bobocraft 2 Launcher v9 CSC/GameLauncher/Properties/Settings.settings similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/Properties/Settings.settings rename to Bobocraft 2 Launcher v9 CSC/GameLauncher/Properties/Settings.settings diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/avatar.png b/Bobocraft 2 Launcher v9 CSC/GameLauncher/avatar.png similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/avatar.png rename to Bobocraft 2 Launcher v9 CSC/GameLauncher/avatar.png diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/bobocraft 2 logo vector.png b/Bobocraft 2 Launcher v9 CSC/GameLauncher/bobocraft 2 logo vector.png similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/bobocraft 2 logo vector.png rename to Bobocraft 2 Launcher v9 CSC/GameLauncher/bobocraft 2 logo vector.png diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/discord-mark-blue.png b/Bobocraft 2 Launcher v9 CSC/GameLauncher/discord-mark-blue.png similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/discord-mark-blue.png rename to Bobocraft 2 Launcher v9 CSC/GameLauncher/discord-mark-blue.png diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/images/Icon.ico b/Bobocraft 2 Launcher v9 CSC/GameLauncher/images/Icon.ico similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/images/Icon.ico rename to Bobocraft 2 Launcher v9 CSC/GameLauncher/images/Icon.ico diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/images/LauncherBackground.png b/Bobocraft 2 Launcher v9 CSC/GameLauncher/images/LauncherBackground.png similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/images/LauncherBackground.png rename to Bobocraft 2 Launcher v9 CSC/GameLauncher/images/LauncherBackground.png diff --git a/Bobocraft 2 Launcher v9 CSC/GameLauncher/shape_square.png b/Bobocraft 2 Launcher v9 CSC/GameLauncher/shape_square.png new file mode 100644 index 0000000..724ed50 Binary files /dev/null and b/Bobocraft 2 Launcher v9 CSC/GameLauncher/shape_square.png differ diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/vector_dizzy.png b/Bobocraft 2 Launcher v9 CSC/GameLauncher/vector_dizzy.png similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/GameLauncher/vector_dizzy.png rename to Bobocraft 2 Launcher v9 CSC/GameLauncher/vector_dizzy.png diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/Licence.txt b/Bobocraft 2 Launcher v9 CSC/Licence.txt similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/Licence.txt rename to Bobocraft 2 Launcher v9 CSC/Licence.txt diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/README.md b/Bobocraft 2 Launcher v9 CSC/README.md similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/README.md rename to Bobocraft 2 Launcher v9 CSC/README.md diff --git a/Bobocraft 2 Launcher v8 More Than Just Plugin/VisualStudio.gitignore b/Bobocraft 2 Launcher v9 CSC/VisualStudio.gitignore similarity index 100% rename from Bobocraft 2 Launcher v8 More Than Just Plugin/VisualStudio.gitignore rename to Bobocraft 2 Launcher v9 CSC/VisualStudio.gitignore