private void copy_items_btn_Click(object sender, EventArgs e) { CharEditTab sending_tab = find_sending_tab(sender); if (sending_tab != null) { var enumerator = sending_tab.slasher_list_view.SelectedIndices.GetEnumerator(); int ind = 0; string items_string = ""; while (enumerator.MoveNext()) { if (ind != 0) { //Add ',' items_string += ","; } string item_name = sending_tab.slasher_list_view.SelectedItems[ind].SubItems[0].Text; items_string += item_name; items_string += "="; items_string += sending_tab.slasher_list_view.SelectedItems[ind].SubItems[1].Text; ++ind; } if (items_string.Length == 0) { MessageBox.Show("Please select some items to be copied."); } else { System.Windows.Forms.Clipboard.SetText(items_string); MessageBox.Show("Copied " + ind.ToString() + " items to clipboard."); } } }
private void add_item_btn_Click(object sender, EventArgs e) { CharEditTab sending_tab = find_sending_tab(sender); if (sending_tab == null) { return; } ItemForm inpDiag = new ItemForm("", "Enter name of new item:"); if (inpDiag.ShowDialog(this) == DialogResult.OK && inpDiag.GetResult() != null) { if (sending_tab.dbd_char.Inventory.ContainsKey(inpDiag.GetResult())) { MessageBox.Show("Can't add an item that already exists..."); } else { sending_tab.dbd_char.Inventory.Add(inpDiag.GetResult(), 1); var item = new ListViewItem(new[] { inpDiag.GetResult(), "1" }); sending_tab.slasher_list_view.Items.Add(item); } } inpDiag.Dispose(); }
private void slasher_tab_MouseDoubleClick(object sender, MouseEventArgs e) { CharEditTab sending_tab = find_sending_tab(sender); if (sending_tab != null && sending_tab.slasher_list_view.GetItemAt(e.X, e.Y) != null) { var enumerator = sending_tab.slasher_list_view.SelectedIndices.GetEnumerator(); enumerator.MoveNext(); var cur_idx = enumerator.Current; string item_name = sending_tab.slasher_list_view.SelectedItems[0].SubItems[0].Text; NumberForm inpDiag = new NumberForm(sending_tab.dbd_char.Inventory[item_name].ToString()); if (inpDiag.ShowDialog(this) == DialogResult.OK) { item_cnt -= sending_tab.dbd_char.Inventory[item_name]; sending_tab.dbd_char.Inventory[item_name] = int.Parse(inpDiag.GetResult()); sending_tab.slasher_list_view.SelectedItems[0].SubItems[1].Text = "" + sending_tab.dbd_char.Inventory[item_name]; item_cnt += sending_tab.dbd_char.Inventory[item_name]; } inpDiag.Dispose(); } if (item_cnt >= 250000 && !displayed_item_warning) { displayed_item_warning = true; MessageBox.Show("Warning: Profile has more than 250.000 items. Adding too many items causes freeze issues and crashes (instable game)."); } }
private void paste_items_btn_Click(object sender, EventArgs e) { CharEditTab sending_tab = find_sending_tab(sender); if (sending_tab != null) { string clipboard_text = System.Windows.Forms.Clipboard.GetText(); string[] words = clipboard_text.Split(','); int pasted_amount = 0; foreach (string s in words) { string[] assignment = s.Split('='); if (assignment.Count() != 2) { MessageBox.Show("Invalid format: " + s); return; } int count = int.Parse(assignment[1]); if (sending_tab.dbd_char.Inventory.ContainsKey(assignment[0])) { sending_tab.dbd_char.Inventory[assignment[0]] = count; for (int i = 0; i < sending_tab.slasher_list_view.SelectedItems.Count; ++i) { if (sending_tab.slasher_list_view.SelectedItems[i].SubItems[0].Text.Equals(assignment[0])) { sending_tab.slasher_list_view.SelectedItems[i].SubItems[1].Text = "" + sending_tab.dbd_char.Inventory[assignment[0]]; } } } else { sending_tab.dbd_char.Inventory.Add(assignment[0], count); var item = new ListViewItem(new[] { assignment[0], assignment[1] }); sending_tab.slasher_list_view.Items.Add(item); } ++pasted_amount; } MessageBox.Show("Pasted " + pasted_amount.ToString() + " items."); } }
private void modify_amount_btn_Click(object sender, EventArgs e) { CharEditTab sending_tab = find_sending_tab(sender); if (sending_tab != null) { var enumerator = sending_tab.slasher_list_view.SelectedIndices.GetEnumerator(); bool first = true; List <string> selected_items = new List <string>(); int ind = 0; string items_string = ""; while (enumerator.MoveNext()) { if (!first) { //Add ',' items_string += ","; } var cur_idx = enumerator.Current; string item_name = sending_tab.slasher_list_view.SelectedItems[ind].SubItems[0].Text; selected_items.Add(item_name); items_string += item_name; first = false; ++ind; } if (ind == 0) { return; //Nothing selected! } int max_amount = 0; foreach (string item in selected_items) { if (sending_tab.dbd_char.Inventory[item] > max_amount) { max_amount = sending_tab.dbd_char.Inventory[item]; } } NumberForm inpDiag = new NumberForm(max_amount.ToString()); if (inpDiag.ShowDialog(this) == DialogResult.OK) { int j = 0; foreach (string item in selected_items) { item_cnt -= sending_tab.dbd_char.Inventory[item]; sending_tab.dbd_char.Inventory[item] = int.Parse(inpDiag.GetResult()); sending_tab.slasher_list_view.SelectedItems[j].SubItems[1].Text = "" + sending_tab.dbd_char.Inventory[item]; item_cnt += sending_tab.dbd_char.Inventory[item]; ++j; } } inpDiag.Dispose(); } if (item_cnt >= 250000 && !displayed_item_warning) { displayed_item_warning = true; MessageBox.Show("Warning: Profile has more than 250.000 items. Adding too many items causes freeze issues and crashes (instable game)."); } }
private void set_level_btn_Click(object sender, EventArgs e) { CharEditTab sending_tab = find_sending_tab(sender); if (sending_tab != null) { // First read level int char_lvl = int.Parse(json_obj["CharacterData"][sending_tab.dbd_char.EntryNum]["CharacterDataValue"]["bloodWebLevel"].ToString()); int char_prestige_count = int.Parse(json_obj["CharacterData"][sending_tab.dbd_char.EntryNum]["CharacterDataValue"]["prestigeLevel"].ToString()); List <DateTime> prestige_dates = json_obj["CharacterData"][sending_tab.dbd_char.EntryNum]["CharacterDataValue"]["PrestigeEarnedDates"].ToObject <List <DateTime> >(); PrestigeForm inpDiag = new PrestigeForm(char_lvl, char_prestige_count, prestige_dates, sending_tab.has_prestige); if (inpDiag.ShowDialog(this) == DialogResult.OK && inpDiag.DidSave() == true) { DateTime legacy_date = new DateTime(1, 1, 1, 0, 0, 0); List <DateTime> new_dates = new List <DateTime>(); int prestige_count = 0; if (inpDiag.pres1) { ++prestige_count; if (inpDiag.legacy1) { new_dates.Add(legacy_date); } else { new_dates.Add(inpDiag.t_pres1); } if (inpDiag.pres2) { ++prestige_count; if (inpDiag.legacy2) { new_dates.Add(legacy_date); } else { new_dates.Add(inpDiag.t_pres2); } if (inpDiag.pres3) { ++prestige_count; if (inpDiag.legacy3) { new_dates.Add(legacy_date); } else { new_dates.Add(inpDiag.t_pres3); } } } } int new_lvl = inpDiag.level; //Assign everything json_obj["CharacterData"][sending_tab.dbd_char.EntryNum]["CharacterDataValue"]["bloodWebLevel"] = new_lvl; json_obj["CharacterData"][sending_tab.dbd_char.EntryNum]["CharacterDataValue"]["prestigeLevel"] = prestige_count; json_obj["CharacterData"][sending_tab.dbd_char.EntryNum]["CharacterDataValue"]["PrestigeEarnedDates"] = JToken.FromObject(new_dates); } else { //MessageBox.Show("Canceled"); } inpDiag.Dispose(); } }
void fill_tabs() { if (cur_json.Length == 0) { return; } //Parse json try { json_obj = JObject.Parse(cur_json); //Json text json_text_field.Text = Newtonsoft.Json.JsonConvert.SerializeObject(json_obj, Newtonsoft.Json.Formatting.Indented); dbd_char_list.Clear();; main_val_listview.Clear(); main_val_listview.Items.Clear(); main_val_listview.Columns.Clear(); main_val_listview.Columns.Add("Key", -2, HorizontalAlignment.Left); main_val_listview.Columns.Add("Value", -2, HorizontalAlignment.Left); main_val_listview.View = View.Details; foreach (string key in main_keys) { var item = new ListViewItem(new[] { key, json_obj.GetValue(key).ToString() }); main_val_listview.Items.Add(item); } main_val_listview.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); main_val_listview.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); IList <JToken> results = json_obj["CharacterData"].Children().ToList(); IList <MainForm.CharacterData> searchResults = new List <MainForm.CharacterData>(); item_cnt = 0; int entry = 0; foreach (JToken result in results) { MainForm.CharacterData cc = result.ToObject <MainForm.CharacterData>(); searchResults.Add(cc); if (cc.CharacterDataID == "-1") { ++entry; continue; } IList <JToken> item_token = cc.CharacterDataValue["inventoryData"].Children().ToList(); DbdCharacter dbd_char = new DbdCharacter(cc.CharacterDataID, entry); foreach (JToken item in item_token) { MainForm.InventoryData inv_item = item.ToObject <MainForm.InventoryData>(); if (!dbd_char.Inventory.ContainsKey(inv_item.name)) { dbd_char.Inventory[inv_item.name] = 1; } else { ++dbd_char.Inventory[inv_item.name]; } ++item_cnt; } dbd_char_list.Add(dbd_char); ++entry; } for (int i = 0; i < char_tabs.Count; ++i) { char_tabs[i].Dispose(); } char_tabs.Clear(); int cnum = dbd_char_list.Count; foreach (DbdCharacter dbd_char in dbd_char_list.Reverse()) { CharEditTab gui_tab = new CharEditTab(this, --cnum, dbd_char); char_tabs.Add(gui_tab); } } catch (Newtonsoft.Json.JsonReaderException) { MessageBox.Show("Savegame file is not valid :-("); } }