Added Debug Menu, Menu changes

This commit is contained in:
CreepyCrafter24 2019-09-26 19:10:39 +02:00
parent b4439c4708
commit 9645a01445
9 changed files with 368 additions and 55 deletions

View File

@ -17,11 +17,16 @@ namespace Base
/// </summary>
int currentLevel { get; set; }
/// <summary>
/// If set to true this will always try to execute the glitch (check the chance)
/// </summary>
bool postGlitch { get; }
/// <summary>
/// Called with the selected chance after the player inputs a char to the Captcha-box
/// </summary>
/// <param name="inputChar">The character the player typed</param>
/// <param name="inputString">The string to be added to the Captcha-box, modified by previous CaptchaGlitch instances</param>
/// <param name="captchaChars">The characters which can be added to the CaptchaBox</param>
void apply(char inputChar, ref string inputString, char[] captchaChars);
/// <param name="rnd">Random Number Generator shared between instances</param>
void apply(char inputChar, ref string inputString, char[] captchaChars, Random rnd);
}
}

View File

@ -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;
}
}

View File

@ -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)];
}
}

View File

@ -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;
}
}

View File

@ -22,7 +22,6 @@ namespace LaptopSimulator2015
List<CaptchaGlitch> captchaGlitches = new List<CaptchaGlitch>();
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<Control> { minigamePanel }).ToArray();
for (int i = 0; i < controls.Length; i++)
controls[i].Paint += Control_Paint;
IEnumerable<Type> 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<string> tmpdirs = Directory.EnumerateFiles("Content", "*.dll", SearchOption.AllDirectories);
IEnumerable<Type> 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<CaptchaGlitch> 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);
}
}
}
}

View File

@ -293,4 +293,87 @@
<metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>566, 17</value>
</metadata>
<data name="devWindowIcon.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
/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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
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>54</value>
</metadata>
</root>

View File

@ -132,16 +132,16 @@
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>if not exist "$(TargetDir)Levels" mkdir "$(TargetDir)Levels"
if exist "$(SolutionDir)tmp" copy $(SolutionDir)tmp\* "$(TargetDir)Levels"
<PostBuildEvent>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"</PostBuildEvent>

View File

@ -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);
}
}

View File

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