Prototype game engine for Heroes of Might & Magic, featuring a gameplay plot-twist...
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
2.5KB

  1. -- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
  2. --
  3. -- GNU General Public Licence (version 3 or later)
  4. with core, effect;
  5. package magic is
  6. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  7. type school is (
  8. air, dark, earth, fire, light, water
  9. );
  10. type enumeration is (
  11. -- Air
  12. arrow_storm,
  13. -- Dark
  14. torment,
  15. -- Earth
  16. stone_armour,
  17. -- Fire
  18. fireball,
  19. -- Light
  20. heal,
  21. -- Water
  22. ice_armour
  23. );
  24. ------------------------------------------------------------------------------------------
  25. subtype level_limit is natural range 0 .. 6;
  26. type information is record
  27. name : core.short_string;
  28. kind : school;
  29. level : level_limit;
  30. evoke : effect.enumeration;
  31. text : core.long_string;
  32. end record;
  33. ------------------------------------------------------------------------------------------
  34. count : constant natural := enumeration'pos (enumeration'last) + 1;
  35. trait : constant array (enumeration) of information := (
  36. ("Arrow Storm ", air, 1, effect.none, "Arrow Storm increases the range of your ranged units. "),
  37. ("Torment ", dark, 1, effect.none, "Torment causes targeted friend or foe to feel pain and shit. "),
  38. ("Stone Armour ", earth, 1, effect.none, "Stone Armour increases defense of selected unit. "),
  39. ("Fireball ", fire, 1, effect.none, "Fireball conjures a literal ball of fire that flies go brr. "),
  40. ("Heal ", light, 1, effect.none, "Heal does what it says it will do, keeps the promise. "),
  41. ("Ice Armour ", water, 1, effect.none, "Ice Armour increases defense and stamina of selected unit. ")
  42. );
  43. ------------------------------------------------------------------------------------------
  44. procedure configure;
  45. procedure icon (index : in enumeration; x, y : in integer);
  46. procedure view (index : in enumeration; x, y : in integer);
  47. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  48. end magic;