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.

132 lines
11KB

  1. -- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
  2. --
  3. -- GNU General Public Licence (version 3 or later)
  4. with core, effect;
  5. package might is
  6. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  7. type school is (
  8. neutral, archery, defense, economy, education, logistics,
  9. offense, tactics
  10. );
  11. type enumeration is (
  12. -- Neutral
  13. -- Archery
  14. cover, evasive_maneuvers, focused_fire, magic_ammunition, piercing_bolt, precision,
  15. retreat, taunt,
  16. -- Defense
  17. charismatic_leader, counterstrike, double_counterstrike, resilience, revenge, shield_of_the_virtue,
  18. stand_your_ground_mass, stand_your_ground, toughness,
  19. -- Economy
  20. banker, destroyer, leadership, lumber, manager, merchant,
  21. miner, plunderer, snatch,
  22. -- Education
  23. alchemist, architect, ballistics, chosen_one, diplomacy, economist,
  24. general, mentor, siege_master,
  25. -- Logistics
  26. explorer, navigation, observer, orientation, pathfinder, scout,
  27. spy, trust_the_plan,
  28. -- Offense
  29. assailant, battle_march, cleave, flawless_attack, giant_slayer, heroic_charge,
  30. parry, pressed_attack, rampage,
  31. -- Tactics
  32. ambush, commander, crippling_traps, diving_attack, heroism_mass, heroism,
  33. intimidation, reinforcements
  34. );
  35. ------------------------------------------------------------------------------------------
  36. subtype level_limit is natural range 0 .. 6;
  37. type information is record
  38. name : core.short_string;
  39. kind : school;
  40. level : level_limit;
  41. evoke : effect.enumeration;
  42. text : core.long_string;
  43. end record;
  44. ------------------------------------------------------------------------------------------
  45. count : constant natural := enumeration'pos (enumeration'last) + 1;
  46. trait : constant array (enumeration) of information := (
  47. ("Cover ", archery, 0, effect.none, "Provides temporary protection from enemy attacks. "),
  48. ("Evasive Maneuvers ", archery, 0, effect.none, "Allows the user to dodge and avoid incoming attacks more effectively. "),
  49. ("Focused Fire ", archery, 0, effect.none, "Increases accuracy and damage output towards a single target. "),
  50. ("Magic Ammunition ", archery, 0, effect.none, "Enchants projectiles with magical properties for more effectiveness. "),
  51. ("Piercing Bolt ", archery, 0, effect.none, "Ability to penetrate enemy defenses and deal damage directly. "),
  52. ("Precision ", archery, 0, effect.none, "Enhances accuracy and critical hit chance. "),
  53. ("Retreat ", archery, 0, effect.none, "Allows the user to disengage from combat safely. "),
  54. ("Taunt ", archery, 0, effect.none, "Draws enemy aggression towards the user, redirecting their attacks. "),
  55. ("Charismatic Leader ", defense, 0, effect.none, "Boosts the morale and efficiency of allies in the vicinity. "),
  56. ("Counterstrike ", defense, 0, effect.none, "Automatically retaliates against incoming attacks with a counter-attack."),
  57. ("Double Counterstrike ", defense, 0, effect.none, "Further enhances the counter-attacking ability, allowing for more hits. "),
  58. ("Resilience ", defense, 0, effect.none, "Provides increased resistance to status effects and damage. "),
  59. ("Revenge ", defense, 0, effect.none, "Empowers the user after taking damage, increasing their offense. "),
  60. ("Shield Of The Virtue ", defense, 0, effect.none, "Provides a powerful defensive barrier to protect the user and allies. "),
  61. ("Stand Your Ground Mass ", defense, 0, effect.none, "Grants a defensive buff to multiple allied units within a large radius. "),
  62. ("Stand Your Ground ", defense, 0, effect.none, "Enhances the user's defenses and resilience against incoming attacks. "),
  63. ("Toughness ", defense, 0, effect.none, "Increases overall durability and reduces incoming damage. "),
  64. ("Banker ", economy, 0, effect.none, "Generates additional in-game currency or resources over time. "),
  65. ("Destroyer ", economy, 0, effect.none, "Deals massive damage to enemies or structures. "),
  66. ("Leadership ", economy, 0, effect.none, "Boosts the effectiveness and performance of allied units. "),
  67. ("Lumber ", economy, 0, effect.none, "Increases resource gathering efficiency for wood or similar materials. "),
  68. ("Manager ", economy, 0, effect.none, "Improves resource management and production within the user's faction. "),
  69. ("Merchant ", economy, 0, effect.none, "Enables better trading opportunities and increased profit from commerce."),
  70. ("Miner ", economy, 0, effect.none, "Enhances resource gathering efficiency for minerals or ore. "),
  71. ("Plunderer ", economy, 0, effect.none, "Steals resources or valuable items from enemies upon defeating them. "),
  72. ("Snatch ", economy, 0, effect.none, "Allows the user to quickly grab and steal an item or resource. "),
  73. ("Alchemist ", education, 0, effect.none, "Enables the user to create and utilize powerful potions or poisons. "),
  74. ("Architect ", education, 0, effect.none, "Improves construction speed and efficiency for buildings and structures."),
  75. ("Ballistics ", education, 0, effect.none, "Enhances ranged attacks and projectile-based abilities. "),
  76. ("Chosen One ", education, 0, effect.none, "Empowers the user with random unique and potent abilities. "),
  77. ("Diplomacy ", education, 0, effect.none, "Strengthens diplomatic relations and opportunities with other factions. "),
  78. ("Economist ", education, 0, effect.none, "Boosts resource management and economic prowess within the domain. "),
  79. ("General ", education, 0, effect.none, "Provides strategic advantages and boosts the effectiveness of troops. "),
  80. ("Mentor ", education, 0, effect.none, "Offers guidance to allied units, enhancing their performance. "),
  81. ("Siege Master ", education, 0, effect.none, "Specializes in siege warfare, increasing the range of siege machines. "),
  82. ("Explorer ", logistics, 0, effect.none, "Improves scouting abilities and grants bonuses to discovering. "),
  83. ("Navigation ", logistics, 0, effect.none, "Enhances movement speed or efficiency across different terrains. "),
  84. ("Observer ", logistics, 0, effect.none, "Grants vision over specific areas or units, providing information. "),
  85. ("Orientation ", logistics, 0, effect.none, "Improves unit positioning and formation effectiveness in battle. "),
  86. ("Pathfinder ", logistics, 0, effect.none, "Provides bonuses to traversing difficult terrain or finding paths. "),
  87. ("Scout ", logistics, 0, effect.none, "Excels at reconnaissance and gathering intelligence on enemy movements. "),
  88. ("Spy ", logistics, 0, effect.none, "Infiltrates enemy territory to perform sabotage operations. "),
  89. ("Trust The Plan ", logistics, 0, effect.none, "Grants advantages when following predetermined strategies or tactics. "),
  90. ("Assailant ", offense, 0, effect.none, "Enhances offensive capabilities and increases damage dealt in fighting. "),
  91. ("Battle March ", offense, 0, effect.none, "Boosts movement speed and combat prowess for the troops on the front. "),
  92. ("Cleave ", offense, 0, effect.none, "Allows attacks to hit multiple foes or deal area-of-effect damage. "),
  93. ("Flawless Attack ", offense, 0, effect.none, "Enhances precision and accuracy of attacks, maximizing damage output. "),
  94. ("Giant Slayer ", offense, 0, effect.none, "Provides bonuses and advantages when engaging larger or stronger foes. "),
  95. ("Heroic Charge ", offense, 0, effect.none, "Allows for a powerful and impactful offensive maneuver against enemies. "),
  96. ("Parry ", offense, 0, effect.none, "Enables the user to block or deflect incoming attacks, reducing damage. "),
  97. ("Pressed Attack ", offense, 0, effect.none, "Boosts the intensity and frequency of offensive strikes during combat. "),
  98. ("Rampage ", offense, 0, effect.none, "Triggers a frenzied state, increasing attack power and speed shortly. "),
  99. ("Ambush ", tactics, 0, effect.none, "Enables surprise attacks on enemy units for increased effectiveness. "),
  100. ("Commander ", tactics, 0, effect.none, "Enhances leadership abilities and buffs allied units under the command. "),
  101. ("Crippling Traps ", tactics, 0, effect.none, "Utilizes various traps and devices to hinder or debilitate enemies. "),
  102. ("Diving Attack ", tactics, 0, effect.none, "Initiates a swift and decisive aerial assault from above. "),
  103. ("Heroism Mass ", tactics, 0, effect.none, "Inspires and empowers multiple units simultaneously with a morale boost."),
  104. ("Heroism ", tactics, 0, effect.none, "Bolsters morale and combat effectiveness of individual units. "),
  105. ("Intimidation ", tactics, 0, effect.none, "Strikes fear into enemies, reducing their morale and courage. "),
  106. ("Reinforcements ", tactics, 0, effect.none, "Calls in additional troops or support units to bolster the forces. ")
  107. );
  108. ------------------------------------------------------------------------------------------
  109. procedure configure;
  110. procedure icon (index : in enumeration; x, y : in integer);
  111. procedure view (index : in enumeration; x, y : in integer);
  112. procedure menu (x, y : in integer; center : in boolean);
  113. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  114. end might;