From 9645a014452b19d569f90d4c922f8fab3ee9b0d8 Mon Sep 17 00:00:00 2001 From: CreepyCrafter24 <33260128+CreepyCrafter24@users.noreply.github.com> Date: Thu, 26 Sep 2019 19:10:39 +0200 Subject: [PATCH] Added Debug Menu, Menu changes --- Base/Glitch.cs | 7 +- CaptchaGlitch_Double/Double.cs | 5 +- CaptchaGlitch_Rand/Rand.cs | 5 +- LaptopSimulator2015/FakeDesktop.Designer.cs | 187 +++++++++++++++++- LaptopSimulator2015/FakeDesktop.cs | 115 +++++++---- LaptopSimulator2015/FakeDesktop.resx | 83 ++++++++ .../LaptopSimulator2015.csproj | 12 +- zz_CaptchaGlitch_Empty/Empty.cs | 5 +- zzz_ShuffleChars/ShuffleChars.cs | 4 +- 9 files changed, 368 insertions(+), 55 deletions(-) diff --git a/Base/Glitch.cs b/Base/Glitch.cs index b82a9ae..08e2639 100644 --- a/Base/Glitch.cs +++ b/Base/Glitch.cs @@ -17,11 +17,16 @@ namespace Base /// int currentLevel { get; set; } /// + /// If set to true this will always try to execute the glitch (check the chance) + /// + bool postGlitch { get; } + /// /// Called with the selected chance after the player inputs a char to the Captcha-box /// /// The character the player typed /// The string to be added to the Captcha-box, modified by previous CaptchaGlitch instances /// The characters which can be added to the CaptchaBox - void apply(char inputChar, ref string inputString, char[] captchaChars); + /// Random Number Generator shared between instances + void apply(char inputChar, ref string inputString, char[] captchaChars, Random rnd); } } diff --git a/CaptchaGlitch_Double/Double.cs b/CaptchaGlitch_Double/Double.cs index 946348e..b60145f 100644 --- a/CaptchaGlitch_Double/Double.cs +++ b/CaptchaGlitch_Double/Double.cs @@ -9,8 +9,9 @@ namespace LaptopSimulator2015.Glitches { public class Double : CaptchaGlitch { - public double chance { get { if (currentLevel < 1) return 0; return Math.Min(currentLevel / 8d, 0.8); } } + public double chance { get { if (currentLevel < 1) return 0; return Math.Min(currentLevel / 10d, 0.8); } } public int currentLevel { get; set; } - public void apply(char inputChar, ref string inputString, char[] captchaChars) => inputString += inputChar; + public bool postGlitch => false; + public void apply(char inputChar, ref string inputString, char[] captchaChars, Random rnd) => inputString += inputChar; } } diff --git a/CaptchaGlitch_Rand/Rand.cs b/CaptchaGlitch_Rand/Rand.cs index f8b2c10..708fff2 100644 --- a/CaptchaGlitch_Rand/Rand.cs +++ b/CaptchaGlitch_Rand/Rand.cs @@ -9,8 +9,9 @@ namespace LaptopSimulator2015.Glitches { public class Rand : CaptchaGlitch { - public double chance { get { if (currentLevel < 2) return 0; return Math.Min((currentLevel - 1) / 16d, 0.8); } } + public double chance { get { if (currentLevel < 2) return 0; return Math.Min((currentLevel - 1) / 16d, 0.4); } } public int currentLevel { get; set; } - public void apply(char inputChar, ref string inputString, char[] captchaChars) => inputString += captchaChars[new Random().Next(captchaChars.Length - 1)]; + public bool postGlitch => false; + public void apply(char inputChar, ref string inputString, char[] captchaChars, Random rnd) => inputString += captchaChars[rnd.Next(captchaChars.Length - 1)]; } } diff --git a/LaptopSimulator2015/FakeDesktop.Designer.cs b/LaptopSimulator2015/FakeDesktop.Designer.cs index a05e29a..aea70b6 100644 --- a/LaptopSimulator2015/FakeDesktop.Designer.cs +++ b/LaptopSimulator2015/FakeDesktop.Designer.cs @@ -84,6 +84,17 @@ namespace LaptopSimulator2015 this.optionsWindowTitle = new System.Windows.Forms.Label(); this.lsdEffectT = new System.Windows.Forms.Timer(this.components); this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.devWindow = new System.Windows.Forms.Panel(); + this.devWindowHeader = new System.Windows.Forms.Panel(); + this.devWindowHeaderExit = new System.Windows.Forms.Label(); + this.devWindowIcon = new System.Windows.Forms.Panel(); + this.devWindowTitle = new System.Windows.Forms.Label(); + this.devWindowOpen = new System.Windows.Forms.Button(); + this.devWindowDllList = new System.Windows.Forms.ListBox(); + this.devWindowDllLabel = new System.Windows.Forms.Label(); + this.devWindowLevelLabel = new System.Windows.Forms.Label(); + this.devWindowLevelList = new System.Windows.Forms.ListBox(); + this.devWindowSkip = new System.Windows.Forms.Button(); this.winMenuPanel.SuspendLayout(); this.winTaskbar.SuspendLayout(); this.winDesktop.SuspendLayout(); @@ -98,6 +109,8 @@ namespace LaptopSimulator2015 this.optionsWindow.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.optionsWindowWam)).BeginInit(); this.optionsWindowHeader.SuspendLayout(); + this.devWindow.SuspendLayout(); + this.devWindowHeader.SuspendLayout(); this.SuspendLayout(); // // winKey @@ -266,6 +279,7 @@ namespace LaptopSimulator2015 this.levelWindowC1.Name = "levelWindowC1"; this.levelWindowC1.Size = new System.Drawing.Size(75, 23); this.levelWindowC1.TabIndex = 2; + this.levelWindowC1.TabStop = false; this.levelWindowC1.Text = "Continue"; this.levelWindowC1.UseVisualStyleBackColor = true; this.levelWindowC1.Click += new System.EventHandler(this.LevelWindowC1_Click); @@ -326,6 +340,7 @@ namespace LaptopSimulator2015 this.captchaBox.ReadOnly = true; this.captchaBox.Size = new System.Drawing.Size(276, 80); this.captchaBox.TabIndex = 2; + this.captchaBox.TabStop = false; this.captchaBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.CaptchaBox_KeyPress); // // captchaPanel @@ -409,6 +424,9 @@ namespace LaptopSimulator2015 this.levelWindowIcon.Name = "levelWindowIcon"; this.levelWindowIcon.Size = new System.Drawing.Size(20, 20); this.levelWindowIcon.TabIndex = 1; + this.levelWindowIcon.MouseDown += new System.Windows.Forms.MouseEventHandler(this.LevelWindowHeader_MouseDown); + this.levelWindowIcon.MouseMove += new System.Windows.Forms.MouseEventHandler(this.LevelWindowHeader_MouseMove); + this.levelWindowIcon.MouseUp += new System.Windows.Forms.MouseEventHandler(this.LevelWindowHeader_MouseUp); // // levelWindowTitle // @@ -466,6 +484,7 @@ namespace LaptopSimulator2015 // optionsWindow // this.optionsWindow.BackColor = System.Drawing.SystemColors.Window; + this.optionsWindow.Controls.Add(this.devWindowOpen); this.optionsWindow.Controls.Add(this.optionsWindowReset); this.optionsWindow.Controls.Add(this.optionsWindowLang); this.optionsWindow.Controls.Add(this.optionsWindowSubs); @@ -476,17 +495,18 @@ namespace LaptopSimulator2015 this.optionsWindow.Controls.Add(this.optionsWindowHeader); this.optionsWindow.Location = new System.Drawing.Point(527, 26); this.optionsWindow.Name = "optionsWindow"; - this.optionsWindow.Size = new System.Drawing.Size(502, 94); + this.optionsWindow.Size = new System.Drawing.Size(495, 91); this.optionsWindow.TabIndex = 6; this.optionsWindow.Visible = false; // // optionsWindowReset // this.optionsWindowReset.BackColor = System.Drawing.Color.Red; - this.optionsWindowReset.Location = new System.Drawing.Point(355, 64); + this.optionsWindowReset.Location = new System.Drawing.Point(355, 60); this.optionsWindowReset.Name = "optionsWindowReset"; this.optionsWindowReset.Size = new System.Drawing.Size(93, 23); this.optionsWindowReset.TabIndex = 7; + this.optionsWindowReset.TabStop = false; this.optionsWindowReset.Text = "Reset"; this.optionsWindowReset.UseVisualStyleBackColor = false; this.optionsWindowReset.Click += new System.EventHandler(this.OptionsWindowReset_Click); @@ -499,8 +519,9 @@ namespace LaptopSimulator2015 "en"}); this.optionsWindowLang.Location = new System.Drawing.Point(180, 62); this.optionsWindowLang.Name = "optionsWindowLang"; - this.optionsWindowLang.Size = new System.Drawing.Size(121, 21); + this.optionsWindowLang.Size = new System.Drawing.Size(169, 21); this.optionsWindowLang.TabIndex = 6; + this.optionsWindowLang.TabStop = false; // // optionsWindowSubs // @@ -509,15 +530,17 @@ namespace LaptopSimulator2015 this.optionsWindowSubs.Name = "optionsWindowSubs"; this.optionsWindowSubs.Size = new System.Drawing.Size(66, 17); this.optionsWindowSubs.TabIndex = 5; + this.optionsWindowSubs.TabStop = false; this.optionsWindowSubs.Text = "Subtitles"; this.optionsWindowSubs.UseVisualStyleBackColor = true; // // optionsWindowExit // - this.optionsWindowExit.Location = new System.Drawing.Point(454, 64); + this.optionsWindowExit.Location = new System.Drawing.Point(454, 60); this.optionsWindowExit.Name = "optionsWindowExit"; this.optionsWindowExit.Size = new System.Drawing.Size(34, 23); this.optionsWindowExit.TabIndex = 4; + this.optionsWindowExit.TabStop = false; this.optionsWindowExit.Text = "OK"; this.optionsWindowExit.UseVisualStyleBackColor = true; this.optionsWindowExit.Click += new System.EventHandler(this.OptionsWindowExit_Click); @@ -531,6 +554,7 @@ namespace LaptopSimulator2015 this.optionsWindowLSD.Name = "optionsWindowLSD"; this.optionsWindowLSD.Size = new System.Drawing.Size(73, 18); this.optionsWindowLSD.TabIndex = 3; + this.optionsWindowLSD.TabStop = false; this.optionsWindowLSD.Text = "LSD Mode"; this.optionsWindowLSD.UseVisualStyleBackColor = true; this.optionsWindowLSD.CheckedChanged += new System.EventHandler(this.OptionsWindowLSD_CheckedChanged); @@ -550,6 +574,7 @@ namespace LaptopSimulator2015 this.optionsWindowWam.Name = "optionsWindowWam"; this.optionsWindowWam.Size = new System.Drawing.Size(380, 45); this.optionsWindowWam.TabIndex = 1; + this.optionsWindowWam.TabStop = false; this.optionsWindowWam.Scroll += new System.EventHandler(this.OptionsWindowWam_Scroll); // // optionsWindowHeader @@ -561,7 +586,7 @@ namespace LaptopSimulator2015 this.optionsWindowHeader.Dock = System.Windows.Forms.DockStyle.Top; this.optionsWindowHeader.Location = new System.Drawing.Point(0, 0); this.optionsWindowHeader.Name = "optionsWindowHeader"; - this.optionsWindowHeader.Size = new System.Drawing.Size(502, 20); + this.optionsWindowHeader.Size = new System.Drawing.Size(495, 20); this.optionsWindowHeader.TabIndex = 0; this.optionsWindowHeader.MouseDown += new System.Windows.Forms.MouseEventHandler(this.OptionsWindowHeader_MouseDown); this.optionsWindowHeader.MouseMove += new System.Windows.Forms.MouseEventHandler(this.OptionsWindowHeader_MouseMove); @@ -572,7 +597,7 @@ namespace LaptopSimulator2015 this.optionsWindowHeaderExit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.optionsWindowHeaderExit.BackColor = System.Drawing.Color.Red; this.optionsWindowHeaderExit.Font = new System.Drawing.Font("Marlett", 12F); - this.optionsWindowHeaderExit.Location = new System.Drawing.Point(462, 0); + this.optionsWindowHeaderExit.Location = new System.Drawing.Point(455, 0); this.optionsWindowHeaderExit.Name = "optionsWindowHeaderExit"; this.optionsWindowHeaderExit.Size = new System.Drawing.Size(40, 20); this.optionsWindowHeaderExit.TabIndex = 3; @@ -588,6 +613,9 @@ namespace LaptopSimulator2015 this.optionsWindowIcon.Name = "optionsWindowIcon"; this.optionsWindowIcon.Size = new System.Drawing.Size(20, 20); this.optionsWindowIcon.TabIndex = 1; + this.optionsWindowIcon.MouseDown += new System.Windows.Forms.MouseEventHandler(this.OptionsWindowHeader_MouseDown); + this.optionsWindowIcon.MouseMove += new System.Windows.Forms.MouseEventHandler(this.OptionsWindowHeader_MouseMove); + this.optionsWindowIcon.MouseUp += new System.Windows.Forms.MouseEventHandler(this.OptionsWindowHeader_MouseUp); // // optionsWindowTitle // @@ -597,12 +625,143 @@ namespace LaptopSimulator2015 this.optionsWindowTitle.Size = new System.Drawing.Size(80, 13); this.optionsWindowTitle.TabIndex = 0; this.optionsWindowTitle.Text = "PCOptimizerPro"; + this.optionsWindowTitle.MouseDown += new System.Windows.Forms.MouseEventHandler(this.OptionsWindowHeader_MouseDown); + this.optionsWindowTitle.MouseMove += new System.Windows.Forms.MouseEventHandler(this.OptionsWindowHeader_MouseMove); + this.optionsWindowTitle.MouseUp += new System.Windows.Forms.MouseEventHandler(this.OptionsWindowHeader_MouseUp); // // lsdEffectT // this.lsdEffectT.Enabled = true; this.lsdEffectT.Tick += new System.EventHandler(this.LsdTimer_Tick); // + // devWindow + // + this.devWindow.BackColor = System.Drawing.SystemColors.Window; + this.devWindow.Controls.Add(this.devWindowSkip); + this.devWindow.Controls.Add(this.devWindowLevelList); + this.devWindow.Controls.Add(this.devWindowLevelLabel); + this.devWindow.Controls.Add(this.devWindowDllLabel); + this.devWindow.Controls.Add(this.devWindowDllList); + this.devWindow.Controls.Add(this.devWindowHeader); + this.devWindow.Location = new System.Drawing.Point(527, 149); + this.devWindow.Name = "devWindow"; + this.devWindow.Size = new System.Drawing.Size(495, 258); + this.devWindow.TabIndex = 8; + this.devWindow.Visible = false; + // + // devWindowHeader + // + this.devWindowHeader.BackColor = System.Drawing.SystemColors.WindowFrame; + this.devWindowHeader.Controls.Add(this.devWindowHeaderExit); + this.devWindowHeader.Controls.Add(this.devWindowIcon); + this.devWindowHeader.Controls.Add(this.devWindowTitle); + this.devWindowHeader.Dock = System.Windows.Forms.DockStyle.Top; + this.devWindowHeader.Location = new System.Drawing.Point(0, 0); + this.devWindowHeader.Name = "devWindowHeader"; + this.devWindowHeader.Size = new System.Drawing.Size(495, 20); + this.devWindowHeader.TabIndex = 0; + this.devWindowHeader.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DevWindowHeader_MouseDown); + this.devWindowHeader.MouseMove += new System.Windows.Forms.MouseEventHandler(this.DevWindowHeader_MouseMove); + this.devWindowHeader.MouseUp += new System.Windows.Forms.MouseEventHandler(this.DevWindowHeader_MouseUp); + // + // devWindowHeaderExit + // + this.devWindowHeaderExit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.devWindowHeaderExit.BackColor = System.Drawing.Color.Red; + this.devWindowHeaderExit.Font = new System.Drawing.Font("Marlett", 12F); + this.devWindowHeaderExit.Location = new System.Drawing.Point(455, 0); + this.devWindowHeaderExit.Name = "devWindowHeaderExit"; + this.devWindowHeaderExit.Size = new System.Drawing.Size(40, 20); + this.devWindowHeaderExit.TabIndex = 3; + this.devWindowHeaderExit.Text = "r"; + this.devWindowHeaderExit.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.devWindowHeaderExit.Click += new System.EventHandler(this.DevWindowHeaderExit_Click); + // + // devWindowIcon + // + this.devWindowIcon.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("devWindowIcon.BackgroundImage"))); + this.devWindowIcon.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.devWindowIcon.Location = new System.Drawing.Point(0, 0); + this.devWindowIcon.Name = "devWindowIcon"; + this.devWindowIcon.Size = new System.Drawing.Size(20, 20); + this.devWindowIcon.TabIndex = 1; + this.devWindowIcon.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DevWindowHeader_MouseDown); + this.devWindowIcon.MouseMove += new System.Windows.Forms.MouseEventHandler(this.DevWindowHeader_MouseMove); + this.devWindowIcon.MouseUp += new System.Windows.Forms.MouseEventHandler(this.DevWindowHeader_MouseUp); + // + // devWindowTitle + // + this.devWindowTitle.AutoSize = true; + this.devWindowTitle.Location = new System.Drawing.Point(19, 4); + this.devWindowTitle.Name = "devWindowTitle"; + this.devWindowTitle.Size = new System.Drawing.Size(53, 13); + this.devWindowTitle.TabIndex = 0; + this.devWindowTitle.Text = "DevTools"; + this.devWindowTitle.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DevWindowHeader_MouseDown); + this.devWindowTitle.MouseMove += new System.Windows.Forms.MouseEventHandler(this.DevWindowHeader_MouseMove); + this.devWindowTitle.MouseUp += new System.Windows.Forms.MouseEventHandler(this.DevWindowHeader_MouseUp); + // + // devWindowOpen + // + this.devWindowOpen.Location = new System.Drawing.Point(274, 60); + this.devWindowOpen.Name = "devWindowOpen"; + this.devWindowOpen.Size = new System.Drawing.Size(75, 23); + this.devWindowOpen.TabIndex = 8; + this.devWindowOpen.TabStop = false; + this.devWindowOpen.Text = "DevTools"; + this.devWindowOpen.UseVisualStyleBackColor = true; + this.devWindowOpen.Visible = false; + this.devWindowOpen.Click += new System.EventHandler(this.DevWindowOpen_Click); + // + // devWindowDllList + // + this.devWindowDllList.FormattingEnabled = true; + this.devWindowDllList.Location = new System.Drawing.Point(51, 26); + this.devWindowDllList.Name = "devWindowDllList"; + this.devWindowDllList.Size = new System.Drawing.Size(437, 95); + this.devWindowDllList.TabIndex = 1; + this.devWindowDllList.TabStop = false; + this.devWindowDllList.SelectedIndexChanged += new System.EventHandler(this.DevWindowDllList_SelectedIndexChanged); + // + // devWindowDllLabel + // + this.devWindowDllLabel.AutoSize = true; + this.devWindowDllLabel.Location = new System.Drawing.Point(10, 29); + this.devWindowDllLabel.Name = "devWindowDllLabel"; + this.devWindowDllLabel.Size = new System.Drawing.Size(35, 13); + this.devWindowDllLabel.TabIndex = 2; + this.devWindowDllLabel.Text = "DLLs:"; + // + // devWindowLevelLabel + // + this.devWindowLevelLabel.AutoSize = true; + this.devWindowLevelLabel.Location = new System.Drawing.Point(10, 131); + this.devWindowLevelLabel.Name = "devWindowLevelLabel"; + this.devWindowLevelLabel.Size = new System.Drawing.Size(41, 13); + this.devWindowLevelLabel.TabIndex = 3; + this.devWindowLevelLabel.Text = "Levels:"; + // + // devWindowLevelList + // + this.devWindowLevelList.FormattingEnabled = true; + this.devWindowLevelList.Location = new System.Drawing.Point(51, 127); + this.devWindowLevelList.Name = "devWindowLevelList"; + this.devWindowLevelList.Size = new System.Drawing.Size(437, 95); + this.devWindowLevelList.TabIndex = 4; + this.devWindowLevelList.TabStop = false; + this.devWindowLevelList.SelectedIndexChanged += new System.EventHandler(this.DevWindowLevelList_SelectedIndexChanged); + // + // devWindowSkip + // + this.devWindowSkip.Location = new System.Drawing.Point(13, 227); + this.devWindowSkip.Name = "devWindowSkip"; + this.devWindowSkip.Size = new System.Drawing.Size(75, 23); + this.devWindowSkip.TabIndex = 5; + this.devWindowSkip.TabStop = false; + this.devWindowSkip.Text = "Skip Step"; + this.devWindowSkip.UseVisualStyleBackColor = true; + this.devWindowSkip.Click += new System.EventHandler(this.DevWindowSkip_Click); + // // FakeDesktop // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -610,6 +769,7 @@ namespace LaptopSimulator2015 this.BackColor = System.Drawing.Color.Blue; this.ClientSize = new System.Drawing.Size(1387, 919); this.ControlBox = false; + this.Controls.Add(this.devWindow); this.Controls.Add(this.optionsWindow); this.Controls.Add(this.minigamePanel); this.Controls.Add(this.levelWindow); @@ -644,6 +804,10 @@ namespace LaptopSimulator2015 ((System.ComponentModel.ISupportInitialize)(this.optionsWindowWam)).EndInit(); this.optionsWindowHeader.ResumeLayout(false); this.optionsWindowHeader.PerformLayout(); + this.devWindow.ResumeLayout(false); + this.devWindow.PerformLayout(); + this.devWindowHeader.ResumeLayout(false); + this.devWindowHeader.PerformLayout(); this.ResumeLayout(false); } @@ -697,5 +861,16 @@ namespace LaptopSimulator2015 private System.Windows.Forms.Button optionsWindowReset; private System.Windows.Forms.ToolTip toolTip; private System.Windows.Forms.Label minigameClose; + private System.Windows.Forms.Panel devWindow; + private System.Windows.Forms.Panel devWindowHeader; + private System.Windows.Forms.Label devWindowHeaderExit; + private System.Windows.Forms.Panel devWindowIcon; + private System.Windows.Forms.Label devWindowTitle; + private System.Windows.Forms.Button devWindowOpen; + private System.Windows.Forms.ListBox devWindowDllList; + private System.Windows.Forms.Label devWindowDllLabel; + private System.Windows.Forms.Label devWindowLevelLabel; + private System.Windows.Forms.ListBox devWindowLevelList; + private System.Windows.Forms.Button devWindowSkip; } } \ No newline at end of file diff --git a/LaptopSimulator2015/FakeDesktop.cs b/LaptopSimulator2015/FakeDesktop.cs index 74c5d56..8b7dbc2 100644 --- a/LaptopSimulator2015/FakeDesktop.cs +++ b/LaptopSimulator2015/FakeDesktop.cs @@ -22,7 +22,6 @@ namespace LaptopSimulator2015 List captchaGlitches = new List(); SoundPlayer fans; bool winShouldClose = false; - enum Mode { mainMenu, @@ -75,12 +74,14 @@ namespace LaptopSimulator2015 public FakeDesktop() { Directory.SetCurrentDirectory(Path.GetDirectoryName(Application.ExecutablePath)); - if (!Directory.Exists("Levels")) - Directory.CreateDirectory("Levels"); - if (!Directory.Exists("Goals")) - Directory.CreateDirectory("Goals"); + if (!Directory.Exists("Content")) + Directory.CreateDirectory("Content"); InitializeComponent(); toolTip.SetToolTip(options_2, strings.optionsWindowTitle); +#if DEBUG + devWindowOpen.Visible = true; + optionsWindowLang.Size = new Size(88, 21); +#endif levelWindowContents.ItemSize = new Size(0, 1); optionsWindowLang.Text = Settings.lang.Name; Thread.CurrentThread.CurrentUICulture = Settings.lang; @@ -102,30 +103,37 @@ namespace LaptopSimulator2015 Control[] controls = getControls(ignore: new List { minigamePanel }).ToArray(); for (int i = 0; i < controls.Length; i++) controls[i].Paint += Control_Paint; - IEnumerable tmp_types = Directory.GetFiles("Levels").Concat(Directory.GetFiles("Goals")).Concat(Directory.GetFiles("Glitches")).Where(s => Path.GetExtension(s) == ".dll").Select(s => Assembly.LoadFrom(s)) - .SelectMany(s => s.GetTypes()); + IEnumerable tmpdirs = Directory.EnumerateFiles("Content", "*.dll", SearchOption.AllDirectories); + IEnumerable tmp_types = tmpdirs.Select(s => Assembly.LoadFrom(s)).SelectMany(s => s.GetTypes()).Distinct(); levels = tmp_types.Where(p => typeof(Minigame).IsAssignableFrom(p)).Distinct().Except(new Type[] { typeof(Minigame), typeof(Level), typeof(Goal) }) .Select(s => (Minigame)Activator.CreateInstance(s)).OrderBy(lv => lv.availableAfter).ToList(); +#if true || DEBUG + //tmpdirs.Select(s => devWindowDllList.Items.Add(s)); + devWindowDllList.Items.AddRange(tmpdirs.ToArray()); + devWindowLevelList.Items.AddRange(levels.Select(s => s.availableAfter.ToString() + " - " + s.name + (typeof(Goal).IsAssignableFrom(s.GetType()) ? (" - " + ((Goal)s).playableAfter.ToString() + " (Goal)") : " (Level)")).ToArray()); +#endif captchaGlitches = tmp_types.Where(p => typeof(CaptchaGlitch).IsAssignableFrom(p)).Distinct().Except(new Type[] { typeof(CaptchaGlitch) }) .Select(s => (CaptchaGlitch)Activator.CreateInstance(s)).ToList(); for (int i = 0; i < levels.Count; i++) { - levels[i].desktopIcon = new Panel(); - Panel tmp1 = new Panel(); - - levels[i].desktopIcon.Size = new Size(50, 50); - levels[i].desktopIcon.BackColor = Color.FromArgb(128, 128, 255); - levels[i].desktopIcon.Name = "lvl" + i.ToString() + "_1"; - levels[i].desktopIcon.Visible = levels[i].availableAfter <= Settings.level; - - tmp1.BackColor = Color.Blue; - tmp1.BackgroundImageLayout = ImageLayout.Stretch; - tmp1.BackgroundImage = levels[i].icon; - tmp1.Anchor = (AnchorStyles)15; - tmp1.Name = "lvl" + i.ToString() + "_2"; - tmp1.Location = new Point(2, 2); - tmp1.Size = new Size(46, 46); - tmp1.Tag = i; + levels[i].desktopIcon = new Panel + { + Size = new Size(50, 50), + BackColor = Color.FromArgb(128, 128, 255), + Name = "lvl" + i.ToString() + "_1", + Visible = levels[i].availableAfter <= Settings.level + }; + Panel tmp1 = new Panel + { + BackColor = Color.Blue, + BackgroundImageLayout = ImageLayout.Stretch, + BackgroundImage = levels[i].icon, + Anchor = (AnchorStyles)15, + Name = "lvl" + i.ToString() + "_2", + Location = new Point(2, 2), + Size = new Size(46, 46), + Tag = i + }; tmp1.DoubleClick += (sender, e) => { levelInd = (int)((Panel)sender).Tag; @@ -192,7 +200,6 @@ namespace LaptopSimulator2015 } }; toolTip.SetToolTip(tmp1, strings.lvPref + " " + (i + 1).ToString() + ": " + levels[i].name); - levels[i].desktopIcon.Controls.Add(tmp1); winDesktop.Controls.Add(levels[i].desktopIcon); } @@ -226,6 +233,10 @@ namespace LaptopSimulator2015 } levels[i].desktopIcon.Visible = levels[i].availableAfter <= Settings.level; } +#if DEBUG + devWindowLevelList.SelectedIndex = levels.FindIndex(s => s.availableAfter == Settings.level); + //Settings.level = levels[devWindowLevelList.SelectedIndex].availableAfter; +#endif } Thread playDialog(string[] lines) @@ -365,9 +376,7 @@ namespace LaptopSimulator2015 minigamePanel.Visible = true; minigamePanel.Enabled = true; minigameClockT.Enabled = true; -#if !DEBUG levelWindowC1.Enabled = false; -#endif g.Clear(Color.Red); g.DrawString("DANGER!", new Font("Microsoft Sans Serif", 100f), new SolidBrush(Color.White), 100, 150); g.DrawString("VIRUS DETECTED", new Font("Microsoft Sans Serif", 20f), new SolidBrush(Color.White), 0, 300); @@ -408,14 +417,17 @@ namespace LaptopSimulator2015 if (strings.captchaLetters.ToUpper().ToCharArray().Contains(tmp1)) { string tmp2 = tmp1.ToString().ToUpper(); - for (int i = 0; i < captchaGlitches.Count; i++) - { - captchaGlitches[i].currentLevel = Settings.level; - if (new Random().NextDouble() < captchaGlitches[i].chance) + captchaGlitches.ForEach(s => s.currentLevel = Settings.level); + Random rnd = new Random(); + CaptchaGlitch[] capGlN = captchaGlitches.Where(s => !s.postGlitch).ToArray(); + List capGlP = captchaGlitches.Where(s => s.postGlitch).ToList(); + for (int i = 0; i < capGlN.Length; i++) + if (rnd.NextDouble() < capGlN[i].chance) { - captchaGlitches[i].apply(tmp1, ref tmp2, strings.captchaLetters.ToUpper().ToCharArray()); + capGlN[i].apply(tmp1, ref tmp2, strings.captchaLetters.ToUpper().ToCharArray(), rnd); + break; } - } + capGlP.ForEach(s => s.apply(tmp1, ref tmp2, strings.captchaLetters.ToUpper().ToCharArray(), rnd)); captchaBox.Text += tmp2; } break; @@ -434,7 +446,6 @@ namespace LaptopSimulator2015 g.FillRectangle(new HatchBrush((HatchStyle)rnd.Next(53), Color.FromArgb(rnd.Next(180, 255), rnd.Next(180, 255), rnd.Next(180, 255)), Color.Transparent), new Rectangle(0, 0, 175, 60)); for (int i = 0; i < 6; i++) { - int y = rnd.Next(8, 13); int fontSize = rnd.Next(12, 18); g.TranslateTransform(25 * (i) + 10, (30 - fontSize) / 2); g.RotateTransform(rnd.Next(-20, 20)); @@ -442,7 +453,7 @@ namespace LaptopSimulator2015 int tmpG = rnd.Next(0, (200 - tmpR) / 2); string s = Chars[rnd.Next(Chars.Length)].ToString(); captchaBox.Tag = (string)captchaBox.Tag + s; - g.DrawString(s, new Font(new string[] { "Arial", "Consolas", "Verdena" }[rnd.Next(3)], fontSize), new SolidBrush(Color.FromArgb(tmpR, tmpG, Math.Max(0, 200 - tmpR - tmpG))), new PointF(5, y)); + g.DrawString(s, new Font(new string[] { "Arial", "Consolas", "Verdena" }[rnd.Next(3)], fontSize), new SolidBrush(Color.FromArgb(tmpR, tmpG, Math.Max(0, 200 - tmpR - tmpG))), new PointF(5, rnd.Next(8, 13))); g.ResetTransform(); } g.FillRectangle(new HatchBrush((HatchStyle)rnd.Next(53), Color.FromArgb(rnd.Next(10, 50), rnd.Next(180, 255), rnd.Next(180, 255), rnd.Next(180, 255)), Color.FromArgb(rnd.Next(10, 50), rnd.Next(180, 255), rnd.Next(180, 255), rnd.Next(180, 255))), new Rectangle(0, 0, 175, 60)); @@ -628,6 +639,42 @@ namespace LaptopSimulator2015 Application.Exit(); } } + + bool devWindowMoving = false; + Point devWindowDiff = Point.Empty; + + private void DevWindowHeader_MouseDown(object sender, MouseEventArgs e) + { + devWindowMoving = true; + devWindowDiff = new Point(devWindow.Location.X - Cursor.Position.X, devWindow.Location.Y - Cursor.Position.Y); + } + + private void DevWindowHeader_MouseMove(object sender, MouseEventArgs e) + { + if (devWindowMoving) + devWindow.Location = new Point(Cursor.Position.X + devWindowDiff.X, Cursor.Position.Y + devWindowDiff.Y); + } + + private void DevWindowHeader_MouseUp(object sender, MouseEventArgs e) => devWindowMoving = false; + private void DevWindowHeaderExit_Click(object sender, EventArgs e) => devWindow.Visible = false; + private void DevWindowOpen_Click(object sender, EventArgs e) => devWindow.Visible = true; + private void DevWindowDllList_SelectedIndexChanged(object sender, EventArgs e) => _ = Process.Start("explorer", "/select," + (((string)devWindowDllList.SelectedItem).Contains(" ") ? "\"" + (string)devWindowDllList.SelectedItem + "\"" : (string)devWindowDllList.SelectedItem)); #endregion + + private void DevWindowLevelList_SelectedIndexChanged(object sender, EventArgs e) + { + Settings.level = levels[devWindowLevelList.SelectedIndex].availableAfter; + updateIconVisibility(); + } + + private void DevWindowSkip_Click(object sender, EventArgs e) + { + if (levelWindow.Visible) + { + if (levelWindowContents.SelectedIndex == 1) + captchaBox.Text = (string)captchaBox.Tag; + LevelWindowC1_Click(sender, e); + } + } } } \ No newline at end of file diff --git a/LaptopSimulator2015/FakeDesktop.resx b/LaptopSimulator2015/FakeDesktop.resx index 13a887b..1bef65e 100644 --- a/LaptopSimulator2015/FakeDesktop.resx +++ b/LaptopSimulator2015/FakeDesktop.resx @@ -293,4 +293,87 @@ 566, 17 + + + /9j/4AAQSkZJRgABAQEAYABgAAD/4QA6RXhpZgAATU0AKgAAAAgAAwESAAMAAAABAAEAAEAAAAMAAAAB + ABUAAEABAAEAAAABAAAAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcI + CQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwM + DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCABkAGQDASIAAhEBAxEB/8QA + HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh + MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW + V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG + x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF + BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV + YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE + hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq + 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9+/m9qPm9qPm9qjnb5eSvQk+w9aAHsaaK434ifHLwv8Knjj1r + Uo4bu4H7iyi3XF5cD1SFAXbt0B6iuRf9qi6nbdZfDj4g3kX8MptILVWHbCSzLIP+BKK0jRlJXRjUxFOH + xHsWKQjNeOD9pvxDJ/qfhZ4yb/fubFf/AGuaG/aB8ZTcx/CvxB/wPUrL+k3FV9XqGaxlLoz2QZA7UY3V + 42fjx4+lHy/C68jH/TXWrYA/lmj/AIXn4+6N8NY1Ht4jt1z9OBR9VqMmWOpLc9jPHpSqa8dh/axtdBlV + fGHh3xB4Vj6PezwLc6ch97iIsF7ff257ZwceoaLrNtr9lHd2dxDdWtwiyRSxOHSRT0YEEgg1Mqc4/Ea0 + 8RTn8Jp/N7UfN7UyE9af83tWZuHze1FHze1FADJuSuQPY46dK8q+P/xbvtCnsvC/hlrf/hJNYVpWuJlM + kWkWw4NzIB3zwg7n6V6ldt5Ue4/w5I/z9M/nXzh8CrxfHvjnxb4znVpBe6lNHGHO9RBbO1vBH7fMry/V + hXRhKXtHfsebmGKdOPIupreH/C/hH9nnQrjXPEOoMupXRButR1GQy3165HAlfBO454Rfugj1qGH9rqzu + o9ui+F/FGpxrwjWmkTMh9MMV5qL4F+HbP4vfEXxB401jy77+x9Tk0vRLeRtyWXlAeZKF6edIxyfZRXus + V/DHwoXaPusv3W9x2rslVhTfK1dnn4ejKrFtux4Yvx0+IniByumfDHXj3WS7mhtvzDPkflS/afjl4l+a + Lw94X0fdxtutRaVk9/kXn8692GpL/DxQupLu+apli5JXjA0WXUXpOVzwyP4I/F7Wfmu/G3h/Td33ktdM + abH0ZnGPyqxb/sleIr8n+1fid4mk/wBmzghtx7/wsf14r3Vb6ORaPMWT7tR/aWIWx0RyrCrc8J1H9jj+ + zrR5tL8a+LoNUAO2Se6F1HJwfleB/kcH0ODjOK8z+HninXP2e/EGqtJbfY7Hw/cLH4o0a03PZrFIDt1a + wDcxLyWkj6BY2xX2EEGfm+lfPPxG/wCJT+2bbxzbWtNa8N7DGy7ll8uZwVx6kSEfjW2ErzrNwq9Tlx2H + hhEqlLyPcpvEVjb6A2pNcQ/YI0+0mZyPLSP7+/Ppt5HsVr5D+Bf/AAVYb42/tGyeGtO8MrJ4Tku0srfU + hOftgJO0SyL02MVPTsK439pD4leINd+EK/s5+D9Y02Hxtf6pc6S015c+W9to8bAxkDrukR0hXHYNXPf8 + E1v2I/Enwd+MFzpPjCGBdS0e5Gr3z28m+AxopjtETv8ANmZznvHSo4elGnOVffoefjsxx1TF0aeF+Hr9 + x+jYuQBw0aduW25xxkD0oqWIRpGPn2nv7+/49aK8h+zufZrltqLMu6FuwHPHWvl39kvUn0vwPrmivD5N + 1p97eQEHqzR3kwOfqGFfU1w/louemcn6da+S7RP+EQ/aa8caPBHsS9vBcxBfvSefbqxx/wBtI5Pzr2cp + gp1JRZ85nicKUai6Gh+yt4q/sz4g/Enw/u2xtLba1b46hZYxG4H0MQ/OvYk8VlnAVmbcSAB9/A4r578N + 6Nd+Bf2u/D95qUkMNv4qsrnSZ7de5A82PP8A3y1e/Sa1Z6JNKiQxxurYymM9SR1+tepiqMVXagrnzdHF + NUVKcuVdzctDd3S7vIZV/vM2DV+ONo8bpeT224xXmnif486D4RZl1LVLW3m6+QZg0n4KKyD+1LY6gw/s + 63mmGOHlby1x9Ky/srGT96MNA/1oyyl7lSrzPse2rtK/NJTo4lflWZtvpXjMXxlv9RddjRxxsDtWPHJ9 + s+n9a9M8F62t3oMEnnLIgizI5xuHXIyOnY/Ra4MfgauFj7Soezk/EOHx9RRolrxf4403wB4XvdY1i8TT + 9N02MzzzSkbEUdc//W74r8/PjD+17N8dvi9peveHNQg8M2uj281jZyXAWS5vI3YEyMrkBc7Vx1yDXdft + gftCR/GLxfb6FpkB1Tw9ocnmXQ37YtUuFI7/AMUKfe+q1q/DHxZ4b1GzWy13QjskHLTQLMhHqQOxzn6E + V/OvF3iRSniHg8uxfs3s35n77kPCtChhfreaUOd7qHZdz4d/aV/Yf174pfHV/jXo/ifW7n4g28kV2YHK + pHceUvy+XsACtx05yCRX6t/sUw32sfBmy8Ta5c2d94o8Vxx32rT2zF4VkC7BAjd1iClPqGPevJ9d+BXh + 7TL6zvPCMkenPfElYYnP2Y4UknZ/CcZHHXPtXefsX2914PuPFfhy6VVhsbhL21UdI0lU7kH0Kg/8Cr0O + A+KczlW/s/MantL3s/lc8TiTKcrcHj8BH2b6x/A98+b2oqI7Cx3jpwPpRX7F7M+IHPH8v6V8l/tQX3/C + sv2uPDeu+Z5cOq2EaSj+88Nxt/lOK+tXVmZem3vXyN/wVk0ZrX4e+GfEEYbzrG8mtjt6gSwOQR77o1H4 + 162SSUsVGEuun3ni8QRf1Ocl01+480/bg+O2mfDC80XxNqGoQ6eNF1q1njlkYAOS+3aPc7q8h/a6/wCC + hPiLV/HOoaD4c8zQ9Ot5MC6ziaZSA2dx+6PmOMetflh+3f8AtgeKv2mviJdahrEzWdlp8mzTtOik2w2j + DJJ95C2TX0x4w8Ur4z8F+AvFccu5PEugW1xO3ZpkHlMT/tfIM/hX9JcM8JYGniqccVHmla6R/M3iFmWO + rYGNTCy5YvRs9M+H3xBvn8SrJJLeX1zdyYLlmmlkY/8AoVfSWheMdS8Lx2seqafe2KzYEYuYzCHx/d/2 + ueK8F/4J+63YS/FK7a4aNr6GAG23feB3c4/DFfbf7WPifRbL9lzWrrVHt42jjU6e0mN/nk/KF/2jg9K6 + uLsZCjmMMFSoe7Jpbd32PzbhnKaksNVxVSteUU3vY4Cw/aBWK9aG1s9Rv3jOPMhjG1COoLnjI710MHi7 + xd8QtNfTRcT6LpN2P3tvbsTLcg/89G6bT3xXgX7Kfx00l9WXRtemjs3vJ/NiupMiN3YD5GPZuBX2dp+i + W+k6O15KyraRoGeQZK7fQEde1f5s+P3FvG2CzjE5HiIexpX933bXh6n94eDuWcKVcro5tgn7Wq4pS969 + p+hynhP4JwWVvFmNY1jXHy8rj2PcV3Hh/wCGVvDCXP8Aq+KZ4Mv5PiDqr+TH5Ol253M/Pzt6c+vFb3j3 + xXFoMA06CX99Io3j/nmp6D8cGv5Mo4dwi683zRez8z9sxmaYqpW9le0uq8uhH4f8Nxw6vut/lEJHP410 + nwps/snxr1j+HdpcDSD381sf1pvw1sWfS45X+RrjD89FAPX+danwLddd8Q+KNbX5be4u0tYFHQrEn3h9 + S/6V+6+DuW42pjIVq3wpu33Hx+cYyc4OMz0qXy8ru9OKKZM0jMu37uKK/rbmtofEyepY+b2rwr/goz4c + PiH9l7VW27jp91a3h9lWdAx/Imvdfm9qxviB4TtfHfhHUNG1CNpbPVLaW2mRW2s6OhVsHscHg9jg9q2w + lb2VaNTs0zLHUPbYedLumfyX/tceD7rwV8T/ABBYypiS1vJBgdX2kg4+p3V6v8EPHdxr/wCwFpNwz7W8 + E69PpjOVyVhmAkVT9NrV73/wVt/YG1jwX4u1PUI7V7i801RFfiJMfa4OVhvI/VWQDcOzq4r4k/Z5+OA/ + Zs1bXNB8Q6PJ4i8B+LFVdXsYm8ueBl+7cwNkBZFyeD1z7V/SWDzhtUMxoLmilZr5WP5/qZbTqU6mXYre + +n3ntHg79oT7BcQXFneS200ZHlzRyfN26enSu88R/tb658RYYI9Z1q+1ZLfiNLmfcsZGO3+eleGT63+z + p4YddQsNc+Ierbsuumx6akMkRJyYzIzbcDI5HXJqU/tv+GPCsfl+D/hHb3DDhbvXr43LE9iUUKPXo1fa + S4vwdRRnKg+dbW3PksVwJry02lF99j6A+HnxLu574+Tp93fmXJYJGefYsOdtfYP7KX7Z3xN+E0jLrXh0 + al4PbCGDU51tZLSPnJjlk42j0IOcDkd/yq1z9vD4zeJoDBp+rWPhOA5XytF0+O349pPmcY/3u9efa0PG + XxKuPO17Wte16SRst9qvJJ8+v3icfpXxfGuV5fxbSdLMMHFdOaW6+49ThfK6vD9d4nB4txvul8J/Sv8A + B3/goT8AvijqZ0HS/HXhvSdc2Dfpz3cUUiMc9CGZT06g/gK9Fj+CmgeIL5tQtfECXCTSh2kW4jk80H+E + kdq/mX+DH7I/iL4halDbaPot3cSXDEKwiLLGcfeJPAA6ZPTIr9UP+Ccn/BP/AMSWsf2GPUtUurqRfIvL + xLyX7DoKkAMobIV7rGcBPujOeor+ZeLvo75DhaHt5uKe6Stf8P1P3bJvEzFV8QqFKLk9nI/S/wAd63/Y + 1pHoHh5o7rXr5fJiC4YWqd3bHQKCW+oFd/8ADTwdB4D8JWul2zb1tUAdyctI5+ZnPuxO78aqeAPhpovw + 402Gy0uzitzDGkfmEZlm25G5jklucnn+8a6eM/OwG2vmch4foZfeUPRH3FbFSnHk+bH/ADe1FHze1FfT + HKHze1RXALbevHOQf0qX5vamyFuKHbqB5d+0b+zX4f8A2htDht9Uia21G2LGy1CEbZrYsBkejK2BlCCG + x04yPy9/am/4IM3s+tXl5p+gXF1FIx2XGgBGWQE8s1qzJsbPUK7Z9TwB+yYzntTJjnHSvcyfiLHZb/Al + ddj57NuG8Fj/AH6iafdbn89ehf8ABD/VtV1M28Gn+NLyWNypiTQGix9TIUQfgT9TXsXw7/4N9NYkClvD + WpSLxu/tDUYLTH/fHmf17V+2HNOj7178vETNWrRdvM8SPAWBv70pNdnsflv4K/4N+47MQvdWfhGz29Vm + nuLxl/HCKfyr2jwD/wAEW/DPhZFZ9W0+Fv4ltNDgGPozkmvuQc+lRzJ0rycRxhm9b4qp6eH4Nyun9g+e + /BX/AATf8C+E9v2mbWNYjXrbz3Ait2HfKRquR7HP86908I+GbHwlpUdjptnbWNlbqEihgh8mNAM9E7fX + vWjCOuKeNwrwq+Mr13zVpXPdw2Bw+H0oxsL83tR83tR83tR83tXOdgfN7UUfN7UUAJvo30UUAG+jfRRQ + Ab6N9FFABvo30UUAG+jfRRQAb6N9FFABvooooA//2Q== + + + + 54 + \ No newline at end of file diff --git a/LaptopSimulator2015/LaptopSimulator2015.csproj b/LaptopSimulator2015/LaptopSimulator2015.csproj index 2685660..68aa4e1 100644 --- a/LaptopSimulator2015/LaptopSimulator2015.csproj +++ b/LaptopSimulator2015/LaptopSimulator2015.csproj @@ -132,16 +132,16 @@ - if not exist "$(TargetDir)Levels" mkdir "$(TargetDir)Levels" -if exist "$(SolutionDir)tmp" copy $(SolutionDir)tmp\* "$(TargetDir)Levels" + if not exist "$(TargetDir)Content\Levels" mkdir "$(TargetDir)Content\Levels" +if exist "$(SolutionDir)tmp" copy $(SolutionDir)tmp\* "$(TargetDir)Content\Levels" rmdir /s /q "$(SolutionDir)tmp" -if not exist "$(TargetDir)Goals" mkdir "$(TargetDir)Goals" -if exist "$(SolutionDir)tmp1" copy $(SolutionDir)tmp1\* "$(TargetDir)Goals" +if not exist "$(TargetDir)Content\Goals" mkdir "$(TargetDir)Content\Goals" +if exist "$(SolutionDir)tmp1" copy $(SolutionDir)tmp1\* "$(TargetDir)Content\Goals" rmdir /s /q "$(SolutionDir)tmp1" -if not exist "$(TargetDir)Glitches" mkdir "$(TargetDir)Glitches" -if exist "$(SolutionDir)tmp2" copy $(SolutionDir)tmp2\* "$(TargetDir)Glitches" +if not exist "$(TargetDir)Content\Glitches" mkdir "$(TargetDir)Content\Glitches" +if exist "$(SolutionDir)tmp2" copy $(SolutionDir)tmp2\* "$(TargetDir)Content\Glitches" rmdir /s /q "$(SolutionDir)tmp2" del /q "$(TargetDir)save.xml" diff --git a/zz_CaptchaGlitch_Empty/Empty.cs b/zz_CaptchaGlitch_Empty/Empty.cs index 32a8c45..75fa604 100644 --- a/zz_CaptchaGlitch_Empty/Empty.cs +++ b/zz_CaptchaGlitch_Empty/Empty.cs @@ -9,8 +9,9 @@ namespace LaptopSimulator2015.Glitches { public class Empty : CaptchaGlitch { - public double chance { get { if (currentLevel < 1) return 0; return Math.Min(currentLevel / 8d, 0.8); } } + public double chance { get { if (currentLevel < 1) return 0; return Math.Min(currentLevel / 10d, 0.4); } } public int currentLevel { get; set; } - public void apply(char inputChar, ref string inputString, char[] captchaChars) => inputString.Remove(0, 1); + public bool postGlitch => false; + public void apply(char inputChar, ref string inputString, char[] captchaChars, Random rnd) => inputString.Remove(0, 1); } } diff --git a/zzz_ShuffleChars/ShuffleChars.cs b/zzz_ShuffleChars/ShuffleChars.cs index 43055fc..07b7aa3 100644 --- a/zzz_ShuffleChars/ShuffleChars.cs +++ b/zzz_ShuffleChars/ShuffleChars.cs @@ -11,7 +11,7 @@ namespace LaptopSimulator2015.Glitches { public double chance { get { if (currentLevel < 1) return 0; return Math.Min(currentLevel / 8d, 0.8); } } public int currentLevel { get; set; } - Random rnd = new Random(); - public void apply(char inputChar, ref string inputString, char[] captchaChars) => inputString = string.Join("", inputString.ToCharArray().OrderBy(x => rnd.Next())); + public bool postGlitch => true; + public void apply(char inputChar, ref string inputString, char[] captchaChars, Random rnd) => inputString = string.Join("", inputString.ToCharArray().OrderBy(x => rnd.Next())); } }