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
+ 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
+
+
+
+ 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()));
}
}