Prototype game engine for Heroes of Might & Magic, featuring a gameplay plot-twist...
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

83 linhas
6.4KB

  1. -- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
  2. --
  3. -- GNU General Public Licence (version 3 or later)
  4. with core, effect, attribute, faction, equipment;
  5. package unit is
  6. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  7. type enumeration is (
  8. dwarf_berserker, dwarf_elite_berserker, dwarf_guard, dwarf_elite_guard
  9. );
  10. ------------------------------------------------------------------------------------------
  11. type definition is record
  12. name : core.short_string := "-- ";
  13. kind : faction.enumeration := faction.neutral;
  14. attributes : attribute.bonus := (others => 0);
  15. daily_fee : natural := 0;
  16. equipments : equipment.equip_array := (others => equipment.none);
  17. end record;
  18. --~bone_chestplate, bronze_chestplate, chainmail_chestplate, crystal_chestplate, golden_chestplate, iron_chestplate,
  19. --~leather_chestplate, mithril_chestplate, steel_chestplate, bone_greaves, bronze_greaves, chainmail_greaves,
  20. --~crystal_greaves, golden_greaves, iron_greaves, leather_greaves, mithril_greaves, steel_greaves,
  21. --~black_tunic, blue_tunic, cyan_tunic, green_tunic, grey_tunic, lime_tunic,
  22. --~orange_tunic, pink_tunic, purple_tunic, red_tunic, white_tunic, yellow_tunic,
  23. --~bone_gauntlets, bronze_gauntlets, chainmail_gauntlets, crystal_gauntlets, golden_gauntlets, iron_gauntlets,
  24. --~leather_gauntlets, mithril_gauntlets, steel_gauntlets, bone_helmet, bronze_helmet, chainmail_helmet,
  25. --~crystal_helmet, golden_helmet, iron_helmet, leather_helmet, mithril_helmet, steel_helmet,
  26. --~bone_axe, bone_battleaxe, bone_bow, bone_mace, bone_spear, bone_sword,
  27. --~bronze_axe, bronze_greatsword, bronze_mace, bronze_spear, bronze_sword, club,
  28. --~crystal_bow, crystal_greatsword, crystal_mace, crystal_spear, crystal_sword, golden_axe,
  29. --~golden_battleaxe, golden_bow, golden_greatsword, golden_sword, iron_axe, iron_bow,
  30. --~iron_mace, iron_spear, iron_sword, jade_axe, jade_battleaxe, jade_greatsword,
  31. --~jade_mace, jade_spear, jade_sword, maul, mithril_axe, mithril_battleaxe,
  32. --~mithril_bow, mithril_mace, mithril_spear, sledge_hammer, spiked_club, spiked_staff,
  33. --~staff, steel_battleaxe, steel_bow, steel_greatsword, steel_mace, steel_sword,
  34. --~wooden_bow, wooden_greatsword, wooden_sword, golden_necklace, bronze_shield, crystal_shield,
  35. --~golden_shield, iron_shield, mithril_shield, steel_shield, wooden_shield, wooden_armour,
  36. --~fur_armour, fur_greaves, fur_gauntlets, red_hood, white_hood, wooden_helmet,
  37. --~human_helmet, human_armour, elven_helmet, elven_armour, orcish_helmet, orcish_armour,
  38. --~black_robe, cyan_robe, lime_dress, magenta_dress, orange_robe, pink_dress,
  39. --~red_robe, sexy_dress, white_robe, lime_robe, orange_hood, fur_helmet,
  40. --~black_hood, cyan_hood, lime_hood
  41. --~full_body, head, chest, hands, feet, neck,
  42. --~main_hand, off_hand
  43. ------------------------------------------------------------------------------------------
  44. count : constant natural := enumeration'pos (enumeration'last) + 1;
  45. description : constant array (enumeration) of definition := (
  46. dwarf_berserker => ("Dwarf Berserker ", faction.dwarf, (3, 2, 1, 3, 2, 2), 1, (
  47. equipment.blue_tunic, equipment.leather_helmet, equipment.leather_chestplate, equipment.none,
  48. equipment.leather_greaves, equipment.none, equipment.iron_axe, equipment.none)),
  49. dwarf_elite_berserker => ("Dwarf Elite Berserker ", faction.dwarf, (3, 2, 1, 3, 2, 2), 3, (
  50. equipment.cyan_tunic, equipment.mithril_helmet, equipment.mithril_chestplate, equipment.leather_gauntlets,
  51. equipment.leather_greaves, equipment.none, equipment.mithril_axe, equipment.none)),
  52. dwarf_guard => ("Dwarf Guard ", faction.dwarf, (3, 2, 1, 3, 2, 2), 4, (
  53. equipment.cyan_tunic, equipment.steel_helmet, equipment.steel_chestplate, equipment.leather_gauntlets,
  54. equipment.leather_greaves, equipment.none, equipment.steel_battleaxe, equipment.steel_shield)),
  55. dwarf_elite_guard => ("Dwarf Elite Guard ", faction.dwarf, (3, 2, 1, 3, 2, 2), 6, (
  56. equipment.cyan_tunic, equipment.steel_helmet, equipment.mithril_chestplate, equipment.steel_gauntlets,
  57. equipment.steel_greaves, equipment.none, equipment.mithril_axe, equipment.steel_shield))
  58. );
  59. ------------------------------------------------------------------------------------------
  60. procedure configure;
  61. procedure draw (index : in enumeration; state : in core.animation; x, y : in integer);
  62. --~procedure draw_icon (index : in enumeration; x, y : in integer);
  63. --~procedure draw_view (index : in enumeration; x, y : in integer);
  64. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  65. end unit;