diff options
| -rw-r--r-- | ShiftOS.WinForms/Applications/ShiftLetters.Designer.cs | 122 | ||||
| -rw-r--r-- | ShiftOS.WinForms/Applications/ShiftLetters.cs | 146 | ||||
| -rw-r--r-- | ShiftOS.WinForms/Applications/ShiftLetters.resx | 120 | ||||
| -rw-r--r-- | ShiftOS.WinForms/Properties/Resources.Designer.cs | 16 | ||||
| -rw-r--r-- | ShiftOS.WinForms/Resources/Shiftorium.txt | 14 | ||||
| -rw-r--r-- | ShiftOS.WinForms/ShiftOS.WinForms.csproj | 9 |
6 files changed, 419 insertions, 8 deletions
diff --git a/ShiftOS.WinForms/Applications/ShiftLetters.Designer.cs b/ShiftOS.WinForms/Applications/ShiftLetters.Designer.cs new file mode 100644 index 0000000..c0c70d3 --- /dev/null +++ b/ShiftOS.WinForms/Applications/ShiftLetters.Designer.cs @@ -0,0 +1,122 @@ +/* + * MIT License + * + * Copyright (c) 2017 Michael VanOverbeek and ShiftOS devs + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +namespace ShiftOS.WinForms.Applications +{ + partial class ShiftLetters + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + this.lblword = new System.Windows.Forms.Label(); + this.tbguess = new System.Windows.Forms.TextBox(); + this.lbllives = new System.Windows.Forms.Label(); + this.btnrestart = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // lblword + // + this.lblword.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.lblword.AutoSize = true; + this.lblword.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F); + this.lblword.Location = new System.Drawing.Point(127, 31); + this.lblword.Name = "lblword"; + this.lblword.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.lblword.Size = new System.Drawing.Size(72, 18); + this.lblword.TabIndex = 1; + this.lblword.Text = "Loading..."; + // + // tbguess + // + this.tbguess.Location = new System.Drawing.Point(147, 108); + this.tbguess.Name = "tbguess"; + this.tbguess.Size = new System.Drawing.Size(22, 20); + this.tbguess.TabIndex = 2; + this.tbguess.TextChanged += new System.EventHandler(this.tbguess_TextChanged); + // + // lbllives + // + this.lbllives.AutoSize = true; + this.lbllives.Location = new System.Drawing.Point(127, 190); + this.lbllives.Name = "lbllives"; + this.lbllives.Size = new System.Drawing.Size(69, 13); + this.lbllives.TabIndex = 3; + this.lbllives.Text = "Still loading..."; + // + // btnrestart + // + this.btnrestart.Location = new System.Drawing.Point(130, 148); + this.btnrestart.Name = "btnrestart"; + this.btnrestart.Size = new System.Drawing.Size(75, 23); + this.btnrestart.TabIndex = 4; + this.btnrestart.Text = "Restart"; + this.btnrestart.UseVisualStyleBackColor = true; + this.btnrestart.Visible = false; + this.btnrestart.Click += new System.EventHandler(this.btnrestart_Click); + // + // ShiftLetters + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.btnrestart); + this.Controls.Add(this.lbllives); + this.Controls.Add(this.tbguess); + this.Controls.Add(this.lblword); + this.Name = "ShiftLetters"; + this.Size = new System.Drawing.Size(333, 256); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.Label lblword; + private System.Windows.Forms.TextBox tbguess; + private System.Windows.Forms.Label lbllives; + private System.Windows.Forms.Button btnrestart; + } +} diff --git a/ShiftOS.WinForms/Applications/ShiftLetters.cs b/ShiftOS.WinForms/Applications/ShiftLetters.cs new file mode 100644 index 0000000..6e6a43e --- /dev/null +++ b/ShiftOS.WinForms/Applications/ShiftLetters.cs @@ -0,0 +1,146 @@ +/* + * MIT License + * + * Copyright (c) 2017 Michael VanOverbeek and ShiftOS devs + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using Newtonsoft.Json; +using ShiftOS.Engine; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace ShiftOS.WinForms.Applications +{ + [Launcher("ShiftLetters", false, null, "Games")] + [RequiresUpgrade("shiftletters")] + [WinOpen("shiftletters")] + public partial class ShiftLetters : UserControl, IShiftOSWindow + { + int lives = 7; + string word = ""; + static Random rng = new Random(); + + public ShiftLetters() + { + InitializeComponent(); + } + + private void StartGame() + { + lives = 7; + tbguess.Visible = true; + lbllives.Visible = true; + lblword.Visible = true; + btnrestart.Visible = false; + var wordlist = new List<string> + { + "shiftos", + "devx", + "delicious", + "shifter", + "pong", + "shiftorium", + "codepoints" + }; + word = wordlist[rng.Next(wordlist.Count)]; + lbllives.Text = "You have 7 lives left!"; + lblword.Text = ""; + for (int i=0; i<word.Length; i++) + { + lblword.Text = lblword.Text + "_ "; + } + } + + public void OnLoad() + { + StartGame(); + } + + public void OnUpgrade() + { + + } + + public bool OnUnload() + { + return true; + } + + public void OnSkinLoad() + { + + } + + private void tbguess_TextChanged(object sender, EventArgs e) + { + if (this.tbguess.Text.Length == 1) + { + var charGuessed = this.tbguess.Text; + bool correct = false; + this.tbguess.Text = ""; + for (int i=0; i < word.Length; i++) + { + if (word[i] == System.Convert.ToChar(charGuessed) & lives > 0) + { + char[] letters = lblword.Text.ToCharArray(); + correct = true; + letters[i * 2] = System.Convert.ToChar(charGuessed); + lblword.Text = string.Join("", letters); + if (!lblword.Text.Contains("_")) + { + int oldlives = lives; + tbguess.Visible = false; + lives = 0; + lbllives.Visible = true; + btnrestart.Visible = true; + int cp = word.Length * 2; + cp = cp * oldlives; + lbllives.Text = "You earned: " + cp + " codepoints!"; + } + } + } + if (correct == false & lives > 0) + { + lives--; + lbllives.Text = "You have: " + lives + " lives left!"; + if (lives == 0) + { + tbguess.Visible = false; + lbllives.Visible = false; + btnrestart.Visible = true; + } + } + } + } + + private void btnrestart_Click(object sender, EventArgs e) + { + StartGame(); + } + } +} diff --git a/ShiftOS.WinForms/Applications/ShiftLetters.resx b/ShiftOS.WinForms/Applications/ShiftLetters.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/ShiftOS.WinForms/Applications/ShiftLetters.resx @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root>
\ No newline at end of file diff --git a/ShiftOS.WinForms/Properties/Resources.Designer.cs b/ShiftOS.WinForms/Properties/Resources.Designer.cs index f2cd046..8472f1d 100644 --- a/ShiftOS.WinForms/Properties/Resources.Designer.cs +++ b/ShiftOS.WinForms/Properties/Resources.Designer.cs @@ -1,4 +1,4 @@ -/* +/* * MIT License * * Copyright (c) 2017 Michael VanOverbeek and ShiftOS devs @@ -914,14 +914,16 @@ namespace ShiftOS.WinForms.Properties { /// Dependencies: null /// }, /// { - /// Name: "Audio Volume", - /// Cost: 50, - /// Description: "Want to adjust the volume of ShiftOS's audio? This upgrade will let you." + /// Name: "AL Notifications", + /// Cost: 125, + /// Dependencies: "app_launcher", + /// Description: "Want to open the Notifications application from within the App Launcher? This upgrade is for you." /// }, /// { - /// Name: "Color Depth Dithering", - /// Cost: 1000, - /// Description: "Right now, if you try to display images on the screen, with a low color depth like we have, the image will be totally unrecogn [rest of string was truncated]";. + /// Name: "Guess the Word", + /// Cost: 150, + /// Dependencies: null, + /// Description: "Sick and tired of playing Pong? Buy this upgrade [rest of string was truncated]";. /// </summary> internal static string Shiftorium { get { diff --git a/ShiftOS.WinForms/Resources/Shiftorium.txt b/ShiftOS.WinForms/Resources/Shiftorium.txt index 9c116be..c75372e 100644 --- a/ShiftOS.WinForms/Resources/Shiftorium.txt +++ b/ShiftOS.WinForms/Resources/Shiftorium.txt @@ -12,6 +12,18 @@ Description: "Want to open the Notifications application from within the App Launcher? This upgrade is for you." }, { + Name: "ShiftLetters", + Cost: 150, + Dependencies: null, + Description: "Sick and tired of playing Pong? Buy this upgrade to get a whole new game!" + }, + { + Name: "AL ShiftLetters", + Cost: 100, + Dependencies: "app_launcher;shiftletters", + Description: "This upgrade allows you to find ShiftLetters in your App Launcher." + }, + { Name: "Panel Notifications", Cost: 150, Description: "It's good to know what time it is, but how about knowing how many notifications you have? After all, notifications are a great way to tell what's going on! This upgrade adds a button that displays how many notifications you have. If you click it, you will open the Notifications app!", @@ -19,7 +31,7 @@ }, { Name: "Audio Volume", - Cost: 50, + Cost: 80, Description: "Want to adjust the volume of ShiftOS's audio? This upgrade will let you." }, { diff --git a/ShiftOS.WinForms/ShiftOS.WinForms.csproj b/ShiftOS.WinForms/ShiftOS.WinForms.csproj index 45c1a47..dac8c73 100644 --- a/ShiftOS.WinForms/ShiftOS.WinForms.csproj +++ b/ShiftOS.WinForms/ShiftOS.WinForms.csproj @@ -112,6 +112,12 @@ <Compile Include="Applications\GraphicPicker.Designer.cs"> <DependentUpon>GraphicPicker.cs</DependentUpon> </Compile> + <Compile Include="Applications\ShiftLetters.cs"> + <SubType>UserControl</SubType> + </Compile> + <Compile Include="Applications\ShiftLetters.Designer.cs"> + <DependentUpon>ShiftLetters.cs</DependentUpon> + </Compile> <Compile Include="Applications\MUDControlCentre.cs"> <SubType>UserControl</SubType> </Compile> @@ -268,6 +274,9 @@ <EmbeddedResource Include="Applications\GraphicPicker.resx"> <DependentUpon>GraphicPicker.cs</DependentUpon> </EmbeddedResource> + <EmbeddedResource Include="Applications\ShiftLetters.resx"> + <DependentUpon>ShiftLetters.cs</DependentUpon> + </EmbeddedResource> <EmbeddedResource Include="Applications\MUDControlCentre.resx"> <DependentUpon>MUDControlCentre.cs</DependentUpon> </EmbeddedResource> |
