aboutsummaryrefslogtreecommitdiff
path: root/source/WindowsFormsApplication1/Apps/BitnoteDigger.cs
diff options
context:
space:
mode:
authorMichaelTheShifter <[email protected]>2016-06-25 08:10:03 -0400
committerMichaelTheShifter <[email protected]>2016-06-25 08:10:03 -0400
commit84f689b91a73e512b035df40bbcf556b008a3b81 (patch)
treeda1020b2b5866c7ce300ac7b9c97112fe80fa1b3 /source/WindowsFormsApplication1/Apps/BitnoteDigger.cs
parent6707e2076a63dafab686fd533c95fb8ceb6c23fa (diff)
downloadshiftos-c-_theultimatehacker-84f689b91a73e512b035df40bbcf556b008a3b81.tar.gz
shiftos-c-_theultimatehacker-84f689b91a73e512b035df40bbcf556b008a3b81.tar.bz2
shiftos-c-_theultimatehacker-84f689b91a73e512b035df40bbcf556b008a3b81.zip
Sort source code into folders.
It feels better to know what's responsible for what... Plus I removed some un-needed C# stuff.
Diffstat (limited to 'source/WindowsFormsApplication1/Apps/BitnoteDigger.cs')
-rw-r--r--source/WindowsFormsApplication1/Apps/BitnoteDigger.cs234
1 files changed, 234 insertions, 0 deletions
diff --git a/source/WindowsFormsApplication1/Apps/BitnoteDigger.cs b/source/WindowsFormsApplication1/Apps/BitnoteDigger.cs
new file mode 100644
index 0000000..df0b124
--- /dev/null
+++ b/source/WindowsFormsApplication1/Apps/BitnoteDigger.cs
@@ -0,0 +1,234 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using System.IO;
+using Newtonsoft.Json;
+
+namespace ShiftOS
+{
+ public partial class BitnoteDigger : Form
+ {
+ /// <summary>
+ /// GUI for the Bitnote Digger fake Appscape Package.
+ /// </summary>
+ public BitnoteDigger()
+ {
+ InitializeComponent();
+ }
+
+ private void BitnoteDigger_Load(object sender, EventArgs e)
+ {
+ getdiggergrade();
+ updatestats();
+ }
+
+ /// <summary>
+ /// Model for a digger grade.
+ /// </summary>
+ public class diggergrade
+ {
+ public string Name { get; set; }
+ public int Level { get; set; }
+ }
+
+ /// <summary>
+ /// Retrieves the proper digger grade.
+ /// </summary>
+ public void getdiggergrade()
+ {
+ if(!File.Exists(Paths.Drivers + "BNDigger.dri"))
+ {
+ var d = new diggergrade();
+ d.Level = 1;
+ d.Name = "Surface Scratcher";
+ bitnotediggergrade = d;
+ File.WriteAllText(Paths.Drivers + "BNDigger.dri", API.BitnoteEncryption.Encrypt(JsonConvert.SerializeObject(d)));
+ }
+ else
+ {
+ string enc = File.ReadAllText(Paths.Drivers + "BNDigger.dri");
+ bitnotediggergrade = JsonConvert.DeserializeObject<diggergrade>(API.BitnoteEncryption.Decrypt(enc));
+ }
+ }
+
+ /// <summary>
+ /// Saves the digger grade to the save game.
+ /// </summary>
+ public void SaveDigger()
+ {
+ var d = bitnotediggergrade;
+ File.WriteAllText(Paths.Drivers + "BNDigger.dri", API.BitnoteEncryption.Encrypt(JsonConvert.SerializeObject(d)));
+ }
+
+ public decimal bitnotesmined = 0;
+ public diggergrade bitnotediggergrade = null;
+ public double miningspeed = 0.00005;
+
+ /// <summary>
+ /// Sets up digger statistics.
+ /// </summary>
+ public void updatestats()
+ {
+ lbldiggerstatsgrade.Text = "Digger Grade: " + bitnotediggergrade.Name;
+ switch (bitnotediggergrade.Level)
+ {
+ case 1:
+ lbldiggerstatsname.Text = "Surface Scratcher";
+ lbldiggerstatsspeed.Text = "Speed: 0.00001";
+ miningspeed = 0.00001;
+ break;
+ case 2:
+ lbldiggerstatsname.Text = "Name: Sediment Mover";
+ lbldiggerstatsspeed.Text = "Speed: 0.00002";
+ miningspeed = 0.00002;
+ break;
+ case 3:
+ lbldiggerstatsname.Text = "Name: Rock Crusher";
+ lbldiggerstatsspeed.Text = "0.00004";
+ miningspeed = 0.00004;
+ break;
+ case 4:
+ lbldiggerstatsname.Text = "Name: Massive Drill";
+ lbldiggerstatsspeed.Text = "Speed: 0.00008";
+ miningspeed = 0.00008;
+ break;
+ case 5:
+ lbldiggerstatsname.Text = "Name: Kola";
+ lbldiggerstatsspeed.Text = "Speed: 0.00016";
+ miningspeed = 0.00016;
+ break;
+ }
+ turbomodespeed.Text = (miningspeed * 2).ToString();
+ }
+
+ /// <summary>
+ /// Updates the digger.
+ /// </summary>
+ /// <param name="grade">New grade.</param>
+ /// <param name="price">Price (BTN) to subtract.</param>
+ /// <param name="name">New name.</param>
+ public void updategrade(int grade, decimal price, string name)
+ {
+ if (API.BitnoteAddress.Bitnotes >= price)
+ {
+ if (bitnotediggergrade.Level < grade)
+ {
+ bitnotediggergrade.Level = grade;
+ bitnotediggergrade.Name = name;
+ API.BitnoteAddress.Bitnotes -= price;
+ API.CreateInfoboxSession("Upgraded to " + name,
+ "Your digger has been successfully upgraded to grade " + grade + ". The '" + name + "'",
+ infobox.InfoboxMode.Info);
+ SaveDigger();
+ updatestats();
+ }
+ else {
+ API.CreateInfoboxSession("Aready Upgraded",
+ "The Bitnote Digger is already upgraded to grade " + bitnotediggergrade.Level.ToString() + ". There is no point in downgrading to grade " + grade,
+ infobox.InfoboxMode.Info);
+ }
+ }
+ else {
+ API.CreateInfoboxSession("Insufficient Funds",
+ "You do not have enough Bitnotes to complete this purchase",
+ infobox.InfoboxMode.Info);
+ }
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void tmrcalcbitnotesmined_Tick(object sender, EventArgs e)
+ {
+ bitnotesmined += Convert.ToDecimal(miningspeed);
+ lbltotalbitcoinsmined.Text = (Math.Round(bitnotesmined, 5)).ToString("#.#####");
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnstart_Click(object sender, EventArgs e)
+ {
+ tmrcalcbitnotesmined.Start();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnstop_Click(object sender, EventArgs e)
+ {
+ tmrcalcbitnotesmined.Stop();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnsend_Click(object sender, EventArgs e)
+ {
+ if (txtsendaddress.Text == API.BitnoteAddress.Address)
+ {
+ API.BitnoteAddress.Bitnotes += bitnotesmined;
+ }
+ bitnotesmined = 0;
+ lbltotalbitcoinsmined.Text = (Math.Round(bitnotesmined, 5)).ToString("#.#####");
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnturbomode_Click(object sender, EventArgs e)
+ {
+ if (tmrturbomode.Enabled == false)
+ {
+ miningspeed = (miningspeed * 2);
+ tmrturbomode.Start();
+ btnturbomode.Text = "Disable Turbo Mode";
+ }
+ else {
+ miningspeed = (miningspeed / 2);
+ tmrturbomode.Stop();
+ btnturbomode.Text = "Activate Turbo Mode";
+ }
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void tmrturbomode_Tick(object sender, EventArgs e)
+ {
+ if (API.Codepoints >= 1)
+ {
+ API.RemoveCodepoints(1);
+ }
+ else {
+ miningspeed = (miningspeed / 2);
+ tmrturbomode.Stop();
+ btnturbomode.Text = "Activate Turbo Mode";
+ API.CreateInfoboxSession("Turbo Mode disabled",
+ "Turbo Mode has been disabled due to your lack of Code Points.",
+ infobox.InfoboxMode.Info);
+ }
+ }
+
+ private void btnupgrade_Click(object sender, EventArgs e)
+ {
+ string newname = "Surface Scratcher";
+ double price = 1;
+ switch (bitnotediggergrade.Name) {
+ case "Surface Scratcher":
+ newname = "Name: Sediment Mover";
+ price = 1.5;
+ break;
+ case "Sediment Mover":
+ newname = "Name: Rock Crusher";
+ price = 2;
+ break;
+ case "Rock Crusher":
+ newname = "Name: Massive Drill";
+ price = 4;
+ break;
+ case "Massive Drill":
+ newname = "Name: Kola";
+ price = 8;
+ break;
+
+ }
+ updategrade(bitnotediggergrade.Level + 1, (decimal)price, newname);
+
+ }
+ }
+}