diff --git a/DeviceSettingForm.png b/DeviceSettingForm.png
new file mode 100644
index 0000000..3a768d7
Binary files /dev/null and b/DeviceSettingForm.png differ
diff --git a/MainForm.png b/MainForm.png
index 3d360bd..5e7428b 100644
Binary files a/MainForm.png and b/MainForm.png differ
diff --git a/PokemonGo/RocketAPI/Helpers/Utils.cs b/PokemonGo/RocketAPI/Helpers/Utils.cs
deleted file mode 100644
index c7ed3e7..0000000
--- a/PokemonGo/RocketAPI/Helpers/Utils.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System;
-
-namespace PokemonGo.RocketAPI.Helpers
-{
- public class Utils
- {
- public static ulong FloatAsUlong(double value)
- {
- var bytes = BitConverter.GetBytes(value);
- return BitConverter.ToUInt64(bytes, 0);
- }
- }
-}
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Window/Extensions.cs b/PokemonGo/RocketAPI/Window/Extensions.cs
deleted file mode 100644
index 29ea9ff..0000000
--- a/PokemonGo/RocketAPI/Window/Extensions.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using POGOProtos.Data;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace PokemonGo.RocketAPI.Window
-{
- public static class Extensions
- {
- public static float GetIV(this PokemonData poke)
- {
- return (poke.IndividualAttack + poke.IndividualDefense + poke.IndividualStamina) / 45.0f;
- }
- }
-}
diff --git a/PokemonGo/RocketAPI/Window/ItemBox.cs b/PokemonGo/RocketAPI/Window/ItemBox.cs
deleted file mode 100644
index ae60b2e..0000000
--- a/PokemonGo/RocketAPI/Window/ItemBox.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-using System;
-using System.Drawing;
-using System.Windows.Forms;
-using POGOProtos.Inventory.Item;
-
-namespace PokemonGo.RocketAPI.Window {
- public partial class ItemBox : UserControl {
- public ItemData item_ { get; }
-
- public event EventHandler ItemClick;
-
- public ItemBox(ItemData item) {
- InitializeComponent();
-
- item_ = item;
-
- pb.Image = (Image)Properties.Resources.ResourceManager.GetObject(item.ItemId.ToString());
- lbl.Text = item.Count.ToString();
-
- foreach (Control control in this.Controls) {
- control.MouseEnter += childMouseEnter;
- control.MouseLeave += childMouseLeave;
- control.MouseClick += childMouseClick;
- }
-
- if (item_.ItemId == ItemId.ItemIncubatorBasic || item_.ItemId == ItemId.ItemIncubatorBasicUnlimited) {
- this.Enabled = false;
- }
- }
-
- private void childMouseClick(object sender, MouseEventArgs e) {
- OnItemClick(item_, EventArgs.Empty);
- }
-
- protected override void OnMouseClick(MouseEventArgs e) {
- base.OnMouseClick(e);
- OnItemClick(item_, EventArgs.Empty);
- }
-
- private void childMouseLeave(object sender, EventArgs e) {
- OnMouseLeave(e);
- }
-
- private void childMouseEnter(object sender, EventArgs e) {
- OnMouseEnter(e);
- }
-
- protected override void OnMouseLeave(EventArgs e) {
- base.OnMouseLeave(e);
- this.BackColor = Color.Transparent;
- }
-
- protected override void OnMouseEnter(EventArgs e) {
- base.OnMouseEnter(e);
- this.BackColor = Color.LightGreen;
- }
-
- protected virtual void OnItemClick(ItemData item, EventArgs e) {
- EventHandler handler = ItemClick;
- if (handler != null) {
- handler(item, e);
- }
- }
- }
-}
diff --git a/PokemonGo/RocketAPI/Window/ItemForm.cs b/PokemonGo/RocketAPI/Window/ItemForm.cs
deleted file mode 100644
index 4b3316b..0000000
--- a/PokemonGo/RocketAPI/Window/ItemForm.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using POGOProtos.Inventory.Item;
-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;
-
-namespace PokemonGo.RocketAPI.Window {
- public partial class ItemForm : Form {
- public ItemForm(ItemData item) {
- InitializeComponent();
-
- pb.Image = (Image)Properties.Resources.ResourceManager.GetObject(item.ItemId.ToString());
- numCount.Maximum = item.Count;
-
- if (item.ItemId == ItemId.ItemLuckyEgg || item.ItemId == ItemId.ItemIncenseOrdinary) {
- btnRecycle.Text = "Use";
- //btnRecycle.Enabled = false;
- numCount.Visible = false;
- }
- }
- }
-}
diff --git a/PokemonGo/RocketAPI/Window/NicknamePokemonForm.cs b/PokemonGo/RocketAPI/Window/NicknamePokemonForm.cs
deleted file mode 100644
index fe484f9..0000000
--- a/PokemonGo/RocketAPI/Window/NicknamePokemonForm.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-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;
-
-namespace PokemonGo.RocketAPI.Window {
- public partial class NicknamePokemonForm : Form {
- public NicknamePokemonForm(PokemonObject pokemon) {
- InitializeComponent();
- txtNickname.Text = pokemon.Nickname;
- txtNickname.KeyDown += TxtNickname_KeyDown;
- }
-
- private void TxtNickname_KeyDown(object sender, KeyEventArgs e) {
- if (e.KeyCode == Keys.Enter) {
- this.DialogResult = DialogResult.OK;
- this.Close();
- }
- }
- }
-}
diff --git a/PokemonGo/RocketAPI/Window/SettingsForm.Designer.cs b/PokemonGo/RocketAPI/Window/SettingsForm.Designer.cs
deleted file mode 100644
index a0275de..0000000
--- a/PokemonGo/RocketAPI/Window/SettingsForm.Designer.cs
+++ /dev/null
@@ -1,522 +0,0 @@
-using System.Drawing;
-namespace PokemonGo.RocketAPI.Window
-{
- partial class SettingsForm
- {
- /// <summary>
- /// Required designer variable.
- /// </summary>
- private System.ComponentModel.IContainer components = null;
-
- /// <summary>
- /// Clean up any resources being used.
- /// </summary>
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows Form 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()
- {
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SettingsForm));
- this.authTypeLabel = new System.Windows.Forms.Label();
- this.authTypeCb = new System.Windows.Forms.ComboBox();
- this.UserLabel = new System.Windows.Forms.Label();
- this.PasswordLabel = new System.Windows.Forms.Label();
- this.latLabel = new System.Windows.Forms.Label();
- this.longiLabel = new System.Windows.Forms.Label();
- this.label1 = new System.Windows.Forms.Label();
- this.label2 = new System.Windows.Forms.Label();
- this.label3 = new System.Windows.Forms.Label();
- this.label4 = new System.Windows.Forms.Label();
- this.label5 = new System.Windows.Forms.Label();
- this.UserLoginBox = new System.Windows.Forms.TextBox();
- this.UserPasswordBox = new System.Windows.Forms.TextBox();
- this.latitudeText = new System.Windows.Forms.TextBox();
- this.longitudeText = new System.Windows.Forms.TextBox();
- this.razzmodeCb = new System.Windows.Forms.ComboBox();
- this.razzSettingText = new System.Windows.Forms.TextBox();
- this.transferTypeCb = new System.Windows.Forms.ComboBox();
- this.transferCpThresText = new System.Windows.Forms.TextBox();
- this.evolveAllChk = new System.Windows.Forms.CheckBox();
- this.saveBtn = new System.Windows.Forms.Button();
- this.gMapControl1 = new GMap.NET.WindowsForms.GMapControl();
- this.groupBox1 = new System.Windows.Forms.GroupBox();
- this.FindAdressButton = new System.Windows.Forms.Button();
- this.AdressBox = new System.Windows.Forms.TextBox();
- this.trackBar = new System.Windows.Forms.TrackBar();
- this.panel1 = new System.Windows.Forms.Panel();
- this.TravelSpeedBox = new System.Windows.Forms.TextBox();
- this.CatchPokemonBox = new System.Windows.Forms.CheckBox();
- this.CatchPokemonText = new System.Windows.Forms.Label();
- this.transferIVThresText = new System.Windows.Forms.TextBox();
- this.TravelSpeedText = new System.Windows.Forms.Label();
- this.label6 = new System.Windows.Forms.Label();
- this.groupBox1.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.trackBar)).BeginInit();
- this.panel1.SuspendLayout();
- this.SuspendLayout();
- //
- // authTypeLabel
- //
- this.authTypeLabel.AutoSize = true;
- this.authTypeLabel.Location = new System.Drawing.Point(3, 9);
- this.authTypeLabel.Name = "authTypeLabel";
- this.authTypeLabel.Size = new System.Drawing.Size(70, 15);
- this.authTypeLabel.TabIndex = 0;
- this.authTypeLabel.Text = "Login Type:";
- this.authTypeLabel.Click += new System.EventHandler(this.authTypeLabel_Click);
- //
- // authTypeCb
- //
- this.authTypeCb.FormattingEnabled = true;
- this.authTypeCb.Items.AddRange(new object[] {
- "google",
- "Ptc"});
- this.authTypeCb.Location = new System.Drawing.Point(96, 5);
- this.authTypeCb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.authTypeCb.Name = "authTypeCb";
- this.authTypeCb.Size = new System.Drawing.Size(158, 23);
- this.authTypeCb.TabIndex = 1;
- this.authTypeCb.SelectedIndexChanged += new System.EventHandler(this.authTypeCb_SelectedIndexChanged);
- //
- // UserLabel
- //
- this.UserLabel.AutoSize = true;
- this.UserLabel.Location = new System.Drawing.Point(3, 41);
- this.UserLabel.Name = "UserLabel";
- this.UserLabel.Size = new System.Drawing.Size(68, 15);
- this.UserLabel.TabIndex = 2;
- this.UserLabel.Text = "Username:";
- //
- // PasswordLabel
- //
- this.PasswordLabel.AutoSize = true;
- this.PasswordLabel.Location = new System.Drawing.Point(3, 71);
- this.PasswordLabel.Name = "PasswordLabel";
- this.PasswordLabel.Size = new System.Drawing.Size(64, 15);
- this.PasswordLabel.TabIndex = 3;
- this.PasswordLabel.Text = "Password:";
- //
- // latLabel
- //
- this.latLabel.AutoSize = true;
- this.latLabel.Location = new System.Drawing.Point(3, 101);
- this.latLabel.Name = "latLabel";
- this.latLabel.Size = new System.Drawing.Size(54, 15);
- this.latLabel.TabIndex = 4;
- this.latLabel.Text = "Latitude:";
- //
- // longiLabel
- //
- this.longiLabel.AutoSize = true;
- this.longiLabel.Location = new System.Drawing.Point(3, 131);
- this.longiLabel.Name = "longiLabel";
- this.longiLabel.Size = new System.Drawing.Size(65, 15);
- this.longiLabel.TabIndex = 5;
- this.longiLabel.Text = "Longitude:";
- //
- // label1
- //
- this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(3, 161);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(100, 15);
- this.label1.TabIndex = 6;
- this.label1.Text = "Razzberry Mode:";
- //
- // label2
- //
- this.label2.AutoSize = true;
- this.label2.Location = new System.Drawing.Point(3, 222);
- this.label2.Name = "label2";
- this.label2.Size = new System.Drawing.Size(84, 15);
- this.label2.TabIndex = 7;
- this.label2.Text = "Transfer Type:";
- //
- // label3
- //
- this.label3.AutoSize = true;
- this.label3.Location = new System.Drawing.Point(3, 370);
- this.label3.Name = "label3";
- this.label3.Size = new System.Drawing.Size(101, 15);
- this.label3.TabIndex = 8;
- this.label3.Text = "Evolve Pokemon:";
- this.label3.Click += new System.EventHandler(this.label3_Click);
- //
- // label4
- //
- this.label4.AutoSize = true;
- this.label4.Location = new System.Drawing.Point(3, 254);
- this.label4.Name = "label4";
- this.label4.Size = new System.Drawing.Size(84, 15);
- this.label4.TabIndex = 9;
- this.label4.Text = "CP Threshold:";
- //
- // label5
- //
- this.label5.AutoSize = true;
- this.label5.Location = new System.Drawing.Point(3, 192);
- this.label5.Name = "label5";
- this.label5.Size = new System.Drawing.Size(106, 15);
- this.label5.TabIndex = 10;
- this.label5.Text = "Razzberry Setting:";
- //
- // UserLoginBox
- //
- this.UserLoginBox.Location = new System.Drawing.Point(96, 39);
- this.UserLoginBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.UserLoginBox.Name = "UserLoginBox";
- this.UserLoginBox.Size = new System.Drawing.Size(158, 21);
- this.UserLoginBox.TabIndex = 11;
- //
- // UserPasswordBox
- //
- this.UserPasswordBox.Location = new System.Drawing.Point(96, 71);
- this.UserPasswordBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.UserPasswordBox.Name = "UserPasswordBox";
- this.UserPasswordBox.Size = new System.Drawing.Size(158, 21);
- this.UserPasswordBox.TabIndex = 12;
- //
- // latitudeText
- //
- this.latitudeText.Location = new System.Drawing.Point(138, 99);
- this.latitudeText.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.latitudeText.Name = "latitudeText";
- this.latitudeText.ReadOnly = true;
- this.latitudeText.Size = new System.Drawing.Size(116, 21);
- this.latitudeText.TabIndex = 13;
- //
- // longitudeText
- //
- this.longitudeText.Location = new System.Drawing.Point(138, 129);
- this.longitudeText.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.longitudeText.Name = "longitudeText";
- this.longitudeText.ReadOnly = true;
- this.longitudeText.Size = new System.Drawing.Size(116, 21);
- this.longitudeText.TabIndex = 14;
- //
- // razzmodeCb
- //
- this.razzmodeCb.FormattingEnabled = true;
- this.razzmodeCb.Items.AddRange(new object[] {
- "probability",
- "cp"});
- this.razzmodeCb.Location = new System.Drawing.Point(138, 159);
- this.razzmodeCb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.razzmodeCb.Name = "razzmodeCb";
- this.razzmodeCb.Size = new System.Drawing.Size(116, 23);
- this.razzmodeCb.TabIndex = 15;
- //
- // razzSettingText
- //
- this.razzSettingText.Location = new System.Drawing.Point(138, 190);
- this.razzSettingText.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.razzSettingText.Name = "razzSettingText";
- this.razzSettingText.Size = new System.Drawing.Size(116, 21);
- this.razzSettingText.TabIndex = 16;
- this.razzSettingText.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.razzSettingText_KeyPress);
- //
- // transferTypeCb
- //
- this.transferTypeCb.FormattingEnabled = true;
- this.transferTypeCb.Items.AddRange(new object[] {
- "None",
- "CP",
- "IV",
- "Leave Strongest",
- "Duplicate",
- "IV Duplicate",
- "All"});
- this.transferTypeCb.Location = new System.Drawing.Point(138, 220);
- this.transferTypeCb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.transferTypeCb.Name = "transferTypeCb";
- this.transferTypeCb.Size = new System.Drawing.Size(116, 23);
- this.transferTypeCb.TabIndex = 17;
- this.transferTypeCb.SelectedIndexChanged += new System.EventHandler(this.transferTypeCb_SelectedIndexChanged);
- //
- // transferCpThresText
- //
- this.transferCpThresText.Location = new System.Drawing.Point(138, 252);
- this.transferCpThresText.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.transferCpThresText.Name = "transferCpThresText";
- this.transferCpThresText.Size = new System.Drawing.Size(116, 21);
- this.transferCpThresText.TabIndex = 18;
- this.transferCpThresText.TextChanged += new System.EventHandler(this.transferCpThresText_TextChanged);
- //
- // evolveAllChk
- //
- this.evolveAllChk.AutoSize = true;
- this.evolveAllChk.Location = new System.Drawing.Point(138, 370);
- this.evolveAllChk.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.evolveAllChk.Name = "evolveAllChk";
- this.evolveAllChk.Size = new System.Drawing.Size(15, 14);
- this.evolveAllChk.TabIndex = 19;
- this.evolveAllChk.UseVisualStyleBackColor = true;
- this.evolveAllChk.CheckedChanged += new System.EventHandler(this.evolveAllChk_CheckedChanged);
- //
- // saveBtn
- //
- this.saveBtn.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.saveBtn.Location = new System.Drawing.Point(0, 394);
- this.saveBtn.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.saveBtn.Name = "saveBtn";
- this.saveBtn.Size = new System.Drawing.Size(254, 110);
- this.saveBtn.TabIndex = 20;
- this.saveBtn.Text = "Save";
- this.saveBtn.UseVisualStyleBackColor = true;
- this.saveBtn.Click += new System.EventHandler(this.saveBtn_Click);
- //
- // gMapControl1
- //
- this.gMapControl1.BackColor = System.Drawing.SystemColors.Info;
- this.gMapControl1.Bearing = 0F;
- this.gMapControl1.CanDragMap = true;
- this.gMapControl1.EmptyTileColor = System.Drawing.Color.Navy;
- this.gMapControl1.GrayScaleMode = false;
- this.gMapControl1.HelperLineOption = GMap.NET.WindowsForms.HelperLineOptions.DontShow;
- this.gMapControl1.LevelsKeepInMemmory = 5;
- this.gMapControl1.Location = new System.Drawing.Point(21, 19);
- this.gMapControl1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.gMapControl1.MarkersEnabled = true;
- this.gMapControl1.MaxZoom = 2;
- this.gMapControl1.MinZoom = 2;
- this.gMapControl1.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter;
- this.gMapControl1.Name = "gMapControl1";
- this.gMapControl1.NegativeMode = false;
- this.gMapControl1.PolygonsEnabled = true;
- this.gMapControl1.RetryLoadTile = 0;
- this.gMapControl1.RoutesEnabled = true;
- this.gMapControl1.ScaleMode = GMap.NET.WindowsForms.ScaleModes.Integer;
- this.gMapControl1.SelectedAreaFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(65)))), ((int)(((byte)(105)))), ((int)(((byte)(225)))));
- this.gMapControl1.ShowTileGridLines = false;
- this.gMapControl1.Size = new System.Drawing.Size(546, 448);
- this.gMapControl1.TabIndex = 22;
- this.gMapControl1.Zoom = 0D;
- this.gMapControl1.Load += new System.EventHandler(this.gMapControl1_Load);
- this.gMapControl1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.gMapControl1_MouseClick);
- //
- // groupBox1
- //
- this.groupBox1.Controls.Add(this.FindAdressButton);
- this.groupBox1.Controls.Add(this.AdressBox);
- this.groupBox1.Controls.Add(this.trackBar);
- this.groupBox1.Controls.Add(this.gMapControl1);
- this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill;
- this.groupBox1.Location = new System.Drawing.Point(271, 10);
- this.groupBox1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.groupBox1.Name = "groupBox1";
- this.groupBox1.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.groupBox1.Size = new System.Drawing.Size(561, 510);
- this.groupBox1.TabIndex = 25;
- this.groupBox1.TabStop = false;
- this.groupBox1.Text = "Location";
- //
- // FindAdressButton
- //
- this.FindAdressButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.FindAdressButton.Location = new System.Drawing.Point(414, 474);
- this.FindAdressButton.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.FindAdressButton.Name = "FindAdressButton";
- this.FindAdressButton.Size = new System.Drawing.Size(140, 30);
- this.FindAdressButton.TabIndex = 25;
- this.FindAdressButton.Text = "Find Location";
- this.FindAdressButton.UseVisualStyleBackColor = true;
- this.FindAdressButton.Click += new System.EventHandler(this.FindAdressButton_Click_1);
- //
- // AdressBox
- //
- this.AdressBox.ForeColor = System.Drawing.Color.Gray;
- this.AdressBox.Location = new System.Drawing.Point(21, 474);
- this.AdressBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.AdressBox.Name = "AdressBox";
- this.AdressBox.Size = new System.Drawing.Size(385, 21);
- this.AdressBox.TabIndex = 25;
- this.AdressBox.Text = "Enter an address or a coordinate";
- this.AdressBox.Enter += new System.EventHandler(this.AdressBox_Enter);
- this.AdressBox.Leave += new System.EventHandler(this.AdressBox_Leave);
- //
- // trackBar
- //
- this.trackBar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.trackBar.BackColor = System.Drawing.SystemColors.Info;
- this.trackBar.Location = new System.Drawing.Point(505, 19);
- this.trackBar.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.trackBar.Name = "trackBar";
- this.trackBar.Orientation = System.Windows.Forms.Orientation.Vertical;
- this.trackBar.Size = new System.Drawing.Size(45, 120);
- this.trackBar.TabIndex = 25;
- this.trackBar.TickStyle = System.Windows.Forms.TickStyle.TopLeft;
- this.trackBar.Scroll += new System.EventHandler(this.trackBar_Scroll);
- //
- // panel1
- //
- this.panel1.Controls.Add(this.TravelSpeedBox);
- this.panel1.Controls.Add(this.CatchPokemonBox);
- this.panel1.Controls.Add(this.CatchPokemonText);
- this.panel1.Controls.Add(this.transferIVThresText);
- this.panel1.Controls.Add(this.TravelSpeedText);
- this.panel1.Controls.Add(this.label6);
- this.panel1.Controls.Add(this.authTypeLabel);
- this.panel1.Controls.Add(this.authTypeCb);
- this.panel1.Controls.Add(this.UserLabel);
- this.panel1.Controls.Add(this.PasswordLabel);
- this.panel1.Controls.Add(this.saveBtn);
- this.panel1.Controls.Add(this.latLabel);
- this.panel1.Controls.Add(this.evolveAllChk);
- this.panel1.Controls.Add(this.longiLabel);
- this.panel1.Controls.Add(this.transferCpThresText);
- this.panel1.Controls.Add(this.label1);
- this.panel1.Controls.Add(this.transferTypeCb);
- this.panel1.Controls.Add(this.label2);
- this.panel1.Controls.Add(this.razzSettingText);
- this.panel1.Controls.Add(this.label3);
- this.panel1.Controls.Add(this.razzmodeCb);
- this.panel1.Controls.Add(this.label4);
- this.panel1.Controls.Add(this.longitudeText);
- this.panel1.Controls.Add(this.label5);
- this.panel1.Controls.Add(this.latitudeText);
- this.panel1.Controls.Add(this.UserLoginBox);
- this.panel1.Controls.Add(this.UserPasswordBox);
- this.panel1.Dock = System.Windows.Forms.DockStyle.Left;
- this.panel1.Location = new System.Drawing.Point(10, 10);
- this.panel1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.panel1.Name = "panel1";
- this.panel1.Size = new System.Drawing.Size(261, 510);
- this.panel1.TabIndex = 26;
- this.panel1.Paint += new System.Windows.Forms.PaintEventHandler(this.panel1_Paint);
- //
- // TravelSpeedBox
- //
- this.TravelSpeedBox.Location = new System.Drawing.Point(138, 314);
- this.TravelSpeedBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.TravelSpeedBox.Name = "TravelSpeedBox";
- this.TravelSpeedBox.Size = new System.Drawing.Size(116, 21);
- this.TravelSpeedBox.TabIndex = 22;
- this.TravelSpeedBox.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
- this.TravelSpeedBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.TravelSpeedBox_KeyPress);
- //
- // CatchPokemonBox
- //
- this.CatchPokemonBox.AutoSize = true;
- this.CatchPokemonBox.Location = new System.Drawing.Point(138, 344);
- this.CatchPokemonBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.CatchPokemonBox.Name = "CatchPokemonBox";
- this.CatchPokemonBox.Size = new System.Drawing.Size(15, 14);
- this.CatchPokemonBox.TabIndex = 26;
- this.CatchPokemonBox.UseVisualStyleBackColor = true;
- this.CatchPokemonBox.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
- //
- // CatchPokemonText
- //
- this.CatchPokemonText.AutoSize = true;
- this.CatchPokemonText.Location = new System.Drawing.Point(3, 344);
- this.CatchPokemonText.Name = "CatchPokemonText";
- this.CatchPokemonText.Size = new System.Drawing.Size(97, 15);
- this.CatchPokemonText.TabIndex = 25;
- this.CatchPokemonText.Text = "Catch Pokemon:";
- this.CatchPokemonText.Click += new System.EventHandler(this.label7_Click);
- //
- // transferIVThresText
- //
- this.transferIVThresText.Location = new System.Drawing.Point(138, 254);
- this.transferIVThresText.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.transferIVThresText.Name = "transferIVThresText";
- this.transferIVThresText.Size = new System.Drawing.Size(116, 21);
- this.transferIVThresText.TabIndex = 24;
- this.transferIVThresText.TextChanged += new System.EventHandler(this.textBox2_TextChanged);
- //
- // TravelSpeedText
- //
- this.TravelSpeedText.AutoSize = true;
- this.TravelSpeedText.Location = new System.Drawing.Point(3, 318);
- this.TravelSpeedText.Name = "TravelSpeedText";
- this.TravelSpeedText.Size = new System.Drawing.Size(112, 15);
- this.TravelSpeedText.TabIndex = 23;
- this.TravelSpeedText.Text = "Travel Speed km/h:";
- //
- // label6
- //
- this.label6.AutoSize = true;
- this.label6.Location = new System.Drawing.Point(3, 254);
- this.label6.Name = "label6";
- this.label6.Size = new System.Drawing.Size(78, 15);
- this.label6.TabIndex = 21;
- this.label6.Text = "IV Threshold:";
- this.label6.Click += new System.EventHandler(this.label6_Click);
- //
- // SettingsForm
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(842, 530);
- this.Controls.Add(this.groupBox1);
- this.Controls.Add(this.panel1);
- this.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
- this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- this.MinimumSize = new System.Drawing.Size(732, 408);
- this.Name = "SettingsForm";
- this.Padding = new System.Windows.Forms.Padding(10, 10, 10, 10);
- this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show;
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
- this.Text = "Settings";
- this.Load += new System.EventHandler(this.SettingsForm_Load);
- this.groupBox1.ResumeLayout(false);
- this.groupBox1.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.trackBar)).EndInit();
- this.panel1.ResumeLayout(false);
- this.panel1.PerformLayout();
- this.ResumeLayout(false);
-
- }
-
- #endregion
-
- private System.Windows.Forms.Label authTypeLabel;
- private System.Windows.Forms.ComboBox authTypeCb;
- private System.Windows.Forms.Label UserLabel;
- private System.Windows.Forms.Label PasswordLabel;
- private System.Windows.Forms.Label latLabel;
- private System.Windows.Forms.Label longiLabel;
- private System.Windows.Forms.Label label1;
- private System.Windows.Forms.Label label2;
- private System.Windows.Forms.Label label3;
- private System.Windows.Forms.Label label4;
- private System.Windows.Forms.Label label5;
- private System.Windows.Forms.TextBox UserLoginBox;
- private System.Windows.Forms.TextBox UserPasswordBox;
- private System.Windows.Forms.TextBox latitudeText;
- private System.Windows.Forms.TextBox longitudeText;
- private System.Windows.Forms.ComboBox razzmodeCb;
- private System.Windows.Forms.TextBox razzSettingText;
- private System.Windows.Forms.ComboBox transferTypeCb;
- private System.Windows.Forms.TextBox transferCpThresText;
- private System.Windows.Forms.CheckBox evolveAllChk;
- private System.Windows.Forms.Button saveBtn;
- private GMap.NET.WindowsForms.GMapControl gMapControl1;
- private System.Windows.Forms.GroupBox groupBox1;
- private System.Windows.Forms.Panel panel1;
- private System.Windows.Forms.TrackBar trackBar;
- private System.Windows.Forms.TextBox TravelSpeedBox;
- private System.Windows.Forms.Label label6;
- private System.Windows.Forms.Label TravelSpeedText;
- private System.Windows.Forms.TextBox transferIVThresText;
- private System.Windows.Forms.TextBox AdressBox;
- private System.Windows.Forms.Button FindAdressButton;
- private System.Windows.Forms.CheckBox CatchPokemonBox;
- private System.Windows.Forms.Label CatchPokemonText;
- }
-}
diff --git a/PokemonGo/RocketAPI/Window/SettingsForm.cs b/PokemonGo/RocketAPI/Window/SettingsForm.cs
deleted file mode 100644
index 85e8b14..0000000
--- a/PokemonGo/RocketAPI/Window/SettingsForm.cs
+++ /dev/null
@@ -1,270 +0,0 @@
-using System;
-using System.Configuration;
-using System.Drawing;
-using System.Globalization;
-using System.Windows.Forms;
-using GMap.NET;
-using GMap.NET.MapProviders;
-
-namespace PokemonGo.RocketAPI.Window
-{
- internal partial class SettingsForm : Form
- {
- public SettingsForm()
- {
- InitializeComponent();
- }
-
- private void SettingsForm_Load(object sender, EventArgs e)
- {
- authTypeCb.Text = Settings.Instance.AuthType.ToString();
- if (authTypeCb.Text == "google")
- {
- UserLoginBox.Text = Settings.Instance.GoogleUsername;
- UserPasswordBox.Text = Settings.Instance.GooglePassword;
- }
- else
- {
- UserLoginBox.Text = Settings.Instance.PtcUsername;
- UserPasswordBox.Text = Settings.Instance.PtcPassword;
- }
- latitudeText.Text = Settings.Instance.DefaultLatitude.ToString();
- longitudeText.Text = Settings.Instance.DefaultLongitude.ToString();
- razzmodeCb.Text = Settings.Instance.RazzBerryMode;
- razzSettingText.Text = Settings.Instance.RazzBerrySetting.ToString();
- transferTypeCb.Text = Settings.Instance.TransferType;
- transferCpThresText.Text = Settings.Instance.TransferCpThreshold.ToString();
- transferIVThresText.Text = Settings.Instance.TransferIvThreshold.ToString();
- evolveAllChk.Checked = Settings.Instance.EvolveAllGivenPokemons;
- CatchPokemonBox.Checked = Settings.Instance.CatchPokemon;
- TravelSpeedBox.Text = Settings.Instance.TravelSpeed.ToString();
- // ImageSizeBox.Text = Settings.Instance.ImageSize.ToString();
- // Initialize map:
- //use google provider
- gMapControl1.MapProvider = GoogleMapProvider.Instance;
- //get tiles from server only
- gMapControl1.Manager.Mode = AccessMode.ServerOnly;
- //not use proxy
- GMapProvider.WebProxy = null;
- //center map on moscow
- var lat = ConfigurationManager.AppSettings["DefaultLatitude"];
- var longit = ConfigurationManager.AppSettings["DefaultLongitude"];
- lat.Replace(',', '.');
- longit.Replace(',', '.');
- gMapControl1.Position = new PointLatLng(double.Parse(lat.Replace(",", "."), CultureInfo.InvariantCulture),
- double.Parse(longit.Replace(",", "."), CultureInfo.InvariantCulture));
-
-
- //zoom min/max; default both = 2
- gMapControl1.DragButton = MouseButtons.Left;
-
- gMapControl1.CenterPen = new Pen(Color.Red, 2);
- gMapControl1.MinZoom = trackBar.Maximum = 1;
- gMapControl1.MaxZoom = trackBar.Maximum = 20;
- trackBar.Value = 10;
-
- //set zoom
- gMapControl1.Zoom = trackBar.Value;
-
- //disable map focus
- gMapControl1.DisableFocusOnMouseEnter = true;
- }
-
- private void saveBtn_Click(object sender, EventArgs e)
- {
- Settings.Instance.SetSetting(authTypeCb.Text, "AuthType");
- if (authTypeCb.Text == "google")
- {
- Settings.Instance.SetSetting(UserLoginBox.Text, "GoogleUsername");
- Settings.Instance.SetSetting(UserPasswordBox.Text, "GooglePassword");
- }
- else
- {
- Settings.Instance.SetSetting(UserLoginBox.Text, "PtcUsername");
- Settings.Instance.SetSetting(UserPasswordBox.Text, "PtcPassword");
- }
- Settings.Instance.SetSetting(latitudeText.Text.Replace(',', '.'), "DefaultLatitude");
- Settings.Instance.SetSetting(longitudeText.Text.Replace(',', '.'), "DefaultLongitude");
-
- var lat = ConfigurationManager.AppSettings["DefaultLatitude"];
- var longit = ConfigurationManager.AppSettings["DefaultLongitude"];
- lat.Replace(',', '.');
- longit.Replace(',', '.');
-
-
- Settings.Instance.SetSetting(razzmodeCb.Text, "RazzBerryMode");
- Settings.Instance.SetSetting(razzSettingText.Text, "RazzBerrySetting");
- Settings.Instance.SetSetting(transferTypeCb.Text, "TransferType");
- Settings.Instance.SetSetting(transferCpThresText.Text, "TransferCPThreshold");
- Settings.Instance.SetSetting(transferIVThresText.Text, "TransferIVThreshold");
- Settings.Instance.SetSetting(TravelSpeedBox.Text, "TravelSpeed");
- //Settings.Instance.SetSetting(ImageSizeBox.Text, "ImageSize");
- Settings.Instance.SetSetting(evolveAllChk.Checked ? "true" : "false", "EvolveAllGivenPokemons");
- Settings.Instance.SetSetting(CatchPokemonBox.Checked ? "true" : "false", "CatchPokemon");
- Settings.Instance.Reload();
-
- MainForm.ResetMap();
- Close();
- }
-
- private void authTypeCb_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (authTypeCb.Text == "google")
- {
- UserLabel.Text = "Email:";
- }
- else
- {
- UserLabel.Text = "Username:";
- }
- }
-
- private void gMapControl1_MouseClick(object sender, MouseEventArgs e)
- {
- var localCoordinates = e.Location;
- gMapControl1.Position = gMapControl1.FromLocalToLatLng(localCoordinates.X, localCoordinates.Y);
-
- if (e.Clicks >= 2)
- {
- gMapControl1.Zoom += 5;
- }
-
- var X = Math.Round(gMapControl1.Position.Lng, 6);
- var Y = Math.Round(gMapControl1.Position.Lat, 6);
- var longitude = X.ToString();
- var latitude = Y.ToString();
- latitudeText.Text = latitude;
- longitudeText.Text = longitude;
- }
-
- private void trackBar_Scroll(object sender, EventArgs e)
- {
- gMapControl1.Zoom = trackBar.Value;
- }
-
- private void FindAdressButton_Click(object sender, EventArgs e)
- {
- gMapControl1.SetPositionByKeywords(AdressBox.Text);
- gMapControl1.Zoom = 15;
- }
-
- private void authTypeLabel_Click(object sender, EventArgs e)
- {
- }
-
- private void textBox1_TextChanged(object sender, EventArgs e)
- {
- }
-
- private void label6_Click(object sender, EventArgs e)
- {
- }
-
- private void transferCpThresText_TextChanged(object sender, EventArgs e)
- {
- }
-
- private void transferTypeCb_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (transferTypeCb.Text == "CP")
- {
- label4.Visible = true;
- transferCpThresText.Visible = true;
- }
- else
- {
- label4.Visible = false;
- transferCpThresText.Visible = false;
- }
-
- if (transferTypeCb.Text == "IV")
- {
- label6.Visible = true;
- transferIVThresText.Visible = true;
- }
- else
- {
- label6.Visible = false;
- transferIVThresText.Visible = false;
- }
- }
-
- private void textBox2_TextChanged(object sender, EventArgs e)
- {
- }
-
- private void gMapControl1_Load(object sender, EventArgs e)
- {
- }
-
- private void FindAdressButton_Click_1(object sender, EventArgs e)
- {
- gMapControl1.SetPositionByKeywords(AdressBox.Text);
- gMapControl1.Zoom = 15;
- var X = Math.Round(gMapControl1.Position.Lng, 6);
- var Y = Math.Round(gMapControl1.Position.Lat, 6);
- var longitude = X.ToString();
- var latitude = Y.ToString();
- latitudeText.Text = latitude;
- longitudeText.Text = longitude;
- }
-
- private void panel1_Paint(object sender, PaintEventArgs e)
- {
- }
-
- private void label3_Click(object sender, EventArgs e)
- {
- }
-
- private void evolveAllChk_CheckedChanged(object sender, EventArgs e)
- {
- }
-
- private void label7_Click(object sender, EventArgs e)
- {
- }
-
- private void checkBox1_CheckedChanged(object sender, EventArgs e)
- {
- }
-
- private void TravelSpeedBox_KeyPress(object sender, KeyPressEventArgs e)
- {
- var ch = e.KeyChar;
- if (!char.IsDigit(ch) && ch != 8)
- {
- e.Handled = true;
- }
- }
-
- private void razzSettingText_KeyPress(object sender, KeyPressEventArgs e)
- {
- var ch = e.KeyChar;
- if (!char.IsDigit(ch) && ch != 8)
- {
- e.Handled = true;
- }
- }
-
- private void AdressBox_Leave(object sender, EventArgs e)
- {
- if (AdressBox.Text.Length == 0)
- {
- AdressBox.Text = "Enter an address or a coordinate";
- AdressBox.ForeColor = SystemColors.GrayText;
- }
- }
-
- private void AdressBox_Enter(object sender, EventArgs e)
- {
- if (AdressBox.Text == "Enter an address or a coordinate")
- {
- AdressBox.Text = "";
- AdressBox.ForeColor = SystemColors.WindowText;
- }
- }
-
-
- }
-}
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Window/lib/GMap.NET.Core.dll b/PokemonGo/RocketAPI/Window/lib/GMap.NET.Core.dll
deleted file mode 100644
index 980193a..0000000
Binary files a/PokemonGo/RocketAPI/Window/lib/GMap.NET.Core.dll and /dev/null differ
diff --git a/PokemonGo/RocketAPI/Window/lib/GMap.NET.WindowsForms.dll b/PokemonGo/RocketAPI/Window/lib/GMap.NET.WindowsForms.dll
deleted file mode 100644
index 88817b0..0000000
Binary files a/PokemonGo/RocketAPI/Window/lib/GMap.NET.WindowsForms.dll and /dev/null differ
diff --git a/README.md b/README.md
index 12987f5..487e94a 100644
--- a/README.md
+++ b/README.md
@@ -17,8 +17,9 @@
</p>
## Window
-
-
+
+
+
A Pokémon Go bot in C#
@@ -62,18 +63,18 @@ Click Start Bot and enjoy!
## For users:
You can contribute in many ways, here are some that you can do to help the project out!
### Join discord channel and help answer questions
-We have more and more users everyday, so we have alot of questions form new users who haven't fully understand how the bot works yet. If you want to help them out, join our official discord channel :)
+We have more and more users everyday, so we have a lot of questions from new users who haven't fully understand how the bot works yet. If you want to help them out, join our official discord channel :)
### Answer questions in [issues](https://github.com/1461748123/Pokemon-Go-Rocket-API/issues)
Same as above, you can help by answering questions in the [issues](https://github.com/1461748123/Pokemon-Go-Rocket-API/issues) tab!
### Report bugs
Report bugs you found in [issues](https://github.com/1461748123/Pokemon-Go-Rocket-API/issues).
-In order to help us fix the problem, please take a screenshot of the error you get and also attatch your log file (under the Logs folder) as well. Add [Bug] to the title to help us quickly identify the category of the issue.
+In order to help us fix the problem, please take a screenshot of the error you get and also attach your log file (under the Logs folder) as well. Add [Bug] to the title to help us quickly identify the category of the issue.
### Suggestions/ideas
Tell us what you think we can do better in [issues](https://github.com/1461748123/Pokemon-Go-Rocket-API/issues).
Give detailed discription to help us understand what you are looking for. Add [Suggestion] to the title to help us quickly identify the category of the issue. Your suggestion might not be accept, but hey, maybe we will accept your suggestion next time! :)
## For developers:
You can contribute to the project by helping us on coding.
-Fork this project and creat a new branch to add your code or fix a know issue.
+Fork this project and create a new branch to add your code or fix a known issue.
Use pull request to submit your code. Remember, submit to *Beta-Build* branch! :D
## Donations
We are not accepting donations currently :) If you really wanna contribute, consider doing the stuff above! :D
diff --git a/RocketBot.sln b/RocketBot.sln
index d3f4080..b7a2d0c 100644
--- a/RocketBot.sln
+++ b/RocketBot.sln
@@ -3,14 +3,15 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PokemonGo.RocketBot", "PokemonGo\RocketAPI\Window\PokemonGo.RocketBot.csproj", "{C85B9D78-9CA3-4830-84CD-6B69090B987F}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PokemonGo.RocketBot", "src\RocketBotGUI\PokemonGo.RocketBot.csproj", "{C85B9D78-9CA3-4830-84CD-6B69090B987F}"
ProjectSection(ProjectDependencies) = postProject
+ {05D2DA44-1B8E-4CF7-94ED-4D52451CD095} = {05D2DA44-1B8E-4CF7-94ED-4D52451CD095}
{A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB} = {A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PokemonGo.RocketAPI", "PokemonGo\RocketAPI\PokemonGo.RocketAPI.csproj", "{05D2DA44-1B8E-4CF7-94ED-4D52451CD095}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PokemonGo.RocketAPI", "src\RocketAPI\PokemonGo.RocketAPI.csproj", "{05D2DA44-1B8E-4CF7-94ED-4D52451CD095}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "POGOProtos", "PokemonGo\POGOProtos\POGOProtos.csproj", "{A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "POGOProtos", "src\POGOProtos\POGOProtos.csproj", "{A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/SettingForm.png b/SettingForm.png
index 20312dc..a7995bd 100644
Binary files a/SettingForm.png and b/SettingForm.png differ
diff --git a/PokemonGo/POGOProtos/Data/AssetDigestEntry.cs b/src/POGOProtos/Data/AssetDigestEntry.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/AssetDigestEntry.cs
rename to src/POGOProtos/Data/AssetDigestEntry.cs
diff --git a/PokemonGo/POGOProtos/Data/Battle/BattleAction.cs b/src/POGOProtos/Data/Battle/BattleAction.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Battle/BattleAction.cs
rename to src/POGOProtos/Data/Battle/BattleAction.cs
diff --git a/PokemonGo/POGOProtos/Data/Battle/BattleActionType.cs b/src/POGOProtos/Data/Battle/BattleActionType.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Battle/BattleActionType.cs
rename to src/POGOProtos/Data/Battle/BattleActionType.cs
diff --git a/PokemonGo/POGOProtos/Data/Battle/BattleLog.cs b/src/POGOProtos/Data/Battle/BattleLog.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Battle/BattleLog.cs
rename to src/POGOProtos/Data/Battle/BattleLog.cs
diff --git a/PokemonGo/POGOProtos/Data/Battle/BattleParticipant.cs b/src/POGOProtos/Data/Battle/BattleParticipant.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Battle/BattleParticipant.cs
rename to src/POGOProtos/Data/Battle/BattleParticipant.cs
diff --git a/PokemonGo/POGOProtos/Data/Battle/BattlePokemonInfo.cs b/src/POGOProtos/Data/Battle/BattlePokemonInfo.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Battle/BattlePokemonInfo.cs
rename to src/POGOProtos/Data/Battle/BattlePokemonInfo.cs
diff --git a/PokemonGo/POGOProtos/Data/Battle/BattleResults.cs b/src/POGOProtos/Data/Battle/BattleResults.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Battle/BattleResults.cs
rename to src/POGOProtos/Data/Battle/BattleResults.cs
diff --git a/PokemonGo/POGOProtos/Data/Battle/BattleState.cs b/src/POGOProtos/Data/Battle/BattleState.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Battle/BattleState.cs
rename to src/POGOProtos/Data/Battle/BattleState.cs
diff --git a/PokemonGo/POGOProtos/Data/Battle/BattleType.cs b/src/POGOProtos/Data/Battle/BattleType.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Battle/BattleType.cs
rename to src/POGOProtos/Data/Battle/BattleType.cs
diff --git a/PokemonGo/POGOProtos/Data/Battle/POGOProtosDataBattle.cs b/src/POGOProtos/Data/Battle/POGOProtosDataBattle.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Battle/POGOProtosDataBattle.cs
rename to src/POGOProtos/Data/Battle/POGOProtosDataBattle.cs
diff --git a/PokemonGo/POGOProtos/Data/Capture/CaptureAward.cs b/src/POGOProtos/Data/Capture/CaptureAward.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Capture/CaptureAward.cs
rename to src/POGOProtos/Data/Capture/CaptureAward.cs
diff --git a/PokemonGo/POGOProtos/Data/Capture/CaptureProbability.cs b/src/POGOProtos/Data/Capture/CaptureProbability.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Capture/CaptureProbability.cs
rename to src/POGOProtos/Data/Capture/CaptureProbability.cs
diff --git a/PokemonGo/POGOProtos/Data/Capture/POGOProtosDataCapture.cs b/src/POGOProtos/Data/Capture/POGOProtosDataCapture.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Capture/POGOProtosDataCapture.cs
rename to src/POGOProtos/Data/Capture/POGOProtosDataCapture.cs
diff --git a/PokemonGo/POGOProtos/Data/DownloadUrlEntry.cs b/src/POGOProtos/Data/DownloadUrlEntry.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/DownloadUrlEntry.cs
rename to src/POGOProtos/Data/DownloadUrlEntry.cs
diff --git a/PokemonGo/POGOProtos/Data/Gym/GymMembership.cs b/src/POGOProtos/Data/Gym/GymMembership.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Gym/GymMembership.cs
rename to src/POGOProtos/Data/Gym/GymMembership.cs
diff --git a/PokemonGo/POGOProtos/Data/Gym/GymState.cs b/src/POGOProtos/Data/Gym/GymState.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Gym/GymState.cs
rename to src/POGOProtos/Data/Gym/GymState.cs
diff --git a/PokemonGo/POGOProtos/Data/Gym/POGOProtosDataGym.cs b/src/POGOProtos/Data/Gym/POGOProtosDataGym.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Gym/POGOProtosDataGym.cs
rename to src/POGOProtos/Data/Gym/POGOProtosDataGym.cs
diff --git a/PokemonGo/POGOProtos/Data/Logs/ActionLogEntry.cs b/src/POGOProtos/Data/Logs/ActionLogEntry.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Logs/ActionLogEntry.cs
rename to src/POGOProtos/Data/Logs/ActionLogEntry.cs
diff --git a/PokemonGo/POGOProtos/Data/Logs/CatchPokemonLogEntry.cs b/src/POGOProtos/Data/Logs/CatchPokemonLogEntry.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Logs/CatchPokemonLogEntry.cs
rename to src/POGOProtos/Data/Logs/CatchPokemonLogEntry.cs
diff --git a/PokemonGo/POGOProtos/Data/Logs/FortSearchLogEntry.cs b/src/POGOProtos/Data/Logs/FortSearchLogEntry.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Logs/FortSearchLogEntry.cs
rename to src/POGOProtos/Data/Logs/FortSearchLogEntry.cs
diff --git a/PokemonGo/POGOProtos/Data/Logs/POGOProtosDataLogs.cs b/src/POGOProtos/Data/Logs/POGOProtosDataLogs.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Logs/POGOProtosDataLogs.cs
rename to src/POGOProtos/Data/Logs/POGOProtosDataLogs.cs
diff --git a/PokemonGo/POGOProtos/Data/POGOProtosData.cs b/src/POGOProtos/Data/POGOProtosData.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/POGOProtosData.cs
rename to src/POGOProtos/Data/POGOProtosData.cs
diff --git a/PokemonGo/POGOProtos/Data/Player/ContactSettings.cs b/src/POGOProtos/Data/Player/ContactSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Player/ContactSettings.cs
rename to src/POGOProtos/Data/Player/ContactSettings.cs
diff --git a/PokemonGo/POGOProtos/Data/Player/Currency.cs b/src/POGOProtos/Data/Player/Currency.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Player/Currency.cs
rename to src/POGOProtos/Data/Player/Currency.cs
diff --git a/PokemonGo/POGOProtos/Data/Player/DailyBonus.cs b/src/POGOProtos/Data/Player/DailyBonus.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Player/DailyBonus.cs
rename to src/POGOProtos/Data/Player/DailyBonus.cs
diff --git a/PokemonGo/POGOProtos/Data/Player/EquippedBadge.cs b/src/POGOProtos/Data/Player/EquippedBadge.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Player/EquippedBadge.cs
rename to src/POGOProtos/Data/Player/EquippedBadge.cs
diff --git a/PokemonGo/POGOProtos/Data/Player/POGOProtosDataPlayer.cs b/src/POGOProtos/Data/Player/POGOProtosDataPlayer.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Player/POGOProtosDataPlayer.cs
rename to src/POGOProtos/Data/Player/POGOProtosDataPlayer.cs
diff --git a/PokemonGo/POGOProtos/Data/Player/PlayerAvatar.cs b/src/POGOProtos/Data/Player/PlayerAvatar.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Player/PlayerAvatar.cs
rename to src/POGOProtos/Data/Player/PlayerAvatar.cs
diff --git a/PokemonGo/POGOProtos/Data/Player/PlayerCamera.cs b/src/POGOProtos/Data/Player/PlayerCamera.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Player/PlayerCamera.cs
rename to src/POGOProtos/Data/Player/PlayerCamera.cs
diff --git a/PokemonGo/POGOProtos/Data/Player/PlayerCurrency.cs b/src/POGOProtos/Data/Player/PlayerCurrency.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Player/PlayerCurrency.cs
rename to src/POGOProtos/Data/Player/PlayerCurrency.cs
diff --git a/PokemonGo/POGOProtos/Data/Player/PlayerPublicProfile.cs b/src/POGOProtos/Data/Player/PlayerPublicProfile.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Player/PlayerPublicProfile.cs
rename to src/POGOProtos/Data/Player/PlayerPublicProfile.cs
diff --git a/PokemonGo/POGOProtos/Data/Player/PlayerStats.cs b/src/POGOProtos/Data/Player/PlayerStats.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/Player/PlayerStats.cs
rename to src/POGOProtos/Data/Player/PlayerStats.cs
diff --git a/PokemonGo/POGOProtos/Data/PlayerBadge.cs b/src/POGOProtos/Data/PlayerBadge.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/PlayerBadge.cs
rename to src/POGOProtos/Data/PlayerBadge.cs
diff --git a/PokemonGo/POGOProtos/Data/PlayerData.cs b/src/POGOProtos/Data/PlayerData.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/PlayerData.cs
rename to src/POGOProtos/Data/PlayerData.cs
diff --git a/PokemonGo/POGOProtos/Data/PokedexEntry.cs b/src/POGOProtos/Data/PokedexEntry.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/PokedexEntry.cs
rename to src/POGOProtos/Data/PokedexEntry.cs
diff --git a/PokemonGo/POGOProtos/Data/PokemonData.cs b/src/POGOProtos/Data/PokemonData.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Data/PokemonData.cs
rename to src/POGOProtos/Data/PokemonData.cs
diff --git a/PokemonGo/POGOProtos/Enums/ActivityType.cs b/src/POGOProtos/Enums/ActivityType.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Enums/ActivityType.cs
rename to src/POGOProtos/Enums/ActivityType.cs
diff --git a/PokemonGo/POGOProtos/Enums/BadgeType.cs b/src/POGOProtos/Enums/BadgeType.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Enums/BadgeType.cs
rename to src/POGOProtos/Enums/BadgeType.cs
diff --git a/PokemonGo/POGOProtos/Enums/CameraInterpolation.cs b/src/POGOProtos/Enums/CameraInterpolation.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Enums/CameraInterpolation.cs
rename to src/POGOProtos/Enums/CameraInterpolation.cs
diff --git a/PokemonGo/POGOProtos/Enums/CameraTarget.cs b/src/POGOProtos/Enums/CameraTarget.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Enums/CameraTarget.cs
rename to src/POGOProtos/Enums/CameraTarget.cs
diff --git a/PokemonGo/POGOProtos/Enums/Gender.cs b/src/POGOProtos/Enums/Gender.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Enums/Gender.cs
rename to src/POGOProtos/Enums/Gender.cs
diff --git a/PokemonGo/POGOProtos/Enums/IapItemCategory.cs b/src/POGOProtos/Enums/IapItemCategory.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Enums/IapItemCategory.cs
rename to src/POGOProtos/Enums/IapItemCategory.cs
diff --git a/PokemonGo/POGOProtos/Enums/ItemCategory.cs b/src/POGOProtos/Enums/ItemCategory.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Enums/ItemCategory.cs
rename to src/POGOProtos/Enums/ItemCategory.cs
diff --git a/PokemonGo/POGOProtos/Enums/ItemEffect.cs b/src/POGOProtos/Enums/ItemEffect.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Enums/ItemEffect.cs
rename to src/POGOProtos/Enums/ItemEffect.cs
diff --git a/PokemonGo/POGOProtos/Enums/POGOProtosEnums.cs b/src/POGOProtos/Enums/POGOProtosEnums.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Enums/POGOProtosEnums.cs
rename to src/POGOProtos/Enums/POGOProtosEnums.cs
diff --git a/PokemonGo/POGOProtos/Enums/Platform.cs b/src/POGOProtos/Enums/Platform.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Enums/Platform.cs
rename to src/POGOProtos/Enums/Platform.cs
diff --git a/PokemonGo/POGOProtos/Enums/PokemonFamilyId.cs b/src/POGOProtos/Enums/PokemonFamilyId.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Enums/PokemonFamilyId.cs
rename to src/POGOProtos/Enums/PokemonFamilyId.cs
diff --git a/PokemonGo/POGOProtos/Enums/PokemonId.cs b/src/POGOProtos/Enums/PokemonId.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Enums/PokemonId.cs
rename to src/POGOProtos/Enums/PokemonId.cs
diff --git a/PokemonGo/POGOProtos/Enums/PokemonMove.cs b/src/POGOProtos/Enums/PokemonMove.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Enums/PokemonMove.cs
rename to src/POGOProtos/Enums/PokemonMove.cs
diff --git a/PokemonGo/POGOProtos/Enums/PokemonMovementType.cs b/src/POGOProtos/Enums/PokemonMovementType.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Enums/PokemonMovementType.cs
rename to src/POGOProtos/Enums/PokemonMovementType.cs
diff --git a/PokemonGo/POGOProtos/Enums/PokemonRarity.cs b/src/POGOProtos/Enums/PokemonRarity.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Enums/PokemonRarity.cs
rename to src/POGOProtos/Enums/PokemonRarity.cs
diff --git a/PokemonGo/POGOProtos/Enums/PokemonType.cs b/src/POGOProtos/Enums/PokemonType.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Enums/PokemonType.cs
rename to src/POGOProtos/Enums/PokemonType.cs
diff --git a/PokemonGo/POGOProtos/Enums/TeamColor.cs b/src/POGOProtos/Enums/TeamColor.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Enums/TeamColor.cs
rename to src/POGOProtos/Enums/TeamColor.cs
diff --git a/PokemonGo/POGOProtos/Enums/TutorialState.cs b/src/POGOProtos/Enums/TutorialState.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Enums/TutorialState.cs
rename to src/POGOProtos/Enums/TutorialState.cs
diff --git a/PokemonGo/POGOProtos/Inventory/AppliedItem.cs b/src/POGOProtos/Inventory/AppliedItem.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Inventory/AppliedItem.cs
rename to src/POGOProtos/Inventory/AppliedItem.cs
diff --git a/PokemonGo/POGOProtos/Inventory/AppliedItems.cs b/src/POGOProtos/Inventory/AppliedItems.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Inventory/AppliedItems.cs
rename to src/POGOProtos/Inventory/AppliedItems.cs
diff --git a/PokemonGo/POGOProtos/Inventory/Candy.cs b/src/POGOProtos/Inventory/Candy.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Inventory/Candy.cs
rename to src/POGOProtos/Inventory/Candy.cs
diff --git a/PokemonGo/POGOProtos/Inventory/EggIncubator.cs b/src/POGOProtos/Inventory/EggIncubator.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Inventory/EggIncubator.cs
rename to src/POGOProtos/Inventory/EggIncubator.cs
diff --git a/PokemonGo/POGOProtos/Inventory/EggIncubatorType.cs b/src/POGOProtos/Inventory/EggIncubatorType.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Inventory/EggIncubatorType.cs
rename to src/POGOProtos/Inventory/EggIncubatorType.cs
diff --git a/PokemonGo/POGOProtos/Inventory/EggIncubators.cs b/src/POGOProtos/Inventory/EggIncubators.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Inventory/EggIncubators.cs
rename to src/POGOProtos/Inventory/EggIncubators.cs
diff --git a/PokemonGo/POGOProtos/Inventory/InventoryDelta.cs b/src/POGOProtos/Inventory/InventoryDelta.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Inventory/InventoryDelta.cs
rename to src/POGOProtos/Inventory/InventoryDelta.cs
diff --git a/PokemonGo/POGOProtos/Inventory/InventoryItem.cs b/src/POGOProtos/Inventory/InventoryItem.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Inventory/InventoryItem.cs
rename to src/POGOProtos/Inventory/InventoryItem.cs
diff --git a/PokemonGo/POGOProtos/Inventory/InventoryItemData.cs b/src/POGOProtos/Inventory/InventoryItemData.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Inventory/InventoryItemData.cs
rename to src/POGOProtos/Inventory/InventoryItemData.cs
diff --git a/PokemonGo/POGOProtos/Inventory/InventoryUpgrade.cs b/src/POGOProtos/Inventory/InventoryUpgrade.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Inventory/InventoryUpgrade.cs
rename to src/POGOProtos/Inventory/InventoryUpgrade.cs
diff --git a/PokemonGo/POGOProtos/Inventory/InventoryUpgradeType.cs b/src/POGOProtos/Inventory/InventoryUpgradeType.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Inventory/InventoryUpgradeType.cs
rename to src/POGOProtos/Inventory/InventoryUpgradeType.cs
diff --git a/PokemonGo/POGOProtos/Inventory/InventoryUpgrades.cs b/src/POGOProtos/Inventory/InventoryUpgrades.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Inventory/InventoryUpgrades.cs
rename to src/POGOProtos/Inventory/InventoryUpgrades.cs
diff --git a/PokemonGo/POGOProtos/Inventory/Item/ItemAward.cs b/src/POGOProtos/Inventory/Item/ItemAward.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Inventory/Item/ItemAward.cs
rename to src/POGOProtos/Inventory/Item/ItemAward.cs
diff --git a/PokemonGo/POGOProtos/Inventory/Item/ItemData.cs b/src/POGOProtos/Inventory/Item/ItemData.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Inventory/Item/ItemData.cs
rename to src/POGOProtos/Inventory/Item/ItemData.cs
diff --git a/PokemonGo/POGOProtos/Inventory/Item/ItemId.cs b/src/POGOProtos/Inventory/Item/ItemId.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Inventory/Item/ItemId.cs
rename to src/POGOProtos/Inventory/Item/ItemId.cs
diff --git a/PokemonGo/POGOProtos/Inventory/Item/ItemType.cs b/src/POGOProtos/Inventory/Item/ItemType.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Inventory/Item/ItemType.cs
rename to src/POGOProtos/Inventory/Item/ItemType.cs
diff --git a/PokemonGo/POGOProtos/Inventory/Item/POGOProtosInventoryItem.cs b/src/POGOProtos/Inventory/Item/POGOProtosInventoryItem.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Inventory/Item/POGOProtosInventoryItem.cs
rename to src/POGOProtos/Inventory/Item/POGOProtosInventoryItem.cs
diff --git a/PokemonGo/POGOProtos/Inventory/POGOProtosInventory.cs b/src/POGOProtos/Inventory/POGOProtosInventory.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Inventory/POGOProtosInventory.cs
rename to src/POGOProtos/Inventory/POGOProtosInventory.cs
diff --git a/PokemonGo/POGOProtos/Map/Fort/FortData.cs b/src/POGOProtos/Map/Fort/FortData.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Map/Fort/FortData.cs
rename to src/POGOProtos/Map/Fort/FortData.cs
diff --git a/PokemonGo/POGOProtos/Map/Fort/FortLureInfo.cs b/src/POGOProtos/Map/Fort/FortLureInfo.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Map/Fort/FortLureInfo.cs
rename to src/POGOProtos/Map/Fort/FortLureInfo.cs
diff --git a/PokemonGo/POGOProtos/Map/Fort/FortModifier.cs b/src/POGOProtos/Map/Fort/FortModifier.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Map/Fort/FortModifier.cs
rename to src/POGOProtos/Map/Fort/FortModifier.cs
diff --git a/PokemonGo/POGOProtos/Map/Fort/FortRenderingType.cs b/src/POGOProtos/Map/Fort/FortRenderingType.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Map/Fort/FortRenderingType.cs
rename to src/POGOProtos/Map/Fort/FortRenderingType.cs
diff --git a/PokemonGo/POGOProtos/Map/Fort/FortSponsor.cs b/src/POGOProtos/Map/Fort/FortSponsor.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Map/Fort/FortSponsor.cs
rename to src/POGOProtos/Map/Fort/FortSponsor.cs
diff --git a/PokemonGo/POGOProtos/Map/Fort/FortSummary.cs b/src/POGOProtos/Map/Fort/FortSummary.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Map/Fort/FortSummary.cs
rename to src/POGOProtos/Map/Fort/FortSummary.cs
diff --git a/PokemonGo/POGOProtos/Map/Fort/FortType.cs b/src/POGOProtos/Map/Fort/FortType.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Map/Fort/FortType.cs
rename to src/POGOProtos/Map/Fort/FortType.cs
diff --git a/PokemonGo/POGOProtos/Map/Fort/POGOProtosMapFort.cs b/src/POGOProtos/Map/Fort/POGOProtosMapFort.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Map/Fort/POGOProtosMapFort.cs
rename to src/POGOProtos/Map/Fort/POGOProtosMapFort.cs
diff --git a/PokemonGo/POGOProtos/Map/MapCell.cs b/src/POGOProtos/Map/MapCell.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Map/MapCell.cs
rename to src/POGOProtos/Map/MapCell.cs
diff --git a/PokemonGo/POGOProtos/Map/MapObjectsStatus.cs b/src/POGOProtos/Map/MapObjectsStatus.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Map/MapObjectsStatus.cs
rename to src/POGOProtos/Map/MapObjectsStatus.cs
diff --git a/PokemonGo/POGOProtos/Map/POGOProtosMap.cs b/src/POGOProtos/Map/POGOProtosMap.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Map/POGOProtosMap.cs
rename to src/POGOProtos/Map/POGOProtosMap.cs
diff --git a/PokemonGo/POGOProtos/Map/Pokemon/MapPokemon.cs b/src/POGOProtos/Map/Pokemon/MapPokemon.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Map/Pokemon/MapPokemon.cs
rename to src/POGOProtos/Map/Pokemon/MapPokemon.cs
diff --git a/PokemonGo/POGOProtos/Map/Pokemon/NearbyPokemon.cs b/src/POGOProtos/Map/Pokemon/NearbyPokemon.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Map/Pokemon/NearbyPokemon.cs
rename to src/POGOProtos/Map/Pokemon/NearbyPokemon.cs
diff --git a/PokemonGo/POGOProtos/Map/Pokemon/POGOProtosMapPokemon.cs b/src/POGOProtos/Map/Pokemon/POGOProtosMapPokemon.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Map/Pokemon/POGOProtosMapPokemon.cs
rename to src/POGOProtos/Map/Pokemon/POGOProtosMapPokemon.cs
diff --git a/PokemonGo/POGOProtos/Map/Pokemon/WildPokemon.cs b/src/POGOProtos/Map/Pokemon/WildPokemon.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Map/Pokemon/WildPokemon.cs
rename to src/POGOProtos/Map/Pokemon/WildPokemon.cs
diff --git a/PokemonGo/POGOProtos/Map/SpawnPoint.cs b/src/POGOProtos/Map/SpawnPoint.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Map/SpawnPoint.cs
rename to src/POGOProtos/Map/SpawnPoint.cs
diff --git a/PokemonGo/POGOProtos/Networking/Envelopes/AuthTicket.cs b/src/POGOProtos/Networking/Envelopes/AuthTicket.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Envelopes/AuthTicket.cs
rename to src/POGOProtos/Networking/Envelopes/AuthTicket.cs
diff --git a/PokemonGo/POGOProtos/Networking/Envelopes/POGOProtosNetworkingEnvelopes.cs b/src/POGOProtos/Networking/Envelopes/POGOProtosNetworkingEnvelopes.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Envelopes/POGOProtosNetworkingEnvelopes.cs
rename to src/POGOProtos/Networking/Envelopes/POGOProtosNetworkingEnvelopes.cs
diff --git a/PokemonGo/POGOProtos/Networking/Envelopes/RequestEnvelope.cs b/src/POGOProtos/Networking/Envelopes/RequestEnvelope.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Envelopes/RequestEnvelope.cs
rename to src/POGOProtos/Networking/Envelopes/RequestEnvelope.cs
diff --git a/PokemonGo/POGOProtos/Networking/Envelopes/ResponseEnvelope.cs b/src/POGOProtos/Networking/Envelopes/ResponseEnvelope.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Envelopes/ResponseEnvelope.cs
rename to src/POGOProtos/Networking/Envelopes/ResponseEnvelope.cs
diff --git a/PokemonGo/POGOProtos/Networking/Envelopes/Unknown6.cs b/src/POGOProtos/Networking/Envelopes/Unknown6.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Envelopes/Unknown6.cs
rename to src/POGOProtos/Networking/Envelopes/Unknown6.cs
diff --git a/PokemonGo/POGOProtos/Networking/Envelopes/Unknown6Response.cs b/src/POGOProtos/Networking/Envelopes/Unknown6Response.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Envelopes/Unknown6Response.cs
rename to src/POGOProtos/Networking/Envelopes/Unknown6Response.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/AddFortModifierMessage.cs b/src/POGOProtos/Networking/Requests/Messages/AddFortModifierMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/AddFortModifierMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/AddFortModifierMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/AttackGymMessage.cs b/src/POGOProtos/Networking/Requests/Messages/AttackGymMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/AttackGymMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/AttackGymMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/CatchPokemonMessage.cs b/src/POGOProtos/Networking/Requests/Messages/CatchPokemonMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/CatchPokemonMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/CatchPokemonMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/CheckAwardedBadgesMessage.cs b/src/POGOProtos/Networking/Requests/Messages/CheckAwardedBadgesMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/CheckAwardedBadgesMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/CheckAwardedBadgesMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/CheckCodenameAvailableMessage.cs b/src/POGOProtos/Networking/Requests/Messages/CheckCodenameAvailableMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/CheckCodenameAvailableMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/CheckCodenameAvailableMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/ClaimCodenameMessage.cs b/src/POGOProtos/Networking/Requests/Messages/ClaimCodenameMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/ClaimCodenameMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/ClaimCodenameMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/CollectDailyBonusMessage.cs b/src/POGOProtos/Networking/Requests/Messages/CollectDailyBonusMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/CollectDailyBonusMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/CollectDailyBonusMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/CollectDailyDefenderBonusMessage.cs b/src/POGOProtos/Networking/Requests/Messages/CollectDailyDefenderBonusMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/CollectDailyDefenderBonusMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/CollectDailyDefenderBonusMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/DiskEncounterMessage.cs b/src/POGOProtos/Networking/Requests/Messages/DiskEncounterMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/DiskEncounterMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/DiskEncounterMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/DownloadItemTemplatesMessage.cs b/src/POGOProtos/Networking/Requests/Messages/DownloadItemTemplatesMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/DownloadItemTemplatesMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/DownloadItemTemplatesMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/DownloadRemoteConfigVersionMessage.cs b/src/POGOProtos/Networking/Requests/Messages/DownloadRemoteConfigVersionMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/DownloadRemoteConfigVersionMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/DownloadRemoteConfigVersionMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/DownloadSettingsMessage.cs b/src/POGOProtos/Networking/Requests/Messages/DownloadSettingsMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/DownloadSettingsMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/DownloadSettingsMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/EchoMessage.cs b/src/POGOProtos/Networking/Requests/Messages/EchoMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/EchoMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/EchoMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/EncounterMessage.cs b/src/POGOProtos/Networking/Requests/Messages/EncounterMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/EncounterMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/EncounterMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/EncounterTutorialCompleteMessage.cs b/src/POGOProtos/Networking/Requests/Messages/EncounterTutorialCompleteMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/EncounterTutorialCompleteMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/EncounterTutorialCompleteMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/EquipBadgeMessage.cs b/src/POGOProtos/Networking/Requests/Messages/EquipBadgeMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/EquipBadgeMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/EquipBadgeMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/EvolvePokemonMessage.cs b/src/POGOProtos/Networking/Requests/Messages/EvolvePokemonMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/EvolvePokemonMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/EvolvePokemonMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/FortDeployPokemonMessage.cs b/src/POGOProtos/Networking/Requests/Messages/FortDeployPokemonMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/FortDeployPokemonMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/FortDeployPokemonMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/FortDetailsMessage.cs b/src/POGOProtos/Networking/Requests/Messages/FortDetailsMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/FortDetailsMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/FortDetailsMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/FortRecallPokemonMessage.cs b/src/POGOProtos/Networking/Requests/Messages/FortRecallPokemonMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/FortRecallPokemonMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/FortRecallPokemonMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/FortSearchMessage.cs b/src/POGOProtos/Networking/Requests/Messages/FortSearchMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/FortSearchMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/FortSearchMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/GetAssetDigestMessage.cs b/src/POGOProtos/Networking/Requests/Messages/GetAssetDigestMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/GetAssetDigestMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/GetAssetDigestMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/GetDownloadUrlsMessage.cs b/src/POGOProtos/Networking/Requests/Messages/GetDownloadUrlsMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/GetDownloadUrlsMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/GetDownloadUrlsMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/GetGymDetailsMessage.cs b/src/POGOProtos/Networking/Requests/Messages/GetGymDetailsMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/GetGymDetailsMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/GetGymDetailsMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/GetHatchedEggsMessage.cs b/src/POGOProtos/Networking/Requests/Messages/GetHatchedEggsMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/GetHatchedEggsMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/GetHatchedEggsMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/GetIncensePokemonMessage.cs b/src/POGOProtos/Networking/Requests/Messages/GetIncensePokemonMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/GetIncensePokemonMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/GetIncensePokemonMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/GetInventoryMessage.cs b/src/POGOProtos/Networking/Requests/Messages/GetInventoryMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/GetInventoryMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/GetInventoryMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/GetMapObjectsMessage.cs b/src/POGOProtos/Networking/Requests/Messages/GetMapObjectsMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/GetMapObjectsMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/GetMapObjectsMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/GetPlayerMessage.cs b/src/POGOProtos/Networking/Requests/Messages/GetPlayerMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/GetPlayerMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/GetPlayerMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/GetPlayerProfileMessage.cs b/src/POGOProtos/Networking/Requests/Messages/GetPlayerProfileMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/GetPlayerProfileMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/GetPlayerProfileMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/GetSuggestedCodenamesMessage.cs b/src/POGOProtos/Networking/Requests/Messages/GetSuggestedCodenamesMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/GetSuggestedCodenamesMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/GetSuggestedCodenamesMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/IncenseEncounterMessage.cs b/src/POGOProtos/Networking/Requests/Messages/IncenseEncounterMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/IncenseEncounterMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/IncenseEncounterMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/LevelUpRewardsMessage.cs b/src/POGOProtos/Networking/Requests/Messages/LevelUpRewardsMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/LevelUpRewardsMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/LevelUpRewardsMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/MarkTutorialCompleteMessage.cs b/src/POGOProtos/Networking/Requests/Messages/MarkTutorialCompleteMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/MarkTutorialCompleteMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/MarkTutorialCompleteMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/NicknamePokemonMessage.cs b/src/POGOProtos/Networking/Requests/Messages/NicknamePokemonMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/NicknamePokemonMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/NicknamePokemonMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/POGOProtosNetworkingRequestsMessages.cs b/src/POGOProtos/Networking/Requests/Messages/POGOProtosNetworkingRequestsMessages.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/POGOProtosNetworkingRequestsMessages.cs
rename to src/POGOProtos/Networking/Requests/Messages/POGOProtosNetworkingRequestsMessages.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/PlayerUpdateMessage.cs b/src/POGOProtos/Networking/Requests/Messages/PlayerUpdateMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/PlayerUpdateMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/PlayerUpdateMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/RecycleInventoryItemMessage.cs b/src/POGOProtos/Networking/Requests/Messages/RecycleInventoryItemMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/RecycleInventoryItemMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/RecycleInventoryItemMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/ReleasePokemonMessage.cs b/src/POGOProtos/Networking/Requests/Messages/ReleasePokemonMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/ReleasePokemonMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/ReleasePokemonMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/SetAvatarMessage.cs b/src/POGOProtos/Networking/Requests/Messages/SetAvatarMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/SetAvatarMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/SetAvatarMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/SetContactSettingsMessage.cs b/src/POGOProtos/Networking/Requests/Messages/SetContactSettingsMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/SetContactSettingsMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/SetContactSettingsMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/SetFavoritePokemonMessage.cs b/src/POGOProtos/Networking/Requests/Messages/SetFavoritePokemonMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/SetFavoritePokemonMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/SetFavoritePokemonMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/SetPlayerTeamMessage.cs b/src/POGOProtos/Networking/Requests/Messages/SetPlayerTeamMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/SetPlayerTeamMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/SetPlayerTeamMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/SfidaActionLogMessage.cs b/src/POGOProtos/Networking/Requests/Messages/SfidaActionLogMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/SfidaActionLogMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/SfidaActionLogMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/StartGymBattleMessage.cs b/src/POGOProtos/Networking/Requests/Messages/StartGymBattleMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/StartGymBattleMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/StartGymBattleMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/UpgradePokemonMessage.cs b/src/POGOProtos/Networking/Requests/Messages/UpgradePokemonMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/UpgradePokemonMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/UpgradePokemonMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/UseIncenseMessage.cs b/src/POGOProtos/Networking/Requests/Messages/UseIncenseMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/UseIncenseMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/UseIncenseMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/UseItemCaptureMessage.cs b/src/POGOProtos/Networking/Requests/Messages/UseItemCaptureMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/UseItemCaptureMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/UseItemCaptureMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/UseItemEggIncubatorMessage.cs b/src/POGOProtos/Networking/Requests/Messages/UseItemEggIncubatorMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/UseItemEggIncubatorMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/UseItemEggIncubatorMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/UseItemGymMessage.cs b/src/POGOProtos/Networking/Requests/Messages/UseItemGymMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/UseItemGymMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/UseItemGymMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/UseItemPotionMessage.cs b/src/POGOProtos/Networking/Requests/Messages/UseItemPotionMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/UseItemPotionMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/UseItemPotionMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/UseItemReviveMessage.cs b/src/POGOProtos/Networking/Requests/Messages/UseItemReviveMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/UseItemReviveMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/UseItemReviveMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Messages/UseItemXpBoostMessage.cs b/src/POGOProtos/Networking/Requests/Messages/UseItemXpBoostMessage.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Messages/UseItemXpBoostMessage.cs
rename to src/POGOProtos/Networking/Requests/Messages/UseItemXpBoostMessage.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/POGOProtosNetworkingRequests.cs b/src/POGOProtos/Networking/Requests/POGOProtosNetworkingRequests.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/POGOProtosNetworkingRequests.cs
rename to src/POGOProtos/Networking/Requests/POGOProtosNetworkingRequests.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/Request.cs b/src/POGOProtos/Networking/Requests/Request.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/Request.cs
rename to src/POGOProtos/Networking/Requests/Request.cs
diff --git a/PokemonGo/POGOProtos/Networking/Requests/RequestType.cs b/src/POGOProtos/Networking/Requests/RequestType.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Requests/RequestType.cs
rename to src/POGOProtos/Networking/Requests/RequestType.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/AddFortModifierResponse.cs b/src/POGOProtos/Networking/Responses/AddFortModifierResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/AddFortModifierResponse.cs
rename to src/POGOProtos/Networking/Responses/AddFortModifierResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/AttackGymResponse.cs b/src/POGOProtos/Networking/Responses/AttackGymResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/AttackGymResponse.cs
rename to src/POGOProtos/Networking/Responses/AttackGymResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/CatchPokemonResponse.cs b/src/POGOProtos/Networking/Responses/CatchPokemonResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/CatchPokemonResponse.cs
rename to src/POGOProtos/Networking/Responses/CatchPokemonResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/CheckAwardedBadgesResponse.cs b/src/POGOProtos/Networking/Responses/CheckAwardedBadgesResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/CheckAwardedBadgesResponse.cs
rename to src/POGOProtos/Networking/Responses/CheckAwardedBadgesResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/CheckCodenameAvailableResponse.cs b/src/POGOProtos/Networking/Responses/CheckCodenameAvailableResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/CheckCodenameAvailableResponse.cs
rename to src/POGOProtos/Networking/Responses/CheckCodenameAvailableResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/ClaimCodenameResponse.cs b/src/POGOProtos/Networking/Responses/ClaimCodenameResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/ClaimCodenameResponse.cs
rename to src/POGOProtos/Networking/Responses/ClaimCodenameResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/CollectDailyBonusResponse.cs b/src/POGOProtos/Networking/Responses/CollectDailyBonusResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/CollectDailyBonusResponse.cs
rename to src/POGOProtos/Networking/Responses/CollectDailyBonusResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/CollectDailyDefenderBonusResponse.cs b/src/POGOProtos/Networking/Responses/CollectDailyDefenderBonusResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/CollectDailyDefenderBonusResponse.cs
rename to src/POGOProtos/Networking/Responses/CollectDailyDefenderBonusResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/DiskEncounterResponse.cs b/src/POGOProtos/Networking/Responses/DiskEncounterResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/DiskEncounterResponse.cs
rename to src/POGOProtos/Networking/Responses/DiskEncounterResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/DownloadItemTemplatesResponse.cs b/src/POGOProtos/Networking/Responses/DownloadItemTemplatesResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/DownloadItemTemplatesResponse.cs
rename to src/POGOProtos/Networking/Responses/DownloadItemTemplatesResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/DownloadRemoteConfigVersionResponse.cs b/src/POGOProtos/Networking/Responses/DownloadRemoteConfigVersionResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/DownloadRemoteConfigVersionResponse.cs
rename to src/POGOProtos/Networking/Responses/DownloadRemoteConfigVersionResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/DownloadSettingsResponse.cs b/src/POGOProtos/Networking/Responses/DownloadSettingsResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/DownloadSettingsResponse.cs
rename to src/POGOProtos/Networking/Responses/DownloadSettingsResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/EchoResponse.cs b/src/POGOProtos/Networking/Responses/EchoResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/EchoResponse.cs
rename to src/POGOProtos/Networking/Responses/EchoResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/EncounterResponse.cs b/src/POGOProtos/Networking/Responses/EncounterResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/EncounterResponse.cs
rename to src/POGOProtos/Networking/Responses/EncounterResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/EncounterTutorialCompleteResponse.cs b/src/POGOProtos/Networking/Responses/EncounterTutorialCompleteResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/EncounterTutorialCompleteResponse.cs
rename to src/POGOProtos/Networking/Responses/EncounterTutorialCompleteResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/EquipBadgeResponse.cs b/src/POGOProtos/Networking/Responses/EquipBadgeResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/EquipBadgeResponse.cs
rename to src/POGOProtos/Networking/Responses/EquipBadgeResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/EvolvePokemonResponse.cs b/src/POGOProtos/Networking/Responses/EvolvePokemonResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/EvolvePokemonResponse.cs
rename to src/POGOProtos/Networking/Responses/EvolvePokemonResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/FortDeployPokemonResponse.cs b/src/POGOProtos/Networking/Responses/FortDeployPokemonResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/FortDeployPokemonResponse.cs
rename to src/POGOProtos/Networking/Responses/FortDeployPokemonResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/FortDetailsResponse.cs b/src/POGOProtos/Networking/Responses/FortDetailsResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/FortDetailsResponse.cs
rename to src/POGOProtos/Networking/Responses/FortDetailsResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/FortRecallPokemonResponse.cs b/src/POGOProtos/Networking/Responses/FortRecallPokemonResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/FortRecallPokemonResponse.cs
rename to src/POGOProtos/Networking/Responses/FortRecallPokemonResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/FortSearchResponse.cs b/src/POGOProtos/Networking/Responses/FortSearchResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/FortSearchResponse.cs
rename to src/POGOProtos/Networking/Responses/FortSearchResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/GetAssetDigestResponse.cs b/src/POGOProtos/Networking/Responses/GetAssetDigestResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/GetAssetDigestResponse.cs
rename to src/POGOProtos/Networking/Responses/GetAssetDigestResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/GetDownloadUrlsResponse.cs b/src/POGOProtos/Networking/Responses/GetDownloadUrlsResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/GetDownloadUrlsResponse.cs
rename to src/POGOProtos/Networking/Responses/GetDownloadUrlsResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/GetGymDetailsResponse.cs b/src/POGOProtos/Networking/Responses/GetGymDetailsResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/GetGymDetailsResponse.cs
rename to src/POGOProtos/Networking/Responses/GetGymDetailsResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/GetHatchedEggsResponse.cs b/src/POGOProtos/Networking/Responses/GetHatchedEggsResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/GetHatchedEggsResponse.cs
rename to src/POGOProtos/Networking/Responses/GetHatchedEggsResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/GetIncensePokemonResponse.cs b/src/POGOProtos/Networking/Responses/GetIncensePokemonResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/GetIncensePokemonResponse.cs
rename to src/POGOProtos/Networking/Responses/GetIncensePokemonResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/GetInventoryResponse.cs b/src/POGOProtos/Networking/Responses/GetInventoryResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/GetInventoryResponse.cs
rename to src/POGOProtos/Networking/Responses/GetInventoryResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/GetMapObjectsResponse.cs b/src/POGOProtos/Networking/Responses/GetMapObjectsResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/GetMapObjectsResponse.cs
rename to src/POGOProtos/Networking/Responses/GetMapObjectsResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/GetPlayerProfileResponse.cs b/src/POGOProtos/Networking/Responses/GetPlayerProfileResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/GetPlayerProfileResponse.cs
rename to src/POGOProtos/Networking/Responses/GetPlayerProfileResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/GetPlayerResponse.cs b/src/POGOProtos/Networking/Responses/GetPlayerResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/GetPlayerResponse.cs
rename to src/POGOProtos/Networking/Responses/GetPlayerResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/GetSuggestedCodenamesResponse.cs b/src/POGOProtos/Networking/Responses/GetSuggestedCodenamesResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/GetSuggestedCodenamesResponse.cs
rename to src/POGOProtos/Networking/Responses/GetSuggestedCodenamesResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/IncenseEncounterResponse.cs b/src/POGOProtos/Networking/Responses/IncenseEncounterResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/IncenseEncounterResponse.cs
rename to src/POGOProtos/Networking/Responses/IncenseEncounterResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/LevelUpRewardsResponse.cs b/src/POGOProtos/Networking/Responses/LevelUpRewardsResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/LevelUpRewardsResponse.cs
rename to src/POGOProtos/Networking/Responses/LevelUpRewardsResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/MarkTutorialCompleteResponse.cs b/src/POGOProtos/Networking/Responses/MarkTutorialCompleteResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/MarkTutorialCompleteResponse.cs
rename to src/POGOProtos/Networking/Responses/MarkTutorialCompleteResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/NicknamePokemonResponse.cs b/src/POGOProtos/Networking/Responses/NicknamePokemonResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/NicknamePokemonResponse.cs
rename to src/POGOProtos/Networking/Responses/NicknamePokemonResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/POGOProtosNetworkingResponses.cs b/src/POGOProtos/Networking/Responses/POGOProtosNetworkingResponses.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/POGOProtosNetworkingResponses.cs
rename to src/POGOProtos/Networking/Responses/POGOProtosNetworkingResponses.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/PlayerUpdateResponse.cs b/src/POGOProtos/Networking/Responses/PlayerUpdateResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/PlayerUpdateResponse.cs
rename to src/POGOProtos/Networking/Responses/PlayerUpdateResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/RecycleInventoryItemResponse.cs b/src/POGOProtos/Networking/Responses/RecycleInventoryItemResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/RecycleInventoryItemResponse.cs
rename to src/POGOProtos/Networking/Responses/RecycleInventoryItemResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/ReleasePokemonResponse.cs b/src/POGOProtos/Networking/Responses/ReleasePokemonResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/ReleasePokemonResponse.cs
rename to src/POGOProtos/Networking/Responses/ReleasePokemonResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/SetAvatarResponse.cs b/src/POGOProtos/Networking/Responses/SetAvatarResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/SetAvatarResponse.cs
rename to src/POGOProtos/Networking/Responses/SetAvatarResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/SetContactSettingsResponse.cs b/src/POGOProtos/Networking/Responses/SetContactSettingsResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/SetContactSettingsResponse.cs
rename to src/POGOProtos/Networking/Responses/SetContactSettingsResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/SetFavoritePokemonResponse.cs b/src/POGOProtos/Networking/Responses/SetFavoritePokemonResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/SetFavoritePokemonResponse.cs
rename to src/POGOProtos/Networking/Responses/SetFavoritePokemonResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/SetPlayerTeamResponse.cs b/src/POGOProtos/Networking/Responses/SetPlayerTeamResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/SetPlayerTeamResponse.cs
rename to src/POGOProtos/Networking/Responses/SetPlayerTeamResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/SfidaActionLogResponse.cs b/src/POGOProtos/Networking/Responses/SfidaActionLogResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/SfidaActionLogResponse.cs
rename to src/POGOProtos/Networking/Responses/SfidaActionLogResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/StartGymBattleResponse.cs b/src/POGOProtos/Networking/Responses/StartGymBattleResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/StartGymBattleResponse.cs
rename to src/POGOProtos/Networking/Responses/StartGymBattleResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/UpgradePokemonResponse.cs b/src/POGOProtos/Networking/Responses/UpgradePokemonResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/UpgradePokemonResponse.cs
rename to src/POGOProtos/Networking/Responses/UpgradePokemonResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/UseIncenseResponse.cs b/src/POGOProtos/Networking/Responses/UseIncenseResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/UseIncenseResponse.cs
rename to src/POGOProtos/Networking/Responses/UseIncenseResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/UseItemCaptureResponse.cs b/src/POGOProtos/Networking/Responses/UseItemCaptureResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/UseItemCaptureResponse.cs
rename to src/POGOProtos/Networking/Responses/UseItemCaptureResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/UseItemEggIncubatorResponse.cs b/src/POGOProtos/Networking/Responses/UseItemEggIncubatorResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/UseItemEggIncubatorResponse.cs
rename to src/POGOProtos/Networking/Responses/UseItemEggIncubatorResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/UseItemGymResponse.cs b/src/POGOProtos/Networking/Responses/UseItemGymResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/UseItemGymResponse.cs
rename to src/POGOProtos/Networking/Responses/UseItemGymResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/UseItemPotionResponse.cs b/src/POGOProtos/Networking/Responses/UseItemPotionResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/UseItemPotionResponse.cs
rename to src/POGOProtos/Networking/Responses/UseItemPotionResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/UseItemReviveResponse.cs b/src/POGOProtos/Networking/Responses/UseItemReviveResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/UseItemReviveResponse.cs
rename to src/POGOProtos/Networking/Responses/UseItemReviveResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Responses/UseItemXpBoostResponse.cs b/src/POGOProtos/Networking/Responses/UseItemXpBoostResponse.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Responses/UseItemXpBoostResponse.cs
rename to src/POGOProtos/Networking/Responses/UseItemXpBoostResponse.cs
diff --git a/PokemonGo/POGOProtos/Networking/Signature.cs b/src/POGOProtos/Networking/Signature.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Signature.cs
rename to src/POGOProtos/Networking/Signature.cs
diff --git a/PokemonGo/POGOProtos/Networking/Signature/POGOProtosNetworkingSignature.cs b/src/POGOProtos/Networking/Signature/POGOProtosNetworkingSignature.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Networking/Signature/POGOProtosNetworkingSignature.cs
rename to src/POGOProtos/Networking/Signature/POGOProtosNetworkingSignature.cs
diff --git a/PokemonGo/POGOProtos/POGOProtos.csproj b/src/POGOProtos/POGOProtos.csproj
similarity index 100%
rename from PokemonGo/POGOProtos/POGOProtos.csproj
rename to src/POGOProtos/POGOProtos.csproj
diff --git a/PokemonGo/POGOProtos/Properties/AssemblyInfo.cs b/src/POGOProtos/Properties/AssemblyInfo.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Properties/AssemblyInfo.cs
rename to src/POGOProtos/Properties/AssemblyInfo.cs
diff --git a/PokemonGo/POGOProtos/Settings/DownloadSettingsAction.cs b/src/POGOProtos/Settings/DownloadSettingsAction.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/DownloadSettingsAction.cs
rename to src/POGOProtos/Settings/DownloadSettingsAction.cs
diff --git a/PokemonGo/POGOProtos/Settings/FortSettings.cs b/src/POGOProtos/Settings/FortSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/FortSettings.cs
rename to src/POGOProtos/Settings/FortSettings.cs
diff --git a/PokemonGo/POGOProtos/Settings/GlobalSettings.cs b/src/POGOProtos/Settings/GlobalSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/GlobalSettings.cs
rename to src/POGOProtos/Settings/GlobalSettings.cs
diff --git a/PokemonGo/POGOProtos/Settings/InventorySettings.cs b/src/POGOProtos/Settings/InventorySettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/InventorySettings.cs
rename to src/POGOProtos/Settings/InventorySettings.cs
diff --git a/PokemonGo/POGOProtos/Settings/LevelSettings.cs b/src/POGOProtos/Settings/LevelSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/LevelSettings.cs
rename to src/POGOProtos/Settings/LevelSettings.cs
diff --git a/PokemonGo/POGOProtos/Settings/MapSettings.cs b/src/POGOProtos/Settings/MapSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/MapSettings.cs
rename to src/POGOProtos/Settings/MapSettings.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/BadgeSettings.cs b/src/POGOProtos/Settings/Master/BadgeSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/BadgeSettings.cs
rename to src/POGOProtos/Settings/Master/BadgeSettings.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/CameraSettings.cs b/src/POGOProtos/Settings/Master/CameraSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/CameraSettings.cs
rename to src/POGOProtos/Settings/Master/CameraSettings.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/EncounterSettings.cs b/src/POGOProtos/Settings/Master/EncounterSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/EncounterSettings.cs
rename to src/POGOProtos/Settings/Master/EncounterSettings.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/EquippedBadgeSettings.cs b/src/POGOProtos/Settings/Master/EquippedBadgeSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/EquippedBadgeSettings.cs
rename to src/POGOProtos/Settings/Master/EquippedBadgeSettings.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/GymBattleSettings.cs b/src/POGOProtos/Settings/Master/GymBattleSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/GymBattleSettings.cs
rename to src/POGOProtos/Settings/Master/GymBattleSettings.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/GymLevelSettings.cs b/src/POGOProtos/Settings/Master/GymLevelSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/GymLevelSettings.cs
rename to src/POGOProtos/Settings/Master/GymLevelSettings.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/IapItemDisplay.cs b/src/POGOProtos/Settings/Master/IapItemDisplay.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/IapItemDisplay.cs
rename to src/POGOProtos/Settings/Master/IapItemDisplay.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/IapSettings.cs b/src/POGOProtos/Settings/Master/IapSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/IapSettings.cs
rename to src/POGOProtos/Settings/Master/IapSettings.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/Item/BattleAttributes.cs b/src/POGOProtos/Settings/Master/Item/BattleAttributes.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/Item/BattleAttributes.cs
rename to src/POGOProtos/Settings/Master/Item/BattleAttributes.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/Item/EggIncubatorAttributes.cs b/src/POGOProtos/Settings/Master/Item/EggIncubatorAttributes.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/Item/EggIncubatorAttributes.cs
rename to src/POGOProtos/Settings/Master/Item/EggIncubatorAttributes.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/Item/ExperienceBoostAttributes.cs b/src/POGOProtos/Settings/Master/Item/ExperienceBoostAttributes.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/Item/ExperienceBoostAttributes.cs
rename to src/POGOProtos/Settings/Master/Item/ExperienceBoostAttributes.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/Item/FoodAttributes.cs b/src/POGOProtos/Settings/Master/Item/FoodAttributes.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/Item/FoodAttributes.cs
rename to src/POGOProtos/Settings/Master/Item/FoodAttributes.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/Item/FortModifierAttributes.cs b/src/POGOProtos/Settings/Master/Item/FortModifierAttributes.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/Item/FortModifierAttributes.cs
rename to src/POGOProtos/Settings/Master/Item/FortModifierAttributes.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/Item/IncenseAttributes.cs b/src/POGOProtos/Settings/Master/Item/IncenseAttributes.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/Item/IncenseAttributes.cs
rename to src/POGOProtos/Settings/Master/Item/IncenseAttributes.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/Item/InventoryUpgradeAttributes.cs b/src/POGOProtos/Settings/Master/Item/InventoryUpgradeAttributes.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/Item/InventoryUpgradeAttributes.cs
rename to src/POGOProtos/Settings/Master/Item/InventoryUpgradeAttributes.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/Item/POGOProtosSettingsMasterItem.cs b/src/POGOProtos/Settings/Master/Item/POGOProtosSettingsMasterItem.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/Item/POGOProtosSettingsMasterItem.cs
rename to src/POGOProtos/Settings/Master/Item/POGOProtosSettingsMasterItem.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/Item/PokeballAttributes.cs b/src/POGOProtos/Settings/Master/Item/PokeballAttributes.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/Item/PokeballAttributes.cs
rename to src/POGOProtos/Settings/Master/Item/PokeballAttributes.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/Item/PotionAttributes.cs b/src/POGOProtos/Settings/Master/Item/PotionAttributes.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/Item/PotionAttributes.cs
rename to src/POGOProtos/Settings/Master/Item/PotionAttributes.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/Item/ReviveAttributes.cs b/src/POGOProtos/Settings/Master/Item/ReviveAttributes.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/Item/ReviveAttributes.cs
rename to src/POGOProtos/Settings/Master/Item/ReviveAttributes.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/ItemSettings.cs b/src/POGOProtos/Settings/Master/ItemSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/ItemSettings.cs
rename to src/POGOProtos/Settings/Master/ItemSettings.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/MoveSequenceSettings.cs b/src/POGOProtos/Settings/Master/MoveSequenceSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/MoveSequenceSettings.cs
rename to src/POGOProtos/Settings/Master/MoveSequenceSettings.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/MoveSettings.cs b/src/POGOProtos/Settings/Master/MoveSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/MoveSettings.cs
rename to src/POGOProtos/Settings/Master/MoveSettings.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/POGOProtosSettingsMaster.cs b/src/POGOProtos/Settings/Master/POGOProtosSettingsMaster.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/POGOProtosSettingsMaster.cs
rename to src/POGOProtos/Settings/Master/POGOProtosSettingsMaster.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/PlayerLevelSettings.cs b/src/POGOProtos/Settings/Master/PlayerLevelSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/PlayerLevelSettings.cs
rename to src/POGOProtos/Settings/Master/PlayerLevelSettings.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/Pokemon/CameraAttributes.cs b/src/POGOProtos/Settings/Master/Pokemon/CameraAttributes.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/Pokemon/CameraAttributes.cs
rename to src/POGOProtos/Settings/Master/Pokemon/CameraAttributes.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/Pokemon/EncounterAttributes.cs b/src/POGOProtos/Settings/Master/Pokemon/EncounterAttributes.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/Pokemon/EncounterAttributes.cs
rename to src/POGOProtos/Settings/Master/Pokemon/EncounterAttributes.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/Pokemon/POGOProtosSettingsMasterPokemon.cs b/src/POGOProtos/Settings/Master/Pokemon/POGOProtosSettingsMasterPokemon.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/Pokemon/POGOProtosSettingsMasterPokemon.cs
rename to src/POGOProtos/Settings/Master/Pokemon/POGOProtosSettingsMasterPokemon.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/Pokemon/StatsAttributes.cs b/src/POGOProtos/Settings/Master/Pokemon/StatsAttributes.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/Pokemon/StatsAttributes.cs
rename to src/POGOProtos/Settings/Master/Pokemon/StatsAttributes.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/PokemonSettings.cs b/src/POGOProtos/Settings/Master/PokemonSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/PokemonSettings.cs
rename to src/POGOProtos/Settings/Master/PokemonSettings.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/PokemonUpgradeSettings.cs b/src/POGOProtos/Settings/Master/PokemonUpgradeSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/PokemonUpgradeSettings.cs
rename to src/POGOProtos/Settings/Master/PokemonUpgradeSettings.cs
diff --git a/PokemonGo/POGOProtos/Settings/Master/TypeEffectiveSettings.cs b/src/POGOProtos/Settings/Master/TypeEffectiveSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/Master/TypeEffectiveSettings.cs
rename to src/POGOProtos/Settings/Master/TypeEffectiveSettings.cs
diff --git a/PokemonGo/POGOProtos/Settings/POGOProtosSettings.cs b/src/POGOProtos/Settings/POGOProtosSettings.cs
similarity index 100%
rename from PokemonGo/POGOProtos/Settings/POGOProtosSettings.cs
rename to src/POGOProtos/Settings/POGOProtosSettings.cs
diff --git a/PokemonGo/RocketAPI/.gitattributes b/src/RocketAPI/.gitattributes
similarity index 100%
rename from PokemonGo/RocketAPI/.gitattributes
rename to src/RocketAPI/.gitattributes
diff --git a/PokemonGo/RocketAPI/.gitignore b/src/RocketAPI/.gitignore
similarity index 100%
rename from PokemonGo/RocketAPI/.gitignore
rename to src/RocketAPI/.gitignore
diff --git a/PokemonGo/RocketAPI/ClassDiagram1.cd b/src/RocketAPI/ClassDiagram1.cd
similarity index 100%
rename from PokemonGo/RocketAPI/ClassDiagram1.cd
rename to src/RocketAPI/ClassDiagram1.cd
diff --git a/PokemonGo/RocketAPI/Client.cs b/src/RocketAPI/Client.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Client.cs
rename to src/RocketAPI/Client.cs
diff --git a/PokemonGo/RocketAPI/Enums/AuthType.cs b/src/RocketAPI/Enums/AuthType.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Enums/AuthType.cs
rename to src/RocketAPI/Enums/AuthType.cs
diff --git a/PokemonGo/RocketAPI/Enums/MiscEnums.cs b/src/RocketAPI/Enums/MiscEnums.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Enums/MiscEnums.cs
rename to src/RocketAPI/Enums/MiscEnums.cs
diff --git a/PokemonGo/RocketAPI/Enums/RequestType.cs b/src/RocketAPI/Enums/RequestType.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Enums/RequestType.cs
rename to src/RocketAPI/Enums/RequestType.cs
diff --git a/PokemonGo/RocketAPI/Exceptions/AccessTokenExpiredException.cs b/src/RocketAPI/Exceptions/AccessTokenExpiredException.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Exceptions/AccessTokenExpiredException.cs
rename to src/RocketAPI/Exceptions/AccessTokenExpiredException.cs
diff --git a/PokemonGo/RocketAPI/Exceptions/AccountNotVerifiedException.cs b/src/RocketAPI/Exceptions/AccountNotVerifiedException.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Exceptions/AccountNotVerifiedException.cs
rename to src/RocketAPI/Exceptions/AccountNotVerifiedException.cs
diff --git a/PokemonGo/RocketAPI/Exceptions/GoogleException.cs b/src/RocketAPI/Exceptions/GoogleException.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Exceptions/GoogleException.cs
rename to src/RocketAPI/Exceptions/GoogleException.cs
diff --git a/PokemonGo/RocketAPI/Exceptions/GoogleOfflineException.cs b/src/RocketAPI/Exceptions/GoogleOfflineException.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Exceptions/GoogleOfflineException.cs
rename to src/RocketAPI/Exceptions/GoogleOfflineException.cs
diff --git a/PokemonGo/RocketAPI/Exceptions/InvalidResponseException.cs b/src/RocketAPI/Exceptions/InvalidResponseException.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Exceptions/InvalidResponseException.cs
rename to src/RocketAPI/Exceptions/InvalidResponseException.cs
diff --git a/PokemonGo/RocketAPI/Exceptions/LoginFailedException.cs b/src/RocketAPI/Exceptions/LoginFailedException.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Exceptions/LoginFailedException.cs
rename to src/RocketAPI/Exceptions/LoginFailedException.cs
diff --git a/PokemonGo/RocketAPI/Exceptions/PTCOfflineException.cs b/src/RocketAPI/Exceptions/PTCOfflineException.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Exceptions/PTCOfflineException.cs
rename to src/RocketAPI/Exceptions/PTCOfflineException.cs
diff --git a/PokemonGo/RocketAPI/Extensions/DateTimeExtensions.cs b/src/RocketAPI/Extensions/DateTimeExtensions.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Extensions/DateTimeExtensions.cs
rename to src/RocketAPI/Extensions/DateTimeExtensions.cs
diff --git a/PokemonGo/RocketAPI/Extensions/HttpClientExtensions.cs b/src/RocketAPI/Extensions/HttpClientExtensions.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Extensions/HttpClientExtensions.cs
rename to src/RocketAPI/Extensions/HttpClientExtensions.cs
diff --git a/PokemonGo/RocketAPI/Extensions/LatLongExtensions.cs b/src/RocketAPI/Extensions/LatLongExtensions.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Extensions/LatLongExtensions.cs
rename to src/RocketAPI/Extensions/LatLongExtensions.cs
diff --git a/PokemonGo/RocketAPI/Helpers/HttpClientHelper.cs b/src/RocketAPI/Helpers/HttpClientHelper.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Helpers/HttpClientHelper.cs
rename to src/RocketAPI/Helpers/HttpClientHelper.cs
diff --git a/PokemonGo/RocketAPI/Helpers/JsonHelper.cs b/src/RocketAPI/Helpers/JsonHelper.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Helpers/JsonHelper.cs
rename to src/RocketAPI/Helpers/JsonHelper.cs
diff --git a/PokemonGo/RocketAPI/Helpers/ProtoHelper.cs b/src/RocketAPI/Helpers/ProtoHelper.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Helpers/ProtoHelper.cs
rename to src/RocketAPI/Helpers/ProtoHelper.cs
diff --git a/PokemonGo/RocketAPI/Helpers/RandomHelper.cs b/src/RocketAPI/Helpers/RandomHelper.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Helpers/RandomHelper.cs
rename to src/RocketAPI/Helpers/RandomHelper.cs
diff --git a/PokemonGo/RocketAPI/Helpers/RequestBuilder.cs b/src/RocketAPI/Helpers/RequestBuilder.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Helpers/RequestBuilder.cs
rename to src/RocketAPI/Helpers/RequestBuilder.cs
diff --git a/PokemonGo/RocketAPI/Helpers/RetryHandler.cs b/src/RocketAPI/Helpers/RetryHandler.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Helpers/RetryHandler.cs
rename to src/RocketAPI/Helpers/RetryHandler.cs
diff --git a/PokemonGo/RocketAPI/Helpers/S2Helper.cs b/src/RocketAPI/Helpers/S2Helper.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Helpers/S2Helper.cs
rename to src/RocketAPI/Helpers/S2Helper.cs
diff --git a/src/RocketAPI/Helpers/Utils.cs b/src/RocketAPI/Helpers/Utils.cs
new file mode 100644
index 0000000..502aa5c
--- /dev/null
+++ b/src/RocketAPI/Helpers/Utils.cs
@@ -0,0 +1,614 @@
+using System;
+using System.Linq;
+using POGOProtos.Data;
+using POGOProtos.Enums;
+using POGOProtos.Inventory;
+using POGOProtos.Settings.Master;
+using System.Collections.Generic;
+
+namespace PokemonGo.RocketAPI.Helpers
+{
+ public class Utils
+ {
+ public static ulong FloatAsUlong(double value)
+ {
+ var bytes = BitConverter.GetBytes(value);
+ return BitConverter.ToUInt64(bytes, 0);
+ }
+
+ public static DateTime FromUnixTimeUtc(long time) {
+ return new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddMilliseconds(time);
+ }
+ }
+
+ /// <summary>
+ /// by https://github.com/NECROBOTIO/NecroBot
+ /// </summary>
+ public struct BaseStats
+ {
+ public int BaseAttack, BaseDefense, BaseStamina;
+
+ public BaseStats(int baseStamina, int baseAttack, int baseDefense)
+ {
+ BaseAttack = baseAttack;
+ BaseDefense = baseDefense;
+ BaseStamina = baseStamina;
+ }
+
+ public override string ToString()
+ {
+ return $"({BaseAttack} atk,{BaseDefense} def,{BaseStamina} sta)";
+ }
+ }
+
+ /// <summary>
+ /// by https://github.com/NECROBOTIO/NecroBot
+ /// </summary>
+ public static class PokemonInfo
+ {
+ public static int CalculateCp(PokemonData poke)
+ {
+ return
+ Math.Max(
+ (int)
+ Math.Floor(0.1 * CalculateCpMultiplier(poke) *
+ Math.Pow(poke.CpMultiplier + poke.AdditionalCpMultiplier, 2)), 10);
+ }
+
+ public static double CalculateCpMultiplier(PokemonData poke)
+ {
+ var baseStats = GetBaseStats(poke.PokemonId);
+ return (baseStats.BaseAttack + poke.IndividualAttack) *
+ Math.Sqrt(baseStats.BaseDefense + poke.IndividualDefense) *
+ Math.Sqrt(baseStats.BaseStamina + poke.IndividualStamina);
+ }
+
+ public static int CalculateMaxCp(PokemonData poke)
+ {
+ return
+ Math.Max(
+ (int)
+ Math.Floor(0.1 * CalculateMaxCpMultiplier(poke.PokemonId) *
+ Math.Pow(poke.CpMultiplier + poke.AdditionalCpMultiplier, 2)), 10);
+ }
+
+ public static double CalculateMaxCpMultiplier(PokemonId pokemonId)
+ {
+ var baseStats = GetBaseStats(pokemonId);
+ return (baseStats.BaseAttack + 15) * Math.Sqrt(baseStats.BaseDefense + 15) *
+ Math.Sqrt(baseStats.BaseStamina + 15);
+ }
+
+ public static int CalculateMinCp(PokemonData poke)
+ {
+ return
+ Math.Max(
+ (int)
+ Math.Floor(0.1 * CalculateMinCpMultiplier(poke) *
+ Math.Pow(poke.CpMultiplier + poke.AdditionalCpMultiplier, 2)), 10);
+ }
+
+ public static double CalculateMinCpMultiplier(PokemonData poke)
+ {
+ var baseStats = GetBaseStats(poke.PokemonId);
+ return baseStats.BaseAttack * Math.Sqrt(baseStats.BaseDefense) * Math.Sqrt(baseStats.BaseStamina);
+ }
+
+ public static double CalculatePokemonPerfection(PokemonData poke)
+ {
+ if (Math.Abs(poke.CpMultiplier + poke.AdditionalCpMultiplier) <= 0)
+ return (poke.IndividualAttack + poke.IndividualDefense + poke.IndividualStamina) / 45.0 * 100.0;
+
+ //GetBaseStats(poke.PokemonId);
+ var maxCp = CalculateMaxCpMultiplier(poke.PokemonId);
+ var minCp = CalculateMinCpMultiplier(poke);
+ var curCp = CalculateCpMultiplier(poke);
+
+ return (curCp - minCp) / (maxCp - minCp);
+ }
+
+ public static BaseStats GetBaseStats(PokemonId id)
+ {
+ switch ((int)id)
+ {
+ case 1:
+ return new BaseStats(90, 126, 126);
+ case 2:
+ return new BaseStats(120, 156, 158);
+ case 3:
+ return new BaseStats(160, 198, 200);
+ case 4:
+ return new BaseStats(78, 128, 108);
+ case 5:
+ return new BaseStats(116, 160, 140);
+ case 6:
+ return new BaseStats(156, 212, 182);
+ case 7:
+ return new BaseStats(88, 112, 142);
+ case 8:
+ return new BaseStats(118, 144, 176);
+ case 9:
+ return new BaseStats(158, 186, 222);
+ case 10:
+ return new BaseStats(90, 62, 66);
+ case 11:
+ return new BaseStats(100, 56, 86);
+ case 12:
+ return new BaseStats(120, 144, 144);
+ case 13:
+ return new BaseStats(80, 68, 64);
+ case 14:
+ return new BaseStats(90, 62, 82);
+ case 15:
+ return new BaseStats(130, 144, 130);
+ case 16:
+ return new BaseStats(80, 94, 90);
+ case 17:
+ return new BaseStats(126, 126, 122);
+ case 18:
+ return new BaseStats(166, 170, 166);
+ case 19:
+ return new BaseStats(60, 92, 86);
+ case 20:
+ return new BaseStats(110, 146, 150);
+ case 21:
+ return new BaseStats(80, 102, 78);
+ case 22:
+ return new BaseStats(130, 168, 146);
+ case 23:
+ return new BaseStats(70, 112, 112);
+ case 24:
+ return new BaseStats(120, 166, 166);
+ case 25:
+ return new BaseStats(70, 124, 108);
+ case 26:
+ return new BaseStats(120, 200, 154);
+ case 27:
+ return new BaseStats(100, 90, 114);
+ case 28:
+ return new BaseStats(150, 150, 172);
+ case 29:
+ return new BaseStats(110, 100, 104);
+ case 30:
+ return new BaseStats(140, 132, 136);
+ case 31:
+ return new BaseStats(180, 184, 190);
+ case 32:
+ return new BaseStats(92, 110, 94);
+ case 33:
+ return new BaseStats(122, 142, 128);
+ case 34:
+ return new BaseStats(162, 204, 170);
+ case 35:
+ return new BaseStats(140, 116, 124);
+ case 36:
+ return new BaseStats(190, 178, 178);
+ case 37:
+ return new BaseStats(76, 106, 118);
+ case 38:
+ return new BaseStats(146, 176, 194);
+ case 39:
+ return new BaseStats(230, 98, 54);
+ case 40:
+ return new BaseStats(280, 168, 108);
+ case 41:
+ return new BaseStats(80, 88, 90);
+ case 42:
+ return new BaseStats(150, 164, 164);
+ case 43:
+ return new BaseStats(90, 134, 130);
+ case 44:
+ return new BaseStats(120, 162, 158);
+ case 45:
+ return new BaseStats(150, 202, 190);
+ case 46:
+ return new BaseStats(70, 122, 120);
+ case 47:
+ return new BaseStats(120, 162, 170);
+ case 48:
+ return new BaseStats(120, 108, 118);
+ case 49:
+ return new BaseStats(140, 172, 154);
+ case 50:
+ return new BaseStats(20, 108, 86);
+ case 51:
+ return new BaseStats(70, 148, 140);
+ case 52:
+ return new BaseStats(80, 104, 94);
+ case 53:
+ return new BaseStats(130, 156, 146);
+ case 54:
+ return new BaseStats(100, 132, 112);
+ case 55:
+ return new BaseStats(160, 194, 176);
+ case 56:
+ return new BaseStats(80, 122, 96);
+ case 57:
+ return new BaseStats(130, 178, 150);
+ case 58:
+ return new BaseStats(110, 156, 110);
+ case 59:
+ return new BaseStats(180, 230, 180);
+ case 60:
+ return new BaseStats(80, 108, 98);
+ case 61:
+ return new BaseStats(130, 132, 132);
+ case 62:
+ return new BaseStats(180, 180, 202);
+ case 63:
+ return new BaseStats(50, 110, 76);
+ case 64:
+ return new BaseStats(80, 150, 112);
+ case 65:
+ return new BaseStats(110, 186, 152);
+ case 66:
+ return new BaseStats(140, 118, 96);
+ case 67:
+ return new BaseStats(160, 154, 144);
+ case 68:
+ return new BaseStats(180, 198, 180);
+ case 69:
+ return new BaseStats(100, 158, 78);
+ case 70:
+ return new BaseStats(130, 190, 110);
+ case 71:
+ return new BaseStats(160, 222, 152);
+ case 72:
+ return new BaseStats(80, 106, 136);
+ case 73:
+ return new BaseStats(160, 170, 196);
+ case 74:
+ return new BaseStats(80, 106, 118);
+ case 75:
+ return new BaseStats(110, 142, 156);
+ case 76:
+ return new BaseStats(160, 176, 198);
+ case 77:
+ return new BaseStats(100, 168, 138);
+ case 78:
+ return new BaseStats(130, 200, 170);
+ case 79:
+ return new BaseStats(180, 110, 110);
+ case 80:
+ return new BaseStats(190, 184, 198);
+ case 81:
+ return new BaseStats(50, 128, 138);
+ case 82:
+ return new BaseStats(100, 186, 180);
+ case 83:
+ return new BaseStats(104, 138, 132);
+ case 84:
+ return new BaseStats(70, 126, 96);
+ case 85:
+ return new BaseStats(120, 182, 150);
+ case 86:
+ return new BaseStats(130, 104, 138);
+ case 87:
+ return new BaseStats(180, 156, 192);
+ case 88:
+ return new BaseStats(160, 124, 110);
+ case 89:
+ return new BaseStats(210, 180, 188);
+ case 90:
+ return new BaseStats(60, 120, 112);
+ case 91:
+ return new BaseStats(100, 196, 196);
+ case 92:
+ return new BaseStats(60, 136, 82);
+ case 93:
+ return new BaseStats(90, 172, 118);
+ case 94:
+ return new BaseStats(120, 204, 156);
+ case 95:
+ return new BaseStats(70, 90, 186);
+ case 96:
+ return new BaseStats(120, 104, 140);
+ case 97:
+ return new BaseStats(170, 162, 196);
+ case 98:
+ return new BaseStats(60, 116, 110);
+ case 99:
+ return new BaseStats(110, 178, 168);
+ case 100:
+ return new BaseStats(80, 102, 124);
+ case 101:
+ return new BaseStats(120, 150, 174);
+ case 102:
+ return new BaseStats(120, 110, 132);
+ case 103:
+ return new BaseStats(190, 232, 164);
+ case 104:
+ return new BaseStats(100, 102, 150);
+ case 105:
+ return new BaseStats(120, 140, 202);
+ case 106:
+ return new BaseStats(100, 148, 172);
+ case 107:
+ return new BaseStats(100, 138, 204);
+ case 108:
+ return new BaseStats(180, 126, 160);
+ case 109:
+ return new BaseStats(80, 136, 142);
+ case 110:
+ return new BaseStats(130, 190, 198);
+ case 111:
+ return new BaseStats(160, 110, 116);
+ case 112:
+ return new BaseStats(210, 166, 160);
+ case 113:
+ return new BaseStats(500, 40, 60);
+ case 114:
+ return new BaseStats(130, 164, 152);
+ case 115:
+ return new BaseStats(210, 142, 178);
+ case 116:
+ return new BaseStats(60, 122, 100);
+ case 117:
+ return new BaseStats(110, 176, 150);
+ case 118:
+ return new BaseStats(90, 112, 126);
+ case 119:
+ return new BaseStats(160, 172, 160);
+ case 120:
+ return new BaseStats(60, 130, 128);
+ case 121:
+ return new BaseStats(120, 194, 192);
+ case 122:
+ return new BaseStats(80, 154, 196);
+ case 123:
+ return new BaseStats(140, 176, 180);
+ case 124:
+ return new BaseStats(130, 172, 134);
+ case 125:
+ return new BaseStats(130, 198, 160);
+ case 126:
+ return new BaseStats(130, 214, 158);
+ case 127:
+ return new BaseStats(130, 184, 186);
+ case 128:
+ return new BaseStats(150, 148, 184);
+ case 129:
+ return new BaseStats(40, 42, 84);
+ case 130:
+ return new BaseStats(190, 192, 196);
+ case 131:
+ return new BaseStats(260, 186, 190);
+ case 132:
+ return new BaseStats(96, 110, 110);
+ case 133:
+ return new BaseStats(110, 114, 128);
+ case 134:
+ return new BaseStats(260, 186, 168);
+ case 135:
+ return new BaseStats(130, 192, 174);
+ case 136:
+ return new BaseStats(130, 238, 178);
+ case 137:
+ return new BaseStats(130, 156, 158);
+ case 138:
+ return new BaseStats(70, 132, 160);
+ case 139:
+ return new BaseStats(140, 180, 202);
+ case 140:
+ return new BaseStats(60, 148, 142);
+ case 141:
+ return new BaseStats(120, 190, 190);
+ case 142:
+ return new BaseStats(160, 182, 162);
+ case 143:
+ return new BaseStats(320, 180, 180);
+ case 144:
+ return new BaseStats(180, 198, 242);
+ case 145:
+ return new BaseStats(180, 232, 194);
+ case 146:
+ return new BaseStats(180, 242, 194);
+ case 147:
+ return new BaseStats(82, 128, 110);
+ case 148:
+ return new BaseStats(122, 170, 152);
+ case 149:
+ return new BaseStats(182, 250, 212);
+ case 150:
+ return new BaseStats(212, 284, 202);
+ case 151:
+ return new BaseStats(200, 220, 220);
+ default:
+ return new BaseStats();
+ }
+ }
+
+ public static double GetLevel(PokemonData poke)
+ {
+ switch ((int)((poke.CpMultiplier + poke.AdditionalCpMultiplier) * 1000.0))
+ {
+ case 93: // 0.094 * 1000 = 93.99999678134
+ case 94:
+ return 1;
+ case 135:
+ return 1.5;
+ case 166:
+ return 2;
+ case 192:
+ return 2.5;
+ case 215:
+ return 3;
+ case 236:
+ return 3.5;
+ case 255:
+ return 4;
+ case 273:
+ return 4.5;
+ case 290:
+ return 5;
+ case 306:
+ return 5.5;
+ case 321:
+ return 6;
+ case 335:
+ return 6.5;
+ case 349:
+ return 7;
+ case 362:
+ return 7.5;
+ case 375:
+ return 8;
+ case 387:
+ return 8.5;
+ case 399:
+ return 9;
+ case 411:
+ return 9.5;
+ case 422:
+ return 10;
+ case 432:
+ return 10.5;
+ case 443:
+ return 11;
+ case 453:
+ return 11.5;
+ case 462:
+ return 12;
+ case 472:
+ return 12.5;
+ case 481:
+ return 13;
+ case 490:
+ return 13.5;
+ case 499:
+ return 14;
+ case 508:
+ return 14.5;
+ case 517:
+ return 15;
+ case 525:
+ return 15.5;
+ case 534:
+ return 16;
+ case 542:
+ return 16.5;
+ case 550:
+ return 17;
+ case 558:
+ return 17.5;
+ case 566:
+ return 18;
+ case 574:
+ return 18.5;
+ case 582:
+ return 19;
+ case 589:
+ return 19.5;
+ case 597:
+ return 20;
+ case 604:
+ return 20.5;
+ case 612:
+ return 21;
+ case 619:
+ return 21.5;
+ case 626:
+ return 22;
+ case 633:
+ return 22.5;
+ case 640:
+ return 23;
+ case 647:
+ return 23.5;
+ case 654:
+ return 24;
+ case 661:
+ return 24.5;
+ case 667:
+ return 25;
+ case 674:
+ return 25.5;
+ case 681:
+ return 26;
+ case 687:
+ return 26.5;
+ case 694:
+ return 27;
+ case 700:
+ return 27.5;
+ case 706:
+ return 28;
+ case 713:
+ return 28.5;
+ case 719:
+ return 29;
+ case 725:
+ return 29.5;
+ case 731:
+ return 30;
+ case 734:
+ return 30.5;
+ case 737:
+ return 31;
+ case 740:
+ return 31.5;
+ case 743:
+ return 32;
+ case 746:
+ return 32.5;
+ case 749:
+ return 33;
+ case 752:
+ return 33.5;
+ case 755:
+ return 34;
+ case 758:
+ return 34.5;
+ case 761:
+ return 35;
+ case 764:
+ return 35.5;
+ case 767:
+ return 36;
+ case 770:
+ return 36.5;
+ case 773:
+ return 37;
+ case 776:
+ return 37.5;
+ case 778:
+ return 38;
+ case 781:
+ return 38.5;
+ case 784:
+ return 39;
+ case 787:
+ return 39.5;
+ case 790:
+ return 40;
+ default:
+ return 0;
+ }
+ }
+
+ public static PokemonMove GetPokemonMove1(PokemonData poke)
+ {
+ var move1 = poke.Move1;
+ return move1;
+ }
+
+ public static PokemonMove GetPokemonMove2(PokemonData poke)
+ {
+ var move2 = poke.Move2;
+ return move2;
+ }
+
+ public static int GetCandy(PokemonData pokemon, List<Candy> PokemonFamilies, IEnumerable<PokemonSettings> PokemonSettings)
+ {
+ var setting = PokemonSettings.FirstOrDefault(q => pokemon != null && q.PokemonId.Equals(pokemon.PokemonId));
+ var family = PokemonFamilies.FirstOrDefault(q => setting != null && q.FamilyId.Equals(setting.FamilyId));
+
+ return family.Candy_;
+ }
+
+ public static int GetPowerUpLevel(PokemonData poke)
+ {
+ return (int)(GetLevel(poke) * 2.0);
+ }
+ }
+}
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/HttpClient/PokemonClient.cs b/src/RocketAPI/HttpClient/PokemonClient.cs
similarity index 100%
rename from PokemonGo/RocketAPI/HttpClient/PokemonClient.cs
rename to src/RocketAPI/HttpClient/PokemonClient.cs
diff --git a/PokemonGo/RocketAPI/ILatLong.cs b/src/RocketAPI/ILatLong.cs
similarity index 100%
rename from PokemonGo/RocketAPI/ILatLong.cs
rename to src/RocketAPI/ILatLong.cs
diff --git a/PokemonGo/RocketAPI/ISettings.cs b/src/RocketAPI/ISettings.cs
similarity index 100%
rename from PokemonGo/RocketAPI/ISettings.cs
rename to src/RocketAPI/ISettings.cs
diff --git a/PokemonGo/RocketAPI/Login/GoogleLogin.cs b/src/RocketAPI/Login/GoogleLogin.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Login/GoogleLogin.cs
rename to src/RocketAPI/Login/GoogleLogin.cs
diff --git a/PokemonGo/RocketAPI/Login/ILoginType.cs b/src/RocketAPI/Login/ILoginType.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Login/ILoginType.cs
rename to src/RocketAPI/Login/ILoginType.cs
diff --git a/PokemonGo/RocketAPI/Login/PtcLogin.cs b/src/RocketAPI/Login/PtcLogin.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Login/PtcLogin.cs
rename to src/RocketAPI/Login/PtcLogin.cs
diff --git a/PokemonGo/RocketAPI/PokemonGo.RocketAPI.csproj b/src/RocketAPI/PokemonGo.RocketAPI.csproj
similarity index 86%
rename from PokemonGo/RocketAPI/PokemonGo.RocketAPI.csproj
rename to src/RocketAPI/PokemonGo.RocketAPI.csproj
index 6f1c16f..932802c 100644
--- a/PokemonGo/RocketAPI/PokemonGo.RocketAPI.csproj
+++ b/src/RocketAPI/PokemonGo.RocketAPI.csproj
@@ -57,7 +57,7 @@
<Private>True</Private>
</Reference>
<Reference Include="GPSOAuthSharp, Version=0.0.5.0, Culture=neutral, processorArchitecture=MSIL">
- <HintPath>..\..\packages\GPSOAuthSharp.0.0.5\lib\GPSOAuthSharp.dll</HintPath>
+ <HintPath>$(SolutionDir)\packages\GPSOAuthSharp.0.0.5\lib\GPSOAuthSharp.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
@@ -72,10 +72,6 @@
<HintPath>$(SolutionDir)\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
<Private>True</Private>
</Reference>
- <Reference Include="POGOProtos, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\POGOProtos\bin\Debug\POGOProtos.dll</HintPath>
- </Reference>
<Reference Include="S2Geometry, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>$(SolutionDir)\packages\S2Geometry.1.0.1\lib\portable-net45+wp8+win8\S2Geometry.dll</HintPath>
<Private>True</Private>
@@ -84,15 +80,15 @@
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Data.HashFunction.Core, Version=1.8.2.2, Culture=neutral, PublicKeyToken=80c9288e394c1322, processorArchitecture=MSIL">
- <HintPath>..\..\packages\System.Data.HashFunction.Core.1.8.2.2\lib\net45\System.Data.HashFunction.Core.dll</HintPath>
+ <HintPath>$(SolutionDir)\packages\System.Data.HashFunction.Core.1.8.2.2\lib\net45\System.Data.HashFunction.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Data.HashFunction.Interfaces, Version=1.0.0.2, Culture=neutral, PublicKeyToken=80c9288e394c1322, processorArchitecture=MSIL">
- <HintPath>..\..\packages\System.Data.HashFunction.Interfaces.1.0.0.2\lib\net45\System.Data.HashFunction.Interfaces.dll</HintPath>
+ <HintPath>$(SolutionDir)\packages\System.Data.HashFunction.Interfaces.1.0.0.2\lib\net45\System.Data.HashFunction.Interfaces.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Data.HashFunction.xxHash, Version=1.8.2.2, Culture=neutral, PublicKeyToken=80c9288e394c1322, processorArchitecture=MSIL">
- <HintPath>..\..\packages\System.Data.HashFunction.xxHash.1.8.2.2\lib\net45\System.Data.HashFunction.xxHash.dll</HintPath>
+ <HintPath>$(SolutionDir)\packages\System.Data.HashFunction.xxHash.1.8.2.2\lib\net45\System.Data.HashFunction.xxHash.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http.Formatting, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
@@ -134,6 +130,11 @@
<Compile Include="Login\GoogleLogin.cs" />
<Compile Include="Login\ILoginType.cs" />
<Compile Include="Login\PtcLogin.cs" />
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
<Compile Include="Rpc\BaseRpc.cs" />
<Compile Include="Rpc\Download.cs" />
<Compile Include="Rpc\Encounter.cs" />
@@ -151,9 +152,26 @@
<Compile Include="Resources.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\POGOProtos\POGOProtos.csproj">
+ <Project>{A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB}</Project>
+ <Name>POGOProtos</Name>
+ </ProjectReference>
+ </ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
+ <ItemGroup>
+ <Content Include="Resources\encrypt.dll">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ </EmbeddedResource>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/PokemonGo/RocketAPI/Properties/AssemblyInfo.cs b/src/RocketAPI/Properties/AssemblyInfo.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Properties/AssemblyInfo.cs
rename to src/RocketAPI/Properties/AssemblyInfo.cs
diff --git a/src/RocketAPI/Properties/Resources.Designer.cs b/src/RocketAPI/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..88e8347
--- /dev/null
+++ b/src/RocketAPI/Properties/Resources.Designer.cs
@@ -0,0 +1,73 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace PokemonGo.RocketAPI.Properties {
+ using System;
+
+
+ /// <summary>
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ /// </summary>
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ /// <summary>
+ /// Returns the cached ResourceManager instance used by this class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PokemonGo.RocketAPI.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized resource of type System.Byte[].
+ /// </summary>
+ internal static byte[] encrypt {
+ get {
+ object obj = ResourceManager.GetObject("encrypt", resourceCulture);
+ return ((byte[])(obj));
+ }
+ }
+ }
+}
diff --git a/src/RocketAPI/Properties/Resources.resx b/src/RocketAPI/Properties/Resources.resx
new file mode 100644
index 0000000..9ed4551
--- /dev/null
+++ b/src/RocketAPI/Properties/Resources.resx
@@ -0,0 +1,124 @@
+<?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>
+ <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+ <data name="encrypt" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Resources\encrypt.dll;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+</root>
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/ProtoAdditions.cs b/src/RocketAPI/ProtoAdditions.cs
similarity index 100%
rename from PokemonGo/RocketAPI/ProtoAdditions.cs
rename to src/RocketAPI/ProtoAdditions.cs
diff --git a/PokemonGo/RocketAPI/README.md b/src/RocketAPI/README.md
similarity index 100%
rename from PokemonGo/RocketAPI/README.md
rename to src/RocketAPI/README.md
diff --git a/PokemonGo/RocketAPI/Resources.cs b/src/RocketAPI/Resources.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Resources.cs
rename to src/RocketAPI/Resources.cs
diff --git a/PokemonGo/RocketAPI/Window/Resources/encrypt.dll b/src/RocketAPI/Resources/encrypt.dll
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Resources/encrypt.dll
rename to src/RocketAPI/Resources/encrypt.dll
diff --git a/PokemonGo/RocketAPI/Rpc/BaseRpc.cs b/src/RocketAPI/Rpc/BaseRpc.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Rpc/BaseRpc.cs
rename to src/RocketAPI/Rpc/BaseRpc.cs
diff --git a/PokemonGo/RocketAPI/Rpc/Download.cs b/src/RocketAPI/Rpc/Download.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Rpc/Download.cs
rename to src/RocketAPI/Rpc/Download.cs
diff --git a/PokemonGo/RocketAPI/Rpc/Encounter.cs b/src/RocketAPI/Rpc/Encounter.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Rpc/Encounter.cs
rename to src/RocketAPI/Rpc/Encounter.cs
diff --git a/PokemonGo/RocketAPI/Rpc/Fort.cs b/src/RocketAPI/Rpc/Fort.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Rpc/Fort.cs
rename to src/RocketAPI/Rpc/Fort.cs
diff --git a/PokemonGo/RocketAPI/Rpc/Inventory.cs b/src/RocketAPI/Rpc/Inventory.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Rpc/Inventory.cs
rename to src/RocketAPI/Rpc/Inventory.cs
diff --git a/PokemonGo/RocketAPI/Rpc/Login.cs b/src/RocketAPI/Rpc/Login.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Rpc/Login.cs
rename to src/RocketAPI/Rpc/Login.cs
diff --git a/PokemonGo/RocketAPI/Rpc/Map.cs b/src/RocketAPI/Rpc/Map.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Rpc/Map.cs
rename to src/RocketAPI/Rpc/Map.cs
diff --git a/PokemonGo/RocketAPI/Rpc/Misc.cs b/src/RocketAPI/Rpc/Misc.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Rpc/Misc.cs
rename to src/RocketAPI/Rpc/Misc.cs
diff --git a/PokemonGo/RocketAPI/Rpc/Player.cs b/src/RocketAPI/Rpc/Player.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Rpc/Player.cs
rename to src/RocketAPI/Rpc/Player.cs
diff --git a/PokemonGo/RocketAPI/app.config b/src/RocketAPI/app.config
similarity index 100%
rename from PokemonGo/RocketAPI/app.config
rename to src/RocketAPI/app.config
diff --git a/PokemonGo/RocketAPI/packages.config b/src/RocketAPI/packages.config
similarity index 100%
rename from PokemonGo/RocketAPI/packages.config
rename to src/RocketAPI/packages.config
diff --git a/PokemonGo/RocketAPI/Window/ApiFailureStrategy.cs b/src/RocketBotGUI/ApiFailureStrategy.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Window/ApiFailureStrategy.cs
rename to src/RocketBotGUI/ApiFailureStrategy.cs
diff --git a/PokemonGo/RocketAPI/Window/App.config b/src/RocketBotGUI/App.config
similarity index 73%
rename from PokemonGo/RocketAPI/Window/App.config
rename to src/RocketBotGUI/App.config
index c59cc2e..9a4bfcc 100644
--- a/PokemonGo/RocketAPI/Window/App.config
+++ b/src/RocketBotGUI/App.config
@@ -44,23 +44,24 @@
<!--Recycle Interval in seconds-->
<add key="Language" value="english" />
<!--Languages english/german-->
- <add key="RazzBerryMode" value="probability" />
+ <add key="RazzBerryMode" value="Probability" />
<!--When to use RazzBerry cp/probability-->
<add key="RazzBerrySetting" value="0.4" />
<!--Cp Mode: Use RazzBerry when Pokemon is over this value; pobability Mode: Use Razzberry when % between 0 and 1 of catching is under this value-->
- <add key="TransferType" value="Duplicate" />
+ <add key="TransferType" value="none" />
<!--none/cp/iv/leaveStrongest/duplicate/all Whitelists/blackslists for each type is in Program.cs-->
<add key="TransferCPThreshold" value="0" />
<!--transfer pokemon with CP less than this value if cp transfer type is selected. Whitelist in Program.cs-->
<add key="TransferIVThreshold" value="0" />
<!--transfer pokemon with IV less than this value if iv transfer type is selected. Whitelist in Program.cs-->
- <add key="TravelSpeed" value="20" />
+ <add key="TravelSpeed" value="60" />
<!--The speed to travel in km/h-->
<add key="ImageSize" value="50" />
<!--PokeUi image size-->
<add key="CatchPokemon" value="true" />
<!--Only visit pokestop and collect items-->
<add key="EvolveAllGivenPokemons" value="false" />
+ <add key="UseIncubatorsMode" value="Disabled" />
<add key="ClientSettingsProvider.ServiceUri" value="" />
<add key="MaxItemPokeBall" value="100" />
<add key="MaxItemGreatBall" value="100" />
@@ -72,6 +73,28 @@
<add key="MaxItemSuperPotion" value="0" />
<add key="MaxItemHyperPotion" value="50" />
<add key="MaxItemMaxPotion" value="100" />
+ <!--Device Settings-->
+ <add key="DeviceId" value="8525f6d8251f71b7" />
+ <add key="AndroidBoardName" value="msm8994" />
+ <add key="AndroidBootloader" value="unknown" />
+ <add key="DeviceBrand" value="OnePlus" />
+ <add key="DeviceModel" value="OnePlus2" />
+ <add key="DeviceModelIdentifier" value="ONE A2003_24_160604" />
+ <add key="DeviceModelBoot" value="qcom" />
+ <add key="HardwareManufacturer" value="OnePlus" />
+ <add key="HardwareModel" value="ONE A2003" />
+ <add key="FirmwareBrand" value="OnePlus2" />
+ <add key="FirmwareTags" value="dev-key" />
+ <add key="FirmwareType" value="user" />
+ <add key="FirmwareFingerprint" value="OnePlus/OnePlus2/OnePlus2:6.0.1/MMB29M/1447840820:user/release-keys" />
+ <!--Pokemon filter, seperated by comma-->
+ <add key="ExcludedPokemonCatch" value="" />
+ <!--Pokemon filter, seperated by comma-->
+ <add key="ExcludedPokemonTransfer" value="" />
+ <!--Pokemon filter, seperated by comma-->
+ <add key="ExcludedPokemonEvolve" value="" />
+ <!--Item count, format ItemId,MaxCount;ItemId,MaxCount;...etc-->
+ <add key="ItemCounts" value="ItemPokeball,100;ItemGreatBall,100;ItemUltraBall,50;ItemRazzBerry,25;ItemPotion,0;ItemSuperPotion,0;ItemHyperPotion,10;ItemMaxPotion,20;ItemRevive,10;ItemMaxRevive,10" />
</appSettings>
<system.web>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
diff --git a/src/RocketBotGUI/DeviceHelper.cs b/src/RocketBotGUI/DeviceHelper.cs
new file mode 100644
index 0000000..9d064d2
--- /dev/null
+++ b/src/RocketBotGUI/DeviceHelper.cs
@@ -0,0 +1,95 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Security.Cryptography;
+
+namespace PokemonGo.RocketAPI.Window
+{
+ public class DeviceHelper
+ {
+ private readonly string _deviceSourcePath = Directory.GetCurrentDirectory() + @"\Resources\device info.csv";
+ public List<DeviceInfo> DeviceBucket;
+
+ public DeviceHelper()
+ {
+ var deviceInfoStrings = new List<string[]>();
+ if (!File.Exists(_deviceSourcePath))
+ {
+ return;
+ }
+ using (var reader = new StreamReader(_deviceSourcePath))
+ {
+ string stringLine;
+ while ((stringLine = reader.ReadLine()) != null)
+ {
+ deviceInfoStrings.Add(stringLine.Split(';'));
+ }
+ }
+ DeviceBucket = deviceInfoStrings.Select(info => new DeviceInfo
+ {
+ DeviceId = info[0],
+ AndroidBoardName = info[1],
+ AndroidBootloader = info[2],
+ DeviceBrand = info[3],
+ DeviceModel = info[4],
+ DeviceModelIdentifier = info[5],
+ DeviceModelBoot = info[6],
+ HardwareManufacturer = info[7],
+ HardwareModel = info[8],
+ FirmwareBrand = info[9],
+ FirmwareTags = info[10],
+ FirmwareType = info[11],
+ FirmwareFingerprint = info[12]
+ }).ToList();
+ }
+
+ public int GetRandomIndex(int max)
+ {
+ var rand = new Random(DateTime.Now.Millisecond);
+ return rand.Next(0, max);
+ }
+
+ public string RandomString(int length, string alphabet = "abcdefghijklmnopqrstuvwxyz0123456789")
+ {
+ var outOfRange = byte.MaxValue + 1 - (byte.MaxValue + 1)%alphabet.Length;
+
+ return string.Concat(
+ Enumerable
+ .Repeat(0, int.MaxValue)
+ .Select(e => RandomByte())
+ .Where(randomByte => randomByte < outOfRange)
+ .Take(length)
+ .Select(randomByte => alphabet[randomByte%alphabet.Length])
+ );
+ }
+
+ private static byte RandomByte()
+ {
+ using (var randomizationProvider = new RNGCryptoServiceProvider())
+ {
+ var randomBytes = new byte[1];
+ randomizationProvider.GetBytes(randomBytes);
+ return randomBytes.Single();
+ }
+ }
+ }
+
+ public class DeviceInfo
+ {
+ public string DeviceI { get; set; }
+ public string DeviceId { get; set; }
+ public string AndroidBoardName { get; set; }
+ public string AndroidBootloader { get; set; }
+ public string DeviceBrand { get; set; }
+ public string DeviceModel { get; set; }
+ public string DeviceModelIdentifier { get; set; }
+ public string DeviceModelBoot { get; set; }
+ public string HardwareManufacturer { get; set; }
+ public string HardwareModel { get; set; }
+ public string FirmwareBrand { get; set; }
+ public string FirmwareTags { get; set; }
+ public string FirmwareType { get; set; }
+ public string FirmwareFingerprint { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemBlukBerry.png b/src/RocketBotGUI/Images/Items/ItemBlukBerry.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemBlukBerry.png
rename to src/RocketBotGUI/Images/Items/ItemBlukBerry.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemGreatBall.png b/src/RocketBotGUI/Images/Items/ItemGreatBall.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemGreatBall.png
rename to src/RocketBotGUI/Images/Items/ItemGreatBall.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemHyperPotion.png b/src/RocketBotGUI/Images/Items/ItemHyperPotion.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemHyperPotion.png
rename to src/RocketBotGUI/Images/Items/ItemHyperPotion.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemIncenseOrdinary.png b/src/RocketBotGUI/Images/Items/ItemIncenseOrdinary.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemIncenseOrdinary.png
rename to src/RocketBotGUI/Images/Items/ItemIncenseOrdinary.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemIncubatorBasic.png b/src/RocketBotGUI/Images/Items/ItemIncubatorBasic.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemIncubatorBasic.png
rename to src/RocketBotGUI/Images/Items/ItemIncubatorBasic.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemIncubatorBasicUnlimited.png b/src/RocketBotGUI/Images/Items/ItemIncubatorBasicUnlimited.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemIncubatorBasicUnlimited.png
rename to src/RocketBotGUI/Images/Items/ItemIncubatorBasicUnlimited.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemItemStorageUpgrade.png b/src/RocketBotGUI/Images/Items/ItemItemStorageUpgrade.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemItemStorageUpgrade.png
rename to src/RocketBotGUI/Images/Items/ItemItemStorageUpgrade.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemLuckyEgg.png b/src/RocketBotGUI/Images/Items/ItemLuckyEgg.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemLuckyEgg.png
rename to src/RocketBotGUI/Images/Items/ItemLuckyEgg.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemMasterBall.png b/src/RocketBotGUI/Images/Items/ItemMasterBall.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemMasterBall.png
rename to src/RocketBotGUI/Images/Items/ItemMasterBall.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemMaxPotion.png b/src/RocketBotGUI/Images/Items/ItemMaxPotion.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemMaxPotion.png
rename to src/RocketBotGUI/Images/Items/ItemMaxPotion.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemMaxRevive.png b/src/RocketBotGUI/Images/Items/ItemMaxRevive.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemMaxRevive.png
rename to src/RocketBotGUI/Images/Items/ItemMaxRevive.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemNanabBerry.png b/src/RocketBotGUI/Images/Items/ItemNanabBerry.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemNanabBerry.png
rename to src/RocketBotGUI/Images/Items/ItemNanabBerry.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemPinapBerry.png b/src/RocketBotGUI/Images/Items/ItemPinapBerry.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemPinapBerry.png
rename to src/RocketBotGUI/Images/Items/ItemPinapBerry.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemPokeBall.png b/src/RocketBotGUI/Images/Items/ItemPokeBall.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemPokeBall.png
rename to src/RocketBotGUI/Images/Items/ItemPokeBall.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemPokemonStorageUpgrade.png b/src/RocketBotGUI/Images/Items/ItemPokemonStorageUpgrade.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemPokemonStorageUpgrade.png
rename to src/RocketBotGUI/Images/Items/ItemPokemonStorageUpgrade.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemPotion.png b/src/RocketBotGUI/Images/Items/ItemPotion.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemPotion.png
rename to src/RocketBotGUI/Images/Items/ItemPotion.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemRazzBerry.png b/src/RocketBotGUI/Images/Items/ItemRazzBerry.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemRazzBerry.png
rename to src/RocketBotGUI/Images/Items/ItemRazzBerry.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemRevive.png b/src/RocketBotGUI/Images/Items/ItemRevive.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemRevive.png
rename to src/RocketBotGUI/Images/Items/ItemRevive.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemSpecialCamera.png b/src/RocketBotGUI/Images/Items/ItemSpecialCamera.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemSpecialCamera.png
rename to src/RocketBotGUI/Images/Items/ItemSpecialCamera.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemSuperPotion.png b/src/RocketBotGUI/Images/Items/ItemSuperPotion.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemSuperPotion.png
rename to src/RocketBotGUI/Images/Items/ItemSuperPotion.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemTroyDisk.png b/src/RocketBotGUI/Images/Items/ItemTroyDisk.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemTroyDisk.png
rename to src/RocketBotGUI/Images/Items/ItemTroyDisk.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemUltraBall.png b/src/RocketBotGUI/Images/Items/ItemUltraBall.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemUltraBall.png
rename to src/RocketBotGUI/Images/Items/ItemUltraBall.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Items/ItemWeparBerry.png b/src/RocketBotGUI/Images/Items/ItemWeparBerry.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Items/ItemWeparBerry.png
rename to src/RocketBotGUI/Images/Items/ItemWeparBerry.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_1.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_1.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_1.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_1.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_10.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_10.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_10.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_10.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_100.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_100.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_100.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_100.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_101.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_101.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_101.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_101.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_102.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_102.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_102.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_102.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_103.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_103.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_103.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_103.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_104.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_104.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_104.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_104.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_105.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_105.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_105.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_105.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_106.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_106.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_106.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_106.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_107.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_107.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_107.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_107.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_108.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_108.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_108.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_108.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_109.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_109.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_109.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_109.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_11.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_11.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_11.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_11.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_110.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_110.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_110.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_110.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_111.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_111.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_111.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_111.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_112.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_112.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_112.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_112.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_113.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_113.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_113.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_113.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_114.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_114.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_114.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_114.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_115.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_115.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_115.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_115.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_116.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_116.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_116.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_116.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_117.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_117.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_117.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_117.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_118.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_118.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_118.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_118.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_119.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_119.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_119.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_119.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_12.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_12.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_12.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_12.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_120.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_120.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_120.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_120.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_121.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_121.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_121.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_121.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_122.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_122.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_122.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_122.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_123.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_123.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_123.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_123.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_124.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_124.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_124.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_124.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_125.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_125.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_125.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_125.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_126.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_126.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_126.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_126.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_127.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_127.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_127.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_127.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_128.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_128.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_128.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_128.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_129.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_129.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_129.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_129.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_13.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_13.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_13.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_13.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_130.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_130.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_130.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_130.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_131.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_131.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_131.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_131.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_132.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_132.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_132.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_132.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_133.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_133.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_133.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_133.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_134.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_134.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_134.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_134.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_135.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_135.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_135.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_135.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_136.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_136.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_136.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_136.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_137.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_137.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_137.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_137.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_138.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_138.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_138.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_138.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_139.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_139.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_139.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_139.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_14.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_14.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_14.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_14.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_140.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_140.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_140.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_140.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_141.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_141.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_141.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_141.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_142.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_142.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_142.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_142.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_143.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_143.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_143.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_143.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_144.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_144.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_144.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_144.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_145.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_145.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_145.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_145.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_146.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_146.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_146.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_146.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_147.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_147.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_147.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_147.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_148.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_148.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_148.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_148.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_149.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_149.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_149.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_149.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_15.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_15.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_15.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_15.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_150.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_150.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_150.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_150.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_151.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_151.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_151.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_151.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_16.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_16.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_16.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_16.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_17.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_17.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_17.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_17.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_18.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_18.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_18.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_18.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_19.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_19.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_19.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_19.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_2.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_2.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_2.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_2.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_20.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_20.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_20.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_20.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_21.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_21.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_21.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_21.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_22.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_22.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_22.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_22.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_23.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_23.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_23.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_23.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_24.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_24.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_24.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_24.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_25.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_25.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_25.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_25.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_26.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_26.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_26.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_26.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_27.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_27.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_27.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_27.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_28.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_28.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_28.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_28.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_29.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_29.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_29.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_29.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_3.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_3.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_3.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_3.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_30.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_30.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_30.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_30.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_31.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_31.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_31.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_31.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_32.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_32.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_32.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_32.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_33.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_33.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_33.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_33.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_34.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_34.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_34.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_34.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_35.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_35.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_35.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_35.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_36.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_36.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_36.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_36.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_37.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_37.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_37.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_37.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_38.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_38.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_38.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_38.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_39.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_39.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_39.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_39.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_4.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_4.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_4.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_4.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_40.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_40.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_40.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_40.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_41.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_41.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_41.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_41.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_42.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_42.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_42.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_42.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_43.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_43.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_43.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_43.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_44.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_44.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_44.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_44.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_45.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_45.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_45.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_45.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_46.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_46.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_46.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_46.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_47.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_47.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_47.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_47.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_48.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_48.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_48.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_48.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_49.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_49.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_49.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_49.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_5.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_5.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_5.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_5.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_50.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_50.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_50.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_50.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_51.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_51.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_51.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_51.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_52.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_52.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_52.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_52.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_53.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_53.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_53.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_53.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_54.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_54.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_54.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_54.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_55.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_55.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_55.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_55.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_56.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_56.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_56.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_56.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_57.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_57.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_57.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_57.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_58.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_58.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_58.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_58.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_59.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_59.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_59.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_59.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_6.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_6.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_6.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_6.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_60.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_60.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_60.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_60.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_61.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_61.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_61.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_61.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_62.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_62.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_62.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_62.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_63.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_63.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_63.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_63.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_64.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_64.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_64.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_64.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_65.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_65.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_65.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_65.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_66.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_66.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_66.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_66.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_67.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_67.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_67.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_67.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_68.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_68.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_68.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_68.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_69.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_69.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_69.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_69.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_7.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_7.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_7.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_7.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_70.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_70.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_70.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_70.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_71.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_71.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_71.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_71.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_72.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_72.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_72.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_72.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_73.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_73.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_73.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_73.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_74.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_74.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_74.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_74.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_75.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_75.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_75.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_75.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_76.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_76.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_76.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_76.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_77.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_77.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_77.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_77.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_78.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_78.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_78.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_78.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_79.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_79.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_79.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_79.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_8.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_8.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_8.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_8.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_80.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_80.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_80.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_80.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_81.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_81.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_81.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_81.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_82.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_82.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_82.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_82.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_83.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_83.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_83.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_83.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_84.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_84.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_84.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_84.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_85.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_85.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_85.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_85.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_86.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_86.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_86.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_86.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_87.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_87.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_87.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_87.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_88.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_88.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_88.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_88.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_89.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_89.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_89.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_89.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_9.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_9.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_9.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_9.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_90.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_90.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_90.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_90.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_91.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_91.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_91.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_91.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_92.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_92.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_92.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_92.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_93.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_93.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_93.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_93.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_94.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_94.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_94.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_94.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_95.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_95.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_95.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_95.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_96.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_96.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_96.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_96.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_97.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_97.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_97.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_97.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_98.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_98.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_98.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_98.png
diff --git a/PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_99.png b/src/RocketBotGUI/Images/Pokemon/Pokemon_99.png
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Images/Pokemon/Pokemon_99.png
rename to src/RocketBotGUI/Images/Pokemon/Pokemon_99.png
diff --git a/PokemonGo/RocketAPI/Window/ItemBox.Designer.cs b/src/RocketBotGUI/ItemBox.Designer.cs
similarity index 70%
rename from PokemonGo/RocketAPI/Window/ItemBox.Designer.cs
rename to src/RocketBotGUI/ItemBox.Designer.cs
index 10ec543..d52b847 100644
--- a/PokemonGo/RocketAPI/Window/ItemBox.Designer.cs
+++ b/src/RocketBotGUI/ItemBox.Designer.cs
@@ -23,14 +23,17 @@
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
+ this.components = new System.ComponentModel.Container();
this.lbl = new System.Windows.Forms.Label();
this.pb = new System.Windows.Forms.PictureBox();
+ this.tmr = new System.Windows.Forms.Timer(this.components);
+ this.lblTime = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.pb)).BeginInit();
this.SuspendLayout();
//
// lbl
//
- this.lbl.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+ this.lbl.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lbl.BackColor = System.Drawing.Color.Transparent;
this.lbl.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
@@ -45,7 +48,7 @@
//
// pb
//
- this.pb.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ this.pb.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.pb.BackColor = System.Drawing.Color.Transparent;
this.pb.Location = new System.Drawing.Point(0, 0);
@@ -56,10 +59,31 @@
this.pb.TabIndex = 0;
this.pb.TabStop = false;
//
+ // tmr
+ //
+ this.tmr.Enabled = true;
+ this.tmr.Interval = 1000;
+ this.tmr.Tick += new System.EventHandler(this.tmr_Tick);
+ //
+ // lblTime
+ //
+ this.lblTime.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.lblTime.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblTime.Location = new System.Drawing.Point(0, 0);
+ this.lblTime.Margin = new System.Windows.Forms.Padding(0);
+ this.lblTime.Name = "lblTime";
+ this.lblTime.Size = new System.Drawing.Size(64, 23);
+ this.lblTime.TabIndex = 2;
+ this.lblTime.Text = "30m 00s";
+ this.lblTime.TextAlign = System.Drawing.ContentAlignment.TopCenter;
+ this.lblTime.Visible = false;
+ //
// ItemBox
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.lblTime);
this.Controls.Add(this.lbl);
this.Controls.Add(this.pb);
this.Cursor = System.Windows.Forms.Cursors.Default;
@@ -74,5 +98,7 @@
private System.Windows.Forms.PictureBox pb;
private System.Windows.Forms.Label lbl;
+ private System.Windows.Forms.Timer tmr;
+ private System.Windows.Forms.Label lblTime;
}
}
diff --git a/src/RocketBotGUI/ItemBox.cs b/src/RocketBotGUI/ItemBox.cs
new file mode 100644
index 0000000..bfc46de
--- /dev/null
+++ b/src/RocketBotGUI/ItemBox.cs
@@ -0,0 +1,96 @@
+using System;
+using System.Drawing;
+using System.Windows.Forms;
+using POGOProtos.Inventory.Item;
+
+namespace PokemonGo.RocketAPI.Window
+{
+ public partial class ItemBox : UserControl
+ {
+ public DateTime expires = new DateTime(0);
+
+ public ItemBox(ItemData item)
+ {
+ InitializeComponent();
+
+ item_ = item;
+
+ pb.Image = (Image) Properties.Resources.ResourceManager.GetObject(item.ItemId.ToString());
+ lbl.Text = item.Count.ToString();
+ lblTime.Parent = pb;
+
+ foreach (Control control in Controls)
+ {
+ control.MouseEnter += childMouseEnter;
+ control.MouseLeave += childMouseLeave;
+ control.MouseClick += childMouseClick;
+ }
+
+ if (item_.ItemId == ItemId.ItemIncubatorBasic || item_.ItemId == ItemId.ItemIncubatorBasicUnlimited ||
+ item.Count < 1)
+ {
+ Enabled = false;
+ }
+ }
+
+ public ItemData item_ { get; }
+
+ public event EventHandler ItemClick;
+
+ private void childMouseClick(object sender, MouseEventArgs e)
+ {
+ OnItemClick(item_, EventArgs.Empty);
+ }
+
+ protected override void OnMouseClick(MouseEventArgs e)
+ {
+ base.OnMouseClick(e);
+ OnItemClick(item_, EventArgs.Empty);
+ }
+
+ private void childMouseLeave(object sender, EventArgs e)
+ {
+ OnMouseLeave(e);
+ }
+
+ private void childMouseEnter(object sender, EventArgs e)
+ {
+ OnMouseEnter(e);
+ }
+
+ protected override void OnMouseLeave(EventArgs e)
+ {
+ base.OnMouseLeave(e);
+ BackColor = Color.Transparent;
+ }
+
+ protected override void OnMouseEnter(EventArgs e)
+ {
+ base.OnMouseEnter(e);
+ BackColor = Color.LightGreen;
+ }
+
+ protected virtual void OnItemClick(ItemData item, EventArgs e)
+ {
+ var handler = ItemClick;
+ if (handler != null)
+ {
+ handler(item, e);
+ }
+ }
+
+ private void tmr_Tick(object sender, EventArgs e)
+ {
+ var time = expires - DateTime.UtcNow;
+ if (expires.Ticks == 0 || time.TotalSeconds < 0)
+ {
+ lblTime.Visible = false;
+ }
+ else
+ {
+ lblTime.Visible = true;
+ lblTime.Text = $"{time.Minutes}m {Math.Abs(time.Seconds)}s";
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/RocketBotGUI/ItemBox.resx b/src/RocketBotGUI/ItemBox.resx
new file mode 100644
index 0000000..d3ab77a
--- /dev/null
+++ b/src/RocketBotGUI/ItemBox.resx
@@ -0,0 +1,123 @@
+<?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>
+ <metadata name="tmr.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>17, 17</value>
+ </metadata>
+</root>
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Window/ItemForm.Designer.cs b/src/RocketBotGUI/ItemForm.Designer.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Window/ItemForm.Designer.cs
rename to src/RocketBotGUI/ItemForm.Designer.cs
diff --git a/src/RocketBotGUI/ItemForm.cs b/src/RocketBotGUI/ItemForm.cs
new file mode 100644
index 0000000..27d1a1c
--- /dev/null
+++ b/src/RocketBotGUI/ItemForm.cs
@@ -0,0 +1,24 @@
+using System.Drawing;
+using System.Windows.Forms;
+using POGOProtos.Inventory.Item;
+
+namespace PokemonGo.RocketAPI.Window
+{
+ public partial class ItemForm : Form
+ {
+ public ItemForm(ItemData item)
+ {
+ InitializeComponent();
+
+ pb.Image = (Image) Properties.Resources.ResourceManager.GetObject(item.ItemId.ToString());
+ numCount.Maximum = item.Count;
+
+ if (item.ItemId == ItemId.ItemLuckyEgg || item.ItemId == ItemId.ItemIncenseOrdinary)
+ {
+ btnRecycle.Text = "Use";
+ //btnRecycle.Enabled = false;
+ numCount.Visible = false;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/RocketBotGUI/ItemSetting.Designer.cs b/src/RocketBotGUI/ItemSetting.Designer.cs
new file mode 100644
index 0000000..a522ea1
--- /dev/null
+++ b/src/RocketBotGUI/ItemSetting.Designer.cs
@@ -0,0 +1,77 @@
+namespace PokemonGo.RocketAPI.Window {
+ partial class ItemSetting {
+ /// <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.count = new System.Windows.Forms.NumericUpDown();
+ this.ItemId = new System.Windows.Forms.Label();
+ ((System.ComponentModel.ISupportInitialize)(this.count)).BeginInit();
+ this.SuspendLayout();
+ //
+ // count
+ //
+ this.count.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.count.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.count.Location = new System.Drawing.Point(132, 0);
+ this.count.Maximum = new decimal(new int[] {
+ 999,
+ 0,
+ 0,
+ 0});
+ this.count.Name = "count";
+ this.count.Size = new System.Drawing.Size(75, 21);
+ this.count.TabIndex = 0;
+ this.count.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+ //
+ // ItemId
+ //
+ this.ItemId.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.ItemId.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.ItemId.Location = new System.Drawing.Point(-1, -1);
+ this.ItemId.Name = "ItemId";
+ this.ItemId.Size = new System.Drawing.Size(127, 18);
+ this.ItemId.TabIndex = 1;
+ this.ItemId.Text = "Pokeball";
+ this.ItemId.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // ItemSetting
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.ItemId);
+ this.Controls.Add(this.count);
+ this.Margin = new System.Windows.Forms.Padding(0);
+ this.Name = "ItemSetting";
+ this.Size = new System.Drawing.Size(210, 19);
+ ((System.ComponentModel.ISupportInitialize)(this.count)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.NumericUpDown count;
+ private System.Windows.Forms.Label ItemId;
+ }
+}
diff --git a/src/RocketBotGUI/ItemSetting.cs b/src/RocketBotGUI/ItemSetting.cs
new file mode 100644
index 0000000..d47f6fc
--- /dev/null
+++ b/src/RocketBotGUI/ItemSetting.cs
@@ -0,0 +1,42 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using POGOProtos.Inventory.Item;
+
+namespace PokemonGo.RocketAPI.Window {
+ public partial class ItemSetting : UserControl {
+
+ private ItemData itemData_;
+
+ public ItemSetting(ItemData itemData) {
+ InitializeComponent();
+ ItemData = itemData;
+
+ count.ValueChanged += Count_ValueChanged;
+ }
+
+ private void Count_ValueChanged(object sender, EventArgs e) {
+ ItemData.Count = Decimal.ToInt32(count.Value);
+ }
+
+ public ItemData ItemData
+ {
+ get
+ {
+ return itemData_;
+ }
+ set
+ {
+ itemData_ = value;
+ ItemId.Text = itemData_.ItemId.ToString().Remove(0, 4);
+ count.Value = itemData_.Count;
+ }
+ }
+ }
+}
diff --git a/src/RocketBotGUI/ItemSetting.resx b/src/RocketBotGUI/ItemSetting.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/src/RocketBotGUI/ItemSetting.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/PokemonGo/RocketAPI/Window/LocationManager.cs b/src/RocketBotGUI/LocationManager.cs
similarity index 96%
rename from PokemonGo/RocketAPI/Window/LocationManager.cs
rename to src/RocketBotGUI/LocationManager.cs
index 20ce047..95388eb 100644
--- a/PokemonGo/RocketAPI/Window/LocationManager.cs
+++ b/src/RocketBotGUI/LocationManager.cs
@@ -11,7 +11,7 @@ namespace PokemonGo.RocketAPI.Window
public LocationManager(Client client, double speed)
{
- this._client = client;
+ _client = client;
_metersPerMillisecond = speed/3600;
}
diff --git a/PokemonGo/RocketAPI/Window/MainForm.Designer.cs b/src/RocketBotGUI/MainForm.Designer.cs
similarity index 96%
rename from PokemonGo/RocketAPI/Window/MainForm.Designer.cs
rename to src/RocketBotGUI/MainForm.Designer.cs
index fcac9ce..a5ff07d 100644
--- a/PokemonGo/RocketAPI/Window/MainForm.Designer.cs
+++ b/src/RocketBotGUI/MainForm.Designer.cs
@@ -50,6 +50,8 @@
this.pkmnCandy = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.pkmnCandyToEvolve = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.pkmnEvolveTimes = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
+ this.pkmnNickname = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
+ this.pkmnLevel = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.pkmnTransferButton = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.pkmnPowerUpButton = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.pkmnEvolveButton = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
@@ -62,7 +64,6 @@
this.lblInventory = new System.Windows.Forms.Label();
this.flpItems = new System.Windows.Forms.FlowLayoutPanel();
this.lblPokemonList = new System.Windows.Forms.Label();
- this.pkmnNickname = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.statusStrip1.SuspendLayout();
this.menuStrip1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.olvPokemonList)).BeginInit();
@@ -87,7 +88,7 @@
this.logTextBox.Location = new System.Drawing.Point(0, 0);
this.logTextBox.Name = "logTextBox";
this.logTextBox.ReadOnly = true;
- this.logTextBox.Size = new System.Drawing.Size(554, 292);
+ this.logTextBox.Size = new System.Drawing.Size(554, 267);
this.logTextBox.TabIndex = 0;
this.logTextBox.Text = "";
this.logTextBox.TextChanged += new System.EventHandler(this.logTextBox_TextChanged);
@@ -97,7 +98,7 @@
this.statusStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.statusLabel});
- this.statusStrip1.Location = new System.Drawing.Point(0, 541);
+ this.statusStrip1.Location = new System.Drawing.Point(0, 498);
this.statusStrip1.Name = "statusStrip1";
this.statusStrip1.Size = new System.Drawing.Size(1254, 22);
this.statusStrip1.TabIndex = 1;
@@ -106,7 +107,7 @@
// statusLabel
//
this.statusLabel.Name = "statusLabel";
- this.statusLabel.Size = new System.Drawing.Size(39, 17);
+ this.statusLabel.Size = new System.Drawing.Size(43, 17);
this.statusLabel.Text = "Status";
//
// menuStrip1
@@ -118,28 +119,28 @@
this.forceUnbanToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
- this.menuStrip1.Size = new System.Drawing.Size(1254, 24);
+ this.menuStrip1.Size = new System.Drawing.Size(1254, 25);
this.menuStrip1.TabIndex = 2;
this.menuStrip1.Text = "menuStrip1";
//
// startStopBotToolStripMenuItem
//
this.startStopBotToolStripMenuItem.Name = "startStopBotToolStripMenuItem";
- this.startStopBotToolStripMenuItem.Size = new System.Drawing.Size(77, 20);
+ this.startStopBotToolStripMenuItem.Size = new System.Drawing.Size(85, 21);
this.startStopBotToolStripMenuItem.Text = "▶ Start Bot";
this.startStopBotToolStripMenuItem.Click += new System.EventHandler(this.startStopBotToolStripMenuItem_Click);
//
// todoToolStripMenuItem
//
this.todoToolStripMenuItem.Name = "todoToolStripMenuItem";
- this.todoToolStripMenuItem.Size = new System.Drawing.Size(61, 20);
+ this.todoToolStripMenuItem.Size = new System.Drawing.Size(66, 21);
this.todoToolStripMenuItem.Text = "Settings";
this.todoToolStripMenuItem.Click += new System.EventHandler(this.todoToolStripMenuItem_Click);
//
// forceUnbanToolStripMenuItem
//
this.forceUnbanToolStripMenuItem.Name = "forceUnbanToolStripMenuItem";
- this.forceUnbanToolStripMenuItem.Size = new System.Drawing.Size(86, 20);
+ this.forceUnbanToolStripMenuItem.Size = new System.Drawing.Size(94, 21);
this.forceUnbanToolStripMenuItem.Text = "Force Unban";
this.forceUnbanToolStripMenuItem.Click += new System.EventHandler(this.forceUnbanToolStripMenuItem_Click);
//
@@ -177,7 +178,7 @@
this.gMapControl1.ScaleMode = GMap.NET.WindowsForms.ScaleModes.Integer;
this.gMapControl1.SelectedAreaFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(65)))), ((int)(((byte)(105)))), ((int)(((byte)(225)))));
this.gMapControl1.ShowTileGridLines = false;
- this.gMapControl1.Size = new System.Drawing.Size(548, 214);
+ this.gMapControl1.Size = new System.Drawing.Size(548, 196);
this.gMapControl1.TabIndex = 23;
this.gMapControl1.Zoom = 0D;
//
@@ -193,6 +194,7 @@
this.olvPokemonList.AllColumns.Add(this.pkmnCandyToEvolve);
this.olvPokemonList.AllColumns.Add(this.pkmnEvolveTimes);
this.olvPokemonList.AllColumns.Add(this.pkmnNickname);
+ this.olvPokemonList.AllColumns.Add(this.pkmnLevel);
this.olvPokemonList.AllColumns.Add(this.pkmnTransferButton);
this.olvPokemonList.AllColumns.Add(this.pkmnPowerUpButton);
this.olvPokemonList.AllColumns.Add(this.pkmnEvolveButton);
@@ -211,6 +213,7 @@
this.pkmnCandyToEvolve,
this.pkmnEvolveTimes,
this.pkmnNickname,
+ this.pkmnLevel,
this.pkmnTransferButton,
this.pkmnPowerUpButton,
this.pkmnEvolveButton});
@@ -224,7 +227,7 @@
this.olvPokemonList.Name = "olvPokemonList";
this.olvPokemonList.RowHeight = 32;
this.olvPokemonList.ShowGroups = false;
- this.olvPokemonList.Size = new System.Drawing.Size(690, 327);
+ this.olvPokemonList.Size = new System.Drawing.Size(690, 298);
this.olvPokemonList.SmallImageList = this.smallPokemonImageList;
this.olvPokemonList.TabIndex = 25;
this.olvPokemonList.UseCompatibleStateImageBehavior = false;
@@ -286,6 +289,18 @@
this.pkmnEvolveTimes.Text = "# Evolves";
this.pkmnEvolveTimes.Width = 66;
//
+ // pkmnNickname
+ //
+ this.pkmnNickname.AspectName = "Nickname";
+ this.pkmnNickname.Text = "Nickname";
+ this.pkmnNickname.Width = 80;
+ //
+ // pkmnLevel
+ //
+ this.pkmnLevel.AspectName = "GetLv";
+ this.pkmnLevel.Text = "Lv";
+ this.pkmnLevel.Width = 50;
+ //
// pkmnTransferButton
//
this.pkmnTransferButton.AspectName = "Id";
@@ -334,9 +349,9 @@
| System.Windows.Forms.AnchorStyles.Right)));
this.btnRefresh.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.btnRefresh.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.btnRefresh.Location = new System.Drawing.Point(3, 487);
+ this.btnRefresh.Location = new System.Drawing.Point(3, 446);
this.btnRefresh.Name = "btnRefresh";
- this.btnRefresh.Size = new System.Drawing.Size(690, 28);
+ this.btnRefresh.Size = new System.Drawing.Size(690, 26);
this.btnRefresh.TabIndex = 26;
this.btnRefresh.Text = "Refresh";
this.btnRefresh.UseVisualStyleBackColor = true;
@@ -345,7 +360,7 @@
// splitContainer1
//
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
- this.splitContainer1.Location = new System.Drawing.Point(0, 24);
+ this.splitContainer1.Location = new System.Drawing.Point(0, 25);
this.splitContainer1.Name = "splitContainer1";
//
// splitContainer1.Panel1
@@ -359,7 +374,7 @@
this.splitContainer1.Panel2.Controls.Add(this.lblPokemonList);
this.splitContainer1.Panel2.Controls.Add(this.olvPokemonList);
this.splitContainer1.Panel2.Controls.Add(this.btnRefresh);
- this.splitContainer1.Size = new System.Drawing.Size(1254, 517);
+ this.splitContainer1.Size = new System.Drawing.Size(1254, 473);
this.splitContainer1.SplitterDistance = 554;
this.splitContainer1.TabIndex = 27;
//
@@ -377,8 +392,8 @@
// splitContainer2.Panel2
//
this.splitContainer2.Panel2.Controls.Add(this.gMapControl1);
- this.splitContainer2.Size = new System.Drawing.Size(554, 517);
- this.splitContainer2.SplitterDistance = 292;
+ this.splitContainer2.Size = new System.Drawing.Size(554, 473);
+ this.splitContainer2.SplitterDistance = 267;
this.splitContainer2.TabIndex = 0;
//
// lblInventory
@@ -386,9 +401,9 @@
this.lblInventory.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblInventory.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblInventory.Location = new System.Drawing.Point(3, 471);
+ this.lblInventory.Location = new System.Drawing.Point(3, 431);
this.lblInventory.Name = "lblInventory";
- this.lblInventory.Size = new System.Drawing.Size(690, 13);
+ this.lblInventory.Size = new System.Drawing.Size(690, 12);
this.lblInventory.TabIndex = 33;
this.lblInventory.Text = "0 / 0 ";
this.lblInventory.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
@@ -401,9 +416,9 @@
this.flpItems.BackColor = System.Drawing.SystemColors.Window;
this.flpItems.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.flpItems.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
- this.flpItems.Location = new System.Drawing.Point(3, 348);
+ this.flpItems.Location = new System.Drawing.Point(3, 317);
this.flpItems.Name = "flpItems";
- this.flpItems.Size = new System.Drawing.Size(690, 120);
+ this.flpItems.Size = new System.Drawing.Size(690, 111);
this.flpItems.TabIndex = 32;
//
// lblPokemonList
@@ -411,24 +426,18 @@
this.lblPokemonList.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblPokemonList.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblPokemonList.Location = new System.Drawing.Point(3, 333);
+ this.lblPokemonList.Location = new System.Drawing.Point(3, 303);
this.lblPokemonList.Name = "lblPokemonList";
- this.lblPokemonList.Size = new System.Drawing.Size(690, 12);
+ this.lblPokemonList.Size = new System.Drawing.Size(690, 11);
this.lblPokemonList.TabIndex = 27;
this.lblPokemonList.Text = "0 / 0";
this.lblPokemonList.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
- // pkmnNickname
- //
- this.pkmnNickname.AspectName = "Nickname";
- this.pkmnNickname.Text = "Nickname";
- this.pkmnNickname.Width = 80;
- //
// MainForm
//
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(1254, 563);
+ this.ClientSize = new System.Drawing.Size(1254, 520);
this.Controls.Add(this.splitContainer1);
this.Controls.Add(this.statusStrip1);
this.Controls.Add(this.menuStrip1);
@@ -492,5 +501,6 @@
private System.Windows.Forms.FlowLayoutPanel flpItems;
private System.Windows.Forms.Label lblInventory;
private BrightIdeasSoftware.OLVColumn pkmnNickname;
+ private BrightIdeasSoftware.OLVColumn pkmnLevel;
}
}
diff --git a/PokemonGo/RocketAPI/Window/MainForm.cs b/src/RocketBotGUI/MainForm.cs
similarity index 80%
rename from PokemonGo/RocketAPI/Window/MainForm.cs
rename to src/RocketBotGUI/MainForm.cs
index c983a98..3af310b 100644
--- a/PokemonGo/RocketAPI/Window/MainForm.cs
+++ b/src/RocketBotGUI/MainForm.cs
@@ -1,31 +1,33 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.IO;
-using System.Linq;
-using System.Net;
-using System.Text.RegularExpressions;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-using System.Xml;
-using BrightIdeasSoftware;
+using BrightIdeasSoftware;
using GMap.NET;
using GMap.NET.MapProviders;
using GMap.NET.WindowsForms;
using GMap.NET.WindowsForms.Markers;
-using PokemonGo.RocketAPI.Enums;
-using PokemonGo.RocketAPI.Exceptions;
-using PokemonGo.RocketAPI.Extensions;
-using PokemonGo.RocketAPI.Helpers;
using POGOProtos.Data;
+using POGOProtos.Data.Player;
using POGOProtos.Enums;
using POGOProtos.Inventory;
using POGOProtos.Inventory.Item;
using POGOProtos.Map.Fort;
using POGOProtos.Map.Pokemon;
using POGOProtos.Networking.Responses;
+using PokemonGo.RocketAPI.Enums;
+using PokemonGo.RocketAPI.Exceptions;
+using PokemonGo.RocketAPI.Extensions;
+using PokemonGo.RocketAPI.Helpers;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using System.Xml;
using static System.Reflection.Assembly;
namespace PokemonGo.RocketAPI.Window
@@ -35,6 +37,9 @@ namespace PokemonGo.RocketAPI.Window
public static MainForm Instance;
public static SynchronizationContext SynchronizationContext;
+ //delay between actions, to similate human operation
+ private const int ACTIONDELAY = 1500;
+
public static Settings ClientSettings;
private static int _currentlevel = -1;
private static int _totalExperience;
@@ -55,8 +60,8 @@ namespace PokemonGo.RocketAPI.Window
private Client _client;
private Client _client2;
- private LocationManager _locationManager;
private bool _initialized;
+ private LocationManager _locationManager;
private GMarkerGoogle _playerMarker;
@@ -156,7 +161,7 @@ namespace PokemonGo.RocketAPI.Window
ColoredConsoleWrite(Color.Green, "Your version is " + GetExecutingAssembly().GetName().Version);
ColoredConsoleWrite(Color.Green, "Github version is " + gitVersion);
ColoredConsoleWrite(Color.Green,
- "You can find it at www.GitHub.com/1461748123/Pokemon-Go-Rocket-API/releases");
+ "You can find it at www.GitHub.com/TheUnnameOrganization/RocketBot/releases");
}
catch (Exception)
{
@@ -169,7 +174,7 @@ namespace PokemonGo.RocketAPI.Window
using (var wC = new WebClient())
return
wC.DownloadString(
- "https://raw.githubusercontent.com/1461748123/Pokemon-Go-Rocket-API/master/PokemonGo/RocketAPI/Window/Properties/AssemblyInfo.cs");
+ "https://raw.githubusercontent.com/TheUnnameOrganization/RocketBot/Beta-Build/src/RocketBotGUI/Properties/AssemblyInfo.cs");
}
public static void ColoredConsoleWrite(Color color, string text)
@@ -231,8 +236,16 @@ namespace PokemonGo.RocketAPI.Window
private async Task EvolveAllGivenPokemons(Client client, IEnumerable<PokemonData> pokemonToEvolve)
{
+ var excludedPokemon = Settings.Instance.ExcludedPokemonEvolve;
foreach (var pokemon in pokemonToEvolve)
{
+ if (excludedPokemon.Contains(pokemon.PokemonId))
+ {
+ ColoredConsoleWrite(Color.Orange,
+ $"{pokemon.PokemonId} excluded for evolving");
+ continue;
+ }
+
var countOfEvolvedUnits = 0;
var xpCount = 0;
@@ -269,6 +282,7 @@ namespace PokemonGo.RocketAPI.Window
case AuthType.Ptc:
ColoredConsoleWrite(Color.Green, "Login Type: Pokemon Trainers Club");
break;
+
case AuthType.Google:
ColoredConsoleWrite(Color.Green, "Login Type: Google");
break;
@@ -285,13 +299,16 @@ namespace PokemonGo.RocketAPI.Window
if (!_initialized)
{
- new Thread(new ThreadStart(async () =>
+ new Thread(async () =>
{
while (true)
{
if (_botStarted)
{
- var stats = inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.PlayerStats).Where(i => i != null).ToArray();
+ var stats =
+ inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.PlayerStats)
+ .Where(i => i != null)
+ .ToArray();
short hoursLeft = 0;
short minutesLeft = 0;
var secondsLeft = 0;
@@ -327,15 +344,17 @@ namespace PokemonGo.RocketAPI.Window
profile.PlayerData.Username +
" | Level: {0:0} - ({2:0} / {3:0}) | Runtime {1} | Stardust: {4:0}", v.Level,
_getSessionRuntimeInTimeFormat(), v.Experience - v.PrevLevelXp - XpDiff,
- v.NextLevelXp - v.PrevLevelXp - XpDiff, profile.PlayerData.Currencies.ToArray()[1].Amount) +
+ v.NextLevelXp - v.PrevLevelXp - XpDiff,
+ profile.PlayerData.Currencies.ToArray()[1].Amount) +
" | XP/Hour: " + Math.Round(_totalExperience / GetRuntime()) + " | Pokemon/Hour: " +
- Math.Round(_totalPokemon / GetRuntime()) + " | NextLevel in: " + hoursLeft + ":" + minutesLeft +
+ Math.Round(_totalPokemon / GetRuntime()) + " | NextLevel in: " + hoursLeft + ":" +
+ minutesLeft +
":" + secondsLeft);
}
}
await Task.Delay(1000);
}
- })).Start();
+ }).Start();
_initialized = true;
}
@@ -376,7 +395,6 @@ namespace PokemonGo.RocketAPI.Window
ColoredConsoleWrite(Color.DarkGray, "Unable to get Country/Place");
}
-
ColoredConsoleWrite(Color.Yellow, "----------------------------");
// I believe a switch is more efficient and easier to read.
@@ -385,36 +403,57 @@ namespace PokemonGo.RocketAPI.Window
case "Leave Strongest":
await TransferAllButStrongestUnwantedPokemon(_client);
break;
+
case "All":
await TransferAllGivenPokemons(_client, pokemons, ClientSettings.TransferIvThreshold);
break;
+
case "Duplicate":
await TransferDuplicatePokemon(_client);
break;
+
case "IV Duplicate":
await TransferDuplicateIVPokemon(_client);
break;
+
+ case "CP/IV Duplicate":
+ await TransferDuplicateCPIVPokemon(_client);
+ break;
+
case "CP":
await TransferAllWeakPokemon(_client, ClientSettings.TransferCpThreshold);
break;
+
case "IV":
await TransferAllGivenPokemons(_client, pokemons, ClientSettings.TransferIvThreshold);
break;
+
default:
ColoredConsoleWrite(Color.DarkGray, "Transfering pokemon disabled");
break;
}
-
if (ClientSettings.EvolveAllGivenPokemons)
await EvolveAllGivenPokemons(_client, pokemons);
if (ClientSettings.Recycler)
await RecycleItems(_client);
//client.RecycleItems(client);
-
- if (ClientSettings.TravelSpeed > 30)
- ColoredConsoleWrite(Color.Red, "WARNING: You are travelling over 30km/h. Your ip might get flag!");
//await Task.Delay(5000);
+
+ String incubatorMode = ClientSettings.UseIncubatorsMode.ToLower();
+ switch (incubatorMode)
+ {
+ case "only unlimited":
+ await UseIncubators(_client, incubatorMode);
+ break;
+ case "all incubators":
+ await UseIncubators(_client, incubatorMode);
+ break;
+ default:
+ ColoredConsoleWrite(Color.DarkGray, "Using incubators disabled");
+ break;
+ }
+
await PrintLevel(_client);
await ExecuteFarmingPokestopsAndPokemons(_client);
@@ -482,7 +521,7 @@ namespace PokemonGo.RocketAPI.Window
ColoredConsoleWrite(Color.Red, "Access Token Expired - Restarting");
//if (!_stopping) Execute();
}
- catch (GoogleException ex)
+ catch (GoogleException)
{
ColoredConsoleWrite(Color.Red, "Please check your google login information again");
}
@@ -495,7 +534,6 @@ namespace PokemonGo.RocketAPI.Window
ColoredConsoleWrite(Color.Red, "Invalid response - Restarting");
//if (!_stopping) Execute();
}
-
catch (Exception ex)
{
ColoredConsoleWrite(Color.Red, ex.ToString());
@@ -529,6 +567,7 @@ namespace PokemonGo.RocketAPI.Window
return reader.ReadString();
}
break;
+
default:
return "N/A";
break;
@@ -549,12 +588,20 @@ namespace PokemonGo.RocketAPI.Window
.Select(i => i.InventoryItemData?.PokemonData)
.Where(p => p != null && p?.PokemonId > 0)
.ToArray();
+ var excludedPokemon = Settings.Instance.ExcludedPokemonCatch;
foreach (var pokemon in pokemons)
{
if (_forceUnbanning || _stopping)
break;
+ if (excludedPokemon.Contains(pokemon.PokemonId))
+ {
+ ColoredConsoleWrite(Color.Orange,
+ $"Encountered {pokemon.PokemonId} but is excluded for catching.");
+ continue;
+ }
+
_farmingPokemons = true;
await _locationManager.Update(pokemon.Latitude, pokemon.Longitude);
@@ -577,16 +624,25 @@ namespace PokemonGo.RocketAPI.Window
UpdateMap();
var encounterPokemonResponse =
await client.Encounter.EncounterPokemon(pokemon.EncounterId, pokemon.SpawnPointId);
+
+ if (encounterPokemonResponse.Status == EncounterResponse.Types.Status.PokemonInventoryFull)
+ {
+ ColoredConsoleWrite(Color.Orange,
+ $"Unable to catch pokemon, inventory is full!");
+ _farmingPokemons = false;
+ break;
+ }
+
var pokemonCp = encounterPokemonResponse?.WildPokemon?.PokemonData?.Cp;
var pokemonIv = Math.Round(Perfect(encounterPokemonResponse?.WildPokemon?.PokemonData));
CatchPokemonResponse caughtPokemonResponse;
ColoredConsoleWrite(Color.Green, $"Encounter a {pokemonName} with {pokemonCp} CP and {pokemonIv}% IV");
do
{
- if (ClientSettings.RazzBerryMode == "cp")
+ if (ClientSettings.RazzBerryMode.ToLower().Equals("cp"))
if (pokemonCp > ClientSettings.RazzBerrySetting)
await UseRazzBerry(client, pokemon.EncounterId, pokemon.SpawnPointId);
- if (ClientSettings.RazzBerryMode == "probability")
+ if (ClientSettings.RazzBerryMode.ToLower().Equals("probability"))
if (encounterPokemonResponse.CaptureProbability.CaptureProbability_.First() <
ClientSettings.RazzBerrySetting)
await UseRazzBerry(client, pokemon.EncounterId, pokemon.SpawnPointId);
@@ -614,28 +670,37 @@ namespace PokemonGo.RocketAPI.Window
else
ColoredConsoleWrite(Color.Red, $"{pokemonName} with {pokemonCp} CP and {pokemonIv}% IV got away..");
-
// I believe a switch is more efficient and easier to read.
switch (ClientSettings.TransferType)
{
case "Leave Strongest":
await TransferAllButStrongestUnwantedPokemon(client);
break;
+
case "All":
await TransferAllGivenPokemons(client, pokemons2, ClientSettings.TransferIvThreshold);
break;
+
case "Duplicate":
await TransferDuplicatePokemon(client);
break;
+
case "IV Duplicate":
await TransferDuplicateIVPokemon(client);
break;
+
+ case "CP/IV Duplicate":
+ await TransferDuplicateCPIVPokemon(client);
+ break;
+
case "CP":
await TransferAllWeakPokemon(client, ClientSettings.TransferCpThreshold);
break;
+
case "IV":
await TransferAllGivenPokemons(client, pokemons2, ClientSettings.TransferIvThreshold);
break;
+
default:
ColoredConsoleWrite(Color.DarkGray, "Transfering pokemon disabled");
break;
@@ -684,7 +749,6 @@ namespace PokemonGo.RocketAPI.Window
_pokestopsOverlay.Routes.Clear();
_pokestopsOverlay.Routes.Add(new GMapRoute(routePoint, "Walking Path"));
-
_pokemonsOverlay.Markers.Clear();
if (_wildPokemons != null)
{
@@ -753,9 +817,14 @@ namespace PokemonGo.RocketAPI.Window
if (fortSearch.PokemonDataEgg != null)
PokeStopOutput.Write($", Eggs: {fortSearch.PokemonDataEgg}");
if (GetFriendlyItemsString(fortSearch.ItemsAwarded) != string.Empty)
+ {
PokeStopOutput.Write($", Items: {GetFriendlyItemsString(fortSearch.ItemsAwarded)} ");
+ }
+
ColoredConsoleWrite(Color.Cyan, PokeStopOutput.ToString());
+ await RecycleItems(client);
+
if (fortSearch.ExperienceAwarded != 0)
_totalExperience += fortSearch.ExperienceAwarded;
@@ -765,11 +834,10 @@ namespace PokemonGo.RocketAPI.Window
await ExecuteCatchAllNearbyPokemons(client);
}
_farmingStops = false;
- if (!_forceUnbanning && !_stopping)
+ /*if (!_forceUnbanning && !_stopping)
{
- await RecycleItems(client);
//await ExecuteFarmingPokestopsAndPokemons(client);
- }
+ }*/
}
private async Task ForceUnban(Client client)
@@ -822,7 +890,8 @@ namespace PokemonGo.RocketAPI.Window
}
else
{
- ColoredConsoleWrite(Color.LightGreen, $"Pokestop error on attempt {i}: {fortSearch.Result}");
+ ColoredConsoleWrite(Color.LightGreen,
+ $"Pokestop error on attempt {i}: {fortSearch.Result}");
}
}
if (done)
@@ -853,7 +922,6 @@ namespace PokemonGo.RocketAPI.Window
.Aggregate((a, b) => $"{a}, {b}");
}
-
private async Task TransferAllButStrongestUnwantedPokemon(Client client)
{
var unwantedPokemonTypes = new List<PokemonId>();
@@ -882,16 +950,24 @@ namespace PokemonGo.RocketAPI.Window
}
}
- public static float Perfect(PokemonData poke)
+ public static double Perfect(PokemonData poke)
{
- return (poke.IndividualAttack + poke.IndividualDefense + poke.IndividualStamina) / (3.0f * 15.0f) * 100.0f;
+ if (poke == null)
+ return 0d;
+ return PokemonInfo.CalculatePokemonPerfection(poke) * 100d;
}
private async Task TransferAllGivenPokemons(Client client, IEnumerable<PokemonData> unwantedPokemons,
float keepPerfectPokemonLimit = 80.0f)
{
+ var excludedPokemon = Settings.Instance.ExcludedPokemonTransfer;
foreach (var pokemon in unwantedPokemons)
{
+ if (excludedPokemon.Contains(pokemon.PokemonId))
+ {
+ continue;
+ }
+
if (Perfect(pokemon) >= keepPerfectPokemonLimit) continue;
ColoredConsoleWrite(Color.White,
$"Pokemon {pokemon.PokemonId} with {pokemon.Cp} CP has IV percent less than {keepPerfectPokemonLimit}%");
@@ -943,6 +1019,7 @@ namespace PokemonGo.RocketAPI.Window
private async Task TransferDuplicatePokemon(Client client)
{
+ var excludedPokemon = Settings.Instance.ExcludedPokemonTransfer;
//ColoredConsoleWrite(ConsoleColor.White, $"Check for duplicates");
var inventory = await client.Inventory.GetInventory();
var allpokemons =
@@ -958,6 +1035,12 @@ namespace PokemonGo.RocketAPI.Window
for (var j = 0; j < dupes.ElementAt(i).Count() - 1; j++)
{
var dubpokemon = dupes.ElementAt(i).ElementAt(j).value;
+
+ if (excludedPokemon.Contains(dubpokemon.PokemonId))
+ {
+ continue;
+ }
+
if (dubpokemon.Favorite == 0)
{
var transfer = await client.Inventory.TransferPokemon(dubpokemon.Id);
@@ -983,6 +1066,7 @@ namespace PokemonGo.RocketAPI.Window
private async Task TransferDuplicateIVPokemon(Client client)
{
+ var excludedPokemon = Settings.Instance.ExcludedPokemonTransfer;
//ColoredConsoleWrite(ConsoleColor.White, $"Check for duplicates");
var inventory = await client.Inventory.GetInventory();
var allpokemons =
@@ -998,6 +1082,12 @@ namespace PokemonGo.RocketAPI.Window
for (var j = 0; j < dupes.ElementAt(i).Count() - 1; j++)
{
var dubpokemon = dupes.ElementAt(i).ElementAt(j).value;
+
+ if (excludedPokemon.Contains(dubpokemon.PokemonId))
+ {
+ continue;
+ }
+
if (dubpokemon.Favorite == 0)
{
var transfer = await client.Inventory.TransferPokemon(dubpokemon.Id);
@@ -1021,62 +1111,75 @@ namespace PokemonGo.RocketAPI.Window
}
}
+ private async Task TransferDuplicateCPIVPokemon(Client client)
+ {
+ //ColoredConsoleWrite(Color.White, $"Check for CP/IV duplicates");
+ var inventory = await client.Inventory.GetInventory();
+ var allpokemons =
+ inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.PokemonData)
+ .Where(p => p != null && p?.PokemonId > 0);
+
+ var dupes = allpokemons.OrderBy(x => Perfect(x)).Select((x, i) => new { index = i, value = x })
+ .GroupBy(x => x.value.PokemonId)
+ .Where(x => x.Skip(1).Any());
+
+ for (var i = 0; i < dupes.Count(); i++)
+ {
+ var dupe_group = dupes.ElementAt(i);
+ var max_cp = 0;
+ var max_index = -1;
+ for (var j = 0; j < dupe_group.Count(); j++)
+ {
+ var this_cp = dupe_group.ElementAt(j).value.Cp;
+ if (this_cp >= max_cp)
+ {
+ max_cp = this_cp;
+ max_index = j;
+ }
+ }
+ for (var j = 0; j < dupes.ElementAt(i).Count() - 1; j++)
+ {
+ var dubpokemon = dupes.ElementAt(i).ElementAt(j).value;
+ if (dubpokemon.Favorite == 0 && j != max_index)
+ {
+ var transfer = await client.Inventory.TransferPokemon(dubpokemon.Id);
+ string pokemonName;
+ if (ClientSettings.Language == "german")
+ {
+ var name_english = Convert.ToString(dubpokemon.PokemonId);
+ var request =
+ (HttpWebRequest)
+ WebRequest.Create("http://boosting-service.de/pokemon/index.php?pokeName=" +
+ name_english);
+ var response = (HttpWebResponse)request.GetResponse();
+ pokemonName = new StreamReader(response.GetResponseStream()).ReadToEnd();
+ }
+ else
+ pokemonName = Convert.ToString(dubpokemon.PokemonId);
+ ColoredConsoleWrite(Color.DarkGreen,
+ $"Transferred {pokemonName} with {dubpokemon.Cp} CP, {Math.Round(Perfect(dubpokemon))}% IV (Highest is {max_cp} CP/{Math.Round(Perfect(dupes.ElementAt(i).Last().value))}% IV)");
+ }
+ }
+ }
+ }
+
private async Task TransferAllWeakPokemon(Client client, int cpThreshold)
{
//ColoredConsoleWrite(ConsoleColor.White, $"Firing up the meat grinder");
- PokemonId[] doNotTransfer =
- {
- // DO NOT EMPTY THIS ARRAY
- //PokemonId.Pidgey,
- //PokemonId.Rattata,
- //PokemonId.Weedle,
- //PokemonId.Zubat,
- //PokemonId.Caterpie,
- //PokemonId.Pidgeotto,
- //PokemonId.NidoranFemale,
- //PokemonId.Paras,
- //PokemonId.Venonat,
- //PokemonId.Psyduck,
- //PokemonId.Poliwag,
- //PokemonId.Slowpoke,
- //PokemonId.Drowzee,
- //PokemonId.Gastly,
- //PokemonId.Goldeen,
- //PokemonId.Staryu,
- PokemonId.Magikarp,
- PokemonId.Eevee //,
- //PokemonId.Dratini
- };
-
var inventory = await client.Inventory.GetInventory();
var pokemons = inventory.InventoryDelta.InventoryItems
.Select(i => i.InventoryItemData?.PokemonData)
.Where(p => p != null && p?.PokemonId > 0)
.ToArray();
- //foreach (var unwantedPokemonType in unwantedPokemonTypes)
- {
- List<PokemonData> pokemonToDiscard;
- if (doNotTransfer.Count() != 0)
- pokemonToDiscard =
- pokemons.Where(p => !doNotTransfer.Contains(p.PokemonId) && p.Cp < cpThreshold)
- .OrderByDescending(p => p.Cp)
- .ToList();
- else
- pokemonToDiscard = pokemons.Where(p => p.Cp < cpThreshold).OrderByDescending(p => p.Cp).ToList();
-
-
- //var unwantedPokemon = pokemonOfDesiredType.Skip(1) // keep the strongest one for potential battle-evolving
- // .ToList();
- ColoredConsoleWrite(Color.Gray, $"Grinding {pokemonToDiscard.Count} pokemon below {cpThreshold} CP.");
- await TransferAllGivenPokemons(client, pokemonToDiscard);
- }
+ var pokemonToDiscard = pokemons.Where(p => p.Cp < cpThreshold).OrderByDescending(p => p.Cp).ToList();
+ ColoredConsoleWrite(Color.Gray, $"Grinding {pokemonToDiscard.Count} pokemon below {cpThreshold} CP.");
+ await TransferAllGivenPokemons(client, pokemonToDiscard);
ColoredConsoleWrite(Color.Gray, $"Finished grinding all the meat");
}
-
public async Task PrintLevel(Client client)
{
var inventory = await client.Inventory.GetInventory();
@@ -1103,7 +1206,7 @@ namespace PokemonGo.RocketAPI.Window
else
await Task.Delay(ClientSettings.LevelTimeInterval * 1000);
- // PrintLevel(client);
+ // PrintLevel(client);
}
// Pulled from NecronomiconCoding
@@ -1114,7 +1217,10 @@ namespace PokemonGo.RocketAPI.Window
public async Task updateUserStatusBar(Client client, GetInventoryResponse inventory, GetPlayerResponse profile)
{
- var stats = inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.PlayerStats).Where(i => i != null).ToArray();
+ var stats =
+ inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.PlayerStats)
+ .Where(i => i != null)
+ .ToArray();
short hoursLeft = 0;
short minutesLeft = 0;
var secondsLeft = 0;
@@ -1163,82 +1269,121 @@ namespace PokemonGo.RocketAPI.Window
{
case 1:
return 0;
+
case 2:
return 1000;
+
case 3:
return 2000;
+
case 4:
return 3000;
+
case 5:
return 4000;
+
case 6:
return 5000;
+
case 7:
return 6000;
+
case 8:
return 7000;
+
case 9:
return 8000;
+
case 10:
return 9000;
+
case 11:
return 10000;
+
case 12:
return 10000;
+
case 13:
return 10000;
+
case 14:
return 10000;
+
case 15:
return 15000;
+
case 16:
return 20000;
+
case 17:
return 20000;
+
case 18:
return 20000;
+
case 19:
return 25000;
+
case 20:
return 25000;
+
case 21:
return 50000;
+
case 22:
return 75000;
+
case 23:
return 100000;
+
case 24:
return 125000;
+
case 25:
return 150000;
+
case 26:
return 190000;
+
case 27:
return 200000;
+
case 28:
return 250000;
+
case 29:
return 300000;
+
case 30:
return 350000;
+
case 31:
return 500000;
+
case 32:
return 500000;
+
case 33:
return 750000;
+
case 34:
return 1000000;
+
case 35:
return 1250000;
+
case 36:
return 1500000;
+
case 37:
return 2000000;
+
case 38:
return 2500000;
+
case 39:
return 1000000;
+
case 40:
return 1000000;
}
@@ -1320,6 +1465,7 @@ namespace PokemonGo.RocketAPI.Window
case ConsoleColor.Green:
c = Color.Green;
break;
+
case ConsoleColor.DarkCyan:
c = Color.DarkCyan;
break;
@@ -1327,15 +1473,6 @@ namespace PokemonGo.RocketAPI.Window
ColoredConsoleWrite(c, message);
}
- private void showAllToolStripMenuItem3_Click(object sender, EventArgs e)
- {
- }
-
- private void statsToolStripMenuItem_Click(object sender, EventArgs e)
- {
- // todo: add player stats later
- }
-
private async void forceUnbanToolStripMenuItem_Click(object sender, EventArgs e)
{
if (_client != null && _pokeStops != null)
@@ -1356,24 +1493,12 @@ namespace PokemonGo.RocketAPI.Window
}
}
- private void showAllToolStripMenuItem2_Click(object sender, EventArgs e)
- {
- }
-
private void todoToolStripMenuItem_Click(object sender, EventArgs e)
{
var settingsForm = new SettingsForm();
settingsForm.ShowDialog();
}
- private void pokemonToolStripMenuItem2_Click(object sender, EventArgs e)
- {
- }
-
- private void pokeToolStripMenuItem_Click(object sender, EventArgs e)
- {
- }
-
#region POKEMON LIST
private IEnumerable<Candy> families;
@@ -1398,8 +1523,7 @@ namespace PokemonGo.RocketAPI.Window
olvPokemonList.FormatRow += delegate (object sender, FormatRowEventArgs e)
{
var pok = e.Model as PokemonObject;
- if (
- olvPokemonList.Objects.Cast<PokemonObject>()
+ if (olvPokemonList.Objects.Cast<PokemonObject>()
.Select(i => i.PokemonId)
.Where(p => p == pok.PokemonId)
.Count() > 1)
@@ -1441,6 +1565,20 @@ namespace PokemonGo.RocketAPI.Window
item.Click += delegate { TransferPokemon(pokemons); };
cmsPokemonList.Items.Add(item);
+ item = new ToolStripMenuItem();
+ item.Text = "Rename";
+ item.Click += delegate
+ {
+ using (var form = count == 1 ? new NicknamePokemonForm(pokemonObject) : new NicknamePokemonForm())
+ {
+ if (form.ShowDialog() == DialogResult.OK)
+ {
+ NicknamePokemon(pokemons, form.txtNickname.Text);
+ }
+ }
+ };
+ cmsPokemonList.Items.Add(item);
+
if (canAllEvolve)
{
item = new ToolStripMenuItem();
@@ -1477,19 +1615,8 @@ namespace PokemonGo.RocketAPI.Window
item.Text = "Evolve Clean Up (Highest CP)";
item.Click += delegate { CleanUpEvolvePokemon(pokemonObject, "CP"); };
cmsPokemonList.Items.Add(item);
-
- cmsPokemonList.Items.Add(separator);
- item = new ToolStripMenuItem();
- item.Text = "Rename";
- item.Click += delegate (object obj, EventArgs args) {
- using (var form = new NicknamePokemonForm(pokemonObject)) {
- if (form.ShowDialog() == DialogResult.OK) {
- NicknamePokemon(pokemonObject, form.txtNickname.Text);
- }
- }
- };
- cmsPokemonList.Items.Add(item);
+ cmsPokemonList.Items.Add(separator);
}
};
}
@@ -1519,12 +1646,27 @@ namespace PokemonGo.RocketAPI.Window
var profile = await _client2.Player.GetPlayer();
var itemTemplates = await _client2.Download.GetItemTemplates();
+ var appliedItems = new Dictionary<ItemId, DateTime>();
+ var inventoryAppliedItems =
+ inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.AppliedItems);
+
+ foreach (var aItems in inventoryAppliedItems)
+ {
+ if (aItems != null && aItems.Item != null)
+ {
+ foreach (var item in aItems.Item)
+ {
+ appliedItems.Add(item.ItemId, Utils.FromUnixTimeUtc(item.ExpireMs));
+ }
+ }
+ }
+
PokemonObject.Initilize(itemTemplates);
var pokemons =
inventory.InventoryDelta.InventoryItems.Select(i => i?.InventoryItemData?.PokemonData)
.Where(p => p != null && p?.PokemonId > 0)
- .OrderByDescending(key => key.GetIV())
+ .OrderByDescending(PokemonInfo.CalculatePokemonPerfection)
.OrderByDescending(key => key.Cp)
.OrderBy(key => key.PokemonId);
families = inventory.InventoryDelta.InventoryItems
@@ -1559,25 +1701,29 @@ namespace PokemonGo.RocketAPI.Window
pokemoncount + " pokemon, " + eggcount + " eggs)";
var items =
- inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.Item)
- .Where(i => i != null && i.Count > 0);
+ inventory.InventoryDelta.InventoryItems
+ .Select(i => i.InventoryItemData?.Item)
+ .Where(i => i != null)
+ .OrderBy(i => i.ItemId);
var itemscount =
- inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.Item)
- .Where(i => i != null)
- .Sum(i => i.Count) + 1;
+ inventory.InventoryDelta.InventoryItems
+ .Select(i => i.InventoryItemData?.Item)
+ .Where(i => i != null)
+ .Sum(i => i.Count) + 1;
flpItems.Controls.Clear();
- foreach (ItemData item in items) {
- ItemBox box = new ItemBox(item);
- box.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Bottom;
- box.ItemClick += ItemBox_ItemClick; ;
+ foreach (var item in items)
+ {
+ var box = new ItemBox(item);
+ if (appliedItems.ContainsKey(item.ItemId))
+ box.expires = appliedItems[item.ItemId];
+ box.ItemClick += ItemBox_ItemClick;
flpItems.Controls.Add(box);
}
lblInventory.Text = itemscount + " / " + profile.PlayerData.MaxItemStorage;
-
}
- catch (GoogleException ex)
+ catch (GoogleException)
{
ColoredConsoleWrite(Color.Red, "Please check your google login information again");
}
@@ -1598,39 +1744,83 @@ namespace PokemonGo.RocketAPI.Window
SetState(true);
}
- private async void ItemBox_ItemClick(object sender, EventArgs e) {
- ItemData item = (ItemData)sender;
+ private async void ItemBox_ItemClick(object sender, EventArgs e)
+ {
+ var item = (ItemData)sender;
- using (var form = new ItemForm(item)) {
+ using (var form = new ItemForm(item))
+ {
var result = form.ShowDialog();
- if (result == DialogResult.OK) {
+ if (result == DialogResult.OK)
+ {
SetState(false);
- if (item.ItemId == ItemId.ItemLuckyEgg) {
- if (!_botStarted) {
+ if (item.ItemId == ItemId.ItemLuckyEgg)
+ {
+ if (!_botStarted)
+ {
ColoredConsoleWrite(Color.Red, $"Bot must be running first!");
SetState(true);
return;
}
-
var response = await _client.Inventory.UseItemXpBoost();
- if (response.Result == UseItemXpBoostResponse.Types.Result.Success) {
+ if (response.Result == UseItemXpBoostResponse.Types.Result.Success)
+ {
ColoredConsoleWrite(Color.Green, $"Using a Lucky Egg");
- ColoredConsoleWrite(Color.Yellow, $"Lucky Egg Valid until: {DateTime.Now.AddMinutes(30)}");
- } else if (response.Result == UseItemXpBoostResponse.Types.Result.ErrorXpBoostAlreadyActive) {
+ ColoredConsoleWrite(Color.Yellow, $"Lucky Egg valid until: {DateTime.Now.AddMinutes(30)}");
+ }
+ else if (response.Result == UseItemXpBoostResponse.Types.Result.ErrorXpBoostAlreadyActive)
+ {
ColoredConsoleWrite(Color.Orange, $"A Lucky Egg is already active!");
- } else if (response.Result == UseItemXpBoostResponse.Types.Result.ErrorLocationUnset) {
+ }
+ else if (response.Result == UseItemXpBoostResponse.Types.Result.ErrorLocationUnset)
+ {
ColoredConsoleWrite(Color.Red, $"Bot must be running first!");
- } else {
+ }
+ else
+ {
ColoredConsoleWrite(Color.Red, $"Failed using a Lucky Egg!");
}
- } else if (item.ItemId == ItemId.ItemIncenseOrdinary) {
-
- } else {
- var response = await _client2.Inventory.RecycleItem(item.ItemId, Decimal.ToInt32(form.numCount.Value));
- if (response.Result == RecycleInventoryItemResponse.Types.Result.Success) {
- ColoredConsoleWrite(Color.DarkCyan, $"Recycled {Decimal.ToInt32(form.numCount.Value)}x {item.ItemId.ToString().Substring(4)}");
- } else {
- ColoredConsoleWrite(Color.Red, $"Unable to recycle {Decimal.ToInt32(form.numCount.Value)}x {item.ItemId.ToString().Substring(4)}");
+ }
+ else if (item.ItemId == ItemId.ItemIncenseOrdinary)
+ {
+ if (!_botStarted)
+ {
+ ColoredConsoleWrite(Color.Red, $"Bot must be running first!");
+ SetState(true);
+ return;
+ }
+ var response = await _client.Inventory.UseIncense(ItemId.ItemIncenseOrdinary);
+ if (response.Result == UseIncenseResponse.Types.Result.Success)
+ {
+ ColoredConsoleWrite(Color.Green, $"Using an incense");
+ ColoredConsoleWrite(Color.Yellow, $"Incense valid until: {DateTime.Now.AddMinutes(30)}");
+ }
+ else if (response.Result == UseIncenseResponse.Types.Result.IncenseAlreadyActive)
+ {
+ ColoredConsoleWrite(Color.Orange, $"An incense is already active!");
+ }
+ else if (response.Result == UseIncenseResponse.Types.Result.LocationUnset)
+ {
+ ColoredConsoleWrite(Color.Red, $"Bot must be running first!");
+ }
+ else
+ {
+ ColoredConsoleWrite(Color.Red, $"Failed using an incense!");
+ }
+ }
+ else
+ {
+ var response =
+ await _client2.Inventory.RecycleItem(item.ItemId, decimal.ToInt32(form.numCount.Value));
+ if (response.Result == RecycleInventoryItemResponse.Types.Result.Success)
+ {
+ ColoredConsoleWrite(Color.DarkCyan,
+ $"Recycled {decimal.ToInt32(form.numCount.Value)}x {item.ItemId.ToString().Substring(4)}");
+ }
+ else
+ {
+ ColoredConsoleWrite(Color.Red,
+ $"Unable to recycle {decimal.ToInt32(form.numCount.Value)}x {item.ItemId.ToString().Substring(4)}");
}
}
ReloadPokemonList();
@@ -1721,6 +1911,59 @@ namespace PokemonGo.RocketAPI.Window
ReloadPokemonList();
}
+ private async Task UseIncubators(Client client, String mode)
+ {
+ var profile = (await GetProfile(client)).FirstOrDefault();
+
+ if (profile == null)
+ return;
+
+ var kmWalked = profile.KmWalked;
+
+ var unusedEggs = (await getUnusedEggs(client))
+ .Where(x => string.IsNullOrEmpty(x.EggIncubatorId))
+ .OrderBy(x => x.EggKmWalkedTarget - x.EggKmWalkedStart)
+ .ToList();
+ var incubators = (await getUnusedIncubators(client))
+ .Where(x => x.UsesRemaining > 0 || x.ItemId == ItemId.ItemIncubatorBasicUnlimited)
+ .OrderByDescending(x => x.ItemId == ItemId.ItemIncubatorBasicUnlimited)
+ .OrderByDescending(x => x.PokemonId != 0)
+ .ToList();
+
+ var num = 1;
+
+ foreach (var inc in incubators)
+ {
+ var usesLeft = (inc.ItemId == ItemId.ItemIncubatorBasicUnlimited) ?
+ "∞" : inc.UsesRemaining.ToString();
+ if (inc.PokemonId == 0)
+ {
+ if (mode.Equals("only unlimited")
+ && inc.ItemId != ItemId.ItemIncubatorBasicUnlimited)
+ continue;
+
+ var egg = (inc.ItemId == ItemId.ItemIncubatorBasicUnlimited && incubators.Count > 1)
+ ? unusedEggs.FirstOrDefault()
+ : unusedEggs.LastOrDefault();
+
+ if (egg == null)
+ continue;
+
+ var useIncubator = await client.Inventory.UseItemEggIncubator(inc.Id, egg.Id);
+ unusedEggs.Remove(egg);
+ var eggKm = egg.EggKmWalkedTarget;
+ ColoredConsoleWrite(Color.YellowGreen, $"Incubator #{num} was successfully used on a {eggKm}km egg, Incubator uses left: {usesLeft}");
+ }
+ else
+ {
+ var remainingDistance = String.Format("{0:0.00}", (inc.TargetKmWalked - kmWalked));
+ var eggKm = inc.TargetKmWalked - inc.StartKmWalked;
+ ColoredConsoleWrite(Color.YellowGreen, $"[Status] Incubator #{num}, Uses left: {usesLeft}, Distance left: {remainingDistance}/{eggKm} km");
+ }
+ num++;
+ }
+ }
+
private void CleanUpTransferPokemon(PokemonObject pokemon, string type)
{
var ET = pokemon.EvolveTimes;
@@ -1745,7 +1988,7 @@ namespace PokemonGo.RocketAPI.Window
.Where(p => p.PokemonId == pokemon.PokemonId)
.Select(p => p.PokemonData)
.OrderBy(p => p.Cp)
- .OrderBy(p => p.GetIV())
+ .OrderBy(PokemonInfo.CalculatePokemonPerfection)
.Take(pokemonCount - ET);
TransferPokemon(pokemons);
@@ -1756,7 +1999,7 @@ namespace PokemonGo.RocketAPI.Window
olvPokemonList.Objects.Cast<PokemonObject>()
.Where(p => p.PokemonId == pokemon.PokemonId)
.Select(p => p.PokemonData)
- .OrderBy(p => p.GetIV())
+ .OrderBy(PokemonInfo.CalculatePokemonPerfection)
.OrderBy(p => p.Cp)
.Take(pokemonCount - ET);
@@ -1781,7 +2024,7 @@ namespace PokemonGo.RocketAPI.Window
.Where(p => p.PokemonId == pokemon.PokemonId)
.Select(p => p.PokemonData)
.OrderByDescending(p => p.Cp)
- .OrderByDescending(p => p.GetIV())
+ .OrderByDescending(PokemonInfo.CalculatePokemonPerfection)
.Take(ET);
EvolvePokemon(pokemons);
@@ -1792,7 +2035,7 @@ namespace PokemonGo.RocketAPI.Window
olvPokemonList.Objects.Cast<PokemonObject>()
.Where(p => p.PokemonId == pokemon.PokemonId)
.Select(p => p.PokemonData)
- .OrderByDescending(p => p.GetIV())
+ .OrderByDescending(PokemonInfo.CalculatePokemonPerfection)
.OrderByDescending(p => p.Cp)
.Take(ET);
@@ -1808,21 +2051,55 @@ namespace PokemonGo.RocketAPI.Window
.Where(p => p != null);
}
+ private async Task<IEnumerable<EggIncubator>> getUnusedIncubators(Client client)
+ {
+ var inventory = await client.Inventory.GetInventory();
+ return inventory.InventoryDelta.InventoryItems.
+ Where(x => x.InventoryItemData?.EggIncubators != null).
+ SelectMany(x => x.InventoryItemData.EggIncubators.EggIncubator).
+ Where(x => x != null);
+ }
+
+ private async Task<IEnumerable<PokemonData>> getUnusedEggs(Client client)
+ {
+ var inventory = await client.Inventory.GetInventory();
+ return inventory.InventoryDelta.InventoryItems.
+ Select(i => i.InventoryItemData?.PokemonData).
+ Where(p => p != null && p.IsEgg).ToList().
+ Where(x => string.IsNullOrEmpty(x.EggIncubatorId)).
+ OrderBy(x => x.EggKmWalkedTarget - x.EggKmWalkedStart);
+ }
+
+ private async Task<IEnumerable<PlayerStats>> GetProfile(Client client)
+ {
+ var inventory = await client.Inventory.GetInventory();
+ return inventory.InventoryDelta.InventoryItems
+ .Select(i => i.InventoryItemData?.PlayerStats)
+ .Where(p => p != null);
+ }
+
public async Task<IEnumerable<ItemData>> GetItemsToRecycle(ISettings _settings, Client client)
{
+ var itemCounts = (_settings as Settings).ItemCounts;
var settings = (Settings)_settings;
var myItems = await GetItems(client);
+ var itemsToRecycle = new List<ItemData>();
- return myItems
- .Where(x => settings.ItemRecycleFilter.Any(f => f.Key == x.ItemId && x.Count > f.Value))
- .Select(
- x =>
- new ItemData
- {
- ItemId = x.ItemId,
- Count = x.Count - settings.ItemRecycleFilter.Single(f => f.Key == x.ItemId).Value,
- Unseen = x.Unseen
- });
+ foreach (var itemData in myItems)
+ {
+ foreach (var itemCount in itemCounts)
+ {
+ if (itemData.ItemId == itemCount.ItemId && itemData.Count > itemCount.Count)
+ {
+ var itemToRecycle = new ItemData();
+ itemToRecycle.ItemId = itemData.ItemId;
+ itemToRecycle.Count = itemData.Count - itemCount.Count;
+ itemsToRecycle.Add(itemToRecycle);
+ }
+ }
+ }
+
+ return itemsToRecycle;
}
public async Task RecycleItems(Client client)
@@ -1833,7 +2110,7 @@ namespace PokemonGo.RocketAPI.Window
{
var transfer = await client.Inventory.RecycleItem(item.ItemId, item.Count);
ColoredConsoleWrite(Color.DarkCyan, $"Recycled {item.Count}x {item.ItemId.ToString().Substring(4)}");
- await Task.Delay(500);
+ //await Task.Delay(500);
}
}
@@ -1927,15 +2204,40 @@ namespace PokemonGo.RocketAPI.Window
return ItemId.ItemPokeBall;
}
- public async void NicknamePokemon(PokemonObject pokemon, string nickname) {
+ public async void NicknamePokemon(IEnumerable<PokemonData> pokemons, string nickname)
+ {
SetState(false);
- var response = await _client2.Inventory.NicknamePokemon(pokemon.Id, nickname);
- if (response.Result == NicknamePokemonResponse.Types.Result.Success) {
- ColoredConsoleWrite(Color.Green, $"Successfully renamed {pokemon.PokemonId.ToString()} to \"{nickname}|\"");
- } else {
- ColoredConsoleWrite(Color.Red, $"Failed renaming {pokemon.PokemonId.ToString()} to \"{nickname}|\"");
+ foreach (var pokemon in pokemons)
+ {
+ var newName = new StringBuilder(nickname);
+ newName.Replace("{Name}", Convert.ToString(pokemon.PokemonId));
+ newName.Replace("{CP}", Convert.ToString(pokemon.Cp));
+ newName.Replace("{IV}", Convert.ToString(Math.Round(Perfect(pokemon))));
+ newName.Replace("{IA}", Convert.ToString(pokemon.IndividualAttack));
+ newName.Replace("{ID}", Convert.ToString(pokemon.IndividualDefense));
+ newName.Replace("{IS}", Convert.ToString(pokemon.IndividualStamina));
+ if (nickname.Length > 12)
+ {
+ ColoredConsoleWrite(Color.Red, $"\"{newName}\" is too long, please choose another name");
+ if (pokemons.Count() == 1)
+ {
+ SetState(true);
+ return;
+ }
+ continue;
+ }
+ var response = await _client2.Inventory.NicknamePokemon(pokemon.Id, newName.ToString());
+ if (response.Result == NicknamePokemonResponse.Types.Result.Success)
+ {
+ ColoredConsoleWrite(Color.Green, $"Successfully renamed {pokemon.PokemonId} to \"{newName}\"");
+ }
+ else
+ {
+ ColoredConsoleWrite(Color.Red, $"Failed renaming {pokemon.PokemonId} to \"{newName}\"");
+ }
+ await Task.Delay(ACTIONDELAY);
}
- ReloadPokemonList();
+ await ReloadPokemonList();
}
private async void button1_Click(object sender, EventArgs e)
@@ -1943,6 +2245,6 @@ namespace PokemonGo.RocketAPI.Window
await ReloadPokemonList();
}
- #endregion
+ #endregion POKEMON LIST
}
}
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Window/MainForm.resx b/src/RocketBotGUI/MainForm.resx
similarity index 100%
rename from PokemonGo/RocketAPI/Window/MainForm.resx
rename to src/RocketBotGUI/MainForm.resx
diff --git a/PokemonGo/RocketAPI/Window/NicknamePokemonForm.Designer.cs b/src/RocketBotGUI/NicknamePokemonForm.Designer.cs
similarity index 57%
rename from PokemonGo/RocketAPI/Window/NicknamePokemonForm.Designer.cs
rename to src/RocketBotGUI/NicknamePokemonForm.Designer.cs
index 1c50675..4058c7b 100644
--- a/PokemonGo/RocketAPI/Window/NicknamePokemonForm.Designer.cs
+++ b/src/RocketBotGUI/NicknamePokemonForm.Designer.cs
@@ -24,9 +24,13 @@
/// </summary>
private void InitializeComponent() {
this.pnl = new System.Windows.Forms.Panel();
+ this.label4 = new System.Windows.Forms.Label();
+ this.label3 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
this.txtNickname = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.btnNickname = new System.Windows.Forms.Button();
+ this.closeRenameBtn = new System.Windows.Forms.Label();
this.pnl.SuspendLayout();
this.SuspendLayout();
//
@@ -34,20 +38,58 @@
//
this.pnl.BackColor = System.Drawing.SystemColors.Window;
this.pnl.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.pnl.Controls.Add(this.closeRenameBtn);
+ this.pnl.Controls.Add(this.label4);
+ this.pnl.Controls.Add(this.label3);
+ this.pnl.Controls.Add(this.label2);
this.pnl.Controls.Add(this.txtNickname);
this.pnl.Controls.Add(this.label1);
this.pnl.Controls.Add(this.btnNickname);
this.pnl.Dock = System.Windows.Forms.DockStyle.Fill;
this.pnl.Location = new System.Drawing.Point(0, 0);
this.pnl.Name = "pnl";
- this.pnl.Size = new System.Drawing.Size(401, 144);
+ this.pnl.Size = new System.Drawing.Size(401, 205);
this.pnl.TabIndex = 0;
//
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.label4.Location = new System.Drawing.Point(191, 98);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(186, 45);
+ this.label4.TabIndex = 9;
+ this.label4.Text = "{IA} : Pokemon Individual Attack\r\n{ID} : Pokemon Individual Defense\r\n{IS} : Pokem" +
+ "on Individual Stamina";
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.label3.Location = new System.Drawing.Point(13, 98);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(142, 45);
+ this.label3.TabIndex = 8;
+ this.label3.Text = "{Name} : Pokemon Name\r\n{CP} : Pokemon CP\r\n{IV} : Pokemon IV %";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.label2.Location = new System.Drawing.Point(11, 79);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(105, 15);
+ this.label2.TabIndex = 7;
+ this.label2.Text = "Rename Template:";
+ //
// txtNickname
//
this.txtNickname.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.txtNickname.Font = new System.Drawing.Font("Segoe UI", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.txtNickname.Location = new System.Drawing.Point(16, 44);
+ this.txtNickname.Location = new System.Drawing.Point(16, 41);
this.txtNickname.Name = "txtNickname";
this.txtNickname.Size = new System.Drawing.Size(372, 35);
this.txtNickname.TabIndex = 0;
@@ -55,13 +97,13 @@
//
// label1
//
- this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.label1.Font = new System.Drawing.Font("Segoe UI", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.ForeColor = System.Drawing.SystemColors.ControlDark;
- this.label1.Location = new System.Drawing.Point(11, 8);
+ this.label1.Location = new System.Drawing.Point(11, 7);
this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(377, 33);
+ this.label1.Size = new System.Drawing.Size(377, 30);
this.label1.TabIndex = 6;
this.label1.Text = "Nickname Pokemon";
this.label1.TextAlign = System.Drawing.ContentAlignment.TopCenter;
@@ -73,18 +115,30 @@
this.btnNickname.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnNickname.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnNickname.ForeColor = System.Drawing.SystemColors.ControlDark;
- this.btnNickname.Location = new System.Drawing.Point(133, 95);
+ this.btnNickname.Location = new System.Drawing.Point(133, 160);
this.btnNickname.Name = "btnNickname";
- this.btnNickname.Size = new System.Drawing.Size(140, 35);
+ this.btnNickname.Size = new System.Drawing.Size(140, 32);
this.btnNickname.TabIndex = 1;
this.btnNickname.Text = "Rename";
this.btnNickname.UseVisualStyleBackColor = true;
//
+ // closeRenameBtn
+ //
+ this.closeRenameBtn.AutoSize = true;
+ this.closeRenameBtn.Font = new System.Drawing.Font("Segoe UI Semibold", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.closeRenameBtn.ForeColor = System.Drawing.Color.Gray;
+ this.closeRenameBtn.Location = new System.Drawing.Point(382, 0);
+ this.closeRenameBtn.Name = "closeRenameBtn";
+ this.closeRenameBtn.Size = new System.Drawing.Size(16, 17);
+ this.closeRenameBtn.TabIndex = 10;
+ this.closeRenameBtn.Text = "X";
+ this.closeRenameBtn.Click += new System.EventHandler(this.closeRenameBtn_Click);
+ //
// NicknamePokemonForm
//
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(401, 144);
+ this.ClientSize = new System.Drawing.Size(401, 205);
this.Controls.Add(this.pnl);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "NicknamePokemonForm";
@@ -102,5 +156,9 @@
private System.Windows.Forms.Button btnNickname;
public System.Windows.Forms.TextBox txtNickname;
private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.Label closeRenameBtn;
}
}
\ No newline at end of file
diff --git a/src/RocketBotGUI/NicknamePokemonForm.cs b/src/RocketBotGUI/NicknamePokemonForm.cs
new file mode 100644
index 0000000..170480f
--- /dev/null
+++ b/src/RocketBotGUI/NicknamePokemonForm.cs
@@ -0,0 +1,41 @@
+using System.Windows.Forms;
+
+namespace PokemonGo.RocketAPI.Window
+{
+ public partial class NicknamePokemonForm : Form
+ {
+ public NicknamePokemonForm()
+ {
+ InitializeComponent();
+ txtNickname.Text = @"{IV}_{Name}";
+ txtNickname.KeyDown += TxtNickname_KeyDown;
+ }
+
+ public NicknamePokemonForm(PokemonObject pokemon)
+ {
+ InitializeComponent();
+ txtNickname.Text = pokemon.Nickname;
+ txtNickname.KeyDown += TxtNickname_KeyDown;
+ }
+
+ private void TxtNickname_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.KeyCode == Keys.Enter)
+ {
+ DialogResult = DialogResult.OK;
+ Close();
+ }
+ if (e.KeyCode == Keys.Escape)
+ {
+ DialogResult = DialogResult.Cancel;
+ Close();
+ }
+ }
+
+ private void closeRenameBtn_Click(object sender, System.EventArgs e)
+ {
+ DialogResult = DialogResult.Cancel;
+ Close();
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/RocketBotGUI/NicknamePokemonForm.resx b/src/RocketBotGUI/NicknamePokemonForm.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/src/RocketBotGUI/NicknamePokemonForm.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/PokemonGo/RocketAPI/Window/PokemonGo.RocketBot.csproj b/src/RocketBotGUI/PokemonGo.RocketBot.csproj
similarity index 89%
rename from PokemonGo/RocketAPI/Window/PokemonGo.RocketBot.csproj
rename to src/RocketBotGUI/PokemonGo.RocketBot.csproj
index aa7d8e1..b955eaf 100644
--- a/PokemonGo/RocketAPI/Window/PokemonGo.RocketBot.csproj
+++ b/src/RocketBotGUI/PokemonGo.RocketBot.csproj
@@ -44,24 +44,23 @@
</StartupObject>
</PropertyGroup>
<ItemGroup>
- <Reference Include="GMap.NET.Core">
- <HintPath>lib\GMap.NET.Core.dll</HintPath>
+ <Reference Include="GMap.NET.Core, Version=1.7.0.0, Culture=neutral, PublicKeyToken=b85b9027b614afef, processorArchitecture=MSIL">
+ <HintPath>..\..\packages\GMap.NET.WindowsForms.1.7.1\lib\net40\GMap.NET.Core.dll</HintPath>
+ <Private>True</Private>
</Reference>
- <Reference Include="GMap.NET.WindowsForms">
- <HintPath>lib\GMap.NET.WindowsForms.dll</HintPath>
+ <Reference Include="GMap.NET.WindowsForms, Version=1.7.0.0, Culture=neutral, PublicKeyToken=b85b9027b614afef, processorArchitecture=MSIL">
+ <HintPath>..\..\packages\GMap.NET.WindowsForms.1.7.1\lib\net40\GMap.NET.WindowsForms.dll</HintPath>
+ <Private>True</Private>
</Reference>
<Reference Include="Google.Protobuf">
- <HintPath>..\..\..\packages\Google.Protobuf.3.0.0-beta4\lib\net45\Google.Protobuf.dll</HintPath>
+ <HintPath>$(SolutionDir)\packages\Google.Protobuf.3.0.0-beta4\lib\net45\Google.Protobuf.dll</HintPath>
</Reference>
<Reference Include="ObjectListView, Version=2.9.1.1072, Culture=neutral, PublicKeyToken=b1c5bf581481bcd4, processorArchitecture=MSIL">
- <HintPath>..\..\..\packages\ObjectListView.Official.2.9.1\lib\net20\ObjectListView.dll</HintPath>
+ <HintPath>$(SolutionDir)\packages\ObjectListView.Official.2.9.1\lib\net20\ObjectListView.dll</HintPath>
<Private>True</Private>
</Reference>
- <Reference Include="POGOProtos">
- <HintPath>..\..\POGOProtos\bin\Debug\POGOProtos.dll</HintPath>
- </Reference>
<Reference Include="S2Geometry, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
- <HintPath>..\..\..\packages\S2Geometry.1.0.3\lib\portable-net45+wp8+win8\S2Geometry.dll</HintPath>
+ <HintPath>$(SolutionDir)\packages\S2Geometry.1.0.3\lib\portable-net45+wp8+win8\S2Geometry.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" />
@@ -80,7 +79,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="ApiFailureStrategy.cs" />
- <Compile Include="Extensions.cs" />
+ <Compile Include="DeviceHelper.cs" />
<Compile Include="ItemBox.cs">
<SubType>UserControl</SubType>
</Compile>
@@ -93,6 +92,12 @@
<Compile Include="ItemForm.Designer.cs">
<DependentUpon>ItemForm.cs</DependentUpon>
</Compile>
+ <Compile Include="ItemSetting.cs">
+ <SubType>UserControl</SubType>
+ </Compile>
+ <Compile Include="ItemSetting.Designer.cs">
+ <DependentUpon>ItemSetting.cs</DependentUpon>
+ </Compile>
<Compile Include="LocationManager.cs" />
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
@@ -118,9 +123,15 @@
<Compile Include="SettingsForm.Designer.cs">
<DependentUpon>SettingsForm.cs</DependentUpon>
</Compile>
+ <EmbeddedResource Include="ItemSetting.resx">
+ <DependentUpon>ItemSetting.cs</DependentUpon>
+ </EmbeddedResource>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
+ <EmbeddedResource Include="NicknamePokemonForm.resx">
+ <DependentUpon>NicknamePokemonForm.cs</DependentUpon>
+ </EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
@@ -134,6 +145,7 @@
<EmbeddedResource Include="SettingsForm.resx">
<DependentUpon>SettingsForm.cs</DependentUpon>
</EmbeddedResource>
+ <None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
@@ -143,6 +155,9 @@
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
+ <None Include="Resources\device info.csv">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </None>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
@@ -153,10 +168,14 @@
</None>
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="..\PokemonGo.RocketAPI.csproj">
+ <ProjectReference Include="..\RocketAPI\PokemonGo.RocketAPI.csproj">
<Project>{05d2da44-1b8e-4cf7-94ed-4d52451cd095}</Project>
<Name>PokemonGo.RocketAPI</Name>
</ProjectReference>
+ <ProjectReference Include="..\POGOProtos\POGOProtos.csproj">
+ <Project>{A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB}</Project>
+ <Name>POGOProtos</Name>
+ </ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="Images\Pokemon\Pokemon_1.png" />
@@ -333,10 +352,8 @@
<None Include="Images\Items\ItemTroyDisk.png" />
<None Include="Images\Items\ItemUltraBall.png" />
<None Include="Images\Items\ItemWeparBerry.png" />
- <Content Include="Resources\encrypt.dll">
- <CopyToOutputDirectory>Always</CopyToOutputDirectory>
- </Content>
</ItemGroup>
+ <ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/PokemonGo/RocketAPI/Window/PokemonObject.cs b/src/RocketBotGUI/PokemonObject.cs
similarity index 87%
rename from PokemonGo/RocketAPI/Window/PokemonObject.cs
rename to src/RocketBotGUI/PokemonObject.cs
index c913f95..11c9694 100644
--- a/PokemonGo/RocketAPI/Window/PokemonObject.cs
+++ b/src/RocketBotGUI/PokemonObject.cs
@@ -1,7 +1,9 @@
-using POGOProtos.Data;
+using System;
+using System.Collections.Generic;
+using PokemonGo.RocketAPI.Helpers;
+using POGOProtos.Data;
using POGOProtos.Enums;
using POGOProtos.Networking.Responses;
-using System.Collections.Generic;
namespace PokemonGo.RocketAPI.Window
{
@@ -47,12 +49,18 @@ namespace PokemonGo.RocketAPI.Window
get { return PokemonData.IndividualStamina; }
}
- public float GetIV
+ public double GetIV
+ {
+ get { return Math.Round(PokemonInfo.CalculatePokemonPerfection(PokemonData), 2); }
+ }
+
+ public double GetLv
{
- get { return (IndividualAttack + IndividualDefense + IndividualStamina) / 45f; }
+ get { return PokemonInfo.GetLevel(PokemonData); }
}
- public string Nickname {
+ public string Nickname
+ {
get { return PokemonData.Nickname; }
}
diff --git a/PokemonGo/RocketAPI/Window/Program.cs b/src/RocketBotGUI/Program.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Program.cs
rename to src/RocketBotGUI/Program.cs
diff --git a/PokemonGo/RocketAPI/Window/Properties/AssemblyInfo.cs b/src/RocketBotGUI/Properties/AssemblyInfo.cs
similarity index 97%
rename from PokemonGo/RocketAPI/Window/Properties/AssemblyInfo.cs
rename to src/RocketBotGUI/Properties/AssemblyInfo.cs
index 00d3ee6..9a630d3 100644
--- a/PokemonGo/RocketAPI/Window/Properties/AssemblyInfo.cs
+++ b/src/RocketBotGUI/Properties/AssemblyInfo.cs
@@ -35,5 +35,5 @@ using System.Runtime.InteropServices;
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.8.2.0")]
+[assembly: AssemblyVersion("1.8.2.4")]
[assembly: AssemblyFileVersion("1.0.0.0")]
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Window/Properties/Resources.Designer.cs b/src/RocketBotGUI/Properties/Resources.Designer.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Properties/Resources.Designer.cs
rename to src/RocketBotGUI/Properties/Resources.Designer.cs
diff --git a/PokemonGo/RocketAPI/Window/Properties/Resources.resx b/src/RocketBotGUI/Properties/Resources.resx
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Properties/Resources.resx
rename to src/RocketBotGUI/Properties/Resources.resx
diff --git a/PokemonGo/RocketAPI/Window/Properties/Settings.Designer.cs b/src/RocketBotGUI/Properties/Settings.Designer.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Properties/Settings.Designer.cs
rename to src/RocketBotGUI/Properties/Settings.Designer.cs
diff --git a/PokemonGo/RocketAPI/Window/Properties/Settings.settings b/src/RocketBotGUI/Properties/Settings.settings
similarity index 100%
rename from PokemonGo/RocketAPI/Window/Properties/Settings.settings
rename to src/RocketBotGUI/Properties/Settings.settings
diff --git a/src/RocketBotGUI/Resources/device info.csv b/src/RocketBotGUI/Resources/device info.csv
new file mode 100644
index 0000000..7b4f0b4
--- /dev/null
+++ b/src/RocketBotGUI/Resources/device info.csv
@@ -0,0 +1,302 @@
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD 2;A1395;iOS;APPLE;iPad2,3;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M2075073:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD 2 A1396;A1396;iOS;APPLE;iPad2,3;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4359342:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD 2 A1397;A1397;iOS;APPLE;iPad2,3;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M257347:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD 3;A1416;iOS;APPLE;iPad3,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M730234:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD 3 A1403;A1403;iOS;APPLE;iPad3,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M7948214:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD 3 A1430;A1430;iOS;APPLE;iPad3,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M1104024:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD 4;A1458;iOS;APPLE;iPad3,5;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M8679143:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD 4 A1459;A1459;iOS;APPLE;iPad3,5;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M3431274:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD 4 A1460;A1460;iOS;APPLE;iPad3,5;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M73832:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD AIR;A1474;iOS;APPLE;iPad4,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M6930267:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD AIR 2;A1566;iOS;APPLE;iPad4,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M7147426:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD AIR 2 A1567;A1567;iOS;APPLE;iPad4,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M6021013:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD AIR A1475;A1475;iOS;APPLE;iPad4,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M6475908:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD AIR A1476;A1476;iOS;APPLE;iPad4,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4577501:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD MINI 2;A1489;iOS;APPLE;iPad4,5;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4024447:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD MINI 2 A1490;A1490;iOS;APPLE;iPad4,5;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M420477:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD MINI 2 A1491;A1491;iOS;APPLE;iPad4,5;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M246492:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD MINI 3;A1599;iOS;APPLE;iPad4,8;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M1772613:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD MINI 3 A1600;A1600;iOS;APPLE;iPad4,8;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M2865802:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD MINI 3 A1601;A1601;iOS;APPLE;iPad4,8;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M7326455:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD MINI 4;A1550;iOS;APPLE;iPad4,8;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M2845334:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD MINI 4 WI-FI;A1538;iOS;APPLE;iPad5,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M3556066:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD MINI A1454;A1454;iOS;APPLE;iPad5,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M7645446:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD MINI A1455;A1455;iOS;APPLE;iPad5,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M6216432:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD PRO;A1652;iOS;APPLE;iPad6,4;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M1883672:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPAD PRO WI-FI;A1584;iOS;APPLE;iPad6,3;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M5641510:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 5;A1428;iOS;APPLE;iPhone5,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4496206:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 5 A1429;A1429;iOS;APPLE;iPhone5,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M2734152:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 5 A1442;A1442;iOS;APPLE;iPhone5,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4763363:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 5C;A1529;iOS;APPLE;iPhone5,3;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M5037630:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 5C A1456;A1456;iOS;APPLE;iPhone5,3;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4654003:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 5C A1507;A1507;iOS;APPLE;iPhone5,3;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M5027417:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 5C A1532;A1516;iOS;APPLE;iPhone5,3;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4779042:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 5C A1532 CDMA;A1532 CDMA;iOS;APPLE;iPhone5,3;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M2227998:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 5S;A1530;iOS;APPLE;iPhone6,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M7695664:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 5S A1453;A1453;iOS;APPLE;iPhone6,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M6487312:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 5S A1457;A1457;iOS;APPLE;iPhone6,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M6381537:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 5S A1518;A1518;iOS;APPLE;iPhone6,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M1076975:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 5S A1528;A1528;iOS;APPLE;iPhone6,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M8791510:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 5S A1530 CHINA;A1530 CHINA;iOS;APPLE;iPhone6,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M6326979:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 5S A1533;A1533;iOS;APPLE;iPhone6,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4016191:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 5S A1533 CDMA;A1533 CDMA;iOS;APPLE;iPhone6,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M8287093:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 6;A1549;iOS;APPLE;iPhone8,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M2015300:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 6 A1549 CDMA;A1549 CDMA;iOS;APPLE;iPhone8,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M7909786:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 6 A1586;A1586;iOS;APPLE;iPhone8,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M7777206:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 6 A1589;A1589;iOS;APPLE;iPhone8,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M5548831:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 6 PLUS;A1522;iOS;APPLE;iPhone8,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M5528246:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 6 PLUS A1522 CDMA;A1522 CDMA;iOS;APPLE;iPhone8,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M1975615:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 6 PLUS A1524;A1524;iOS;APPLE;iPhone8,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M2424523:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 6 PLUS A1593;A1593;iOS;APPLE;iPhone8,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M289286:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 6S;A1633;iOS;APPLE;iPhone8,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M9138290:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 6S A1688;A1688;iOS;APPLE;iPhone8,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M725617:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 6S A1691;A1691;iOS;APPLE;iPhone8,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M3472594:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 6S A1700;A1700;iOS;APPLE;iPhone8,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M2650642:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 6S PLUS;A1634;iOS;APPLE;iPhone8,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4545111:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 6S PLUS A1687;A1687;iOS;APPLE;iPhone8,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M1157729:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 6S PLUS A1690;A1690;iOS;APPLE;iPhone8,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4912179:user/release-keys
+8525f6d8251f71b7;unknown;iBoot;APPLE;IPHONE 6S PLUS A1699;A1699;iOS;APPLE;iPhone8,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M332946:user/release-keys
+8525f6d8251f71b7;MSM9038;unknown;DELL;AERO;AERO;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9038_6.0.1/MMB29M9051330:user/release-keys
+8525f6d8251f71b7;MSM9039;unknown;DELL;FLASH;FLASH;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9039_6.0.1/MMB29M3186163:user/release-keys
+8525f6d8251f71b7;MSM9040;unknown;DELL;MINI 3IX;MINI 3IX;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9040_6.0.1/MMB29M4153186:user/release-keys
+8525f6d8251f71b7;MSM9041;unknown;DELL;SMOKE;SMOKE;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9041_6.0.1/MMB29M538283:user/release-keys
+8525f6d8251f71b7;MSM9042;unknown;DELL;STREAK;M01M;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9042_6.0.1/MMB29M9622763:user/release-keys
+8525f6d8251f71b7;MSM9043;unknown;DELL;STREAK 10 PRO;STREAK 10 PRO;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9043_6.0.1/MMB29M8396531:user/release-keys
+8525f6d8251f71b7;MSM9044;unknown;DELL;STREAK 7;MO2M;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9044_6.0.1/MMB29M6535432:user/release-keys
+8525f6d8251f71b7;MSM9045;unknown;DELL;STREAK 7 WI-FI;STREAK 7 WI-FI;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9045_6.0.1/MMB29M4844270:user/release-keys
+8525f6d8251f71b7;MSM9046;unknown;DELL;STREAK PRO;STREAK PRO;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9046_6.0.1/MMB29M5455775:user/release-keys
+8525f6d8251f71b7;MSM9047;unknown;DELL;STREAK US;STREAK US;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9047_6.0.1/MMB29M7491292:user/release-keys
+8525f6d8251f71b7;MSM9048;unknown;DELL;VENUE 10 7000;VENUE 10 7000;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9048_6.0.1/MMB29M2745687:user/release-keys
+8525f6d8251f71b7;MSM9049;unknown;DELL;VENUE 7;VENUE 7;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9049_6.0.1/MMB29M2209238:user/release-keys
+8525f6d8251f71b7;MSM9050;unknown;DELL;VENUE 7 3730;3730;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9050_6.0.1/MMB29M7979339:user/release-keys
+8525f6d8251f71b7;MSM9051;unknown;DELL;VENUE 7 3730 8GB;VENUE 7 3730 8GB;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9051_6.0.1/MMB29M1067843:user/release-keys
+8525f6d8251f71b7;MSM9052;unknown;DELL;VENUE 7 3741;3741;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9052_6.0.1/MMB29M3681560:user/release-keys
+8525f6d8251f71b7;MSM9053;unknown;DELL;VENUE 7 WIFI;VENUE 7 WIFI;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9053_6.0.1/MMB29M4704136:user/release-keys
+8525f6d8251f71b7;MSM9054;unknown;DELL;VENUE 8;VENUE 8;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9054_6.0.1/MMB29M3634348:user/release-keys
+8525f6d8251f71b7;MSM9055;unknown;DELL;VENUE 8 3840;3840;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9055_6.0.1/MMB29M8597328:user/release-keys
+8525f6d8251f71b7;MSM9056;unknown;DELL;VENUE 8 7000;7840;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9056_6.0.1/MMB29M4035445:user/release-keys
+8525f6d8251f71b7;MSM9057;unknown;DELL;VENUE 8 7000 LTE;VENUE 8 7000 LTE;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9057_6.0.1/MMB29M4109990:user/release-keys
+8525f6d8251f71b7;MSM9058;unknown;DELL;VENUE 8 WIFI;3830;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9058_6.0.1/MMB29M3124060:user/release-keys
+8525f6d8251f71b7;MSM9059;unknown;DELL;VENUE THUNDER;VENUE THUNDER;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9059_6.0.1/MMB29M3969392:user/release-keys
+8525f6d8251f71b7;MSM9060;unknown;DELL;VENUE THUNDER NA;VENUE THUNDER NA;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9060_6.0.1/MMB29M7070917:user/release-keys
+8525f6d8251f71b7;MSM9061;unknown;DELL;XCD 28;XCD 28;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9061_6.0.1/MMB29M3219429:user/release-keys
+8525f6d8251f71b7;MSM9062;unknown;DELL;XCD 35;XCD 35;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9062_6.0.1/MMB29M2706559:user/release-keys
+8525f6d8251f71b7;MSM9063;unknown;SONY;TABLET P;TABLET P;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9063_6.0.1/MMB29M4953608:user/release-keys
+8525f6d8251f71b7;MSM9064;unknown;SONY;TABLET P 3G;TABLET P 3G;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9064_6.0.1/MMB29M4400248:user/release-keys
+8525f6d8251f71b7;MSM9065;unknown;SONY;XPERIA A;SO-04E;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9065_6.0.1/MMB29M4851351:user/release-keys
+8525f6d8251f71b7;MSM9066;unknown;SONY;XPERIA A2;SO-04F;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9066_6.0.1/MMB29M7754400:user/release-keys
+8525f6d8251f71b7;MSM9067;unknown;SONY;XPERIA A4;SO-04G;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9067_6.0.1/MMB29M9966525:user/release-keys
+8525f6d8251f71b7;MSM9068;unknown;SONY;XPERIA ACRO S;LT26W;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9068_6.0.1/MMB29M4241336:user/release-keys
+8525f6d8251f71b7;MSM9069;unknown;SONY;XPERIA AX;SO-01E;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9069_6.0.1/MMB29M943607:user/release-keys
+8525f6d8251f71b7;MSM9070;unknown;SONY;XPERIA C;C2304;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9070_6.0.1/MMB29M9435238:user/release-keys
+8525f6d8251f71b7;MSM9071;unknown;SONY;XPERIA C S39C;S39C;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9071_6.0.1/MMB29M4970526:user/release-keys
+8525f6d8251f71b7;MSM9072;unknown;SONY;XPERIA C S39H;S39H;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9072_6.0.1/MMB29M6671210:user/release-keys
+8525f6d8251f71b7;MSM9073;unknown;SONY;XPERIA C3;D2533;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9073_6.0.1/MMB29M4018582:user/release-keys
+8525f6d8251f71b7;MSM9074;unknown;SONY;XPERIA C3 DUAL;S55U;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9074_6.0.1/MMB29M8750449:user/release-keys
+8525f6d8251f71b7;MSM9075;unknown;SONY;XPERIA C3 DUAL D2502;D2502;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9075_6.0.1/MMB29M6899552:user/release-keys
+8525f6d8251f71b7;MSM9076;unknown;SONY;XPERIA C3 DUAL S55T;S55T;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9076_6.0.1/MMB29M161167:user/release-keys
+8525f6d8251f71b7;MSM9077;unknown;SONY;XPERIA C4;E5303;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9077_6.0.1/MMB29M989411:user/release-keys
+8525f6d8251f71b7;MSM9078;unknown;SONY;XPERIA C4 DUAL;E5333;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9078_6.0.1/MMB29M9855288:user/release-keys
+8525f6d8251f71b7;MSM9079;unknown;SONY;XPERIA C4 DUAL E5343;E5343;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9079_6.0.1/MMB29M2291142:user/release-keys
+8525f6d8251f71b7;MSM9080;unknown;SONY;XPERIA C4 DUAL E5363;E5363;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9080_6.0.1/MMB29M8384528:user/release-keys
+8525f6d8251f71b7;MSM9081;unknown;SONY;XPERIA C4 E5306;E5306;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9081_6.0.1/MMB29M66930:user/release-keys
+8525f6d8251f71b7;MSM9082;unknown;SONY;XPERIA C4 E5353;E5353;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9082_6.0.1/MMB29M8971133:user/release-keys
+8525f6d8251f71b7;MSM9083;unknown;SONY;XPERIA C5 ULTRA;E5553;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9083_6.0.1/MMB29M7686697:user/release-keys
+8525f6d8251f71b7;MSM9084;unknown;SONY;XPERIA C5 ULTRA DUAL;E5533;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9084_6.0.1/MMB29M6171566:user/release-keys
+8525f6d8251f71b7;MSM9085;unknown;SONY;XPERIA C5 ULTRA DUAL E5563;E5563;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9085_6.0.1/MMB29M2720413:user/release-keys
+8525f6d8251f71b7;MSM9086;unknown;SONY;XPERIA C5 ULTRA E5506;E5506;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9086_6.0.1/MMB29M8174393:user/release-keys
+8525f6d8251f71b7;MSM9087;unknown;SONY;XPERIA C670X;C670X;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9087_6.0.1/MMB29M1645569:user/release-keys
+8525f6d8251f71b7;MSM9088;unknown;SONY;XPERIA E;C1505;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9088_6.0.1/MMB29M7062997:user/release-keys
+8525f6d8251f71b7;MSM9089;unknown;SONY;XPERIA E C1504;C1504;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9089_6.0.1/MMB29M3388147:user/release-keys
+8525f6d8251f71b7;MSM9090;unknown;SONY;XPERIA E DUAL;C1605;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9090_6.0.1/MMB29M8387235:user/release-keys
+8525f6d8251f71b7;MSM9091;unknown;SONY;XPERIA E DUAL C1604;C1604;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9091_6.0.1/MMB29M3818101:user/release-keys
+8525f6d8251f71b7;MSM9092;unknown;SONY;XPERIA E1;D2005;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9092_6.0.1/MMB29M3639035:user/release-keys
+8525f6d8251f71b7;MSM9093;unknown;SONY;XPERIA E1 2;XPERIA E1 2;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9093_6.0.1/MMB29M170303:user/release-keys
+8525f6d8251f71b7;MSM9094;unknown;SONY;XPERIA E1 D2004;D2004;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9094_6.0.1/MMB29M9004103:user/release-keys
+8525f6d8251f71b7;MSM9095;unknown;SONY;XPERIA E1 DUAL;D2104;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9095_6.0.1/MMB29M4743242:user/release-keys
+8525f6d8251f71b7;MSM9096;unknown;SONY;XPERIA E1 DUAL D2105;D2105;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9096_6.0.1/MMB29M371531:user/release-keys
+8525f6d8251f71b7;MSM9097;unknown;SONY;XPERIA E1 DUAL D2114;D2114;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9097_6.0.1/MMB29M5595186:user/release-keys
+8525f6d8251f71b7;MSM9098;unknown;SONY;XPERIA E3;D2202;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9098_6.0.1/MMB29M8770477:user/release-keys
+8525f6d8251f71b7;MSM9099;unknown;SONY;XPERIA E3 D2203;D2203;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9099_6.0.1/MMB29M7447329:user/release-keys
+8525f6d8251f71b7;MSM9100;unknown;SONY;XPERIA E3 D2206;D2206;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9100_6.0.1/MMB29M1781068:user/release-keys
+8525f6d8251f71b7;MSM9101;unknown;SONY;XPERIA E3 D2243;D2243;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9101_6.0.1/MMB29M9510632:user/release-keys
+8525f6d8251f71b7;MSM9102;unknown;SONY;XPERIA E3 DUAL;D2212;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9102_6.0.1/MMB29M5701079:user/release-keys
+8525f6d8251f71b7;MSM9103;unknown;SONY;XPERIA E4;E2104;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9103_6.0.1/MMB29M1265998:user/release-keys
+8525f6d8251f71b7;MSM9104;unknown;SONY;XPERIA E4 DUAL;E2114;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9104_6.0.1/MMB29M9838741:user/release-keys
+8525f6d8251f71b7;MSM9105;unknown;SONY;XPERIA E4 DUAL E2115;E2115;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9105_6.0.1/MMB29M4412668:user/release-keys
+8525f6d8251f71b7;MSM9106;unknown;SONY;XPERIA E4 E2105;E2105;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9106_6.0.1/MMB29M6373242:user/release-keys
+8525f6d8251f71b7;MSM9107;unknown;SONY;XPERIA E4G;E2003;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9107_6.0.1/MMB29M5826885:user/release-keys
+8525f6d8251f71b7;MSM9108;unknown;SONY;XPERIA E4G DUAL;E2033;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9108_6.0.1/MMB29M6198029:user/release-keys
+8525f6d8251f71b7;MSM9109;unknown;SONY;XPERIA E4G DUAL E2043;E2043;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9109_6.0.1/MMB29M9255982:user/release-keys
+8525f6d8251f71b7;MSM9110;unknown;SONY;XPERIA E4G DUAL E2063;E2063;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9110_6.0.1/MMB29M8537145:user/release-keys
+8525f6d8251f71b7;MSM9111;unknown;SONY;XPERIA E4G E2006;E2006;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9111_6.0.1/MMB29M6003982:user/release-keys
+8525f6d8251f71b7;MSM9112;unknown;SONY;XPERIA E4G E2053;E2053;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9112_6.0.1/MMB29M467595:user/release-keys
+8525f6d8251f71b7;MSM9113;unknown;SONY;XPERIA GO;ST27I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9113_6.0.1/MMB29M6797833:user/release-keys
+8525f6d8251f71b7;MSM9114;unknown;SONY;XPERIA GO ST27A;ST27A;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9114_6.0.1/MMB29M5874233:user/release-keys
+8525f6d8251f71b7;MSM9115;unknown;SONY;XPERIA GX;SO-04D;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9115_6.0.1/MMB29M4799220:user/release-keys
+8525f6d8251f71b7;MSM9116;unknown;SONY;XPERIA HATSUNE MIKU;XPERIA HATSUNE MIKU;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9116_6.0.1/MMB29M3457013:user/release-keys
+8525f6d8251f71b7;MSM9117;unknown;SONY;XPERIA ION HSPA;LT28H;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9117_6.0.1/MMB29M9559435:user/release-keys
+8525f6d8251f71b7;MSM9118;unknown;SONY;XPERIA ION LTE;LT28I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9118_6.0.1/MMB29M7787134:user/release-keys
+8525f6d8251f71b7;MSM9119;unknown;SONY;XPERIA ION LTE AT&T;LT28AT;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9119_6.0.1/MMB29M5993464:user/release-keys
+8525f6d8251f71b7;MSM9120;unknown;SONY;XPERIA J;ST26I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9120_6.0.1/MMB29M6855387:user/release-keys
+8525f6d8251f71b7;MSM9121;unknown;SONY;XPERIA J ST26A;ST26A;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9121_6.0.1/MMB29M929481:user/release-keys
+8525f6d8251f71b7;MSM9122;unknown;SONY;XPERIA L;C2105;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9122_6.0.1/MMB29M176116:user/release-keys
+8525f6d8251f71b7;MSM9123;unknown;SONY;XPERIA L C2104;C2104;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9123_6.0.1/MMB29M2030413:user/release-keys
+8525f6d8251f71b7;MSM9124;unknown;SONY;XPERIA M;C1904;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9124_6.0.1/MMB29M3759877:user/release-keys
+8525f6d8251f71b7;MSM9125;unknown;SONY;XPERIA M C1905;C1905;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9125_6.0.1/MMB29M921382:user/release-keys
+8525f6d8251f71b7;MSM9126;unknown;SONY;XPERIA M DUAL;C2005;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9126_6.0.1/MMB29M8956993:user/release-keys
+8525f6d8251f71b7;MSM9127;unknown;SONY;XPERIA M DUAL C2004;C2004;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9127_6.0.1/MMB29M1853897:user/release-keys
+8525f6d8251f71b7;MSM9128;unknown;SONY;XPERIA M2;D2303;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9128_6.0.1/MMB29M2520016:user/release-keys
+8525f6d8251f71b7;MSM9129;unknown;SONY;XPERIA M2 AQUA;D2403;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9129_6.0.1/MMB29M7184430:user/release-keys
+8525f6d8251f71b7;MSM9130;unknown;SONY;XPERIA M2 AQUA D2406;D2406;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9130_6.0.1/MMB29M8533216:user/release-keys
+8525f6d8251f71b7;MSM9131;unknown;SONY;XPERIA M2 D2305;D2305;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9131_6.0.1/MMB29M8953116:user/release-keys
+8525f6d8251f71b7;MSM9132;unknown;SONY;XPERIA M2 D2306;D2306;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9132_6.0.1/MMB29M6588648:user/release-keys
+8525f6d8251f71b7;MSM9133;unknown;SONY;XPERIA M2 DUAL;D2302;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9133_6.0.1/MMB29M3772399:user/release-keys
+8525f6d8251f71b7;MSM9134;unknown;SONY;XPERIA M2 DUAL S50H;S50H;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9134_6.0.1/MMB29M9639020:user/release-keys
+8525f6d8251f71b7;MSM9135;unknown;SONY;XPERIA M4 AQUA;E2303;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9135_6.0.1/MMB29M6008675:user/release-keys
+8525f6d8251f71b7;MSM9136;unknown;SONY;XPERIA M4 AQUA DUAL;E2312;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9136_6.0.1/MMB29M9957218:user/release-keys
+8525f6d8251f71b7;MSM9137;unknown;SONY;XPERIA M4 AQUA DUAL E2333;E2333;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9137_6.0.1/MMB29M209700:user/release-keys
+8525f6d8251f71b7;MSM9138;unknown;SONY;XPERIA M4 AQUA DUAL E2363;E2363;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9138_6.0.1/MMB29M8489219:user/release-keys
+8525f6d8251f71b7;MSM9139;unknown;SONY;XPERIA M4 AQUA E2302;E2302;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9139_6.0.1/MMB29M4003521:user/release-keys
+8525f6d8251f71b7;MSM9140;unknown;SONY;XPERIA M4 AQUA E2306;E2306;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9140_6.0.1/MMB29M5324429:user/release-keys
+8525f6d8251f71b7;MSM9141;unknown;SONY;XPERIA M4 AQUA E2353;E2353;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9141_6.0.1/MMB29M7049232:user/release-keys
+8525f6d8251f71b7;MSM9142;unknown;SONY;XPERIA M5;E5603;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9142_6.0.1/MMB29M3323369:user/release-keys
+8525f6d8251f71b7;MSM9143;unknown;SONY;XPERIA M5 DUAL;E5633;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9143_6.0.1/MMB29M4557066:user/release-keys
+8525f6d8251f71b7;MSM9144;unknown;SONY;XPERIA M5 DUAL E5643;E5643;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9144_6.0.1/MMB29M3873786:user/release-keys
+8525f6d8251f71b7;MSM9145;unknown;SONY;XPERIA M5 DUAL E5663;E5663;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9145_6.0.1/MMB29M7411804:user/release-keys
+8525f6d8251f71b7;MSM9146;unknown;SONY;XPERIA M5 E5606;E5606;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9146_6.0.1/MMB29M5020978:user/release-keys
+8525f6d8251f71b7;MSM9147;unknown;SONY;XPERIA M5 E5653;E5653;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9147_6.0.1/MMB29M6955798:user/release-keys
+8525f6d8251f71b7;MSM9148;unknown;SONY;XPERIA MIRO;ST23I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9148_6.0.1/MMB29M7134484:user/release-keys
+8525f6d8251f71b7;MSM9149;unknown;SONY;XPERIA MIRO ST23A;ST23A;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9149_6.0.1/MMB29M6650371:user/release-keys
+8525f6d8251f71b7;MSM9150;unknown;SONY;XPERIA NEO L;MT25I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9150_6.0.1/MMB29M5055664:user/release-keys
+8525f6d8251f71b7;MSM9151;unknown;SONY;XPERIA P;LT22I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9151_6.0.1/MMB29M8413919:user/release-keys
+8525f6d8251f71b7;MSM9152;unknown;SONY;XPERIA S;LT26I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9152_6.0.1/MMB29M9252542:user/release-keys
+8525f6d8251f71b7;MSM9153;unknown;SONY;XPERIA SL;LT26II;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9153_6.0.1/MMB29M2359701:user/release-keys
+8525f6d8251f71b7;MSM9154;unknown;SONY;XPERIA SOLA;MT27I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9154_6.0.1/MMB29M4351525:user/release-keys
+8525f6d8251f71b7;MSM9155;unknown;SONY;XPERIA SP;C5302;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9155_6.0.1/MMB29M5897177:user/release-keys
+8525f6d8251f71b7;MSM9156;unknown;SONY;XPERIA SP C5306;C5306;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9156_6.0.1/MMB29M7348293:user/release-keys
+8525f6d8251f71b7;MSM9157;unknown;SONY;XPERIA SP CDMA;M35C;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9157_6.0.1/MMB29M6820393:user/release-keys
+8525f6d8251f71b7;MSM9158;unknown;SONY;XPERIA SP LTE;C5303;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9158_6.0.1/MMB29M5001571:user/release-keys
+8525f6d8251f71b7;MSM9159;unknown;SONY;XPERIA SP M35TS;M35TS;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9159_6.0.1/MMB29M387708:user/release-keys
+8525f6d8251f71b7;MSM9160;unknown;SONY;XPERIA SP TD-LTE;M35T;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9160_6.0.1/MMB29M4494155:user/release-keys
+8525f6d8251f71b7;MSM9161;unknown;SONY;XPERIA SX;SO-05D;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9161_6.0.1/MMB29M2154321:user/release-keys
+8525f6d8251f71b7;MSM9162;unknown;SONY;XPERIA T;LT30P;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9162_6.0.1/MMB29M3616009:user/release-keys
+8525f6d8251f71b7;MSM9163;unknown;SONY;XPERIA T LTE;LT30A;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9163_6.0.1/MMB29M6792862:user/release-keys
+8525f6d8251f71b7;MSM9164;unknown;SONY;XPERIA T2 ULTRA;D5303;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9164_6.0.1/MMB29M7182407:user/release-keys
+8525f6d8251f71b7;MSM9165;unknown;SONY;XPERIA T2 ULTRA D5306;D5306;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9165_6.0.1/MMB29M9128368:user/release-keys
+8525f6d8251f71b7;MSM9166;unknown;SONY;XPERIA T2 ULTRA D5316;D5316;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9166_6.0.1/MMB29M4903606:user/release-keys
+8525f6d8251f71b7;MSM9167;unknown;SONY;XPERIA T2 ULTRA DUAL;D5322;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9167_6.0.1/MMB29M3607850:user/release-keys
+8525f6d8251f71b7;MSM9168;unknown;SONY;XPERIA T2 ULTRA DUAL XM50H;XM50H;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9168_6.0.1/MMB29M7243830:user/release-keys
+8525f6d8251f71b7;MSM9169;unknown;SONY;XPERIA T2 ULTRA XM50T;XM50T;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9169_6.0.1/MMB29M7944973:user/release-keys
+8525f6d8251f71b7;MSM9170;unknown;SONY;XPERIA T3;D5103;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9170_6.0.1/MMB29M3509592:user/release-keys
+8525f6d8251f71b7;MSM9171;unknown;SONY;XPERIA T3 D5102;D5102;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9171_6.0.1/MMB29M1727661:user/release-keys
+8525f6d8251f71b7;MSM9172;unknown;SONY;XPERIA T3 D5106;D5106;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9172_6.0.1/MMB29M2630083:user/release-keys
+8525f6d8251f71b7;MSM9173;unknown;SONY;XPERIA T3 M50W;M50W;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9173_6.0.1/MMB29M7847693:user/release-keys
+8525f6d8251f71b7;MSM9174;unknown;SONY;XPERIA TABLET S;XPERIA TABLET S;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9174_6.0.1/MMB29M2081876:user/release-keys
+8525f6d8251f71b7;MSM9175;unknown;SONY;XPERIA TABLET S 3G;SGPT131A1;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9175_6.0.1/MMB29M3491021:user/release-keys
+8525f6d8251f71b7;MSM9176;unknown;SONY;XPERIA TABLET Z;SGP321;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9176_6.0.1/MMB29M6232868:user/release-keys
+8525f6d8251f71b7;MSM9177;unknown;SONY;XPERIA TABLET Z SGP341;SGP341;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9177_6.0.1/MMB29M5810479:user/release-keys
+8525f6d8251f71b7;MSM9178;unknown;SONY;XPERIA TABLET Z SGP351;SGP351;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9178_6.0.1/MMB29M8635726:user/release-keys
+8525f6d8251f71b7;MSM9179;unknown;SONY;XPERIA TABLET Z SO-03E;SO-03E;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9179_6.0.1/MMB29M584857:user/release-keys
+8525f6d8251f71b7;MSM9180;unknown;SONY;XPERIA TABLET Z WIFI;SGP311;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9180_6.0.1/MMB29M4689716:user/release-keys
+8525f6d8251f71b7;MSM9181;unknown;SONY;XPERIA TIPO;ST21I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9181_6.0.1/MMB29M5045743:user/release-keys
+8525f6d8251f71b7;MSM9182;unknown;SONY;XPERIA TIPO DUAL;ST21A2;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9182_6.0.1/MMB29M8144852:user/release-keys
+8525f6d8251f71b7;MSM9183;unknown;SONY;XPERIA TIPO DUAL ST21I2;ST21I2;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9183_6.0.1/MMB29M5255164:user/release-keys
+8525f6d8251f71b7;MSM9184;unknown;SONY;XPERIA TIPO ST21A;ST21A;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9184_6.0.1/MMB29M9273122:user/release-keys
+8525f6d8251f71b7;MSM9185;unknown;SONY;XPERIA TL;LT30AT;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9185_6.0.1/MMB29M630184:user/release-keys
+8525f6d8251f71b7;MSM9186;unknown;SONY;XPERIA TX;LT29I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9186_6.0.1/MMB29M305568:user/release-keys
+8525f6d8251f71b7;MSM9187;unknown;SONY;XPERIA U;ST25A;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9187_6.0.1/MMB29M6100476:user/release-keys
+8525f6d8251f71b7;MSM9188;unknown;SONY;XPERIA U ST25I;ST25I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9188_6.0.1/MMB29M3699072:user/release-keys
+8525f6d8251f71b7;MSM9189;unknown;SONY;XPERIA UL;SOL22;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9189_6.0.1/MMB29M1536325:user/release-keys
+8525f6d8251f71b7;MSM9190;unknown;SONY;XPERIA V;LT25I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9190_6.0.1/MMB29M714740:user/release-keys
+8525f6d8251f71b7;MSM9191;unknown;SONY;XPERIA VC;LT25C;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9191_6.0.1/MMB29M5564564:user/release-keys
+8525f6d8251f71b7;MSM9192;unknown;SONY;XPERIA VL;CDMA SOL21;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9192_6.0.1/MMB29M9383871:user/release-keys
+8525f6d8251f71b7;MSM9193;unknown;SONY;XPERIA Z;C6602;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9193_6.0.1/MMB29M3047868:user/release-keys
+8525f6d8251f71b7;MSM9194;unknown;SONY;XPERIA Z C6616;C6616;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9194_6.0.1/MMB29M6944381:user/release-keys
+8525f6d8251f71b7;MSM9195;unknown;SONY;XPERIA Z L36H;L36H;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9195_6.0.1/MMB29M3847706:user/release-keys
+8525f6d8251f71b7;MSM9196;unknown;SONY;XPERIA Z LTE;C6603;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9196_6.0.1/MMB29M9243340:user/release-keys
+8525f6d8251f71b7;MSM9197;unknown;SONY;XPERIA Z SO-02E;SO-02E;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9197_6.0.1/MMB29M3725877:user/release-keys
+8525f6d8251f71b7;MSM9198;unknown;SONY;XPERIA Z T-MOBILE;C6606;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9198_6.0.1/MMB29M121795:user/release-keys
+8525f6d8251f71b7;MSM9199;unknown;SONY;XPERIA Z ULTRA;C6833;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9199_6.0.1/MMB29M2937963:user/release-keys
+8525f6d8251f71b7;MSM9200;unknown;SONY;XPERIA Z ULTRA C6802;C6802;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9200_6.0.1/MMB29M3587773:user/release-keys
+8525f6d8251f71b7;MSM9201;unknown;SONY;XPERIA Z ULTRA C6806;C6806;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9201_6.0.1/MMB29M6197475:user/release-keys
+8525f6d8251f71b7;MSM9202;unknown;SONY;XPERIA Z ULTRA C6843;C6843;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9202_6.0.1/MMB29M6265532:user/release-keys
+8525f6d8251f71b7;MSM9203;unknown;SONY;XPERIA Z ULTRA SOL24;SOL24;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9203_6.0.1/MMB29M7296627:user/release-keys
+8525f6d8251f71b7;MSM9204;unknown;SONY;XPERIA Z ULTRA XL39H;XL39H;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9204_6.0.1/MMB29M2855540:user/release-keys
+8525f6d8251f71b7;MSM9205;unknown;SONY;XPERIA Z1;C6902;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9205_6.0.1/MMB29M5049127:user/release-keys
+8525f6d8251f71b7;MSM9206;unknown;SONY;XPERIA Z1 C6903;C6903;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9206_6.0.1/MMB29M780779:user/release-keys
+8525f6d8251f71b7;MSM9207;unknown;SONY;XPERIA Z1 C6906;C6906;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9207_6.0.1/MMB29M2643202:user/release-keys
+8525f6d8251f71b7;MSM9208;unknown;SONY;XPERIA Z1 C6943;C6943;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9208_6.0.1/MMB29M156386:user/release-keys
+8525f6d8251f71b7;MSM9209;unknown;SONY;XPERIA Z1 COMPACT;D5503;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9209_6.0.1/MMB29M7728763:user/release-keys
+8525f6d8251f71b7;MSM9210;unknown;SONY;XPERIA Z1 COMPACT M51W;M51W;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9210_6.0.1/MMB29M5791037:user/release-keys
+8525f6d8251f71b7;MSM9211;unknown;SONY;XPERIA Z1 L39T;L39T;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9211_6.0.1/MMB29M2294101:user/release-keys
+8525f6d8251f71b7;MSM9212;unknown;SONY;XPERIA Z1 L39U;L39U;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9212_6.0.1/MMB29M4910415:user/release-keys
+8525f6d8251f71b7;MSM9213;unknown;SONY;XPERIA Z1 SO-01F;SO-01F;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9213_6.0.1/MMB29M6897522:user/release-keys
+8525f6d8251f71b7;MSM9214;unknown;SONY;XPERIA Z1 SOL23;SOL23;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9214_6.0.1/MMB29M3876478:user/release-keys
+8525f6d8251f71b7;MSM9215;unknown;SONY;XPERIA Z1F;SO-02F;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9215_6.0.1/MMB29M4598396:user/release-keys
+8525f6d8251f71b7;MSM9216;unknown;SONY;XPERIA Z1S;C6916;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9216_6.0.1/MMB29M440255:user/release-keys
+8525f6d8251f71b7;MSM9217;unknown;SONY;XPERIA Z2;D6502;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9217_6.0.1/MMB29M6823410:user/release-keys
+8525f6d8251f71b7;MSM9218;unknown;SONY;XPERIA Z2 D6503;D6503;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9218_6.0.1/MMB29M6966119:user/release-keys
+8525f6d8251f71b7;MSM9219;unknown;SONY;XPERIA Z2 D6543;D6543;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9219_6.0.1/MMB29M5969972:user/release-keys
+8525f6d8251f71b7;MSM9220;unknown;SONY;XPERIA Z2 L50T;L50T;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9220_6.0.1/MMB29M5643540:user/release-keys
+8525f6d8251f71b7;MSM9221;unknown;SONY;XPERIA Z2 L50U;L50U;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9221_6.0.1/MMB29M211937:user/release-keys
+8525f6d8251f71b7;MSM9222;unknown;SONY;XPERIA Z2 SO-03F;SO-03F;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9222_6.0.1/MMB29M3150989:user/release-keys
+8525f6d8251f71b7;MSM9223;unknown;SONY;XPERIA Z2 TABLET;SGP541;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9223_6.0.1/MMB29M8122081:user/release-keys
+8525f6d8251f71b7;MSM9224;unknown;SONY;XPERIA Z2 TABLET SGP521;SGP521;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9224_6.0.1/MMB29M466706:user/release-keys
+8525f6d8251f71b7;MSM9225;unknown;SONY;XPERIA Z2 TABLET SGP551;SGP551;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9225_6.0.1/MMB29M1224050:user/release-keys
+8525f6d8251f71b7;MSM9226;unknown;SONY;XPERIA Z2 TABLET SGP561;SGP561;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9226_6.0.1/MMB29M1292340:user/release-keys
+8525f6d8251f71b7;MSM9227;unknown;SONY;XPERIA Z2 TABLET SO-05F;SO-05F;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9227_6.0.1/MMB29M1703500:user/release-keys
+8525f6d8251f71b7;MSM9228;unknown;SONY;XPERIA Z2 TABLET SOT21;SOT21;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9228_6.0.1/MMB29M9472814:user/release-keys
+8525f6d8251f71b7;MSM9229;unknown;SONY;XPERIA Z2 TABLET WI-FI 16 GB;SGP511;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9229_6.0.1/MMB29M9759590:user/release-keys
+8525f6d8251f71b7;MSM9230;unknown;SONY;XPERIA Z2 TABLET WI-FI 32 GB;SGP512;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9230_6.0.1/MMB29M9017223:user/release-keys
+8525f6d8251f71b7;MSM9231;unknown;SONY;XPERIA Z2A;D6563;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9231_6.0.1/MMB29M3671993:user/release-keys
+8525f6d8251f71b7;MSM9232;unknown;SONY;XPERIA Z3;D6603;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9232_6.0.1/MMB29M5098013:user/release-keys
+8525f6d8251f71b7;MSM9233;unknown;SONY;XPERIA Z3 401SO;401SO;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9233_6.0.1/MMB29M4426095:user/release-keys
+8525f6d8251f71b7;MSM9234;unknown;SONY;XPERIA Z3 COMPACT;D5803;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9234_6.0.1/MMB29M322858:user/release-keys
+8525f6d8251f71b7;MSM9235;unknown;SONY;XPERIA Z3 COMPACT D5833;D5833;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9235_6.0.1/MMB29M815933:user/release-keys
+8525f6d8251f71b7;MSM9236;unknown;SONY;XPERIA Z3 COMPACT SO-02G;SO-02G;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9236_6.0.1/MMB29M9090777:user/release-keys
+8525f6d8251f71b7;MSM9237;unknown;SONY;XPERIA Z3 D6616;D6616;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9237_6.0.1/MMB29M2417629:user/release-keys
+8525f6d8251f71b7;MSM9238;unknown;SONY;XPERIA Z3 D6643;D6643;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9238_6.0.1/MMB29M4995258:user/release-keys
+8525f6d8251f71b7;MSM9239;unknown;SONY;XPERIA Z3 D6653;D6653;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9239_6.0.1/MMB29M419535:user/release-keys
+8525f6d8251f71b7;MSM9240;unknown;SONY;XPERIA Z3 DUAL;D6633;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9240_6.0.1/MMB29M5509237:user/release-keys
+8525f6d8251f71b7;MSM9241;unknown;SONY;XPERIA Z3 L55T;L55T;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9241_6.0.1/MMB29M1099541:user/release-keys
+8525f6d8251f71b7;MSM9242;unknown;SONY;XPERIA Z3 L55U;L55U;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9242_6.0.1/MMB29M2292750:user/release-keys
+8525f6d8251f71b7;MSM9243;unknown;SONY;XPERIA Z3 SO-01G;SO-01G;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9243_6.0.1/MMB29M6187719:user/release-keys
+8525f6d8251f71b7;MSM9244;unknown;SONY;XPERIA Z3 SOL26;SOL26;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9244_6.0.1/MMB29M1841709:user/release-keys
+8525f6d8251f71b7;MSM9245;unknown;SONY;XPERIA Z3 TABLET COMPACT;SGP621;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9245_6.0.1/MMB29M8970664:user/release-keys
+8525f6d8251f71b7;MSM9246;unknown;SONY;XPERIA Z3 TABLET COMPACT 16GB;SGP611;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9246_6.0.1/MMB29M6762982:user/release-keys
+8525f6d8251f71b7;MSM9247;unknown;SONY;XPERIA Z3 TABLET COMPACT 32GB;SGP612;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9247_6.0.1/MMB29M6300837:user/release-keys
+8525f6d8251f71b7;MSM9248;unknown;SONY;XPERIA Z3 TABLET COMPACT SGP641;SGP641;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9248_6.0.1/MMB29M6195639:user/release-keys
+8525f6d8251f71b7;MSM9249;unknown;SONY;XPERIA Z3+;E6553;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9249_6.0.1/MMB29M7337663:user/release-keys
+8525f6d8251f71b7;MSM9250;unknown;SONY;XPERIA Z3+ DUAL;E6533;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9250_6.0.1/MMB29M4819254:user/release-keys
+8525f6d8251f71b7;MSM9251;unknown;SONY;XPERIA Z3V;D6708;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9251_6.0.1/MMB29M3188557:user/release-keys
+8525f6d8251f71b7;MSM9252;unknown;SONY;XPERIA Z4;402SO;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9252_6.0.1/MMB29M5632249:user/release-keys
+8525f6d8251f71b7;MSM9253;unknown;SONY;XPERIA Z4 COMPACT;XPERIA Z4 COMPACT;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9253_6.0.1/MMB29M7975956:user/release-keys
+8525f6d8251f71b7;MSM9254;unknown;SONY;XPERIA Z4 SO-03G;SO-03G;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9254_6.0.1/MMB29M4740199:user/release-keys
+8525f6d8251f71b7;MSM9255;unknown;SONY;XPERIA Z4 SOV31;SOV31;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9255_6.0.1/MMB29M5694537:user/release-keys
+8525f6d8251f71b7;MSM9256;unknown;SONY;XPERIA Z4 TABLET;SGP771;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9256_6.0.1/MMB29M8888332:user/release-keys
+8525f6d8251f71b7;MSM9257;unknown;SONY;XPERIA Z4 TABLET SO-05G;SO-05G;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9257_6.0.1/MMB29M404607:user/release-keys
+8525f6d8251f71b7;MSM9258;unknown;SONY;XPERIA Z4 TABLET SOT31;SOT31;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9258_6.0.1/MMB29M9642827:user/release-keys
+8525f6d8251f71b7;MSM9259;unknown;SONY;XPERIA Z4 TABLET WIFI;SGP712;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9259_6.0.1/MMB29M4667580:user/release-keys
+8525f6d8251f71b7;MSM9260;unknown;SONY;XPERIA Z4 ULTRA;XPERIA Z4 ULTRA;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9260_6.0.1/MMB29M4390310:user/release-keys
+8525f6d8251f71b7;MSM9261;unknown;SONY;XPERIA Z4V;E6508;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9261_6.0.1/MMB29M2481319:user/release-keys
+8525f6d8251f71b7;MSM9262;unknown;SONY;XPERIA Z5;E6603;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9262_6.0.1/MMB29M3132759:user/release-keys
+8525f6d8251f71b7;MSM9263;unknown;SONY;XPERIA Z5 501SO;501SO;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9263_6.0.1/MMB29M2598656:user/release-keys
+8525f6d8251f71b7;MSM9264;unknown;SONY;XPERIA Z5 COMPACT;E5803;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9264_6.0.1/MMB29M4821528:user/release-keys
+8525f6d8251f71b7;MSM9265;unknown;SONY;XPERIA Z5 COMPACT E5823;E5823;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9265_6.0.1/MMB29M7188322:user/release-keys
+8525f6d8251f71b7;MSM9266;unknown;SONY;XPERIA Z5 COMPACT SO-02H;SO-02H;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9266_6.0.1/MMB29M9649438:user/release-keys
+8525f6d8251f71b7;MSM9267;unknown;SONY;XPERIA Z5 DUAL;E6633;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9267_6.0.1/MMB29M5632613:user/release-keys
+8525f6d8251f71b7;MSM9268;unknown;SONY;XPERIA Z5 DUAL E6683;E6683;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9268_6.0.1/MMB29M8768478:user/release-keys
+8525f6d8251f71b7;MSM9269;unknown;SONY;XPERIA Z5 E6653;E6653;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9269_6.0.1/MMB29M6635259:user/release-keys
+8525f6d8251f71b7;MSM9270;unknown;SONY;XPERIA Z5 PREMIUM;E6853;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9270_6.0.1/MMB29M7242512:user/release-keys
+8525f6d8251f71b7;MSM9271;unknown;SONY;XPERIA Z5 PREMIUM DUAL;E6833;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9271_6.0.1/MMB29M2262584:user/release-keys
+8525f6d8251f71b7;MSM9272;unknown;SONY;XPERIA Z5 PREMIUM DUAL E6883;E6883;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9272_6.0.1/MMB29M2773137:user/release-keys
+8525f6d8251f71b7;MSM9273;unknown;SONY;XPERIA Z5 PREMIUM SO-03H;SO-03H;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9273_6.0.1/MMB29M9806090:user/release-keys
+8525f6d8251f71b7;MSM9274;unknown;SONY;XPERIA Z5 SO-01H;SO-01H;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9274_6.0.1/MMB29M1268606:user/release-keys
+8525f6d8251f71b7;MSM9275;unknown;SONY;XPERIA Z5 SOV32;SOV32;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9275_6.0.1/MMB29M7563623:user/release-keys
+8525f6d8251f71b7;MSM9276;unknown;SONY;XPERIA ZL;C6502;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9276_6.0.1/MMB29M4585370:user/release-keys
+8525f6d8251f71b7;MSM9277;unknown;SONY;XPERIA ZL C6503;C6503;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9277_6.0.1/MMB29M4366196:user/release-keys
+8525f6d8251f71b7;MSM9278;unknown;SONY;XPERIA ZL C6506;C6506;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9278_6.0.1/MMB29M1535698:user/release-keys
+8525f6d8251f71b7;MSM9279;unknown;SONY;XPERIA ZL2;SOL25;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9279_6.0.1/MMB29M8681975:user/release-keys
+8525f6d8251f71b7;MSM9280;unknown;SONY;XPERIA ZR;C5502;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9280_6.0.1/MMB29M7549891:user/release-keys
+8525f6d8251f71b7;MSM9281;unknown;SONY;XPERIA ZR LTE;C5503;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9281_6.0.1/MMB29M5791383:user/release-keys
diff --git a/PokemonGo/RocketAPI/Window/RouteOptimizer.cs b/src/RocketBotGUI/RouteOptimizer.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Window/RouteOptimizer.cs
rename to src/RocketBotGUI/RouteOptimizer.cs
diff --git a/PokemonGo/RocketAPI/Window/S2GMapDrawer.cs b/src/RocketBotGUI/S2GMapDrawer.cs
similarity index 100%
rename from PokemonGo/RocketAPI/Window/S2GMapDrawer.cs
rename to src/RocketBotGUI/S2GMapDrawer.cs
diff --git a/PokemonGo/RocketAPI/Window/Settings.cs b/src/RocketBotGUI/Settings.cs
similarity index 53%
rename from PokemonGo/RocketAPI/Window/Settings.cs
rename to src/RocketBotGUI/Settings.cs
index 2d40e62..4c947eb 100644
--- a/PokemonGo/RocketAPI/Window/Settings.cs
+++ b/src/RocketBotGUI/Settings.cs
@@ -1,13 +1,14 @@
#region
+using POGOProtos.Enums;
+using POGOProtos.Inventory.Item;
+using PokemonGo.RocketAPI.Enums;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Globalization;
using System.Runtime.CompilerServices;
using System.Threading;
-using PokemonGo.RocketAPI.Enums;
-using POGOProtos.Inventory.Item;
#endregion
@@ -61,7 +62,6 @@ namespace PokemonGo.RocketAPI.Window
public string PtcUsername => GetSetting() != string.Empty ? GetSetting() : "username";
public string PtcPassword => GetSetting() != string.Empty ? GetSetting() : "password";
-
public string LevelOutput => GetSetting() != string.Empty ? GetSetting() : "time";
public int LevelTimeInterval => GetSetting() != string.Empty ? Convert.ToInt16(GetSetting()) : 600;
@@ -98,17 +98,179 @@ namespace PokemonGo.RocketAPI.Window
public string Language => GetSetting() != string.Empty ? GetSetting() : "english";
- public string RazzBerryMode => GetSetting() != string.Empty ? GetSetting() : "cp";
+ public string RazzBerryMode => GetSetting() != string.Empty ? GetSetting() : "CP";
+
+ public string UseIncubatorsMode => GetSetting() != string.Empty ? GetSetting() : "Disabled";
public double RazzBerrySetting
=> GetSetting() != string.Empty ? double.Parse(GetSetting(), CultureInfo.InvariantCulture) : 500;
+ public List<ItemData> ItemCounts
+ {
+ get
+ {
+ var itemCounts = new List<ItemData>();
+ var items = GetSetting() != String.Empty ? GetSetting() :
+ "ItemPokeball,100;ItemGreatBall,100;ItemUltraBall,50;ItemRazzBerry,25;ItemPotion,0;ItemSuperPotion,0;ItemHyperPotion,10;ItemMaxPotion,20;ItemRevive,10;ItemMaxRevive,10";
+ if (items.Contains(";"))
+ {
+ foreach (var item in items.Split(';'))
+ {
+ if (item.Contains(","))
+ {
+ var itemId = item.Split(',')[0];
+ var count = Int32.Parse(item.Split(',')[1]);
+ foreach (ItemId id in Enum.GetValues(typeof(ItemId)))
+ {
+ if (id.ToString().Equals(itemId))
+ {
+ ItemData itemData = new ItemData();
+ itemData.ItemId = id;
+ itemData.Count = count;
+ itemCounts.Add(itemData);
+ break;
+ }
+ }
+ }
+ }
+ }
+ return itemCounts;
+ }
+
+ set
+ {
+ var items = "";
+ foreach (var itemData in value)
+ {
+ items += itemData.ItemId.ToString() + "," + itemData.Count + ";";
+ }
+ if (items != string.Empty)
+ {
+ items = items.Remove(items.Length - 1, 1);
+ }
+ SetSetting(items);
+ }
+ }
+
+ public List<PokemonId> ExcludedPokemonCatch
+ {
+ get
+ {
+ var pokemonIdList = new List<PokemonId>();
+ var pokemons = GetSetting();
+ if (pokemons.Contains(","))
+ {
+ foreach (var pokemon in pokemons.Split(','))
+ {
+ foreach (PokemonId id in Enum.GetValues(typeof(PokemonId)))
+ {
+ if (id.ToString().Equals(pokemon))
+ {
+ pokemonIdList.Add(id);
+ break;
+ }
+ }
+ }
+ }
+ return pokemonIdList;
+ }
+
+ set
+ {
+ var pokemonIds = "";
+ foreach (var pokemonId in value)
+ {
+ pokemonIds += pokemonId + ",";
+ }
+ if (pokemonIds != string.Empty)
+ {
+ pokemonIds = pokemonIds.Remove(pokemonIds.Length - 1, 1);
+ }
+ SetSetting(pokemonIds);
+ }
+ }
+
+ public List<PokemonId> ExcludedPokemonTransfer
+ {
+ get
+ {
+ var pokemonIdList = new List<PokemonId>();
+ var pokemons = GetSetting();
+ if (pokemons.Contains(","))
+ {
+ foreach (var pokemon in pokemons.Split(','))
+ {
+ foreach (PokemonId id in Enum.GetValues(typeof(PokemonId)))
+ {
+ if (id.ToString().Equals(pokemon))
+ {
+ pokemonIdList.Add(id);
+ break;
+ }
+ }
+ }
+ }
+ return pokemonIdList;
+ }
+
+ set
+ {
+ var pokemonIds = "";
+ foreach (var pokemonId in value)
+ {
+ pokemonIds += pokemonId + ",";
+ }
+ if (pokemonIds != string.Empty)
+ {
+ pokemonIds = pokemonIds.Remove(pokemonIds.Length - 1, 1);
+ }
+ SetSetting(pokemonIds);
+ }
+ }
+
+ public List<PokemonId> ExcludedPokemonEvolve
+ {
+ get
+ {
+ var pokemonIdList = new List<PokemonId>();
+ var pokemons = GetSetting();
+ if (pokemons.Contains(","))
+ {
+ foreach (var pokemon in pokemons.Split(','))
+ {
+ foreach (PokemonId id in Enum.GetValues(typeof(PokemonId)))
+ {
+ if (id.ToString().Equals(pokemon))
+ {
+ pokemonIdList.Add(id);
+ break;
+ }
+ }
+ }
+ }
+ return pokemonIdList;
+ }
+
+ set
+ {
+ var pokemonIds = "";
+ foreach (var pokemonId in value)
+ {
+ pokemonIds += pokemonId + ",";
+ }
+ if (pokemonIds != string.Empty)
+ {
+ pokemonIds = pokemonIds.Remove(pokemonIds.Length - 1, 1);
+ }
+ SetSetting(pokemonIds);
+ }
+ }
public AuthType AuthType
{
get
{
- return (GetSetting() != string.Empty ? GetSetting() : "Ptc") == "Ptc" ? AuthType.Ptc : AuthType.Google;
+ return (GetSetting() != string.Empty ? GetSetting() : "PTC") == "PTC" ? AuthType.Ptc : AuthType.Google;
}
set { SetSetting(value.ToString()); }
}
@@ -122,7 +284,6 @@ namespace PokemonGo.RocketAPI.Window
set { SetSetting(value); }
}
-
public double DefaultLongitude
{
get
@@ -173,93 +334,98 @@ namespace PokemonGo.RocketAPI.Window
public string DeviceId
{
- get { return "529e8aa6201f78b5"; }
+ get { return GetSetting() != string.Empty ? GetSetting() : "8525f6d8251f71b7"; }
- set { throw new NotImplementedException(); }
+ set { SetSetting(value); }
}
public string AndroidBoardName
{
- get { return "msm8994"; }
+ get { return GetSetting() != string.Empty ? GetSetting() : "msm8994"; }
- set { throw new NotImplementedException(); }
+ set { SetSetting(value); }
}
public string AndroidBootloader
{
- get { return "unknown"; }
+ get { return GetSetting() != string.Empty ? GetSetting() : "unknown"; }
- set { throw new NotImplementedException(); }
+ set { SetSetting(value); }
}
public string DeviceBrand
{
- get { return "OnePlus"; }
+ get { return GetSetting() != string.Empty ? GetSetting() : "OnePlus"; }
- set { throw new NotImplementedException(); }
+ set { SetSetting(value); }
}
public string DeviceModel
{
- get { return "OnePlus2"; }
+ get { return GetSetting() != string.Empty ? GetSetting() : "OnePlus2"; }
- set { throw new NotImplementedException(); }
+ set { SetSetting(value); }
}
public string DeviceModelIdentifier
{
- get { return "ONE A2003_24_160604"; }
+ get { return GetSetting() != string.Empty ? GetSetting() : "ONE A2003_24_160604"; }
- set { throw new NotImplementedException(); }
+ set { SetSetting(value); }
}
public string DeviceModelBoot
{
- get { return "qcom"; }
+ get { return GetSetting() != string.Empty ? GetSetting() : "qcom"; }
- set { throw new NotImplementedException(); }
+ set { SetSetting(value); }
}
public string HardwareManufacturer
{
- get { return "OnePlus"; }
+ get { return GetSetting() != string.Empty ? GetSetting() : "OnePlus"; }
- set { throw new NotImplementedException(); }
+ set { SetSetting(value); }
}
public string HardwareModel
{
- get { return "ONE A2003"; }
+ get { return GetSetting() != string.Empty ? GetSetting() : "ONE A2003"; }
- set { throw new NotImplementedException(); }
+ set { SetSetting(value); }
}
public string FirmwareBrand
{
- get { return "OnePlus2"; }
+ get { return GetSetting() != string.Empty ? GetSetting() : "OnePlus2"; }
- set { throw new NotImplementedException(); }
+ set { SetSetting(value); }
}
public string FirmwareTags
{
- get { return "dev-keys"; }
+ get { return GetSetting() != string.Empty ? GetSetting() : "dev-keys"; }
- set { throw new NotImplementedException(); }
+ set { SetSetting(value); }
}
public string FirmwareType
{
- get { return "user"; }
+ get { return GetSetting() != string.Empty ? GetSetting() : "user"; }
- set { throw new NotImplementedException(); }
+ set { SetSetting(value); }
}
public string FirmwareFingerprint
{
- get { return "OnePlus/OnePlus2/OnePlus2:6.0.1/MMB29M/1447840820:user/release-keys"; }
+ get
+ {
+ return GetSetting() != string.Empty
+ ? GetSetting()
+ : "OnePlus/OnePlus2/OnePlus2:6.0.1/MMB29M/1447840820:user/release-keys";
+ }
- set { throw new NotImplementedException(); }
+ set { SetSetting(value); }
}
public void Reload()
@@ -284,7 +450,7 @@ namespace PokemonGo.RocketAPI.Window
public void SetSetting(double value, [CallerMemberName] string key = null)
{
- var customCulture = (CultureInfo) Thread.CurrentThread.CurrentCulture.Clone();
+ var customCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
customCulture.NumberFormat.NumberDecimalSeparator = ".";
Thread.CurrentThread.CurrentCulture = customCulture;
var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
diff --git a/src/RocketBotGUI/SettingsForm.Designer.cs b/src/RocketBotGUI/SettingsForm.Designer.cs
new file mode 100644
index 0000000..59a3b6f
--- /dev/null
+++ b/src/RocketBotGUI/SettingsForm.Designer.cs
@@ -0,0 +1,1179 @@
+using System.Drawing;
+namespace PokemonGo.RocketAPI.Window
+{
+ partial class SettingsForm
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form 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()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SettingsForm));
+ this.authTypeLabel = new System.Windows.Forms.Label();
+ this.authTypeCb = new System.Windows.Forms.ComboBox();
+ this.UserLabel = new System.Windows.Forms.Label();
+ this.PasswordLabel = new System.Windows.Forms.Label();
+ this.latLabel = new System.Windows.Forms.Label();
+ this.longiLabel = new System.Windows.Forms.Label();
+ this.label1 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.label3 = new System.Windows.Forms.Label();
+ this.label4 = new System.Windows.Forms.Label();
+ this.label5 = new System.Windows.Forms.Label();
+ this.UserLoginBox = new System.Windows.Forms.TextBox();
+ this.UserPasswordBox = new System.Windows.Forms.TextBox();
+ this.latitudeText = new System.Windows.Forms.TextBox();
+ this.longitudeText = new System.Windows.Forms.TextBox();
+ this.razzmodeCb = new System.Windows.Forms.ComboBox();
+ this.razzSettingText = new System.Windows.Forms.TextBox();
+ this.transferTypeCb = new System.Windows.Forms.ComboBox();
+ this.transferCpThresText = new System.Windows.Forms.TextBox();
+ this.evolveAllChk = new System.Windows.Forms.CheckBox();
+ this.saveBtn = new System.Windows.Forms.Button();
+ this.gMapControl1 = new GMap.NET.WindowsForms.GMapControl();
+ this.FindAdressButton = new System.Windows.Forms.Button();
+ this.AdressBox = new System.Windows.Forms.TextBox();
+ this.trackBar = new System.Windows.Forms.TrackBar();
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.useIncubatorsCb = new System.Windows.Forms.ComboBox();
+ this.useIncubatorsText = new System.Windows.Forms.Label();
+ this.TravelSpeedBox = new System.Windows.Forms.TextBox();
+ this.CatchPokemonBox = new System.Windows.Forms.CheckBox();
+ this.CatchPokemonText = new System.Windows.Forms.Label();
+ this.transferIVThresText = new System.Windows.Forms.TextBox();
+ this.TravelSpeedText = new System.Windows.Forms.Label();
+ this.label6 = new System.Windows.Forms.Label();
+ this.panel2 = new System.Windows.Forms.Panel();
+ this.tabControl = new System.Windows.Forms.TabControl();
+ this.tabLocation = new System.Windows.Forms.TabPage();
+ this.tabPokemon = new System.Windows.Forms.TabPage();
+ this.groupBox3 = new System.Windows.Forms.GroupBox();
+ this.cbSelectAllEvolve = new System.Windows.Forms.CheckBox();
+ this.clbEvolve = new System.Windows.Forms.CheckedListBox();
+ this.groupBox2 = new System.Windows.Forms.GroupBox();
+ this.cbSelectAllCatch = new System.Windows.Forms.CheckBox();
+ this.clbCatch = new System.Windows.Forms.CheckedListBox();
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.cbSelectAllTransfer = new System.Windows.Forms.CheckBox();
+ this.clbTransfer = new System.Windows.Forms.CheckedListBox();
+ this.tabItems = new System.Windows.Forms.TabPage();
+ this.flpItems = new System.Windows.Forms.FlowLayoutPanel();
+ this.tabDevice = new System.Windows.Forms.TabPage();
+ this.label22 = new System.Windows.Forms.Label();
+ this.label20 = new System.Windows.Forms.Label();
+ this.label21 = new System.Windows.Forms.Label();
+ this.RandomIDBtn = new System.Windows.Forms.Button();
+ this.deviceTypeCb = new System.Windows.Forms.ComboBox();
+ this.RandomDeviceBtn = new System.Windows.Forms.Button();
+ this.FirmwareFingerprintTb = new System.Windows.Forms.TextBox();
+ this.label14 = new System.Windows.Forms.Label();
+ this.FirmwareTypeTb = new System.Windows.Forms.TextBox();
+ this.label13 = new System.Windows.Forms.Label();
+ this.FirmwareTagsTb = new System.Windows.Forms.TextBox();
+ this.label12 = new System.Windows.Forms.Label();
+ this.FirmwareBrandTb = new System.Windows.Forms.TextBox();
+ this.label11 = new System.Windows.Forms.Label();
+ this.HardwareModelTb = new System.Windows.Forms.TextBox();
+ this.label10 = new System.Windows.Forms.Label();
+ this.HardwareManufacturerTb = new System.Windows.Forms.TextBox();
+ this.label9 = new System.Windows.Forms.Label();
+ this.DeviceModelBootTb = new System.Windows.Forms.TextBox();
+ this.label8 = new System.Windows.Forms.Label();
+ this.DeviceModelIdentifierTb = new System.Windows.Forms.TextBox();
+ this.label7 = new System.Windows.Forms.Label();
+ this.DeviceModelTb = new System.Windows.Forms.TextBox();
+ this.label15 = new System.Windows.Forms.Label();
+ this.DeviceBrandTb = new System.Windows.Forms.TextBox();
+ this.label16 = new System.Windows.Forms.Label();
+ this.AndroidBootloaderTb = new System.Windows.Forms.TextBox();
+ this.label17 = new System.Windows.Forms.Label();
+ this.AndroidBoardNameTb = new System.Windows.Forms.TextBox();
+ this.BoardName = new System.Windows.Forms.Label();
+ this.DeviceIdTb = new System.Windows.Forms.TextBox();
+ this.deviceIdlb = new System.Windows.Forms.Label();
+ this.label18 = new System.Windows.Forms.Label();
+ ((System.ComponentModel.ISupportInitialize)(this.trackBar)).BeginInit();
+ this.panel1.SuspendLayout();
+ this.panel2.SuspendLayout();
+ this.tabControl.SuspendLayout();
+ this.tabLocation.SuspendLayout();
+ this.tabPokemon.SuspendLayout();
+ this.groupBox3.SuspendLayout();
+ this.groupBox2.SuspendLayout();
+ this.groupBox1.SuspendLayout();
+ this.tabItems.SuspendLayout();
+ this.tabDevice.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // authTypeLabel
+ //
+ this.authTypeLabel.AutoSize = true;
+ this.authTypeLabel.Location = new System.Drawing.Point(3, 9);
+ this.authTypeLabel.Name = "authTypeLabel";
+ this.authTypeLabel.Size = new System.Drawing.Size(70, 15);
+ this.authTypeLabel.TabIndex = 0;
+ this.authTypeLabel.Text = "Login Type:";
+ //
+ // authTypeCb
+ //
+ this.authTypeCb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.authTypeCb.FormattingEnabled = true;
+ this.authTypeCb.Items.AddRange(new object[] {
+ "Google",
+ "PTC"});
+ this.authTypeCb.Location = new System.Drawing.Point(96, 5);
+ this.authTypeCb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.authTypeCb.Name = "authTypeCb";
+ this.authTypeCb.Size = new System.Drawing.Size(158, 23);
+ this.authTypeCb.TabIndex = 1;
+ this.authTypeCb.SelectedIndexChanged += new System.EventHandler(this.authTypeCb_SelectedIndexChanged);
+ //
+ // UserLabel
+ //
+ this.UserLabel.AutoSize = true;
+ this.UserLabel.Location = new System.Drawing.Point(3, 41);
+ this.UserLabel.Name = "UserLabel";
+ this.UserLabel.Size = new System.Drawing.Size(68, 15);
+ this.UserLabel.TabIndex = 2;
+ this.UserLabel.Text = "Username:";
+ //
+ // PasswordLabel
+ //
+ this.PasswordLabel.AutoSize = true;
+ this.PasswordLabel.Location = new System.Drawing.Point(3, 71);
+ this.PasswordLabel.Name = "PasswordLabel";
+ this.PasswordLabel.Size = new System.Drawing.Size(64, 15);
+ this.PasswordLabel.TabIndex = 3;
+ this.PasswordLabel.Text = "Password:";
+ //
+ // latLabel
+ //
+ this.latLabel.AutoSize = true;
+ this.latLabel.Location = new System.Drawing.Point(3, 101);
+ this.latLabel.Name = "latLabel";
+ this.latLabel.Size = new System.Drawing.Size(54, 15);
+ this.latLabel.TabIndex = 4;
+ this.latLabel.Text = "Latitude:";
+ //
+ // longiLabel
+ //
+ this.longiLabel.AutoSize = true;
+ this.longiLabel.Location = new System.Drawing.Point(3, 131);
+ this.longiLabel.Name = "longiLabel";
+ this.longiLabel.Size = new System.Drawing.Size(65, 15);
+ this.longiLabel.TabIndex = 5;
+ this.longiLabel.Text = "Longitude:";
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(3, 161);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(100, 15);
+ this.label1.TabIndex = 6;
+ this.label1.Text = "Razzberry Mode:";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(3, 222);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(84, 15);
+ this.label2.TabIndex = 7;
+ this.label2.Text = "Transfer Type:";
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(3, 387);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(101, 15);
+ this.label3.TabIndex = 8;
+ this.label3.Text = "Evolve Pokemon:";
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Location = new System.Drawing.Point(3, 254);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(84, 15);
+ this.label4.TabIndex = 9;
+ this.label4.Text = "CP Threshold:";
+ //
+ // label5
+ //
+ this.label5.AutoSize = true;
+ this.label5.Location = new System.Drawing.Point(3, 192);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(106, 15);
+ this.label5.TabIndex = 10;
+ this.label5.Text = "Razzberry Setting:";
+ //
+ // UserLoginBox
+ //
+ this.UserLoginBox.Location = new System.Drawing.Point(96, 39);
+ this.UserLoginBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.UserLoginBox.Name = "UserLoginBox";
+ this.UserLoginBox.Size = new System.Drawing.Size(158, 21);
+ this.UserLoginBox.TabIndex = 11;
+ //
+ // UserPasswordBox
+ //
+ this.UserPasswordBox.Location = new System.Drawing.Point(96, 71);
+ this.UserPasswordBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.UserPasswordBox.Name = "UserPasswordBox";
+ this.UserPasswordBox.PasswordChar = '*';
+ this.UserPasswordBox.Size = new System.Drawing.Size(158, 21);
+ this.UserPasswordBox.TabIndex = 12;
+ //
+ // latitudeText
+ //
+ this.latitudeText.Location = new System.Drawing.Point(138, 99);
+ this.latitudeText.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.latitudeText.Name = "latitudeText";
+ this.latitudeText.ReadOnly = true;
+ this.latitudeText.Size = new System.Drawing.Size(116, 21);
+ this.latitudeText.TabIndex = 13;
+ //
+ // longitudeText
+ //
+ this.longitudeText.Location = new System.Drawing.Point(138, 129);
+ this.longitudeText.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.longitudeText.Name = "longitudeText";
+ this.longitudeText.ReadOnly = true;
+ this.longitudeText.Size = new System.Drawing.Size(116, 21);
+ this.longitudeText.TabIndex = 14;
+ //
+ // razzmodeCb
+ //
+ this.razzmodeCb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.razzmodeCb.FormattingEnabled = true;
+ this.razzmodeCb.Items.AddRange(new object[] {
+ "Probability",
+ "CP"});
+ this.razzmodeCb.Location = new System.Drawing.Point(138, 159);
+ this.razzmodeCb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.razzmodeCb.Name = "razzmodeCb";
+ this.razzmodeCb.Size = new System.Drawing.Size(116, 23);
+ this.razzmodeCb.TabIndex = 15;
+ //
+ // razzSettingText
+ //
+ this.razzSettingText.Location = new System.Drawing.Point(138, 190);
+ this.razzSettingText.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.razzSettingText.Name = "razzSettingText";
+ this.razzSettingText.Size = new System.Drawing.Size(116, 21);
+ this.razzSettingText.TabIndex = 16;
+ this.razzSettingText.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.razzSettingText_KeyPress);
+ //
+ // transferTypeCb
+ //
+ this.transferTypeCb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.transferTypeCb.FormattingEnabled = true;
+ this.transferTypeCb.Items.AddRange(new object[] {
+ "None",
+ "CP",
+ "IV",
+ "Leave Strongest",
+ "Duplicate",
+ "IV Duplicate",
+ "All"});
+ this.transferTypeCb.Location = new System.Drawing.Point(138, 220);
+ this.transferTypeCb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.transferTypeCb.Name = "transferTypeCb";
+ this.transferTypeCb.Size = new System.Drawing.Size(116, 23);
+ this.transferTypeCb.TabIndex = 17;
+ this.transferTypeCb.SelectedIndexChanged += new System.EventHandler(this.transferTypeCb_SelectedIndexChanged);
+ //
+ // transferCpThresText
+ //
+ this.transferCpThresText.Location = new System.Drawing.Point(138, 252);
+ this.transferCpThresText.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.transferCpThresText.Name = "transferCpThresText";
+ this.transferCpThresText.Size = new System.Drawing.Size(116, 21);
+ this.transferCpThresText.TabIndex = 18;
+ //
+ // evolveAllChk
+ //
+ this.evolveAllChk.AutoSize = true;
+ this.evolveAllChk.Location = new System.Drawing.Point(138, 387);
+ this.evolveAllChk.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.evolveAllChk.Name = "evolveAllChk";
+ this.evolveAllChk.Size = new System.Drawing.Size(15, 14);
+ this.evolveAllChk.TabIndex = 19;
+ this.evolveAllChk.UseVisualStyleBackColor = true;
+ //
+ // saveBtn
+ //
+ this.saveBtn.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.saveBtn.Location = new System.Drawing.Point(6, 419);
+ this.saveBtn.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.saveBtn.Name = "saveBtn";
+ this.saveBtn.Size = new System.Drawing.Size(248, 42);
+ this.saveBtn.TabIndex = 20;
+ this.saveBtn.Text = "Save";
+ this.saveBtn.UseVisualStyleBackColor = true;
+ this.saveBtn.Click += new System.EventHandler(this.saveBtn_Click);
+ //
+ // gMapControl1
+ //
+ this.gMapControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.gMapControl1.BackColor = System.Drawing.SystemColors.Info;
+ this.gMapControl1.Bearing = 0F;
+ this.gMapControl1.CanDragMap = true;
+ this.gMapControl1.EmptyTileColor = System.Drawing.Color.Navy;
+ this.gMapControl1.GrayScaleMode = false;
+ this.gMapControl1.HelperLineOption = GMap.NET.WindowsForms.HelperLineOptions.DontShow;
+ this.gMapControl1.LevelsKeepInMemmory = 5;
+ this.gMapControl1.Location = new System.Drawing.Point(6, 7);
+ this.gMapControl1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.gMapControl1.MarkersEnabled = true;
+ this.gMapControl1.MaxZoom = 2;
+ this.gMapControl1.MinZoom = 2;
+ this.gMapControl1.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter;
+ this.gMapControl1.Name = "gMapControl1";
+ this.gMapControl1.NegativeMode = false;
+ this.gMapControl1.PolygonsEnabled = true;
+ this.gMapControl1.RetryLoadTile = 0;
+ this.gMapControl1.RoutesEnabled = true;
+ this.gMapControl1.ScaleMode = GMap.NET.WindowsForms.ScaleModes.Integer;
+ this.gMapControl1.SelectedAreaFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(65)))), ((int)(((byte)(105)))), ((int)(((byte)(225)))));
+ this.gMapControl1.ShowTileGridLines = false;
+ this.gMapControl1.Size = new System.Drawing.Size(586, 385);
+ this.gMapControl1.TabIndex = 22;
+ this.gMapControl1.Zoom = 0D;
+ this.gMapControl1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.gMapControl1_MouseClick);
+ //
+ // FindAdressButton
+ //
+ this.FindAdressButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.FindAdressButton.Location = new System.Drawing.Point(473, 400);
+ this.FindAdressButton.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.FindAdressButton.Name = "FindAdressButton";
+ this.FindAdressButton.Size = new System.Drawing.Size(119, 30);
+ this.FindAdressButton.TabIndex = 25;
+ this.FindAdressButton.Text = "Find Location";
+ this.FindAdressButton.UseVisualStyleBackColor = true;
+ this.FindAdressButton.Click += new System.EventHandler(this.FindAdressButton_Click);
+ //
+ // AdressBox
+ //
+ this.AdressBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.AdressBox.ForeColor = System.Drawing.Color.Gray;
+ this.AdressBox.Location = new System.Drawing.Point(6, 404);
+ this.AdressBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.AdressBox.Name = "AdressBox";
+ this.AdressBox.Size = new System.Drawing.Size(461, 23);
+ this.AdressBox.TabIndex = 25;
+ this.AdressBox.Text = "Enter an address or a coordinate";
+ this.AdressBox.Enter += new System.EventHandler(this.AdressBox_Enter);
+ this.AdressBox.Leave += new System.EventHandler(this.AdressBox_Leave);
+ //
+ // trackBar
+ //
+ this.trackBar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.trackBar.BackColor = System.Drawing.SystemColors.Info;
+ this.trackBar.Location = new System.Drawing.Point(545, 7);
+ this.trackBar.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.trackBar.Name = "trackBar";
+ this.trackBar.Orientation = System.Windows.Forms.Orientation.Vertical;
+ this.trackBar.Size = new System.Drawing.Size(45, 120);
+ this.trackBar.TabIndex = 25;
+ this.trackBar.TickStyle = System.Windows.Forms.TickStyle.TopLeft;
+ this.trackBar.Scroll += new System.EventHandler(this.trackBar_Scroll);
+ //
+ // panel1
+ //
+ this.panel1.Controls.Add(this.useIncubatorsCb);
+ this.panel1.Controls.Add(this.useIncubatorsText);
+ this.panel1.Controls.Add(this.TravelSpeedBox);
+ this.panel1.Controls.Add(this.CatchPokemonBox);
+ this.panel1.Controls.Add(this.CatchPokemonText);
+ this.panel1.Controls.Add(this.transferIVThresText);
+ this.panel1.Controls.Add(this.TravelSpeedText);
+ this.panel1.Controls.Add(this.label6);
+ this.panel1.Controls.Add(this.authTypeLabel);
+ this.panel1.Controls.Add(this.authTypeCb);
+ this.panel1.Controls.Add(this.UserLabel);
+ this.panel1.Controls.Add(this.PasswordLabel);
+ this.panel1.Controls.Add(this.saveBtn);
+ this.panel1.Controls.Add(this.latLabel);
+ this.panel1.Controls.Add(this.evolveAllChk);
+ this.panel1.Controls.Add(this.longiLabel);
+ this.panel1.Controls.Add(this.transferCpThresText);
+ this.panel1.Controls.Add(this.label1);
+ this.panel1.Controls.Add(this.transferTypeCb);
+ this.panel1.Controls.Add(this.label2);
+ this.panel1.Controls.Add(this.razzSettingText);
+ this.panel1.Controls.Add(this.label3);
+ this.panel1.Controls.Add(this.razzmodeCb);
+ this.panel1.Controls.Add(this.label4);
+ this.panel1.Controls.Add(this.longitudeText);
+ this.panel1.Controls.Add(this.label5);
+ this.panel1.Controls.Add(this.latitudeText);
+ this.panel1.Controls.Add(this.UserLoginBox);
+ this.panel1.Controls.Add(this.UserPasswordBox);
+ this.panel1.Dock = System.Windows.Forms.DockStyle.Left;
+ this.panel1.Location = new System.Drawing.Point(0, 0);
+ this.panel1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(261, 465);
+ this.panel1.TabIndex = 26;
+ //
+ // useIncubatorsCb
+ //
+ this.useIncubatorsCb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.useIncubatorsCb.FormattingEnabled = true;
+ this.useIncubatorsCb.Items.AddRange(new object[] {
+ "Disabled",
+ "Only Unlimited",
+ "All Incubators"});
+ this.useIncubatorsCb.Location = new System.Drawing.Point(138, 320);
+ this.useIncubatorsCb.Name = "useIncubatorsCb";
+ this.useIncubatorsCb.Size = new System.Drawing.Size(116, 23);
+ this.useIncubatorsCb.TabIndex = 26;
+ //
+ // useIncubatorsText
+ //
+ this.useIncubatorsText.AutoSize = true;
+ this.useIncubatorsText.Location = new System.Drawing.Point(3, 323);
+ this.useIncubatorsText.Name = "useIncubatorsText";
+ this.useIncubatorsText.Size = new System.Drawing.Size(117, 15);
+ this.useIncubatorsText.TabIndex = 27;
+ this.useIncubatorsText.Text = "Use Egg Incubators:";
+ //
+ // TravelSpeedBox
+ //
+ this.TravelSpeedBox.Location = new System.Drawing.Point(138, 283);
+ this.TravelSpeedBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.TravelSpeedBox.Name = "TravelSpeedBox";
+ this.TravelSpeedBox.Size = new System.Drawing.Size(116, 21);
+ this.TravelSpeedBox.TabIndex = 22;
+ this.TravelSpeedBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.TravelSpeedBox_KeyPress);
+ //
+ // CatchPokemonBox
+ //
+ this.CatchPokemonBox.AutoSize = true;
+ this.CatchPokemonBox.Location = new System.Drawing.Point(138, 363);
+ this.CatchPokemonBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.CatchPokemonBox.Name = "CatchPokemonBox";
+ this.CatchPokemonBox.Size = new System.Drawing.Size(15, 14);
+ this.CatchPokemonBox.TabIndex = 26;
+ this.CatchPokemonBox.UseVisualStyleBackColor = true;
+ //
+ // CatchPokemonText
+ //
+ this.CatchPokemonText.AutoSize = true;
+ this.CatchPokemonText.Location = new System.Drawing.Point(3, 362);
+ this.CatchPokemonText.Name = "CatchPokemonText";
+ this.CatchPokemonText.Size = new System.Drawing.Size(97, 15);
+ this.CatchPokemonText.TabIndex = 25;
+ this.CatchPokemonText.Text = "Catch Pokemon:";
+ //
+ // transferIVThresText
+ //
+ this.transferIVThresText.Location = new System.Drawing.Point(138, 252);
+ this.transferIVThresText.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.transferIVThresText.Name = "transferIVThresText";
+ this.transferIVThresText.Size = new System.Drawing.Size(116, 21);
+ this.transferIVThresText.TabIndex = 24;
+ //
+ // TravelSpeedText
+ //
+ this.TravelSpeedText.AutoSize = true;
+ this.TravelSpeedText.Location = new System.Drawing.Point(3, 286);
+ this.TravelSpeedText.Name = "TravelSpeedText";
+ this.TravelSpeedText.Size = new System.Drawing.Size(112, 15);
+ this.TravelSpeedText.TabIndex = 23;
+ this.TravelSpeedText.Text = "Travel Speed km/h:";
+ //
+ // label6
+ //
+ this.label6.AutoSize = true;
+ this.label6.Location = new System.Drawing.Point(3, 254);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(78, 15);
+ this.label6.TabIndex = 21;
+ this.label6.Text = "IV Threshold:";
+ //
+ // panel2
+ //
+ this.panel2.Controls.Add(this.tabControl);
+ this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.panel2.Location = new System.Drawing.Point(261, 0);
+ this.panel2.Name = "panel2";
+ this.panel2.Size = new System.Drawing.Size(606, 465);
+ this.panel2.TabIndex = 27;
+ //
+ // tabControl
+ //
+ this.tabControl.Controls.Add(this.tabLocation);
+ this.tabControl.Controls.Add(this.tabPokemon);
+ this.tabControl.Controls.Add(this.tabItems);
+ this.tabControl.Controls.Add(this.tabDevice);
+ this.tabControl.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tabControl.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tabControl.Location = new System.Drawing.Point(0, 0);
+ this.tabControl.Name = "tabControl";
+ this.tabControl.SelectedIndex = 0;
+ this.tabControl.Size = new System.Drawing.Size(606, 465);
+ this.tabControl.TabIndex = 26;
+ //
+ // tabLocation
+ //
+ this.tabLocation.BackColor = System.Drawing.SystemColors.Control;
+ this.tabLocation.Controls.Add(this.trackBar);
+ this.tabLocation.Controls.Add(this.AdressBox);
+ this.tabLocation.Controls.Add(this.FindAdressButton);
+ this.tabLocation.Controls.Add(this.gMapControl1);
+ this.tabLocation.Location = new System.Drawing.Point(4, 24);
+ this.tabLocation.Name = "tabLocation";
+ this.tabLocation.Padding = new System.Windows.Forms.Padding(3);
+ this.tabLocation.Size = new System.Drawing.Size(598, 437);
+ this.tabLocation.TabIndex = 0;
+ this.tabLocation.Text = "Location";
+ //
+ // tabPokemon
+ //
+ this.tabPokemon.BackColor = System.Drawing.SystemColors.Control;
+ this.tabPokemon.Controls.Add(this.groupBox3);
+ this.tabPokemon.Controls.Add(this.groupBox2);
+ this.tabPokemon.Controls.Add(this.groupBox1);
+ this.tabPokemon.Location = new System.Drawing.Point(4, 24);
+ this.tabPokemon.Name = "tabPokemon";
+ this.tabPokemon.Padding = new System.Windows.Forms.Padding(3);
+ this.tabPokemon.Size = new System.Drawing.Size(598, 437);
+ this.tabPokemon.TabIndex = 1;
+ this.tabPokemon.Text = "Pokemon";
+ //
+ // groupBox3
+ //
+ this.groupBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)));
+ this.groupBox3.Controls.Add(this.cbSelectAllEvolve);
+ this.groupBox3.Controls.Add(this.clbEvolve);
+ this.groupBox3.Location = new System.Drawing.Point(394, 6);
+ this.groupBox3.Name = "groupBox3";
+ this.groupBox3.Size = new System.Drawing.Size(188, 421);
+ this.groupBox3.TabIndex = 2;
+ this.groupBox3.TabStop = false;
+ this.groupBox3.Text = "Exclude Evolve";
+ //
+ // cbSelectAllEvolve
+ //
+ this.cbSelectAllEvolve.AutoSize = true;
+ this.cbSelectAllEvolve.Location = new System.Drawing.Point(6, 22);
+ this.cbSelectAllEvolve.Name = "cbSelectAllEvolve";
+ this.cbSelectAllEvolve.Size = new System.Drawing.Size(74, 19);
+ this.cbSelectAllEvolve.TabIndex = 1;
+ this.cbSelectAllEvolve.Text = "Select All";
+ this.cbSelectAllEvolve.UseVisualStyleBackColor = true;
+ //
+ // clbEvolve
+ //
+ this.clbEvolve.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.clbEvolve.CheckOnClick = true;
+ this.clbEvolve.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.clbEvolve.FormattingEnabled = true;
+ this.clbEvolve.Location = new System.Drawing.Point(0, 41);
+ this.clbEvolve.Name = "clbEvolve";
+ this.clbEvolve.Size = new System.Drawing.Size(188, 364);
+ this.clbEvolve.TabIndex = 0;
+ //
+ // groupBox2
+ //
+ this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)));
+ this.groupBox2.Controls.Add(this.cbSelectAllCatch);
+ this.groupBox2.Controls.Add(this.clbCatch);
+ this.groupBox2.Location = new System.Drawing.Point(6, 6);
+ this.groupBox2.Name = "groupBox2";
+ this.groupBox2.Size = new System.Drawing.Size(188, 421);
+ this.groupBox2.TabIndex = 2;
+ this.groupBox2.TabStop = false;
+ this.groupBox2.Text = "Exclude Catch";
+ //
+ // cbSelectAllCatch
+ //
+ this.cbSelectAllCatch.AutoSize = true;
+ this.cbSelectAllCatch.Location = new System.Drawing.Point(6, 22);
+ this.cbSelectAllCatch.Name = "cbSelectAllCatch";
+ this.cbSelectAllCatch.Size = new System.Drawing.Size(74, 19);
+ this.cbSelectAllCatch.TabIndex = 1;
+ this.cbSelectAllCatch.Text = "Select All";
+ this.cbSelectAllCatch.UseVisualStyleBackColor = true;
+ //
+ // clbCatch
+ //
+ this.clbCatch.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.clbCatch.CheckOnClick = true;
+ this.clbCatch.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.clbCatch.FormattingEnabled = true;
+ this.clbCatch.Location = new System.Drawing.Point(0, 41);
+ this.clbCatch.Name = "clbCatch";
+ this.clbCatch.Size = new System.Drawing.Size(188, 364);
+ this.clbCatch.TabIndex = 0;
+ //
+ // groupBox1
+ //
+ this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)));
+ this.groupBox1.Controls.Add(this.cbSelectAllTransfer);
+ this.groupBox1.Controls.Add(this.clbTransfer);
+ this.groupBox1.Location = new System.Drawing.Point(200, 6);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(188, 421);
+ this.groupBox1.TabIndex = 1;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "Exclude Transfer";
+ //
+ // cbSelectAllTransfer
+ //
+ this.cbSelectAllTransfer.AutoSize = true;
+ this.cbSelectAllTransfer.Location = new System.Drawing.Point(6, 22);
+ this.cbSelectAllTransfer.Name = "cbSelectAllTransfer";
+ this.cbSelectAllTransfer.Size = new System.Drawing.Size(74, 19);
+ this.cbSelectAllTransfer.TabIndex = 1;
+ this.cbSelectAllTransfer.Text = "Select All";
+ this.cbSelectAllTransfer.UseVisualStyleBackColor = true;
+ //
+ // clbTransfer
+ //
+ this.clbTransfer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.clbTransfer.CheckOnClick = true;
+ this.clbTransfer.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.clbTransfer.FormattingEnabled = true;
+ this.clbTransfer.Location = new System.Drawing.Point(0, 41);
+ this.clbTransfer.Name = "clbTransfer";
+ this.clbTransfer.Size = new System.Drawing.Size(188, 364);
+ this.clbTransfer.TabIndex = 0;
+ //
+ // tabItems
+ //
+ this.tabItems.BackColor = System.Drawing.SystemColors.Control;
+ this.tabItems.Controls.Add(this.flpItems);
+ this.tabItems.Location = new System.Drawing.Point(4, 24);
+ this.tabItems.Name = "tabItems";
+ this.tabItems.Padding = new System.Windows.Forms.Padding(3);
+ this.tabItems.Size = new System.Drawing.Size(598, 437);
+ this.tabItems.TabIndex = 2;
+ this.tabItems.Text = "Items";
+ //
+ // flpItems
+ //
+ this.flpItems.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.flpItems.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
+ this.flpItems.Location = new System.Drawing.Point(3, 3);
+ this.flpItems.Name = "flpItems";
+ this.flpItems.Size = new System.Drawing.Size(592, 431);
+ this.flpItems.TabIndex = 0;
+ //
+ // tabDevice
+ //
+ this.tabDevice.Controls.Add(this.label22);
+ this.tabDevice.Controls.Add(this.label20);
+ this.tabDevice.Controls.Add(this.label21);
+ this.tabDevice.Controls.Add(this.RandomIDBtn);
+ this.tabDevice.Controls.Add(this.deviceTypeCb);
+ this.tabDevice.Controls.Add(this.RandomDeviceBtn);
+ this.tabDevice.Controls.Add(this.FirmwareFingerprintTb);
+ this.tabDevice.Controls.Add(this.label14);
+ this.tabDevice.Controls.Add(this.FirmwareTypeTb);
+ this.tabDevice.Controls.Add(this.label13);
+ this.tabDevice.Controls.Add(this.FirmwareTagsTb);
+ this.tabDevice.Controls.Add(this.label12);
+ this.tabDevice.Controls.Add(this.FirmwareBrandTb);
+ this.tabDevice.Controls.Add(this.label11);
+ this.tabDevice.Controls.Add(this.HardwareModelTb);
+ this.tabDevice.Controls.Add(this.label10);
+ this.tabDevice.Controls.Add(this.HardwareManufacturerTb);
+ this.tabDevice.Controls.Add(this.label9);
+ this.tabDevice.Controls.Add(this.DeviceModelBootTb);
+ this.tabDevice.Controls.Add(this.label8);
+ this.tabDevice.Controls.Add(this.DeviceModelIdentifierTb);
+ this.tabDevice.Controls.Add(this.label7);
+ this.tabDevice.Controls.Add(this.DeviceModelTb);
+ this.tabDevice.Controls.Add(this.label15);
+ this.tabDevice.Controls.Add(this.DeviceBrandTb);
+ this.tabDevice.Controls.Add(this.label16);
+ this.tabDevice.Controls.Add(this.AndroidBootloaderTb);
+ this.tabDevice.Controls.Add(this.label17);
+ this.tabDevice.Controls.Add(this.AndroidBoardNameTb);
+ this.tabDevice.Controls.Add(this.BoardName);
+ this.tabDevice.Controls.Add(this.DeviceIdTb);
+ this.tabDevice.Controls.Add(this.deviceIdlb);
+ this.tabDevice.Controls.Add(this.label18);
+ this.tabDevice.Location = new System.Drawing.Point(4, 24);
+ this.tabDevice.Name = "tabDevice";
+ this.tabDevice.Size = new System.Drawing.Size(598, 437);
+ this.tabDevice.TabIndex = 0;
+ this.tabDevice.Text = "Device";
+ //
+ // label22
+ //
+ this.label22.AutoSize = true;
+ this.label22.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.label22.Location = new System.Drawing.Point(416, 92);
+ this.label22.Name = "label22";
+ this.label22.Size = new System.Drawing.Size(168, 90);
+ this.label22.TabIndex = 69;
+ this.label22.Text = "This setting change what the \r\nserver think you are using to \r\nplay Pokémon GO. I" +
+ "ts a good \r\nidea to change your device to \r\nwhat phone you are using to \r\npreven" +
+ "t ip ban.";
+ //
+ // label20
+ //
+ this.label20.AutoSize = true;
+ this.label20.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F);
+ this.label20.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
+ this.label20.Location = new System.Drawing.Point(416, 13);
+ this.label20.Name = "label20";
+ this.label20.Size = new System.Drawing.Size(74, 18);
+ this.label20.TabIndex = 67;
+ this.label20.Text = "Important:";
+ //
+ // label21
+ //
+ this.label21.AutoSize = true;
+ this.label21.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.label21.Location = new System.Drawing.Point(416, 32);
+ this.label21.Name = "label21";
+ this.label21.Size = new System.Drawing.Size(164, 45);
+ this.label21.TabIndex = 66;
+ this.label21.Text = "For your account safety.\r\nPlease do not change your \r\naccount infomation too ofte" +
+ "n.\r\n";
+ //
+ // RandomIDBtn
+ //
+ this.RandomIDBtn.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.RandomIDBtn.Location = new System.Drawing.Point(326, 39);
+ this.RandomIDBtn.Name = "RandomIDBtn";
+ this.RandomIDBtn.Size = new System.Drawing.Size(87, 25);
+ this.RandomIDBtn.TabIndex = 65;
+ this.RandomIDBtn.Text = "Get New ID";
+ this.RandomIDBtn.UseVisualStyleBackColor = true;
+ this.RandomIDBtn.Click += new System.EventHandler(this.RandomIDBtn_Click);
+ //
+ // deviceTypeCb
+ //
+ this.deviceTypeCb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.deviceTypeCb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.deviceTypeCb.FormattingEnabled = true;
+ this.deviceTypeCb.Items.AddRange(new object[] {
+ "Apple",
+ "Android"});
+ this.deviceTypeCb.Location = new System.Drawing.Point(170, 13);
+ this.deviceTypeCb.Name = "deviceTypeCb";
+ this.deviceTypeCb.Size = new System.Drawing.Size(150, 23);
+ this.deviceTypeCb.TabIndex = 37;
+ this.deviceTypeCb.SelectionChangeCommitted += new System.EventHandler(this.deviceTypeCb_SelectedIndexChanged);
+ //
+ // RandomDeviceBtn
+ //
+ this.RandomDeviceBtn.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.RandomDeviceBtn.Location = new System.Drawing.Point(419, 334);
+ this.RandomDeviceBtn.Name = "RandomDeviceBtn";
+ this.RandomDeviceBtn.Size = new System.Drawing.Size(162, 79);
+ this.RandomDeviceBtn.TabIndex = 64;
+ this.RandomDeviceBtn.Text = "I am feeling RICH\r\n(Randomize)";
+ this.RandomDeviceBtn.UseVisualStyleBackColor = true;
+ this.RandomDeviceBtn.Click += new System.EventHandler(this.RandomDeviceBtn_Click);
+ //
+ // FirmwareFingerprintTb
+ //
+ this.FirmwareFingerprintTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.FirmwareFingerprintTb.Location = new System.Drawing.Point(170, 392);
+ this.FirmwareFingerprintTb.Name = "FirmwareFingerprintTb";
+ this.FirmwareFingerprintTb.Size = new System.Drawing.Size(243, 21);
+ this.FirmwareFingerprintTb.TabIndex = 62;
+ //
+ // label14
+ //
+ this.label14.AutoSize = true;
+ this.label14.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.label14.Location = new System.Drawing.Point(19, 396);
+ this.label14.Name = "label14";
+ this.label14.Size = new System.Drawing.Size(121, 15);
+ this.label14.TabIndex = 49;
+ this.label14.Text = "Firmware Fingerprint";
+ //
+ // FirmwareTypeTb
+ //
+ this.FirmwareTypeTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.FirmwareTypeTb.Location = new System.Drawing.Point(170, 363);
+ this.FirmwareTypeTb.Name = "FirmwareTypeTb";
+ this.FirmwareTypeTb.Size = new System.Drawing.Size(243, 21);
+ this.FirmwareTypeTb.TabIndex = 58;
+ //
+ // label13
+ //
+ this.label13.AutoSize = true;
+ this.label13.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.label13.Location = new System.Drawing.Point(19, 366);
+ this.label13.Name = "label13";
+ this.label13.Size = new System.Drawing.Size(88, 15);
+ this.label13.TabIndex = 51;
+ this.label13.Text = "Firmware Type";
+ //
+ // FirmwareTagsTb
+ //
+ this.FirmwareTagsTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.FirmwareTagsTb.Location = new System.Drawing.Point(170, 334);
+ this.FirmwareTagsTb.Name = "FirmwareTagsTb";
+ this.FirmwareTagsTb.Size = new System.Drawing.Size(243, 21);
+ this.FirmwareTagsTb.TabIndex = 54;
+ //
+ // label12
+ //
+ this.label12.AutoSize = true;
+ this.label12.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.label12.Location = new System.Drawing.Point(19, 337);
+ this.label12.Name = "label12";
+ this.label12.Size = new System.Drawing.Size(89, 15);
+ this.label12.TabIndex = 50;
+ this.label12.Text = "Firmware Tags";
+ //
+ // FirmwareBrandTb
+ //
+ this.FirmwareBrandTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.FirmwareBrandTb.Location = new System.Drawing.Point(170, 305);
+ this.FirmwareBrandTb.Name = "FirmwareBrandTb";
+ this.FirmwareBrandTb.Size = new System.Drawing.Size(243, 21);
+ this.FirmwareBrandTb.TabIndex = 52;
+ //
+ // label11
+ //
+ this.label11.AutoSize = true;
+ this.label11.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.label11.Location = new System.Drawing.Point(19, 308);
+ this.label11.Name = "label11";
+ this.label11.Size = new System.Drawing.Size(95, 15);
+ this.label11.TabIndex = 48;
+ this.label11.Text = "Firmware Brand";
+ //
+ // HardwareModelTb
+ //
+ this.HardwareModelTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.HardwareModelTb.Location = new System.Drawing.Point(170, 275);
+ this.HardwareModelTb.Name = "HardwareModelTb";
+ this.HardwareModelTb.Size = new System.Drawing.Size(243, 21);
+ this.HardwareModelTb.TabIndex = 56;
+ //
+ // label10
+ //
+ this.label10.AutoSize = true;
+ this.label10.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.label10.Location = new System.Drawing.Point(19, 279);
+ this.label10.Name = "label10";
+ this.label10.Size = new System.Drawing.Size(99, 15);
+ this.label10.TabIndex = 46;
+ this.label10.Text = "Hardware Model";
+ //
+ // HardwareManufacturerTb
+ //
+ this.HardwareManufacturerTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.HardwareManufacturerTb.Location = new System.Drawing.Point(170, 246);
+ this.HardwareManufacturerTb.Name = "HardwareManufacturerTb";
+ this.HardwareManufacturerTb.Size = new System.Drawing.Size(243, 21);
+ this.HardwareManufacturerTb.TabIndex = 60;
+ //
+ // label9
+ //
+ this.label9.AutoSize = true;
+ this.label9.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.label9.Location = new System.Drawing.Point(19, 249);
+ this.label9.Name = "label9";
+ this.label9.Size = new System.Drawing.Size(140, 15);
+ this.label9.TabIndex = 47;
+ this.label9.Text = "Hardware Manu facturer";
+ //
+ // DeviceModelBootTb
+ //
+ this.DeviceModelBootTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.DeviceModelBootTb.Location = new System.Drawing.Point(170, 217);
+ this.DeviceModelBootTb.Name = "DeviceModelBootTb";
+ this.DeviceModelBootTb.Size = new System.Drawing.Size(243, 21);
+ this.DeviceModelBootTb.TabIndex = 63;
+ //
+ // label8
+ //
+ this.label8.AutoSize = true;
+ this.label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.label8.Location = new System.Drawing.Point(19, 220);
+ this.label8.Name = "label8";
+ this.label8.Size = new System.Drawing.Size(110, 15);
+ this.label8.TabIndex = 44;
+ this.label8.Text = "Device Model Boot";
+ //
+ // DeviceModelIdentifierTb
+ //
+ this.DeviceModelIdentifierTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.DeviceModelIdentifierTb.Location = new System.Drawing.Point(170, 188);
+ this.DeviceModelIdentifierTb.Name = "DeviceModelIdentifierTb";
+ this.DeviceModelIdentifierTb.Size = new System.Drawing.Size(243, 21);
+ this.DeviceModelIdentifierTb.TabIndex = 53;
+ //
+ // label7
+ //
+ this.label7.AutoSize = true;
+ this.label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.label7.Location = new System.Drawing.Point(19, 191);
+ this.label7.Name = "label7";
+ this.label7.Size = new System.Drawing.Size(132, 15);
+ this.label7.TabIndex = 43;
+ this.label7.Text = "Device Model Identifier";
+ //
+ // DeviceModelTb
+ //
+ this.DeviceModelTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.DeviceModelTb.Location = new System.Drawing.Point(170, 158);
+ this.DeviceModelTb.Name = "DeviceModelTb";
+ this.DeviceModelTb.Size = new System.Drawing.Size(243, 21);
+ this.DeviceModelTb.TabIndex = 55;
+ //
+ // label15
+ //
+ this.label15.AutoSize = true;
+ this.label15.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.label15.Location = new System.Drawing.Point(19, 162);
+ this.label15.Name = "label15";
+ this.label15.Size = new System.Drawing.Size(82, 15);
+ this.label15.TabIndex = 42;
+ this.label15.Text = "Device Model";
+ //
+ // DeviceBrandTb
+ //
+ this.DeviceBrandTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.DeviceBrandTb.Location = new System.Drawing.Point(170, 129);
+ this.DeviceBrandTb.Name = "DeviceBrandTb";
+ this.DeviceBrandTb.Size = new System.Drawing.Size(243, 21);
+ this.DeviceBrandTb.TabIndex = 57;
+ //
+ // label16
+ //
+ this.label16.AutoSize = true;
+ this.label16.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.label16.Location = new System.Drawing.Point(19, 132);
+ this.label16.Name = "label16";
+ this.label16.Size = new System.Drawing.Size(80, 15);
+ this.label16.TabIndex = 41;
+ this.label16.Text = "Device Brand";
+ //
+ // AndroidBootloaderTb
+ //
+ this.AndroidBootloaderTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.AndroidBootloaderTb.Location = new System.Drawing.Point(170, 100);
+ this.AndroidBootloaderTb.Name = "AndroidBootloaderTb";
+ this.AndroidBootloaderTb.Size = new System.Drawing.Size(243, 21);
+ this.AndroidBootloaderTb.TabIndex = 59;
+ //
+ // label17
+ //
+ this.label17.AutoSize = true;
+ this.label17.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.label17.Location = new System.Drawing.Point(19, 103);
+ this.label17.Name = "label17";
+ this.label17.Size = new System.Drawing.Size(115, 15);
+ this.label17.TabIndex = 40;
+ this.label17.Text = "Android Boot loader";
+ //
+ // AndroidBoardNameTb
+ //
+ this.AndroidBoardNameTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.AndroidBoardNameTb.Location = new System.Drawing.Point(170, 71);
+ this.AndroidBoardNameTb.Name = "AndroidBoardNameTb";
+ this.AndroidBoardNameTb.Size = new System.Drawing.Size(243, 21);
+ this.AndroidBoardNameTb.TabIndex = 61;
+ //
+ // BoardName
+ //
+ this.BoardName.AutoSize = true;
+ this.BoardName.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.BoardName.Location = new System.Drawing.Point(19, 74);
+ this.BoardName.Name = "BoardName";
+ this.BoardName.Size = new System.Drawing.Size(122, 15);
+ this.BoardName.TabIndex = 39;
+ this.BoardName.Text = "Android Board Name";
+ //
+ // DeviceIdTb
+ //
+ this.DeviceIdTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.DeviceIdTb.Location = new System.Drawing.Point(170, 41);
+ this.DeviceIdTb.Name = "DeviceIdTb";
+ this.DeviceIdTb.Size = new System.Drawing.Size(150, 21);
+ this.DeviceIdTb.TabIndex = 38;
+ //
+ // deviceIdlb
+ //
+ this.deviceIdlb.AutoSize = true;
+ this.deviceIdlb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.deviceIdlb.Location = new System.Drawing.Point(19, 45);
+ this.deviceIdlb.Name = "deviceIdlb";
+ this.deviceIdlb.Size = new System.Drawing.Size(59, 15);
+ this.deviceIdlb.TabIndex = 45;
+ this.deviceIdlb.Text = "Device ID";
+ //
+ // label18
+ //
+ this.label18.AutoSize = true;
+ this.label18.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.label18.Location = new System.Drawing.Point(19, 16);
+ this.label18.Name = "label18";
+ this.label18.Size = new System.Drawing.Size(76, 15);
+ this.label18.TabIndex = 36;
+ this.label18.Text = "Device Type:";
+ //
+ // SettingsForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(867, 465);
+ this.Controls.Add(this.panel2);
+ this.Controls.Add(this.panel1);
+ this.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.MinimumSize = new System.Drawing.Size(874, 497);
+ this.Name = "SettingsForm";
+ this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show;
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Text = "Settings";
+ this.Load += new System.EventHandler(this.SettingsForm_Load);
+ ((System.ComponentModel.ISupportInitialize)(this.trackBar)).EndInit();
+ this.panel1.ResumeLayout(false);
+ this.panel1.PerformLayout();
+ this.panel2.ResumeLayout(false);
+ this.tabControl.ResumeLayout(false);
+ this.tabLocation.ResumeLayout(false);
+ this.tabLocation.PerformLayout();
+ this.tabPokemon.ResumeLayout(false);
+ this.groupBox3.ResumeLayout(false);
+ this.groupBox3.PerformLayout();
+ this.groupBox2.ResumeLayout(false);
+ this.groupBox2.PerformLayout();
+ this.groupBox1.ResumeLayout(false);
+ this.groupBox1.PerformLayout();
+ this.tabItems.ResumeLayout(false);
+ this.tabDevice.ResumeLayout(false);
+ this.tabDevice.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label authTypeLabel;
+ private System.Windows.Forms.ComboBox authTypeCb;
+ private System.Windows.Forms.Label UserLabel;
+ private System.Windows.Forms.Label PasswordLabel;
+ private System.Windows.Forms.Label latLabel;
+ private System.Windows.Forms.Label longiLabel;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.Label label5;
+ private System.Windows.Forms.TextBox UserLoginBox;
+ private System.Windows.Forms.TextBox UserPasswordBox;
+ private System.Windows.Forms.TextBox latitudeText;
+ private System.Windows.Forms.TextBox longitudeText;
+ private System.Windows.Forms.ComboBox razzmodeCb;
+ private System.Windows.Forms.TextBox razzSettingText;
+ private System.Windows.Forms.ComboBox transferTypeCb;
+ private System.Windows.Forms.TextBox transferCpThresText;
+ private System.Windows.Forms.CheckBox evolveAllChk;
+ private System.Windows.Forms.Button saveBtn;
+ private GMap.NET.WindowsForms.GMapControl gMapControl1;
+ private System.Windows.Forms.Panel panel1;
+ private System.Windows.Forms.TrackBar trackBar;
+ private System.Windows.Forms.TextBox TravelSpeedBox;
+ private System.Windows.Forms.Label label6;
+ private System.Windows.Forms.Label TravelSpeedText;
+ private System.Windows.Forms.TextBox transferIVThresText;
+ private System.Windows.Forms.TextBox AdressBox;
+ private System.Windows.Forms.Button FindAdressButton;
+ private System.Windows.Forms.CheckBox CatchPokemonBox;
+ private System.Windows.Forms.Label CatchPokemonText;
+ private System.Windows.Forms.Panel panel2;
+ private System.Windows.Forms.TabControl tabControl;
+ private System.Windows.Forms.TabPage tabLocation;
+ private System.Windows.Forms.TabPage tabPokemon;
+ private System.Windows.Forms.CheckedListBox clbTransfer;
+ private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.GroupBox groupBox2;
+ private System.Windows.Forms.CheckedListBox clbCatch;
+ private System.Windows.Forms.GroupBox groupBox3;
+ private System.Windows.Forms.CheckedListBox clbEvolve;
+ private System.Windows.Forms.CheckBox cbSelectAllEvolve;
+ private System.Windows.Forms.CheckBox cbSelectAllCatch;
+ private System.Windows.Forms.CheckBox cbSelectAllTransfer;
+ private System.Windows.Forms.TabPage tabDevice;
+ private System.Windows.Forms.Button RandomIDBtn;
+ private System.Windows.Forms.ComboBox deviceTypeCb;
+ private System.Windows.Forms.Button RandomDeviceBtn;
+ private System.Windows.Forms.TextBox FirmwareFingerprintTb;
+ private System.Windows.Forms.Label label14;
+ private System.Windows.Forms.TextBox FirmwareTypeTb;
+ private System.Windows.Forms.Label label13;
+ private System.Windows.Forms.TextBox FirmwareTagsTb;
+ private System.Windows.Forms.Label label12;
+ private System.Windows.Forms.TextBox FirmwareBrandTb;
+ private System.Windows.Forms.Label label11;
+ private System.Windows.Forms.TextBox HardwareModelTb;
+ private System.Windows.Forms.Label label10;
+ private System.Windows.Forms.TextBox HardwareManufacturerTb;
+ private System.Windows.Forms.Label label9;
+ private System.Windows.Forms.TextBox DeviceModelBootTb;
+ private System.Windows.Forms.Label label8;
+ private System.Windows.Forms.TextBox DeviceModelIdentifierTb;
+ private System.Windows.Forms.Label label7;
+ private System.Windows.Forms.TextBox DeviceModelTb;
+ private System.Windows.Forms.Label label15;
+ private System.Windows.Forms.TextBox DeviceBrandTb;
+ private System.Windows.Forms.Label label16;
+ private System.Windows.Forms.TextBox AndroidBootloaderTb;
+ private System.Windows.Forms.Label label17;
+ private System.Windows.Forms.TextBox AndroidBoardNameTb;
+ private System.Windows.Forms.Label BoardName;
+ private System.Windows.Forms.TextBox DeviceIdTb;
+ private System.Windows.Forms.Label deviceIdlb;
+ private System.Windows.Forms.Label label18;
+ private System.Windows.Forms.Label label20;
+ private System.Windows.Forms.Label label21;
+ private System.Windows.Forms.Label label22;
+ private System.Windows.Forms.TabPage tabItems;
+ private System.Windows.Forms.FlowLayoutPanel flpItems;
+ private System.Windows.Forms.Label useIncubatorsText;
+ private System.Windows.Forms.ComboBox useIncubatorsCb;
+ }
+}
diff --git a/src/RocketBotGUI/SettingsForm.cs b/src/RocketBotGUI/SettingsForm.cs
new file mode 100644
index 0000000..0e832db
--- /dev/null
+++ b/src/RocketBotGUI/SettingsForm.cs
@@ -0,0 +1,429 @@
+using GMap.NET;
+using GMap.NET.MapProviders;
+using POGOProtos.Enums;
+using POGOProtos.Inventory.Item;
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Drawing;
+using System.Globalization;
+using System.Linq;
+using System.Windows.Forms;
+
+namespace PokemonGo.RocketAPI.Window
+{
+ internal partial class SettingsForm : Form
+ {
+ private DeviceHelper _deviceHelper;
+ private List<DeviceInfo> _deviceInfos;
+ private bool _doNotPopulate;
+
+ private List<ItemId> itemSettings = new List<ItemId> {
+ ItemId.ItemPokeBall,
+ ItemId.ItemGreatBall,
+ ItemId.ItemUltraBall,
+ ItemId.ItemRazzBerry,
+ ItemId.ItemPotion,
+ ItemId.ItemSuperPotion,
+ ItemId.ItemHyperPotion,
+ ItemId.ItemMaxPotion,
+ ItemId.ItemRevive,
+ ItemId.ItemMaxRevive,
+ };
+
+ public SettingsForm()
+ {
+ InitializeComponent();
+ AdressBox.KeyDown += AdressBox_KeyDown;
+ cbSelectAllCatch.CheckedChanged += CbSelectAllCatch_CheckedChanged;
+ cbSelectAllTransfer.CheckedChanged += CbSelectAllTransfer_CheckedChanged;
+ cbSelectAllEvolve.CheckedChanged += CbSelectAllEvolve_CheckedChanged;
+
+ foreach (PokemonId id in Enum.GetValues(typeof(PokemonId)))
+ {
+ if (id == PokemonId.Missingno) continue;
+ clbCatch.Items.Add(id);
+ clbTransfer.Items.Add(id);
+ clbEvolve.Items.Add(id);
+ }
+
+ foreach (ItemId itemId in itemSettings)
+ {
+ ItemData item = new ItemData();
+ item.ItemId = itemId;
+ flpItems.Controls.Add(new ItemSetting(item));
+ }
+ }
+
+ private void SettingsForm_Load(object sender, EventArgs e)
+ {
+ authTypeCb.Text = Settings.Instance.AuthType.ToString();
+ if (authTypeCb.Text.ToLower().Equals("google"))
+ {
+ UserLoginBox.Text = Settings.Instance.GoogleUsername;
+ UserPasswordBox.Text = Settings.Instance.GooglePassword;
+ }
+ else
+ {
+ UserLoginBox.Text = Settings.Instance.PtcUsername;
+ UserPasswordBox.Text = Settings.Instance.PtcPassword;
+ }
+ latitudeText.Text = Settings.Instance.DefaultLatitude.ToString();
+ longitudeText.Text = Settings.Instance.DefaultLongitude.ToString();
+ razzmodeCb.Text = Settings.Instance.RazzBerryMode;
+ razzSettingText.Text = Settings.Instance.RazzBerrySetting.ToString();
+ useIncubatorsCb.Text = Settings.Instance.UseIncubatorsMode.ToString();
+ transferTypeCb.Text = Settings.Instance.TransferType;
+ transferCpThresText.Text = Settings.Instance.TransferCpThreshold.ToString();
+ transferIVThresText.Text = Settings.Instance.TransferIvThreshold.ToString();
+ evolveAllChk.Checked = Settings.Instance.EvolveAllGivenPokemons;
+
+ CatchPokemonBox.Checked = Settings.Instance.CatchPokemon;
+ TravelSpeedBox.Text = Settings.Instance.TravelSpeed.ToString();
+ // ImageSizeBox.Text = Settings.Instance.ImageSize.ToString();
+ // Initialize map:
+ //use google provider
+ gMapControl1.MapProvider = GoogleMapProvider.Instance;
+ //get tiles from server only
+ gMapControl1.Manager.Mode = AccessMode.ServerOnly;
+ //not use proxy
+ GMapProvider.WebProxy = null;
+ //center map on moscow
+ var lat = ConfigurationManager.AppSettings["DefaultLatitude"];
+ var longit = ConfigurationManager.AppSettings["DefaultLongitude"];
+ lat.Replace(',', '.');
+ longit.Replace(',', '.');
+ gMapControl1.Position = new PointLatLng(double.Parse(lat.Replace(",", "."), CultureInfo.InvariantCulture),
+ double.Parse(longit.Replace(",", "."), CultureInfo.InvariantCulture));
+
+ //zoom min/max; default both = 2
+ gMapControl1.DragButton = MouseButtons.Left;
+
+ gMapControl1.CenterPen = new Pen(Color.Red, 2);
+ gMapControl1.MinZoom = trackBar.Maximum = 1;
+ gMapControl1.MaxZoom = trackBar.Maximum = 20;
+ trackBar.Value = 10;
+
+ //set zoom
+ gMapControl1.Zoom = trackBar.Value;
+
+ //disable map focus
+ gMapControl1.DisableFocusOnMouseEnter = true;
+
+ foreach (var pokemonIdSetting in Settings.Instance.ExcludedPokemonCatch)
+ {
+ for (var i = 0; i < clbCatch.Items.Count; i++)
+ {
+ var pokemonId = (PokemonId)clbCatch.Items[i];
+ if (pokemonIdSetting == pokemonId)
+ {
+ clbCatch.SetItemChecked(i, true);
+ }
+ }
+ }
+
+ foreach (var pokemonIdSetting in Settings.Instance.ExcludedPokemonTransfer)
+ {
+ for (var i = 0; i < clbTransfer.Items.Count; i++)
+ {
+ var pokemonId = (PokemonId)clbTransfer.Items[i];
+ if (pokemonIdSetting == pokemonId)
+ {
+ clbTransfer.SetItemChecked(i, true);
+ }
+ }
+ }
+
+ foreach (var pokemonIdSetting in Settings.Instance.ExcludedPokemonEvolve)
+ {
+ for (var i = 0; i < clbEvolve.Items.Count; i++)
+ {
+ var pokemonId = (PokemonId)clbEvolve.Items[i];
+ if (pokemonIdSetting == pokemonId)
+ {
+ clbEvolve.SetItemChecked(i, true);
+ }
+ }
+ }
+
+ var itemCounts = Settings.Instance.ItemCounts;
+ foreach (ItemSetting itemSetting in flpItems.Controls)
+ {
+ foreach (var itemCount in itemCounts)
+ {
+ if (itemSetting.ItemData.ItemId == itemCount.ItemId)
+ {
+ itemSetting.ItemData = itemCount;
+ }
+ }
+ }
+
+ // Device settings
+ _deviceHelper = new DeviceHelper();
+ _deviceInfos = _deviceHelper.DeviceBucket;
+
+ if (Settings.Instance.DeviceId == "8525f6d8251f71b7")
+ {
+ PopulateDevice();
+ }
+ else
+ {
+ DeviceIdTb.Text = Settings.Instance.DeviceId;
+ AndroidBoardNameTb.Text = Settings.Instance.AndroidBoardName;
+ AndroidBootloaderTb.Text = Settings.Instance.AndroidBootloader;
+ DeviceBrandTb.Text = Settings.Instance.DeviceBrand;
+ DeviceModelTb.Text = Settings.Instance.DeviceModel;
+ DeviceModelIdentifierTb.Text = Settings.Instance.DeviceModelIdentifier;
+ DeviceModelBootTb.Text = Settings.Instance.DeviceModelBoot;
+ HardwareManufacturerTb.Text = Settings.Instance.HardwareManufacturer;
+ HardwareModelTb.Text = Settings.Instance.HardwareModel;
+ FirmwareBrandTb.Text = Settings.Instance.FirmwareBrand;
+ FirmwareTagsTb.Text = Settings.Instance.FirmwareTags;
+ FirmwareTypeTb.Text = Settings.Instance.FirmwareType;
+ FirmwareFingerprintTb.Text = Settings.Instance.FirmwareFingerprint;
+ deviceTypeCb.SelectedIndex = Settings.Instance.DeviceBrand.ToLower() == "apple" ? 0 : 1;
+ }
+ }
+
+ private void saveBtn_Click(object sender, EventArgs e)
+ {
+ Settings.Instance.SetSetting(authTypeCb.Text, "AuthType");
+ if (authTypeCb.Text.ToLower().Equals("google"))
+ {
+ Settings.Instance.SetSetting(UserLoginBox.Text, "GoogleUsername");
+ Settings.Instance.SetSetting(UserPasswordBox.Text, "GooglePassword");
+ }
+ else
+ {
+ Settings.Instance.SetSetting(UserLoginBox.Text, "PtcUsername");
+ Settings.Instance.SetSetting(UserPasswordBox.Text, "PtcPassword");
+ }
+ Settings.Instance.SetSetting(latitudeText.Text.Replace(',', '.'), "DefaultLatitude");
+ Settings.Instance.SetSetting(longitudeText.Text.Replace(',', '.'), "DefaultLongitude");
+
+ var lat = ConfigurationManager.AppSettings["DefaultLatitude"];
+ var longit = ConfigurationManager.AppSettings["DefaultLongitude"];
+ lat.Replace(',', '.');
+ longit.Replace(',', '.');
+
+ Settings.Instance.SetSetting(razzmodeCb.Text, "RazzBerryMode");
+ Settings.Instance.SetSetting(razzSettingText.Text, "RazzBerrySetting");
+ Settings.Instance.SetSetting(transferTypeCb.Text, "TransferType");
+ Settings.Instance.SetSetting(transferCpThresText.Text, "TransferCPThreshold");
+ Settings.Instance.SetSetting(transferIVThresText.Text, "TransferIVThreshold");
+ Settings.Instance.SetSetting(useIncubatorsCb.Text, "useIncubatorsMode");
+ Settings.Instance.SetSetting(TravelSpeedBox.Text, "TravelSpeed");
+ //Settings.Instance.SetSetting(ImageSizeBox.Text, "ImageSize");
+ Settings.Instance.SetSetting(evolveAllChk.Checked ? "true" : "false", "EvolveAllGivenPokemons");
+ Settings.Instance.SetSetting(CatchPokemonBox.Checked ? "true" : "false", "CatchPokemon");
+ Settings.Instance.ExcludedPokemonCatch = clbCatch.CheckedItems.Cast<PokemonId>().ToList();
+ Settings.Instance.ExcludedPokemonTransfer = clbTransfer.CheckedItems.Cast<PokemonId>().ToList();
+ Settings.Instance.ExcludedPokemonEvolve = clbEvolve.CheckedItems.Cast<PokemonId>().ToList();
+ Settings.Instance.ItemCounts = flpItems.Controls.Cast<ItemSetting>().Select(i => i.ItemData).ToList();
+ Settings.Instance.Reload();
+
+ //Device settings
+ Settings.Instance.DeviceId = DeviceIdTb.Text;
+ Settings.Instance.AndroidBoardName = AndroidBoardNameTb.Text;
+ Settings.Instance.AndroidBootloader = AndroidBootloaderTb.Text;
+ Settings.Instance.DeviceBrand = DeviceBrandTb.Text;
+ Settings.Instance.DeviceModel = DeviceModelTb.Text;
+ Settings.Instance.DeviceModelIdentifier = DeviceModelIdentifierTb.Text;
+ Settings.Instance.DeviceModelBoot = DeviceModelBootTb.Text;
+ Settings.Instance.HardwareManufacturer = HardwareManufacturerTb.Text;
+ Settings.Instance.HardwareModel = HardwareModelTb.Text;
+ Settings.Instance.FirmwareBrand = FirmwareBrandTb.Text;
+ Settings.Instance.FirmwareTags = FirmwareTagsTb.Text;
+ Settings.Instance.FirmwareType = FirmwareTypeTb.Text;
+ Settings.Instance.FirmwareFingerprint = FirmwareFingerprintTb.Text;
+ if (DeviceIdTb.Text == "8525f6d8251f71b7")
+ {
+ PopulateDevice();
+ }
+
+ MainForm.ResetMap();
+ Close();
+ }
+
+ private void authTypeCb_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ if (authTypeCb.Text.ToLower().Equals("google"))
+ {
+ UserLabel.Text = "Email:";
+ }
+ else
+ {
+ UserLabel.Text = "Username:";
+ }
+ }
+
+ private void gMapControl1_MouseClick(object sender, MouseEventArgs e)
+ {
+ var localCoordinates = e.Location;
+ gMapControl1.Position = gMapControl1.FromLocalToLatLng(localCoordinates.X, localCoordinates.Y);
+
+ if (e.Clicks >= 2)
+ {
+ gMapControl1.Zoom += 5;
+ }
+
+ var X = Math.Round(gMapControl1.Position.Lng, 6);
+ var Y = Math.Round(gMapControl1.Position.Lat, 6);
+ var longitude = X.ToString();
+ var latitude = Y.ToString();
+ latitudeText.Text = latitude;
+ longitudeText.Text = longitude;
+ }
+
+ private void trackBar_Scroll(object sender, EventArgs e)
+ {
+ gMapControl1.Zoom = trackBar.Value;
+ }
+
+ private void transferTypeCb_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ if (transferTypeCb.Text == "CP")
+ {
+ label4.Visible = true;
+ transferCpThresText.Visible = true;
+ }
+ else
+ {
+ label4.Visible = false;
+ transferCpThresText.Visible = false;
+ }
+
+ if (transferTypeCb.Text == "IV")
+ {
+ label6.Visible = true;
+ transferIVThresText.Visible = true;
+ }
+ else
+ {
+ label6.Visible = false;
+ transferIVThresText.Visible = false;
+ }
+ }
+
+ private void FindAdressButton_Click(object sender, EventArgs e)
+ {
+ gMapControl1.SetPositionByKeywords(AdressBox.Text);
+ gMapControl1.Zoom = 15;
+ var X = Math.Round(gMapControl1.Position.Lng, 6);
+ var Y = Math.Round(gMapControl1.Position.Lat, 6);
+ var longitude = X.ToString();
+ var latitude = Y.ToString();
+ latitudeText.Text = latitude;
+ longitudeText.Text = longitude;
+ }
+
+ private void TravelSpeedBox_KeyPress(object sender, KeyPressEventArgs e)
+ {
+ var ch = e.KeyChar;
+ if (!char.IsDigit(ch) && ch != 8)
+ {
+ e.Handled = true;
+ }
+ }
+
+ private void razzSettingText_KeyPress(object sender, KeyPressEventArgs e)
+ {
+ var ch = e.KeyChar;
+ if (!char.IsDigit(ch) && ch != 8)
+ {
+ e.Handled = true;
+ }
+ }
+
+ private void AdressBox_Leave(object sender, EventArgs e)
+ {
+ if (AdressBox.Text.Length == 0)
+ {
+ AdressBox.Text = "Enter an address or a coordinate";
+ AdressBox.ForeColor = SystemColors.GrayText;
+ }
+ }
+
+ private void AdressBox_Enter(object sender, EventArgs e)
+ {
+ if (AdressBox.Text == "Enter an address or a coordinate")
+ {
+ AdressBox.Text = "";
+ AdressBox.ForeColor = SystemColors.WindowText;
+ }
+ }
+
+ private void CbSelectAllEvolve_CheckedChanged(object sender, EventArgs e)
+ {
+ for (var i = 0; i < clbEvolve.Items.Count; i++)
+ {
+ clbEvolve.SetItemChecked(i, cbSelectAllEvolve.Checked);
+ }
+ }
+
+ private void CbSelectAllTransfer_CheckedChanged(object sender, EventArgs e)
+ {
+ for (var i = 0; i < clbTransfer.Items.Count; i++)
+ {
+ clbTransfer.SetItemChecked(i, cbSelectAllTransfer.Checked);
+ }
+ }
+
+ private void CbSelectAllCatch_CheckedChanged(object sender, EventArgs e)
+ {
+ for (var i = 0; i < clbCatch.Items.Count; i++)
+ {
+ clbCatch.SetItemChecked(i, cbSelectAllCatch.Checked);
+ }
+ }
+
+ private void AdressBox_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.KeyCode == Keys.Enter)
+ {
+ gMapControl1.SetPositionByKeywords(AdressBox.Text);
+ gMapControl1.Zoom = 15;
+ }
+ }
+
+ private void RandomDeviceBtn_Click(object sender, EventArgs e)
+ {
+ PopulateDevice();
+ }
+
+ private void deviceTypeCb_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ PopulateDevice(deviceTypeCb.SelectedIndex);
+ }
+
+ private void RandomIDBtn_Click(object sender, EventArgs e)
+ {
+ DeviceIdTb.Text = _deviceHelper.RandomString(16, "0123456789abcdef");
+ }
+
+ private void PopulateDevice(int tabIndex = -1)
+ {
+ deviceTypeCb.SelectedIndex = tabIndex == -1 ? _deviceHelper.GetRandomIndex(2) : tabIndex;
+ var candidateDevices = deviceTypeCb.SelectedIndex == 0
+ ? _deviceInfos.Where(d => d.DeviceBrand.ToLower() == "apple").ToList()
+ : _deviceInfos.Where(d => d.DeviceBrand.ToLower() != "apple").ToList();
+ var selectIndex = _deviceHelper.GetRandomIndex(candidateDevices.Count);
+
+ DeviceIdTb.Text = candidateDevices[selectIndex].DeviceId == "8525f6d8251f71b7"
+ ? _deviceHelper.RandomString(16, "0123456789abcdef")
+ : candidateDevices[selectIndex].DeviceId;
+ AndroidBoardNameTb.Text = candidateDevices[selectIndex].AndroidBoardName;
+ AndroidBootloaderTb.Text = candidateDevices[selectIndex].AndroidBootloader;
+ DeviceBrandTb.Text = candidateDevices[selectIndex].DeviceBrand;
+ DeviceModelTb.Text = candidateDevices[selectIndex].DeviceModel;
+ DeviceModelIdentifierTb.Text = candidateDevices[selectIndex].DeviceModelIdentifier;
+ DeviceModelBootTb.Text = candidateDevices[selectIndex].DeviceModelBoot;
+ HardwareManufacturerTb.Text = candidateDevices[selectIndex].HardwareManufacturer;
+ HardwareModelTb.Text = candidateDevices[selectIndex].HardwareModel;
+ FirmwareBrandTb.Text = candidateDevices[selectIndex].FirmwareBrand;
+ FirmwareTagsTb.Text = candidateDevices[selectIndex].FirmwareTags;
+ FirmwareTypeTb.Text = candidateDevices[selectIndex].FirmwareType;
+ FirmwareFingerprintTb.Text = candidateDevices[selectIndex].FirmwareFingerprint;
+ }
+ }
+}
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Window/SettingsForm.resx b/src/RocketBotGUI/SettingsForm.resx
similarity index 100%
rename from PokemonGo/RocketAPI/Window/SettingsForm.resx
rename to src/RocketBotGUI/SettingsForm.resx
diff --git a/PokemonGo/RocketAPI/Window/lib/GMap.NET.Core.xml b/src/RocketBotGUI/lib/GMap.NET.Core.xml
similarity index 100%
rename from PokemonGo/RocketAPI/Window/lib/GMap.NET.Core.xml
rename to src/RocketBotGUI/lib/GMap.NET.Core.xml
diff --git a/PokemonGo/RocketAPI/Window/lib/GMap.NET.WindowsForms.xml b/src/RocketBotGUI/lib/GMap.NET.WindowsForms.xml
similarity index 100%
rename from PokemonGo/RocketAPI/Window/lib/GMap.NET.WindowsForms.xml
rename to src/RocketBotGUI/lib/GMap.NET.WindowsForms.xml
diff --git a/PokemonGo/RocketAPI/Window/lib/License.txt b/src/RocketBotGUI/lib/License.txt
similarity index 100%
rename from PokemonGo/RocketAPI/Window/lib/License.txt
rename to src/RocketBotGUI/lib/License.txt
diff --git a/PokemonGo/RocketAPI/Window/packages.config b/src/RocketBotGUI/packages.config
similarity index 72%
rename from PokemonGo/RocketAPI/Window/packages.config
rename to src/RocketBotGUI/packages.config
index 7d8915d..5a16f90 100644
--- a/PokemonGo/RocketAPI/Window/packages.config
+++ b/src/RocketBotGUI/packages.config
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
+
<packages>
+ <package id="GMap.NET.WindowsForms" version="1.7.1" targetFramework="net452" />
<package id="ObjectListView.Official" version="2.9.1" targetFramework="net45" />
<package id="S2Geometry" version="1.0.3" targetFramework="net45" />
</packages>
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Window/pokemonGo.ico b/src/RocketBotGUI/pokemonGo.ico
similarity index 100%
rename from PokemonGo/RocketAPI/Window/pokemonGo.ico
rename to src/RocketBotGUI/pokemonGo.ico
You may download the files in Public Git.