OWtrack/OWTrack/MainForm.cs

196 lines
5.7 KiB
C#
Raw Normal View History

2018-08-15 10:36:29 +02:00
using System;
2018-07-13 03:24:05 +02:00
using System.Drawing;
using System.Windows.Forms;
2018-08-12 01:21:12 +02:00
using Newtonsoft.Json;
using System.IO;
2018-07-13 03:24:05 +02:00
2018-09-03 22:29:40 +02:00
2018-07-13 03:24:05 +02:00
namespace OWTrack
{
2018-09-08 13:32:12 +02:00
public partial class MainForm : Form
2018-07-13 03:24:05 +02:00
{
2018-07-13 03:57:29 +02:00
Tracker tr = new Tracker();
private const string IS_RUNNING = "Running";
private const string NOT_RUNNING = " Not running";
2018-09-08 13:53:05 +02:00
private string savesPath = Directory.GetCurrentDirectory() + "/saves/data.json";
2018-08-15 10:32:42 +02:00
private bool SRonce = false;
2018-07-13 03:57:29 +02:00
2018-09-08 13:32:12 +02:00
public MainForm()
2018-07-13 03:24:05 +02:00
{
2018-09-20 10:23:47 +02:00
InitializeComponent();
2018-08-12 01:21:12 +02:00
loadSave();
2018-07-13 03:57:29 +02:00
checkStatus();
2018-09-01 13:11:08 +02:00
update();
label4.Text = Program.Version.ToString();
2018-09-08 13:53:05 +02:00
Text = "OWTrack " + Program.Version.ToString();
2018-07-13 03:57:29 +02:00
}
2018-08-12 01:21:12 +02:00
2018-07-13 03:57:29 +02:00
private void checkStatus()
2018-09-01 13:11:08 +02:00
{
2018-07-15 21:22:02 +02:00
try
2018-08-16 06:50:08 +02:00
{
2018-09-01 13:11:08 +02:00
Time.Text = DateTime.Now.ToString("h:mm tt");
status.Text = NOT_RUNNING;
status.ForeColor = Color.Red;
2018-07-15 21:22:02 +02:00
if (tr.owRunning())
{
status.Text = IS_RUNNING;
2018-09-04 21:46:50 +02:00
status.ForeColor = Color.FromArgb(0, 192, 0);
2018-08-16 06:50:08 +02:00
}
2018-07-15 21:22:02 +02:00
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
2018-07-13 03:24:05 +02:00
}
2018-07-13 04:13:05 +02:00
2018-08-12 01:21:12 +02:00
private void loadSave()
{
2018-09-08 13:53:05 +02:00
Directory.CreateDirectory("saves");
2018-09-20 10:23:47 +02:00
if (saveManeger.saveExist())
2018-08-12 01:21:12 +02:00
{
2018-09-20 10:23:47 +02:00
try
{
2018-09-08 13:53:05 +02:00
using (StreamReader st = new StreamReader(savesPath))
2018-09-03 21:11:05 +02:00
{
string line = st.ReadLine();
if (line.Contains("Overwatch.exe"))
{
2018-09-20 10:23:47 +02:00
tr = saveManeger.GetSavedTracker();
st.Close();
2018-09-03 21:11:05 +02:00
}
else
{
2018-09-03 21:30:34 +02:00
if (!tr.LoacteOW())
2018-09-20 10:23:47 +02:00
{
2018-09-20 08:56:16 +02:00
tr.gamePath = getGamePath();
2018-09-03 21:30:34 +02:00
}
2018-09-20 10:23:47 +02:00
st.Close();
2018-09-03 21:11:05 +02:00
}
2018-09-20 10:23:47 +02:00
2018-09-03 21:11:05 +02:00
}
2018-09-20 10:23:47 +02:00
}
catch (Exception e)
2018-08-31 19:56:47 +02:00
{
2018-09-20 10:23:47 +02:00
MessageBox.Show(e.Message);
}
update();
2018-08-12 01:33:26 +02:00
}
2018-09-20 10:23:47 +02:00
else if (!tr.LoacteOW())
2018-08-12 01:33:26 +02:00
{
2018-09-20 10:23:47 +02:00
tr.gamePath = getGamePath();
}
}
2018-09-20 08:53:49 +02:00
private string getGamePath()
2018-08-31 19:56:47 +02:00
{
openFileDialog1.Title = "Select Overwatch.exe";
openFileDialog1.DefaultExt = "exe";
2018-09-20 10:23:47 +02:00
openFileDialog1.Filter = "exe Files (*.exe)|*.exe|All files (*.*)|*.*";
2018-09-03 22:29:40 +02:00
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
2018-08-31 19:56:47 +02:00
{
2018-09-20 08:53:49 +02:00
//tr.gamePath = openFileDialog1.FileName;
2018-09-20 10:23:47 +02:00
MessageBox.Show("Saved Overwatch.exe location.\nPress Clear to rest\n" + openFileDialog1.FileName );
2018-09-20 08:53:49 +02:00
return openFileDialog1.FileName;
2018-08-31 19:56:47 +02:00
}
2018-09-20 08:53:49 +02:00
else
2018-09-03 22:29:40 +02:00
{
2018-09-20 10:23:47 +02:00
update();
2018-09-20 08:53:49 +02:00
return null;
2018-09-20 10:23:47 +02:00
}
2018-08-31 19:56:47 +02:00
}
2018-08-12 01:21:12 +02:00
private Tracker savedTracker()
{
2018-08-12 01:33:26 +02:00
try
{
2018-09-08 13:53:05 +02:00
return JsonConvert.DeserializeObject<Tracker>(File.ReadAllText(savesPath));
2018-08-12 01:33:26 +02:00
}
catch (Exception e)
{
MessageBox.Show(e.Message);
return null;
}
2018-08-12 01:21:12 +02:00
}
2018-09-20 08:56:16 +02:00
private void update()
{
Wins.Text = tr.GetWins().ToString();
Losses.Text = tr.GetLosses().ToString();
if (tr.newSR == 0)
{
if (tr.srDiff() < 1) { srLabel.Text = tr.startSR.ToString() + " - 0"; }
else srLabel.Text = tr.startSR.ToString() + " - " + tr.srDiff();
}
else srLabel.Text = tr.startSR.ToString() + " - " + tr.srDiff();
srTextBox.Text = null;
File.WriteAllText(Directory.GetCurrentDirectory() + "/saves/data.json", JsonConvert.SerializeObject(tr));
}
#region Events
2018-09-20 08:53:49 +02:00
private void timer1_Tick(object sender, EventArgs e) => checkStatus();
private void WinBtn_Click(object sender, EventArgs e)
2018-07-13 04:13:05 +02:00
{
tr.addWin();
update();
}
2018-07-20 02:28:26 +02:00
2018-09-20 08:53:49 +02:00
private void LossBtn_Click(object sender, EventArgs e)
2018-07-13 04:13:05 +02:00
{
tr.addLoss();
update();
}
2018-07-20 02:28:26 +02:00
2018-08-03 02:45:06 +02:00
private void reduceWinBut_Click(object sender, EventArgs e)
{
tr.reduceWin();
update();
}
private void reduceLossBut_Click(object sender, EventArgs e)
{
tr.rediceLoss();
update();
2018-09-20 08:56:16 +02:00
}
2018-08-12 01:33:26 +02:00
private void clearBut_Click(object sender, EventArgs e)
{
tr.reset();
update();
2018-08-15 10:32:42 +02:00
}
private void srBut_Click(object sender, EventArgs e)
{
int sr = 0;
try
{
sr = Convert.ToInt32(srTextBox.Text);
}
catch (FormatException)
{
MessageBox.Show("Enter a Number!");
return;
}
catch (OverflowException ex)
{
MessageBox.Show(ex.Message);
return;
}
finally
{
if (!SRonce)
{
tr.startSR = sr;
SRonce = true;
}
else tr.newSR = sr;
}
2018-08-15 10:46:05 +02:00
update();
2018-09-20 08:56:16 +02:00
}
#endregion
2018-07-13 03:24:05 +02:00
}
}