ConquestInfoForm.cs 39 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123
  1. using Server.MirDatabase;
  2. using Server.MirEnvir;
  3. namespace Server
  4. {
  5. public partial class ConquestInfoForm : Form
  6. {
  7. public Envir Envir => SMain.EditEnvir;
  8. private ConquestInfo selectedConquest;
  9. private ConquestArcherInfo selectedArcher;
  10. private ConquestGateInfo selectedGate;
  11. private ConquestWallInfo selectedWall;
  12. private ConquestSiegeInfo selectedSiege;
  13. private ConquestFlagInfo selectedFlag;
  14. private ConquestFlagInfo selectedControlPoint;
  15. public ConquestInfoForm()
  16. {
  17. InitializeComponent();
  18. for (int i = 0; i < Envir.MapInfoList.Count; i++)
  19. {
  20. ConquestMap_combo.Items.Add(Envir.MapInfoList[i]);
  21. PalaceMap_combo.Items.Add(Envir.MapInfoList[i]);
  22. ExtraMaps_combo.Items.Add(Envir.MapInfoList[i]);
  23. }
  24. WarType_combo.Items.AddRange(Enum.GetValues(typeof(ConquestType)).Cast<object>().ToArray());
  25. WarMode_combo.Items.AddRange(Enum.GetValues(typeof(ConquestGame)).Cast<object>().ToArray());
  26. WarType_combo.Items.Remove(ConquestType.Forced);
  27. for (int i = 0; i < Envir.MonsterInfoList.Count; i++)
  28. {
  29. if (Envir.MonsterInfoList[i].AI == 80)
  30. ArcherIndex_combo.Items.Add(Envir.MonsterInfoList[i]);
  31. if (Envir.MonsterInfoList[i].AI == 81)
  32. GateIndex_combo.Items.Add(Envir.MonsterInfoList[i]);
  33. if (Envir.MonsterInfoList[i].AI == 82)
  34. WallIndex_combo.Items.Add(Envir.MonsterInfoList[i]);
  35. if (Envir.MonsterInfoList[i].AI == 213)
  36. SiegeIndex_combo.Items.Add(Envir.MonsterInfoList[i]);
  37. }
  38. UpdateInterface();
  39. }
  40. private void ConquestInfoForm_Load(object sender, EventArgs e)
  41. {
  42. }
  43. private void UpdateArchers()
  44. {
  45. ArcherIndex_combo.SelectedItem = null;
  46. ArcherIndex_combo.SelectedIndex = -1;
  47. if (selectedArcher != null)
  48. {
  49. Archer_gb.Enabled = true;
  50. ArcherIndex_combo.SelectedItem = Envir.MonsterInfoList.FirstOrDefault(x => x.Index == selectedArcher.MobIndex);
  51. ArchXLoc_textbox.Text = selectedArcher.Location.X.ToString();
  52. ArchYLoc_textbox.Text = selectedArcher.Location.Y.ToString();
  53. ArcherName_textbox.Text = selectedArcher.Name;
  54. ArcherCost_textbox.Text = selectedArcher.RepairCost.ToString();
  55. }
  56. else
  57. {
  58. Archer_gb.Enabled = false;
  59. ArchXLoc_textbox.Text = string.Empty;
  60. ArchYLoc_textbox.Text = string.Empty;
  61. ArcherName_textbox.Text = string.Empty;
  62. ArcherCost_textbox.Text = string.Empty;
  63. }
  64. }
  65. private void UpdateFlags()
  66. {
  67. if (selectedFlag != null)
  68. {
  69. Flag_gb.Enabled = true;
  70. FlagXLoc_textbox.Text = selectedFlag.Location.X.ToString();
  71. FlagYLoc_textbox.Text = selectedFlag.Location.Y.ToString();
  72. FlagName_textbox.Text = selectedFlag.Name;
  73. FlagFilename_textbox.Text = selectedFlag.FileName;
  74. }
  75. else
  76. {
  77. Flag_gb.Enabled = false;
  78. FlagXLoc_textbox.Text = string.Empty;
  79. FlagYLoc_textbox.Text = string.Empty;
  80. FlagName_textbox.Text = string.Empty;
  81. FlagFilename_textbox.Text = string.Empty;
  82. }
  83. }
  84. private void UpdateGates()
  85. {
  86. if (selectedGate != null)
  87. {
  88. Gates_gb.Enabled = true;
  89. GateIndex_combo.SelectedItem = Envir.MonsterInfoList.FirstOrDefault(x => x.Index == selectedGate.MobIndex);
  90. GateXLoc_textbox.Text = selectedGate.Location.X.ToString();
  91. GateYLoc_textbox.Text = selectedGate.Location.Y.ToString();
  92. GateName_textbox.Text = selectedGate.Name;
  93. GateCost_textbox.Text = selectedGate.RepairCost.ToString();
  94. }
  95. else
  96. {
  97. Gates_gb.Enabled = false;
  98. GateIndex_combo.SelectedItem = -1;
  99. GateXLoc_textbox.Text = string.Empty;
  100. GateYLoc_textbox.Text = string.Empty;
  101. GateName_textbox.Text = string.Empty;
  102. GateCost_textbox.Text = string.Empty;
  103. }
  104. }
  105. private void UpdateWalls()
  106. {
  107. if (selectedWall != null)
  108. {
  109. Walls_gb.Enabled = true;
  110. WallIndex_combo.SelectedItem = Envir.MonsterInfoList.FirstOrDefault(x => x.Index == selectedWall.MobIndex);
  111. WallXLoc_textbox.Text = selectedWall.Location.X.ToString();
  112. WallYLoc_textbox.Text = selectedWall.Location.Y.ToString();
  113. WallName_textbox.Text = selectedWall.Name;
  114. WallCost_textbox.Text = selectedWall.RepairCost.ToString();
  115. }
  116. else
  117. {
  118. Walls_gb.Enabled = false;
  119. WallIndex_combo.SelectedItem = -1;
  120. WallXLoc_textbox.Text = string.Empty;
  121. WallYLoc_textbox.Text = string.Empty;
  122. WallName_textbox.Text = string.Empty;
  123. WallCost_textbox.Text = string.Empty;
  124. }
  125. }
  126. private void UpdateSiege()
  127. {
  128. if (selectedSiege != null)
  129. {
  130. Siege_gb.Enabled = true;
  131. SiegeIndex_combo.SelectedItem = Envir.MonsterInfoList.FirstOrDefault(x => x.Index == selectedSiege.MobIndex);
  132. SiegeXLoc_textbox.Text = selectedSiege.Location.X.ToString();
  133. SiegeYLoc_textbox.Text = selectedSiege.Location.Y.ToString();
  134. SiegeName_textbox.Text = selectedSiege.Name;
  135. SiegeCost_textbox.Text = selectedSiege.RepairCost.ToString();
  136. }
  137. else
  138. {
  139. Siege_gb.Enabled = false;
  140. SiegeIndex_combo.SelectedIndex = -1;
  141. SiegeXLoc_textbox.Text = string.Empty;
  142. SiegeYLoc_textbox.Text = string.Empty;
  143. SiegeName_textbox.Text = string.Empty;
  144. SiegeCost_textbox.Text = string.Empty;
  145. }
  146. }
  147. private void UpdateControlPoints()
  148. {
  149. if (selectedControlPoint != null)
  150. {
  151. Control_gb.Enabled = true;
  152. ControlXLoc_textbox.Text = selectedControlPoint.Location.X.ToString();
  153. ControlYLoc_textbox.Text = selectedControlPoint.Location.Y.ToString();
  154. ControlName_textbox.Text = selectedControlPoint.Name;
  155. ControlFilename_textbox.Text = selectedControlPoint.FileName;
  156. }
  157. else
  158. {
  159. Control_gb.Enabled = false;
  160. ControlXLoc_textbox.Text = string.Empty;
  161. ControlYLoc_textbox.Text = string.Empty;
  162. ControlName_textbox.Text = string.Empty;
  163. ControlFilename_textbox.Text = string.Empty;
  164. }
  165. }
  166. private void UpdateInterface()
  167. {
  168. if (ConquestInfoListBox.Items.Count != Envir.ConquestInfoList.Count)
  169. {
  170. ConquestInfoListBox.Items.Clear();
  171. for (int i = 0; i < Envir.ConquestInfoList.Count; i++)
  172. {
  173. ConquestInfoListBox.Items.Add(Envir.ConquestInfoList[i]);
  174. }
  175. }
  176. selectedConquest = (ConquestInfo)ConquestInfoListBox.SelectedItem;
  177. if (selectedConquest != null)
  178. {
  179. Main_tabs.Enabled = true;
  180. Index_textbox.Text = selectedConquest.Index.ToString();
  181. Name_textbox.Text = selectedConquest.Name.ToString();
  182. FullMap_checkbox.Checked = selectedConquest.FullMap;
  183. LocX_textbox.Text = selectedConquest.Location.X.ToString();
  184. LocY_textbox.Text = selectedConquest.Location.Y.ToString();
  185. Size_textbox.Text = selectedConquest.Size.ToString();
  186. ObLocX_textbox.Text = selectedConquest.KingLocation.X.ToString();
  187. ObLocY_textbox.Text = selectedConquest.KingLocation.Y.ToString();
  188. ObSize_textbox.Text = selectedConquest.KingSize.ToString();
  189. ConquestMap_combo.SelectedItem = Envir.MapInfoList.FirstOrDefault(x => x.Index == selectedConquest.MapIndex);
  190. PalaceMap_combo.SelectedItem = Envir.MapInfoList.FirstOrDefault(x => x.Index == selectedConquest.PalaceIndex);
  191. WarMode_combo.SelectedItem = selectedConquest.Game;
  192. WarType_combo.SelectedItem = selectedConquest.Type;
  193. WarLength_num.Value = selectedConquest.WarLength;
  194. StartHour_num.Value = selectedConquest.StartHour;
  195. Mon_checkbox.Checked = selectedConquest.Monday;
  196. Tue_checkbox.Checked = selectedConquest.Tuesday;
  197. Wed_checkbox.Checked = selectedConquest.Wednesday;
  198. Thu_checkbox.Checked = selectedConquest.Thursday;
  199. Fri_checkbox.Checked = selectedConquest.Friday;
  200. Sat_checkbox.Checked = selectedConquest.Saturday;
  201. Sun_checkbox.Checked = selectedConquest.Sunday;
  202. Guards_listbox.Items.Clear();
  203. Maps_listbox.Items.Clear();
  204. Gates_listbox.Items.Clear();
  205. Walls_listbox.Items.Clear();
  206. Siege_listbox.Items.Clear();
  207. Flags_listbox.Items.Clear();
  208. Controls_listbox.Items.Clear();
  209. for (int i = 0; i < selectedConquest.ConquestGuards.Count; i++)
  210. {
  211. Guards_listbox.Items.Add(selectedConquest.ConquestGuards[i]);
  212. }
  213. for (int i = 0; i < selectedConquest.ExtraMaps.Count; i++)
  214. {
  215. Maps_listbox.Items.Add(Envir.MapInfoList.FirstOrDefault(x => x.Index == selectedConquest.ExtraMaps[i]));
  216. }
  217. for (int i = 0; i < selectedConquest.ConquestGates.Count; i++)
  218. {
  219. Gates_listbox.Items.Add(selectedConquest.ConquestGates[i]);
  220. }
  221. for (int i = 0; i < selectedConquest.ConquestWalls.Count; i++)
  222. {
  223. Walls_listbox.Items.Add(selectedConquest.ConquestWalls[i]);
  224. }
  225. for (int i = 0; i < selectedConquest.ConquestSieges.Count; i++)
  226. {
  227. Siege_listbox.Items.Add(selectedConquest.ConquestSieges[i]);
  228. }
  229. for (int i = 0; i < selectedConquest.ConquestFlags.Count; i++)
  230. {
  231. Flags_listbox.Items.Add(selectedConquest.ConquestFlags[i]);
  232. }
  233. for (int i = 0; i < selectedConquest.ControlPoints.Count; i++)
  234. {
  235. Controls_listbox.Items.Add(selectedConquest.ControlPoints[i]);
  236. }
  237. }
  238. else
  239. {
  240. Maps_listbox.Items.Clear();
  241. Guards_listbox.Items.Clear();
  242. Gates_listbox.Items.Clear();
  243. Walls_listbox.Items.Clear();
  244. Siege_listbox.Items.Clear();
  245. Flags_listbox.Items.Clear();
  246. Index_textbox.Text = string.Empty;
  247. Name_textbox.Text = string.Empty;
  248. FullMap_checkbox.Checked = false;
  249. LocX_textbox.Text = string.Empty;
  250. LocY_textbox.Text = string.Empty;
  251. Size_textbox.Text = string.Empty;
  252. ObLocX_textbox.Text = string.Empty;
  253. ObLocY_textbox.Text = string.Empty;
  254. ObSize_textbox.Text = string.Empty;
  255. Controls_listbox.Items.Clear();
  256. ConquestMap_combo.SelectedIndex = -1;
  257. PalaceMap_combo.SelectedIndex = -1;
  258. ExtraMaps_combo.SelectedIndex = -1;
  259. WarType_combo.SelectedIndex = -1;
  260. WarMode_combo.SelectedIndex = -1;
  261. ArcherIndex_combo.SelectedIndex = -1;
  262. ArchXLoc_textbox.Text = string.Empty;
  263. ArchYLoc_textbox.Text = string.Empty;
  264. Archer_gb.Enabled = false;
  265. SiegeIndex_combo.SelectedIndex = -1;
  266. SiegeXLoc_textbox.Text = string.Empty;
  267. SiegeYLoc_textbox.Text = string.Empty;
  268. Siege_gb.Enabled = false;
  269. SiegeName_textbox.Text = string.Empty;
  270. Main_tabs.Enabled = false;
  271. WarLength_num.Value = 60;
  272. StartHour_num.Value = 1;
  273. Mon_checkbox.Checked = false;
  274. Tue_checkbox.Checked = false;
  275. Wed_checkbox.Checked = false;
  276. Thu_checkbox.Checked = false;
  277. Fri_checkbox.Checked = false;
  278. Sat_checkbox.Checked = false;
  279. Sun_checkbox.Checked = false;
  280. }
  281. }
  282. private void ConquestInfoListBox_SelectedIndexChanged(object sender, EventArgs e)
  283. {
  284. if (ActiveControl != sender) return;
  285. UpdateInterface();
  286. }
  287. private void AddConq_button_Click(object sender, EventArgs e)
  288. {
  289. Envir.ConquestInfoList.Add(new ConquestInfo { Index = ++Envir.ConquestIndex, Location = new Point(0, 0), Size = 10, Name = "Conquest Wall", MapIndex = 1, PalaceIndex = 2});
  290. UpdateInterface();
  291. }
  292. private void AddGuard_button_Click(object sender, EventArgs e)
  293. {
  294. if (selectedConquest != null)
  295. {
  296. selectedConquest.ConquestGuards.Add(new ConquestArcherInfo { Location = new Point(0, 0), Name = "Guard", Index = ++selectedConquest.GuardIndex, MobIndex = 1, RepairCost = 1000 });
  297. UpdateInterface();
  298. }
  299. }
  300. private void Guards_listbox_SelectedIndexChanged(object sender, EventArgs e)
  301. {
  302. if (ActiveControl != sender) return;
  303. if (Guards_listbox.SelectedIndex != -1)
  304. {
  305. selectedArcher = (ConquestArcherInfo)Guards_listbox.SelectedItem;
  306. UpdateArchers();
  307. }
  308. else
  309. selectedArcher = null;
  310. }
  311. private void AddExtraMap_button_Click(object sender, EventArgs e)
  312. {
  313. if (selectedConquest != null && ExtraMaps_combo.SelectedIndex != -1)
  314. {
  315. MapInfo temp = (MapInfo)ExtraMaps_combo.SelectedItem;
  316. selectedConquest.ExtraMaps.Add(temp.Index);
  317. UpdateInterface();
  318. }
  319. }
  320. private void ConquestInfoForm_FormClosed(object sender, FormClosedEventArgs e)
  321. {
  322. Envir.SaveDB();
  323. }
  324. private void Name_textbox_TextChanged(object sender, EventArgs e)
  325. {
  326. if (selectedConquest == null) return;
  327. if (ActiveControl != sender) return;
  328. selectedConquest.Name = ActiveControl.Text;
  329. }
  330. private void LocX_textbox_TextChanged(object sender, EventArgs e)
  331. {
  332. if (selectedConquest == null) return;
  333. if (ActiveControl != sender) return;
  334. int temp;
  335. if (!int.TryParse(ActiveControl.Text, out temp))
  336. {
  337. ActiveControl.BackColor = Color.Red;
  338. return;
  339. }
  340. ActiveControl.BackColor = SystemColors.Window;
  341. selectedConquest.Location.X = temp;
  342. }
  343. private void LocY_textbox_TextChanged(object sender, EventArgs e)
  344. {
  345. if (selectedConquest == null) return;
  346. if (ActiveControl != sender) return;
  347. int temp;
  348. if (!int.TryParse(ActiveControl.Text, out temp))
  349. {
  350. ActiveControl.BackColor = Color.Red;
  351. return;
  352. }
  353. ActiveControl.BackColor = SystemColors.Window;
  354. selectedConquest.Location.Y = temp;
  355. }
  356. private void Size_textbox_TextChanged(object sender, EventArgs e)
  357. {
  358. if (selectedConquest == null) return;
  359. if (ActiveControl != sender) return;
  360. ushort temp;
  361. if (!ushort.TryParse(ActiveControl.Text, out temp))
  362. {
  363. ActiveControl.BackColor = Color.Red;
  364. return;
  365. }
  366. ActiveControl.BackColor = SystemColors.Window;
  367. selectedConquest.Size = temp;
  368. }
  369. private void ArchXLoc_textbox_TextChanged(object sender, EventArgs e)
  370. {
  371. if (selectedConquest == null) return;
  372. if (ActiveControl != sender) return;
  373. int temp;
  374. if (!int.TryParse(ActiveControl.Text, out temp))
  375. {
  376. ActiveControl.BackColor = Color.Red;
  377. return;
  378. }
  379. ActiveControl.BackColor = SystemColors.Window;
  380. selectedArcher.Location.X = temp;
  381. }
  382. private void ArchYLoc_textbox_TextChanged(object sender, EventArgs e)
  383. {
  384. if (selectedConquest == null) return;
  385. if (ActiveControl != sender) return;
  386. int temp;
  387. if (!int.TryParse(ActiveControl.Text, out temp))
  388. {
  389. ActiveControl.BackColor = Color.Red;
  390. return;
  391. }
  392. ActiveControl.BackColor = SystemColors.Window;
  393. selectedArcher.Location.Y = temp;
  394. }
  395. private void ConquestMap_combo_SelectedIndexChanged(object sender, EventArgs e)
  396. {
  397. if (selectedConquest == null) return;
  398. if (ActiveControl != sender) return;
  399. MapInfo temp = (MapInfo)ConquestMap_combo.SelectedItem;
  400. selectedConquest.MapIndex = temp.Index;
  401. }
  402. private void PalaceMap_combo_SelectedIndexChanged(object sender, EventArgs e)
  403. {
  404. if (selectedConquest == null) return;
  405. if (ActiveControl != sender) return;
  406. MapInfo temp = (MapInfo)PalaceMap_combo.SelectedItem;
  407. selectedConquest.PalaceIndex = temp.Index;
  408. }
  409. private void ArcherIndex_combo_SelectedIndexChanged(object sender, EventArgs e)
  410. {
  411. if (selectedConquest == null) return;
  412. if (ActiveControl != sender) return;
  413. MonsterInfo temp = (MonsterInfo)ArcherIndex_combo.SelectedItem;
  414. selectedArcher.MobIndex = temp.Index;
  415. }
  416. private void ArcherName_textbox_TextChanged(object sender, EventArgs e)
  417. {
  418. if (selectedConquest == null) return;
  419. if (ActiveControl != sender) return;
  420. selectedArcher.Name = ActiveControl.Text;
  421. }
  422. private void AddGate_button_Click(object sender, EventArgs e)
  423. {
  424. if (selectedConquest != null)
  425. {
  426. selectedConquest.ConquestGates.Add(new ConquestGateInfo { Location = new Point(0, 0), Name = "Gate", Index = ++selectedConquest.GateIndex, MobIndex = 1, RepairCost = 1000 });
  427. UpdateInterface();
  428. }
  429. }
  430. private void Gates_listbox_SelectedIndexChanged(object sender, EventArgs e)
  431. {
  432. if (selectedConquest == null) return;
  433. if (ActiveControl != sender) return;
  434. if (Gates_listbox.SelectedIndex != -1)
  435. {
  436. selectedGate = (ConquestGateInfo)Gates_listbox.SelectedItem;
  437. UpdateGates();
  438. }
  439. else
  440. selectedGate = null;
  441. }
  442. private void GateXLoc_textbox_TextChanged(object sender, EventArgs e)
  443. {
  444. if (selectedConquest == null) return;
  445. if (ActiveControl != sender) return;
  446. int temp;
  447. if (!int.TryParse(ActiveControl.Text, out temp))
  448. {
  449. ActiveControl.BackColor = Color.Red;
  450. return;
  451. }
  452. ActiveControl.BackColor = SystemColors.Window;
  453. selectedGate.Location.X = temp;
  454. }
  455. private void GateIndex_combo_SelectedIndexChanged(object sender, EventArgs e)
  456. {
  457. if (selectedConquest == null) return;
  458. if (ActiveControl != sender) return;
  459. MonsterInfo temp = (MonsterInfo)GateIndex_combo.SelectedItem;
  460. selectedGate.MobIndex = temp.Index;
  461. }
  462. private void GateYLoc_textbox_TextChanged(object sender, EventArgs e)
  463. {
  464. if (selectedConquest == null) return;
  465. if (ActiveControl != sender) return;
  466. int temp;
  467. if (!int.TryParse(ActiveControl.Text, out temp))
  468. {
  469. ActiveControl.BackColor = Color.Red;
  470. return;
  471. }
  472. ActiveControl.BackColor = SystemColors.Window;
  473. selectedGate.Location.Y = temp;
  474. }
  475. private void AddWall_button_Click(object sender, EventArgs e)
  476. {
  477. if (selectedConquest != null)
  478. {
  479. selectedConquest.ConquestWalls.Add(new ConquestWallInfo { Location = new Point(0, 0), Name = "Wall", Index = ++selectedConquest.WallIndex, MobIndex = 1, RepairCost = 1000 });
  480. UpdateInterface();
  481. }
  482. }
  483. private void Walls_listbox_SelectedIndexChanged(object sender, EventArgs e)
  484. {
  485. if (selectedConquest == null) return;
  486. if (ActiveControl != sender) return;
  487. if (Walls_listbox.SelectedIndex != -1)
  488. {
  489. selectedWall = (ConquestWallInfo)Walls_listbox.SelectedItem;
  490. UpdateWalls();
  491. }
  492. else
  493. selectedWall = null;
  494. }
  495. private void WallIndex_combo_SelectedIndexChanged(object sender, EventArgs e)
  496. {
  497. if (selectedConquest == null) return;
  498. if (ActiveControl != sender) return;
  499. MonsterInfo temp = (MonsterInfo)WallIndex_combo.SelectedItem;
  500. selectedWall.MobIndex = temp.Index;
  501. }
  502. private void WallXLoc_textbox_TextChanged(object sender, EventArgs e)
  503. {
  504. if (selectedConquest == null) return;
  505. if (ActiveControl != sender) return;
  506. int temp;
  507. if (!int.TryParse(ActiveControl.Text, out temp))
  508. {
  509. ActiveControl.BackColor = Color.Red;
  510. return;
  511. }
  512. ActiveControl.BackColor = SystemColors.Window;
  513. selectedWall.Location.X = temp;
  514. }
  515. private void WallYLoc_textbox_TextChanged(object sender, EventArgs e)
  516. {
  517. if (selectedConquest == null) return;
  518. if (ActiveControl != sender) return;
  519. int temp;
  520. if (!int.TryParse(ActiveControl.Text, out temp))
  521. {
  522. ActiveControl.BackColor = Color.Red;
  523. return;
  524. }
  525. ActiveControl.BackColor = SystemColors.Window;
  526. selectedWall.Location.Y = temp;
  527. }
  528. private void ArcherCost_textbox_TextChanged(object sender, EventArgs e)
  529. {
  530. if (selectedConquest == null) return;
  531. if (ActiveControl != sender) return;
  532. uint temp;
  533. if (!uint.TryParse(ActiveControl.Text, out temp))
  534. {
  535. ActiveControl.BackColor = Color.Red;
  536. return;
  537. }
  538. ActiveControl.BackColor = SystemColors.Window;
  539. selectedArcher.RepairCost = temp;
  540. }
  541. private void GateCost_textbox_TextChanged(object sender, EventArgs e)
  542. {
  543. if (selectedConquest == null) return;
  544. if (ActiveControl != sender) return;
  545. int temp;
  546. if (!int.TryParse(ActiveControl.Text, out temp) || temp < 0)
  547. {
  548. ActiveControl.BackColor = Color.Red;
  549. return;
  550. }
  551. ActiveControl.BackColor = SystemColors.Window;
  552. selectedGate.RepairCost = temp;
  553. }
  554. private void WallCost_textbox_TextChanged(object sender, EventArgs e)
  555. {
  556. if (selectedConquest == null) return;
  557. if (ActiveControl != sender) return;
  558. int temp;
  559. if (!int.TryParse(ActiveControl.Text, out temp) || temp < 0)
  560. {
  561. ActiveControl.BackColor = Color.Red;
  562. return;
  563. }
  564. ActiveControl.BackColor = SystemColors.Window;
  565. selectedWall.RepairCost = temp;
  566. }
  567. private void GateName_textbox_TextChanged(object sender, EventArgs e)
  568. {
  569. if (selectedConquest == null) return;
  570. if (ActiveControl != sender) return;
  571. selectedGate.Name = ActiveControl.Text;
  572. }
  573. private void Walls_gb_Enter(object sender, EventArgs e)
  574. {
  575. }
  576. private void WallName_textbox_TextChanged(object sender, EventArgs e)
  577. {
  578. if (selectedConquest == null) return;
  579. if (ActiveControl != sender) return;
  580. selectedWall.Name = ActiveControl.Text;
  581. }
  582. private void WarType_combo_SelectedIndexChanged(object sender, EventArgs e)
  583. {
  584. if (selectedConquest == null) return;
  585. if (ActiveControl != sender) return;
  586. selectedConquest.Type = (ConquestType)WarType_combo.SelectedItem;
  587. }
  588. private void WarMode_combo_SelectedIndexChanged(object sender, EventArgs e)
  589. {
  590. if (selectedConquest == null) return;
  591. if (ActiveControl != sender) return;
  592. selectedConquest.Game = (ConquestGame)WarMode_combo.SelectedItem;
  593. }
  594. private void WarTimes_gb_Enter(object sender, EventArgs e)
  595. {
  596. }
  597. private void StartHour_num_ValueChanged(object sender, EventArgs e)
  598. {
  599. if (selectedConquest == null) return;
  600. if (ActiveControl != sender) return;
  601. selectedConquest.StartHour = (byte)StartHour_num.Value;
  602. }
  603. private void WarLength_num_ValueChanged(object sender, EventArgs e)
  604. {
  605. if (selectedConquest == null) return;
  606. if (ActiveControl != sender) return;
  607. selectedConquest.WarLength = (int)WarLength_num.Value;
  608. }
  609. private void Mon_checkbox_CheckedChanged(object sender, EventArgs e)
  610. {
  611. if (selectedConquest == null) return;
  612. selectedConquest.Monday = Mon_checkbox.Checked;
  613. }
  614. private void Tue_checkbox_CheckedChanged(object sender, EventArgs e)
  615. {
  616. if (selectedConquest == null) return;
  617. selectedConquest.Tuesday = Tue_checkbox.Checked;
  618. }
  619. private void Wed_checkbox_CheckedChanged(object sender, EventArgs e)
  620. {
  621. if (selectedConquest == null) return;
  622. selectedConquest.Wednesday = Wed_checkbox.Checked;
  623. }
  624. private void Thu_checkbox_CheckedChanged(object sender, EventArgs e)
  625. {
  626. if (selectedConquest == null) return;
  627. selectedConquest.Thursday = Thu_checkbox.Checked;
  628. }
  629. private void Fri_checkbox_CheckedChanged(object sender, EventArgs e)
  630. {
  631. if (selectedConquest == null) return;
  632. selectedConquest.Friday = Fri_checkbox.Checked;
  633. }
  634. private void Sat_checkbox_CheckedChanged(object sender, EventArgs e)
  635. {
  636. if (selectedConquest == null) return;
  637. selectedConquest.Saturday = Sat_checkbox.Checked;
  638. }
  639. private void Sun_checkbox_CheckedChanged(object sender, EventArgs e)
  640. {
  641. if (selectedConquest == null) return;
  642. selectedConquest.Sunday = Sun_checkbox.Checked;
  643. }
  644. private void RemoveConq_button_Click(object sender, EventArgs e)
  645. {
  646. if (selectedConquest == null) return;
  647. if (MessageBox.Show("Are you sure you want to remove the selected Conquest?", "Remove Items?", MessageBoxButtons.YesNo) != DialogResult.Yes) return;
  648. Envir.ConquestInfoList.Remove(selectedConquest);
  649. if (Envir.ConquestInfoList.Count == 0) Envir.ConquestIndex = 0;
  650. UpdateInterface();
  651. }
  652. private void RemoveMap_button_Click(object sender, EventArgs e)
  653. {
  654. if (selectedConquest == null) return;
  655. if (Maps_listbox.SelectedItem != null)
  656. selectedConquest.ExtraMaps.Remove(((MapInfo)Maps_listbox.SelectedItem).Index);
  657. UpdateInterface();
  658. }
  659. private void Maps_listbox_SelectedIndexChanged(object sender, EventArgs e)
  660. {
  661. }
  662. private void RemoveGuard_button_Click(object sender, EventArgs e)
  663. {
  664. if (selectedConquest == null) return;
  665. if (Guards_listbox.SelectedItem != null)
  666. selectedConquest.ConquestGuards.Remove((ConquestArcherInfo)Guards_listbox.SelectedItem);
  667. UpdateInterface();
  668. }
  669. private void RemoveGate_button_Click(object sender, EventArgs e)
  670. {
  671. if (selectedConquest == null) return;
  672. if (Gates_listbox.SelectedItem != null)
  673. selectedConquest.ConquestGates.Remove((ConquestGateInfo)Gates_listbox.SelectedItem);
  674. UpdateInterface();
  675. }
  676. private void RemoveWall_button_Click(object sender, EventArgs e)
  677. {
  678. if (selectedConquest == null) return;
  679. if (Walls_listbox.SelectedItem != null)
  680. selectedConquest.ConquestWalls.Remove((ConquestWallInfo)Walls_listbox.SelectedItem);
  681. UpdateInterface();
  682. }
  683. private void ObLocX_textbox_TextChanged(object sender, EventArgs e)
  684. {
  685. if (selectedConquest == null) return;
  686. if (ActiveControl != sender) return;
  687. int temp;
  688. if (!int.TryParse(ActiveControl.Text, out temp))
  689. {
  690. ActiveControl.BackColor = Color.Red;
  691. return;
  692. }
  693. ActiveControl.BackColor = SystemColors.Window;
  694. selectedConquest.KingLocation.X = temp;
  695. }
  696. private void ObLocY_textbox_TextChanged(object sender, EventArgs e)
  697. {
  698. if (selectedConquest == null) return;
  699. if (ActiveControl != sender) return;
  700. int temp;
  701. if (!int.TryParse(ActiveControl.Text, out temp))
  702. {
  703. ActiveControl.BackColor = Color.Red;
  704. return;
  705. }
  706. ActiveControl.BackColor = SystemColors.Window;
  707. selectedConquest.KingLocation.Y = temp;
  708. }
  709. private void ObSize_textbox_TextChanged(object sender, EventArgs e)
  710. {
  711. if (selectedConquest == null) return;
  712. if (ActiveControl != sender) return;
  713. ushort temp;
  714. if (!ushort.TryParse(ActiveControl.Text, out temp))
  715. {
  716. ActiveControl.BackColor = Color.Red;
  717. return;
  718. }
  719. ActiveControl.BackColor = SystemColors.Window;
  720. selectedConquest.KingSize = temp;
  721. }
  722. private void Siege_listbox_SelectedIndexChanged(object sender, EventArgs e)
  723. {
  724. if (selectedConquest == null) return;
  725. if (ActiveControl != sender) return;
  726. if (Siege_listbox.SelectedIndex != -1)
  727. {
  728. selectedSiege = (ConquestSiegeInfo)Siege_listbox.SelectedItem;
  729. UpdateSiege();
  730. }
  731. else
  732. selectedSiege = null;
  733. }
  734. private void AddSiege_button_Click(object sender, EventArgs e)
  735. {
  736. if (selectedConquest != null)
  737. {
  738. selectedConquest.ConquestSieges.Add(new ConquestSiegeInfo { Location = new Point(0, 0), Name = "Siege", Index = ++selectedConquest.SiegeIndex, MobIndex = 1, RepairCost = 1000 });
  739. UpdateInterface();
  740. }
  741. }
  742. private void RemoveSiege_button_Click(object sender, EventArgs e)
  743. {
  744. if (selectedConquest == null) return;
  745. if (Siege_listbox.SelectedItem != null)
  746. selectedConquest.ConquestSieges.Remove((ConquestSiegeInfo)Siege_listbox.SelectedItem);
  747. UpdateInterface();
  748. }
  749. private void SiegeXLoc_textbox_TextChanged(object sender, EventArgs e)
  750. {
  751. if (selectedConquest == null) return;
  752. if (ActiveControl != sender) return;
  753. int temp;
  754. if (!int.TryParse(ActiveControl.Text, out temp))
  755. {
  756. ActiveControl.BackColor = Color.Red;
  757. return;
  758. }
  759. ActiveControl.BackColor = SystemColors.Window;
  760. selectedSiege.Location.X = temp;
  761. }
  762. private void SiegeYLoc_textbox_TextChanged(object sender, EventArgs e)
  763. {
  764. if (selectedConquest == null) return;
  765. if (ActiveControl != sender) return;
  766. int temp;
  767. if (!int.TryParse(ActiveControl.Text, out temp))
  768. {
  769. ActiveControl.BackColor = Color.Red;
  770. return;
  771. }
  772. ActiveControl.BackColor = SystemColors.Window;
  773. selectedSiege.Location.Y = temp;
  774. }
  775. private void SiegeName_textbox_TextChanged(object sender, EventArgs e)
  776. {
  777. if (selectedConquest == null) return;
  778. if (ActiveControl != sender) return;
  779. selectedSiege.Name = ActiveControl.Text;
  780. }
  781. private void SiegeCost_textbox_TextChanged(object sender, EventArgs e)
  782. {
  783. if (selectedConquest == null) return;
  784. if (ActiveControl != sender) return;
  785. int temp;
  786. if (!int.TryParse(ActiveControl.Text, out temp) || temp < 0)
  787. {
  788. ActiveControl.BackColor = Color.Red;
  789. return;
  790. }
  791. ActiveControl.BackColor = SystemColors.Window;
  792. selectedSiege.RepairCost = temp;
  793. }
  794. private void SiegeIndex_combo_SelectedIndexChanged(object sender, EventArgs e)
  795. {
  796. if (selectedConquest == null) return;
  797. if (ActiveControl != sender) return;
  798. MonsterInfo temp = (MonsterInfo)SiegeIndex_combo.SelectedItem;
  799. selectedSiege.MobIndex = temp.Index;
  800. }
  801. private void RemoveFlag_button_Click(object sender, EventArgs e)
  802. {
  803. if (selectedConquest == null) return;
  804. if (Flags_listbox.SelectedItem != null)
  805. selectedConquest.ConquestFlags.Remove((ConquestFlagInfo)Flags_listbox.SelectedItem);
  806. UpdateInterface();
  807. }
  808. private void AddFlag_button_Click(object sender, EventArgs e)
  809. {
  810. if (selectedConquest == null) return;
  811. if (selectedConquest != null)
  812. {
  813. selectedConquest.ConquestFlags.Add(new ConquestFlagInfo { Location = new Point(0, 0), Name = "Flag", Index = ++selectedConquest.FlagIndex });
  814. UpdateInterface();
  815. }
  816. }
  817. private void FlagXLoc_textbox_TextChanged(object sender, EventArgs e)
  818. {
  819. if (selectedConquest == null) return;
  820. if (ActiveControl != sender) return;
  821. int temp;
  822. if (!int.TryParse(ActiveControl.Text, out temp))
  823. {
  824. ActiveControl.BackColor = Color.Red;
  825. return;
  826. }
  827. ActiveControl.BackColor = SystemColors.Window;
  828. selectedFlag.Location.X = temp;
  829. }
  830. private void FlagYLoc_textbox_TextChanged(object sender, EventArgs e)
  831. {
  832. if (selectedConquest == null) return;
  833. if (ActiveControl != sender) return;
  834. int temp;
  835. if (!int.TryParse(ActiveControl.Text, out temp))
  836. {
  837. ActiveControl.BackColor = Color.Red;
  838. return;
  839. }
  840. ActiveControl.BackColor = SystemColors.Window;
  841. selectedFlag.Location.Y = temp;
  842. }
  843. private void FlagName_textbox_TextChanged(object sender, EventArgs e)
  844. {
  845. if (selectedConquest == null) return;
  846. if (ActiveControl != sender) return;
  847. selectedFlag.Name = ActiveControl.Text;
  848. }
  849. private void Flags_listbox_SelectedIndexChanged(object sender, EventArgs e)
  850. {
  851. if (selectedConquest == null) return;
  852. if (ActiveControl != sender) return;
  853. if (Flags_listbox.SelectedIndex != -1)
  854. {
  855. selectedFlag = (ConquestFlagInfo)Flags_listbox.SelectedItem;
  856. UpdateFlags();
  857. }
  858. else
  859. selectedFlag = null;
  860. }
  861. private void FlagFilename_textbox_TextChanged(object sender, EventArgs e)
  862. {
  863. if (selectedConquest == null) return;
  864. if (ActiveControl != sender) return;
  865. selectedFlag.FileName = ActiveControl.Text;
  866. }
  867. private void FullMap_checkbox_CheckedChanged(object sender, EventArgs e)
  868. {
  869. if (selectedConquest == null) return;
  870. if (ActiveControl != sender) return;
  871. selectedConquest.FullMap = FullMap_checkbox.Checked;
  872. }
  873. private void Control_Listbox_SelectedIndexChanged(object sender, EventArgs e)
  874. {
  875. if (selectedConquest == null) return;
  876. if (ActiveControl != sender) return;
  877. if (Controls_listbox.SelectedIndex != -1)
  878. {
  879. selectedControlPoint = (ConquestFlagInfo)Controls_listbox.SelectedItem;
  880. UpdateControlPoints();
  881. }
  882. else
  883. selectedControlPoint = null;
  884. }
  885. private void AddControl_button_Click(object sender, EventArgs e)
  886. {
  887. if (selectedConquest == null) return;
  888. if (selectedConquest != null)
  889. {
  890. selectedConquest.ControlPoints.Add(new ConquestFlagInfo { Location = new Point(0, 0), Name = "Control Point", Index = ++selectedConquest.ControlPointIndex });
  891. UpdateInterface();
  892. }
  893. }
  894. private void RemoveControl_button_Click(object sender, EventArgs e)
  895. {
  896. if (selectedConquest == null) return;
  897. if (Controls_listbox.SelectedItem != null)
  898. selectedConquest.ControlPoints.Remove((ConquestFlagInfo)Controls_listbox.SelectedItem);
  899. UpdateInterface();
  900. }
  901. private void ControlXLoc_textbox_TextChanged(object sender, EventArgs e)
  902. {
  903. if (selectedConquest == null) return;
  904. if (ActiveControl != sender) return;
  905. int temp;
  906. if (!int.TryParse(ActiveControl.Text, out temp))
  907. {
  908. ActiveControl.BackColor = Color.Red;
  909. return;
  910. }
  911. ActiveControl.BackColor = SystemColors.Window;
  912. selectedControlPoint.Location.X = temp;
  913. }
  914. private void ControlYLoc_textbox_TextChanged(object sender, EventArgs e)
  915. {
  916. if (selectedConquest == null) return;
  917. if (ActiveControl != sender) return;
  918. int temp;
  919. if (!int.TryParse(ActiveControl.Text, out temp))
  920. {
  921. ActiveControl.BackColor = Color.Red;
  922. return;
  923. }
  924. ActiveControl.BackColor = SystemColors.Window;
  925. selectedControlPoint.Location.Y = temp;
  926. }
  927. private void ControlName_textbox_TextChanged(object sender, EventArgs e)
  928. {
  929. if (selectedConquest == null) return;
  930. if (ActiveControl != sender) return;
  931. selectedControlPoint.Name = ActiveControl.Text;
  932. }
  933. private void ControlFilename_textbox_TextChanged(object sender, EventArgs e)
  934. {
  935. if (selectedConquest == null) return;
  936. if (ActiveControl != sender) return;
  937. selectedControlPoint.FileName = ActiveControl.Text;
  938. }
  939. }
  940. }