MonsterTunerForm.cs 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. using Server.MirDatabase;
  2. using Server.MirEnvir;
  3. using Server.MirObjects;
  4. namespace Server.MirForms.Systems
  5. {
  6. public partial class MonsterTunerForm : Form
  7. {
  8. public Envir Envir => SMain.Envir;
  9. public MonsterTunerForm()
  10. {
  11. InitializeComponent();
  12. for (int i = 0; i < Envir.MonsterInfoList.Count; i++)
  13. {
  14. SelectMonsterComboBox.Items.Add(Envir.MonsterInfoList[i]);
  15. }
  16. }
  17. private void SelectMonsterComboBox_SelectedIndexChanged(object sender, EventArgs e)
  18. {
  19. ComboBox comboBox = (ComboBox)sender;
  20. MonsterInfo monster = (MonsterInfo)comboBox.SelectedItem;
  21. if (monster == null) return;
  22. MonsterNameTextBox.Text = monster.Name;
  23. HPTextBox.Text = monster.Stats[Stat.HP].ToString();
  24. EffectTextBox.Text = monster.Effect.ToString();
  25. LevelTextBox.Text = monster.Level.ToString();
  26. ViewRangeTextBox.Text = monster.ViewRange.ToString();
  27. CoolEyeTextBox.Text = monster.CoolEye.ToString();
  28. MinACTextBox.Text = monster.Stats[Stat.MinAC].ToString();
  29. MaxACTextBox.Text = monster.Stats[Stat.MaxAC].ToString();
  30. MinMACTextBox.Text = monster.Stats[Stat.MinMAC].ToString();
  31. MaxMACTextBox.Text = monster.Stats[Stat.MaxMAC].ToString();
  32. MinDCTextBox.Text = monster.Stats[Stat.MinDC].ToString();
  33. MaxDCTextBox.Text = monster.Stats[Stat.MaxDC].ToString();
  34. MinMCTextBox.Text = monster.Stats[Stat.MinMC].ToString();
  35. MaxMCTextBox.Text = monster.Stats[Stat.MaxMC].ToString();
  36. MinSCTextBox.Text = monster.Stats[Stat.MinSC].ToString();
  37. MaxSCTextBox.Text = monster.Stats[Stat.MaxSC].ToString();
  38. AccuracyTextBox.Text = monster.Stats[Stat.Accuracy].ToString();
  39. AgilityTextBox.Text = monster.Stats[Stat.Agility].ToString();
  40. ASpeedTextBox.Text = monster.AttackSpeed.ToString();
  41. MSpeedTextBox.Text = monster.MoveSpeed.ToString();
  42. }
  43. private void updateButton_Click(object sender, EventArgs e)
  44. {
  45. MonsterInfo monster = (MonsterInfo)SelectMonsterComboBox.SelectedItem;
  46. if (monster == null) return;
  47. try
  48. {
  49. monster.Stats[Stat.HP] = int.Parse(HPTextBox.Text);
  50. monster.Effect = byte.Parse(EffectTextBox.Text);
  51. monster.Level = ushort.Parse(LevelTextBox.Text);
  52. monster.ViewRange = byte.Parse(ViewRangeTextBox.Text);
  53. monster.CoolEye = byte.Parse(CoolEyeTextBox.Text);
  54. monster.Stats[Stat.MinAC] = ushort.Parse(MinACTextBox.Text);
  55. monster.Stats[Stat.MaxAC] = ushort.Parse(MaxACTextBox.Text);
  56. monster.Stats[Stat.MinMAC] = ushort.Parse(MinMACTextBox.Text);
  57. monster.Stats[Stat.MaxMAC] = ushort.Parse(MaxMACTextBox.Text);
  58. monster.Stats[Stat.MinDC] = ushort.Parse(MinDCTextBox.Text);
  59. monster.Stats[Stat.MaxDC] = ushort.Parse(MaxDCTextBox.Text);
  60. monster.Stats[Stat.MinMC] = ushort.Parse(MinMCTextBox.Text);
  61. monster.Stats[Stat.MaxMC] = ushort.Parse(MaxMCTextBox.Text);
  62. monster.Stats[Stat.MinSC] = ushort.Parse(MinSCTextBox.Text);
  63. monster.Stats[Stat.MaxSC] = ushort.Parse(MaxSCTextBox.Text);
  64. monster.Stats[Stat.Accuracy] = byte.Parse(AccuracyTextBox.Text);
  65. monster.Stats[Stat.Agility] = byte.Parse(AgilityTextBox.Text);
  66. monster.AttackSpeed = ushort.Parse(ASpeedTextBox.Text);
  67. monster.MoveSpeed = ushort.Parse(MSpeedTextBox.Text);
  68. }
  69. catch
  70. {
  71. MessageBox.Show("Value validation failed. Please correct before updating", "Notice",
  72. MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  73. return;
  74. }
  75. foreach (var item in Envir.Objects)
  76. {
  77. if (item.Race != ObjectType.Monster) continue;
  78. MonsterObject mob = (MonsterObject)item;
  79. mob.RefreshAll();
  80. }
  81. }
  82. private void SaveButton_Click(object sender, EventArgs e)
  83. {
  84. for (int i = 0; i < SelectMonsterComboBox.Items.Count; i++)
  85. {
  86. MonsterInfo mob = (MonsterInfo)SelectMonsterComboBox.Items[i];
  87. if (mob == null) continue;
  88. if (Envir.MonsterInfoList[i].Index != mob.Index) break;
  89. Envir.MonsterInfoList[i] = mob;
  90. }
  91. Envir.SaveDB();
  92. }
  93. }
  94. }