IGM.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. using Microsoft.Xna.Framework;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Threading.Tasks;
  5. namespace OpenVIII
  6. {
  7. public partial class IGM : Menu
  8. {
  9. #region Fields
  10. protected Dictionary<Mode, Func<bool>> InputDict;
  11. #endregion Fields
  12. #region Events
  13. public event EventHandler<KeyValuePair<Items, FF8String>> ChoiceChangeHandler;
  14. #endregion Events
  15. #region Enums
  16. public enum Items
  17. {
  18. Junction,
  19. Item,
  20. Magic,
  21. Status,
  22. GF,
  23. Ability,
  24. Switch,
  25. Card,
  26. Config,
  27. Tutorial,
  28. Save,
  29. Battle,
  30. CurrentEXP,
  31. NextLEVEL,
  32. }
  33. //private Mode _mode = 0;
  34. public enum Mode
  35. {
  36. ChooseItem,
  37. ChooseChar,
  38. }
  39. public enum SectionName
  40. {
  41. Header,
  42. Footer,
  43. Clock,
  44. PartyGroup,
  45. SideMenu,
  46. }
  47. #endregion Enums
  48. #region Methods
  49. public static IGM Create() => Create<IGM>();
  50. public override bool Inputs() => InputDict[(Mode)GetMode()]();
  51. protected override void Init()
  52. {
  53. Size = new Vector2 { X = 843, Y = 630 };
  54. base.Init();
  55. //TextScale = new Vector2(2.545455f, 3.0375f);
  56. List<Task> tasks = new List<Task>
  57. {
  58. Task.Run(() => Data.TryAdd(SectionName.Header, IGMData_Header.Create())),
  59. Task.Run(() => Data.TryAdd(SectionName.Footer, IGMData_Footer.Create())),
  60. Task.Run(() => Data.TryAdd(SectionName.Clock, IGMData_Clock.Create())),
  61. Task.Run(() => Data.TryAdd(SectionName.PartyGroup, IGMData_PartyGroup.Create(IGMData_Party.Create(), IGMData_NonParty.Create()))),
  62. Task.Run(() => Data.TryAdd(SectionName.SideMenu, IGMData_SideMenu.Create(new Dictionary<FF8String, FF8String>() {
  63. { Strings.Name.SideMenu.Junction, Strings.Description.SideMenu.Junction},
  64. { Strings.Name.SideMenu.Item, Strings.Description.SideMenu.Item},
  65. { Strings.Name.SideMenu.Magic, Strings.Description.SideMenu.Magic},
  66. { Strings.Name.SideMenu.GF, Strings.Description.SideMenu.GF},
  67. { Strings.Name.SideMenu.Status, Strings.Description.SideMenu.Status},
  68. { Strings.Name.SideMenu.Ability, Strings.Description.SideMenu.Ability},
  69. { Strings.Name.SideMenu.Switch, Strings.Description.SideMenu.Switch},
  70. { Strings.Name.SideMenu.Card, Strings.Description.SideMenu.Card},
  71. { Strings.Name.SideMenu.Config, Strings.Description.SideMenu.Config},
  72. { Strings.Name.SideMenu.Tutorial, Strings.Description.SideMenu.Tutorial},
  73. { Strings.Name.SideMenu.Save, Strings.Description.SideMenu.Save},
  74. { Strings.Name.SideMenu.Battle, Strings.Description.SideMenu.Battle}})))
  75. };
  76. Task.WaitAll(tasks.ToArray());
  77. InputDict = new Dictionary<Mode, Func<bool>>
  78. {
  79. { Mode.ChooseItem, Data[SectionName.SideMenu].Inputs },
  80. { Mode.ChooseChar, Data[SectionName.PartyGroup].Inputs },
  81. };
  82. SetMode((Mode)0);
  83. }
  84. #endregion Methods
  85. }
  86. }