private void UpdateForm(object sender, EventArgs e) { if (!loaded || updating) { return; } updating = true; if (sender != null && sender != CB_MonIndex) { //Owned Box Properties int ind = (int)CB_MonIndex.SelectedValue; ushort set_level = (ushort)(CHK_CaughtMon.Checked ? (NUP_Level.Value == 1 ? 0 : NUP_Level.Value) : 0); ushort set_rml = (ushort)(CHK_CaughtMon.Checked ? NUP_Lollipop.Value : 0); if (set_level > 10 + set_rml) { if ((sender as Control).Name.Contains("Level")) { set_rml = (ushort)(set_level - 10); } else if ((sender as Control).Name.Contains("Lollipop")) { set_level = (ushort)(10 + set_rml); } } SetCaught(ind, CHK_CaughtMon.Checked); SetLevel(ind, set_level, set_rml); SetStone(ind, CHK_MegaX.Checked, CHK_MegaY.Checked); SetSpeedup(ind, (db.HasMega[ind][0] && CHK_CaughtMon.Checked && CHK_MegaX.Checked), (int)NUP_SpeedUpX.Value, (db.HasMega[ind][1] && CHK_CaughtMon.Checked && CHK_MegaY.Checked), (int)NUP_SpeedUpY.Value); //if (!(sender as Control).Name.Equals("CB_Skill")) // SetSkill(ind, (int)(CHK_CaughtMon.Checked ? CB_Skill.SelectedValue : 0), (int)(CHK_CaughtMon.Checked ? NUP_SkillLvl.Value : 1), CHK_CaughtMon.Checked && ((sender as Control).Name.ToLower().Contains("currentskill") && CHK_CurrentSkill.Checked)); for (int j = 0; j < TLP_Skills.RowCount; j++) { int slvl = 1; bool iscurrent = false; for (int i = 0; i < TLP_Skills.ColumnCount; i++) { if (TLP_Skills.GetControlFromPosition(i, j) is RadioButton) { iscurrent = (TLP_Skills.GetControlFromPosition(i, j) as RadioButton).Checked; } else if (TLP_Skills.GetControlFromPosition(i, j) is NumericUpDown) { slvl = (int)(TLP_Skills.GetControlFromPosition(i, j) as NumericUpDown).Value; } } SetSkill(ind, j, (GetMon(ind).Caught) ? slvl : 1, iscurrent); } //Stages Box Properties SetScore((int)NUP_MainIndex.Value - 1, 0, (ulong)NUP_MainScore.Value); SetScore((int)NUP_ExpertIndex.Value - 1, 1, (ulong)NUP_ExpertScore.Value); SetScore((int)NUP_EventIndex.Value, 2, (ulong)NUP_EventScore.Value); //Ressources Box Properties SetResources((int)NUP_Hearts.Value, (uint)NUP_Coins.Value, (uint)NUP_Jewels.Value, SI_Items.Items, SI_Items.Enchantments); } Parse(); updating = false; }
private void UpdateForm(object sender, EventArgs e) { if (!loaded || updating) { return; } updating = true; if (!(new Control[] { null, CB_MonIndex, NUP_MainIndex, NUP_ExpertIndex, NUP_EventIndex }.Contains(sender))) {//add above any control which purpose is to change info displayed on another control, to prevent it from writing to savedata when doing so. //Owned Box Properties if (CB_MonIndex.SelectedValue != null) { int ind = (int)CB_MonIndex.SelectedValue; ushort set_level = (ushort)((CHK_CaughtMon.Checked || NUP_Level.Value == 1) ? NUP_Level.Value : 0); ushort set_rml = (ushort)(CHK_CaughtMon.Checked ? NUP_Lollipop.Value : 0); if (set_level > 10 + set_rml) { if ((sender as Control).Name.Contains("Level")) { set_rml = (ushort)(set_level - 10); } if ((sender as Control).Name.Contains("Lollipop")) { set_level = (ushort)(10 + set_rml); } } SetCaught(ind, CHK_CaughtMon.Checked); SetLevel(ind, set_level, set_rml); SetStone(ind, CHK_MegaX.Checked, CHK_MegaY.Checked); SetSpeedup(ind, (db.HasMega[ind][0] && CHK_CaughtMon.Checked && CHK_MegaX.Checked), (int)NUP_SpeedUpX.Value, (db.HasMega[ind][1] && CHK_CaughtMon.Checked && CHK_MegaY.Checked), (int)NUP_SpeedUpY.Value); for (int j = 0; j < TLP_Skills.RowCount; j++) { int skillLevel = 1; bool iscurrent = false; for (int i = 0; i < TLP_Skills.ColumnCount; i++) { if (TLP_Skills.GetControlFromPosition(i, j) is RadioButton) { iscurrent = (TLP_Skills.GetControlFromPosition(i, j) as RadioButton).Checked; } else if (TLP_Skills.GetControlFromPosition(i, j) is NumericUpDown) { skillLevel = (int)(TLP_Skills.GetControlFromPosition(i, j) as NumericUpDown).Value; } } SetSkill(ind, j, (GetMon(ind).Caught) ? skillLevel : 1, iscurrent); } } //Stages Box Properties SetScore((int)NUP_MainIndex.Value - 1, 0, (int)NUP_MainScore.Value); SetScore((int)NUP_ExpertIndex.Value - 1, 1, (int)NUP_ExpertScore.Value); SetScore((int)NUP_EventIndex.Value, 2, (int)NUP_EventScore.Value); //Ressources Box Properties SetResources((uint)NUP_Hearts.Value, (uint)NUP_Coins.Value, (uint)NUP_Jewels.Value, SI_Items.Items, SI_Items.Enchantments); } Parse(); updating = false; }
private void UpdateOwnedBox() { int ind = (int)CB_MonIndex.SelectedValue; //team preview int k = 1; foreach (PictureBox pb in new[] { PB_Team1, PB_Team2, PB_Team3, PB_Team4 }) { pb.Image = GetTeamImage(GetTeam(k), (ltir == k)); k++; } //caught CHK CHK_CaughtMon.Checked = GetMon(ind).Caught; //level view NUP_Lollipop.Maximum = db.Mons[ind].Item4; NUP_Lollipop.Value = GetMon(ind).Lollipops; NUP_Level.Maximum = 10 + NUP_Lollipop.Maximum; NUP_Level.Value = GetMon(ind).Level; //Skill level for (int i = 0; i < TLP_Skills.ColumnCount; i++) { for (int j = 0; j < TLP_Skills.RowCount; j++) { if (TLP_Skills.GetControlFromPosition(i, j) is RadioButton) { (TLP_Skills.GetControlFromPosition(i, j) as RadioButton).Checked = (GetMon(ind).CurrentSkill == j); } else if (TLP_Skills.GetControlFromPosition(i, j) is Label) { (TLP_Skills.GetControlFromPosition(i, j) as Label).Text = (db.Mons[(int)CB_MonIndex.SelectedValue].Item6[j] != 0 || j == 0) ? db.SkillsList[db.Mons[(int)CB_MonIndex.SelectedValue].Item6[j] - 1] : ""; toolTip1.SetToolTip((TLP_Skills.GetControlFromPosition(i, j) as Label), (db.Mons[ind].Item6[j] > 0) ? db.SkillsTextList[db.Mons[ind].Item6[j] - 1] : "default"); } else if (TLP_Skills.GetControlFromPosition(i, j) is NumericUpDown) { (TLP_Skills.GetControlFromPosition(i, j) as NumericUpDown).Value = Math.Max(GetMon(ind).SkillLevel[j], 1); } (TLP_Skills.GetControlFromPosition(i, j) as Control).Visible = (GetMon((int)CB_MonIndex.SelectedValue).Caught&& j < db.Mons[ind].Rest.Item2); //visibility stuff for convenience } } //Speedup values if (db.MegaList.IndexOf(ind) != -1) //temporary fix while there are still some mega forms missing in megastone.bin { NUP_SpeedUpX.Maximum = db.HasMega[ind][0] ? db.Megas[db.MegaList.IndexOf(ind)].Item2 : 0; NUP_SpeedUpY.Maximum = db.HasMega[ind][1] ? db.Megas[db.MegaList.IndexOf(ind, db.MegaList.IndexOf(ind) + 1)].Item2 : 0; NUP_SpeedUpX.Value = GetMon(ind).SpeedUpX; NUP_SpeedUpY.Value = GetMon(ind).SpeedUpY; } else { NUP_SpeedUpX.Maximum = NUP_SpeedUpY.Maximum = 1; NUP_SpeedUpX.Value = NUP_SpeedUpY.Value = 0; } #region Visibility L_Level.Visible = L_Skill.Visible = NUP_Level.Visible = PB_Skill.Visible = CHK_CaughtMon.Checked; PB_Lollipop.Visible = NUP_Lollipop.Visible = (CHK_CaughtMon.Checked && NUP_Lollipop.Maximum != 0); PB_Mon.Image = GetCaughtImage(ind, CHK_CaughtMon.Checked); PB_MegaX.Visible = CHK_MegaX.Visible = db.HasMega[ind][0]; PB_MegaY.Visible = CHK_MegaY.Visible = db.HasMega[ind][1]; PB_MegaX.Image = db.HasMega[ind][0] ? new Bitmap((Image)Properties.Resources.ResourceManager.GetObject("MegaStone" + db.Mons[ind].Item1.ToString("000") + (db.HasMega[ind][1] ? "_X" : string.Empty))) : new Bitmap(16, 16); PB_MegaY.Image = db.HasMega[ind][1] ? new Bitmap((Image)Properties.Resources.ResourceManager.GetObject("MegaStone" + db.Mons[ind].Item1.ToString("000") + "_Y")) : new Bitmap(16, 16); CHK_MegaX.Checked = (GetMon(ind).Stone & 1) != 0; CHK_MegaY.Checked = (GetMon(ind).Stone & 2) != 0; NUP_SpeedUpX.Visible = PB_SpeedUpX.Visible = CHK_CaughtMon.Checked && CHK_MegaX.Visible && CHK_MegaX.Checked; NUP_SpeedUpY.Visible = PB_SpeedUpY.Visible = CHK_CaughtMon.Checked && CHK_MegaY.Visible && CHK_MegaY.Checked; //Else NUP_SpeedUpY appears if the next mega in terms of offsets has been obtained PB_SpeedUpX.Image = db.HasMega[ind][0] ? new Bitmap(ResizeImage((Image)Properties.Resources.ResourceManager.GetObject("mega_speedup"), 24, 24)) : new Bitmap(16, 16); PB_SpeedUpY.Image = db.HasMega[ind][1] ? new Bitmap(ResizeImage((Image)Properties.Resources.ResourceManager.GetObject("mega_speedup"), 24, 24)) : new Bitmap(16, 16); RB_Skill1.Enabled = (db.Mons[ind].Rest.Item2 > 1); #endregion Visibility }
private void Parse() { updating = true; #region UpdateOwnedBox() if (CB_MonIndex.SelectedValue != null) { int ind = (int)CB_MonIndex.SelectedValue; //team preview int pbIndex = 0; foreach (PictureBox pb in new[] { PB_Team1, PB_Team2, PB_Team3, PB_Team4 }) { pb.Image = GetTeamImage(GetMonFrommSlot(pbIndex), pbIndex, (ltir == pbIndex)); pbIndex++; } //caught CHK CHK_CaughtMon.Checked = GetMon(ind).Caught; //level view if (GetMon(ind).Lollipops > db.Mons[ind].MaxLollipops || GetMon(ind).Level > 10 + db.Mons[ind].MaxLollipops) { NUP_Lollipop.Maximum = NUP_Level.Maximum = 63; NUP_Lollipop.ForeColor = NUP_Level.ForeColor = Color.Red; } else { NUP_Lollipop.Maximum = db.Mons[ind].MaxLollipops; NUP_Level.Maximum = 10 + NUP_Lollipop.Maximum; NUP_Lollipop.ForeColor = NUP_Level.ForeColor = SystemColors.WindowText; } NUP_Lollipop.Value = GetMon(ind).Lollipops; NUP_Level.Value = GetMon(ind).Level; //Skill level for (int i = 0; i < TLP_Skills.ColumnCount; i++) { for (int j = 0; j < TLP_Skills.RowCount; j++) { if (TLP_Skills.GetControlFromPosition(i, j) is RadioButton) { (TLP_Skills.GetControlFromPosition(i, j) as RadioButton).Checked = (GetMon(ind).CurrentSkill == j); } else if (TLP_Skills.GetControlFromPosition(i, j) is Label) { (TLP_Skills.GetControlFromPosition(i, j) as Label).Text = (db.Mons[ind].Skills[j] == 0 && j != 0) ? "" : db.SkillsList[db.Mons[ind].Skills[j] - 1]; TT_Skill.SetToolTip((TLP_Skills.GetControlFromPosition(i, j) as Label), (db.Mons[ind].Skills[j] > 0) ? db.SkillsTextList[db.Mons[ind].Skills[j] - 1] : "default"); } else if (TLP_Skills.GetControlFromPosition(i, j) is NumericUpDown) { (TLP_Skills.GetControlFromPosition(i, j) as NumericUpDown).Maximum = GetMon(ind).SkillLevel[j] > 5 ? 7 : 5; (TLP_Skills.GetControlFromPosition(i, j) as NumericUpDown).Value = Math.Max(GetMon(ind).SkillLevel[j], 1); } (TLP_Skills.GetControlFromPosition(i, j) as Control).Visible = (GetMon(ind).Caught&& j < db.Mons[ind].SkillCount); //visibility stuff for convenience } } #region Visibility L_Level.Visible = L_Skill.Visible = NUP_Level.Visible = PB_Skill.Visible = CHK_CaughtMon.Checked; PB_Lollipop.Visible = NUP_Lollipop.Visible = (CHK_CaughtMon.Checked && NUP_Lollipop.Maximum != 0); PB_Mon.Image = GetCaughtImage(ind, CHK_CaughtMon.Checked); PB_MegaX.Visible = CHK_MegaX.Visible = db.HasMega[ind][0]; PB_MegaY.Visible = CHK_MegaY.Visible = db.HasMega[ind][1]; PB_MegaX.Image = db.HasMega[ind][0] ? new Bitmap((Image)Properties.Resources.ResourceManager.GetObject("MegaStone" + db.Mons[ind].SpecieIndex.ToString("000") + (db.HasMega[ind][1] ? "_X" : string.Empty))) : new Bitmap(16, 16); PB_MegaY.Image = db.HasMega[ind][1] ? new Bitmap((Image)Properties.Resources.ResourceManager.GetObject("MegaStone" + db.Mons[ind].SpecieIndex.ToString("000") + "_Y")) : new Bitmap(16, 16); CHK_MegaX.Checked = (GetMon(ind).Stone & 1) != 0; CHK_MegaY.Checked = (GetMon(ind).Stone & 2) != 0; PB_SpeedUpX.Image = db.HasMega[ind][0] ? new Bitmap(ResizeImage((Image)Properties.Resources.ResourceManager.GetObject("mega_speedup"), 24, 24)) : new Bitmap(16, 16); PB_SpeedUpY.Image = db.HasMega[ind][1] ? new Bitmap(ResizeImage((Image)Properties.Resources.ResourceManager.GetObject("mega_speedup"), 24, 24)) : new Bitmap(16, 16); RB_Skill1.Enabled = (db.Mons[ind].SkillCount > 1); #endregion Visibility //Speedup values if (!(db.HasMega[ind][0] || db.HasMega[ind][1]) || db.MegaList.IndexOf(ind) == -1) //temporary fix while there are still some mega forms missing in megastone.bin { NUP_SpeedUpX.Maximum = NUP_SpeedUpY.Maximum = NUP_SpeedUpX.Value = NUP_SpeedUpY.Value = 0; NUP_SpeedUpX.Visible = NUP_SpeedUpY.Visible = (db.MegaList.IndexOf(ind) != -1); } else { bool boolX = GetMon(ind).SpeedUpX > db.Megas[db.MegaList.IndexOf(ind)].Item2; bool boolY = db.HasMega[ind][1] && GetMon(ind).SpeedUpY > db.Megas[db.MegaList.IndexOf(ind, db.MegaList.IndexOf(ind) + 1)].Item2; NUP_SpeedUpX.ForeColor = boolX ? Color.Red : SystemColors.WindowText; NUP_SpeedUpY.ForeColor = boolY ? Color.Red : SystemColors.WindowText; NUP_SpeedUpX.Maximum = boolX ? 127 : (db.HasMega[ind][0] ? db.Megas[db.MegaList.IndexOf(ind)].Item2 : 0); NUP_SpeedUpY.Maximum = boolY ? 127 : (db.HasMega[ind][1] ? db.Megas[db.MegaList.IndexOf(ind, db.MegaList.IndexOf(ind) + 1)].Item2 : 0); NUP_SpeedUpX.Value = db.HasMega[ind][0] ? GetMon(ind).SpeedUpX : 0; NUP_SpeedUpY.Value = db.HasMega[ind][1] ? GetMon(ind).SpeedUpY : 0; NUP_SpeedUpX.Visible = CHK_CaughtMon.Checked && CHK_MegaX.Visible && CHK_MegaX.Checked; NUP_SpeedUpY.Visible = CHK_CaughtMon.Checked && CHK_MegaY.Visible && CHK_MegaY.Checked; //Else NUP_SpeedUpY appears if the next mega in terms of offsets has been obtained } PB_SpeedUpX.Visible = NUP_SpeedUpX.Visible; PB_SpeedUpY.Visible = NUP_SpeedUpY.Visible; } #endregion #region UpdateResourceBox() rsItem rsI = GetRessources(); NumericUpDown[] nup = new NumericUpDown[] { NUP_Coins, NUP_Jewels, NUP_Hearts }; var val = new[] { rsI.Coins, rsI.Jewels, rsI.Hearts }; int[] legit = new int[] { 99999, 150, 99 }; int[] max = new int[] { 131071, 255, 127 }; for (int i = 0; i < nup.Length; i++) { nup[i].Maximum = (val[i] > legit[i]) ? max[i] : legit[i]; nup[i].ForeColor = (val[i] > legit[i]) ? Color.Red : SystemColors.WindowText; } NUP_Coins.Value = rsI.Coins; NUP_Jewels.Value = rsI.Jewels; NUP_Hearts.Value = rsI.Hearts; for (int i = 0; i < SI_Items.Items.Length; i++) { SI_Items.Items[i] = rsI.Items[i].Range(); } for (int i = 0; i < SI_Items.Enchantments.Length; i++) { SI_Items.Enchantments[i] = rsI.Enhancements[i].Range(); } ItemsGrid.Refresh(); #endregion #region UpdateStageBox() int[] index = new int[] { (int)NUP_MainIndex.Value - 1, (int)NUP_ExpertIndex.Value - 1, (int)NUP_EventIndex.Value }; PictureBox[] stagesPics = new[] { PB_Main, PB_Expert, PB_Event }; NumericUpDown[] nups = new[] { NUP_MainScore, NUP_ExpertScore, NUP_EventScore }; for (int i = 0; i < index.Length; i++) { nups[i].Value = GetStage(index[i], i).Score; stagesPics[i].Image = GetStageImage(index[i], i); } #endregion updating = false; }