xhads/source/equipment.ads

184 lines
14 KiB
Ada
Raw Normal View History

-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
--
-- GNU General Public Licence (version 3 or later)
with core, effect, attribute, faction;
2024-02-15 21:03:09 -05:00
2024-05-11 03:38:33 -04:00
package equipment is
2024-02-15 21:03:09 -05:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
type slot is (
2024-05-11 02:13:20 -04:00
full_body, head, chest, hands, feet, neck,
main_hand, off_hand
2024-02-15 21:03:09 -05:00
);
type enumeration is (
2024-05-11 02:13:20 -04:00
none,
-- 04.05.2024.
2024-05-05 12:30:51 -04:00
bone_chestplate, bronze_chestplate, chainmail_chestplate, crystal_chestplate, golden_chestplate, iron_chestplate,
leather_chestplate, mithril_chestplate, steel_chestplate, bone_greaves, bronze_greaves, chainmail_greaves,
crystal_greaves, golden_greaves, iron_greaves, leather_greaves, mithril_greaves, steel_greaves,
black_tunic, blue_tunic, cyan_tunic, green_tunic, grey_tunic, lime_tunic,
orange_tunic, pink_tunic, purple_tunic, red_tunic, white_tunic, yellow_tunic,
bone_gauntlets, bronze_gauntlets, chainmail_gauntlets, crystal_gauntlets, golden_gauntlets, iron_gauntlets,
leather_gauntlets, mithril_gauntlets, steel_gauntlets, bone_helmet, bronze_helmet, chainmail_helmet,
crystal_helmet, golden_helmet, iron_helmet, leather_helmet, mithril_helmet, steel_helmet,
bone_axe, bone_battleaxe, bone_bow, bone_mace, bone_spear, bone_sword,
bronze_axe, bronze_greatsword, bronze_mace, bronze_spear, bronze_sword, club,
crystal_bow, crystal_greatsword, crystal_mace, crystal_spear, crystal_sword, golden_axe,
golden_battleaxe, golden_bow, golden_greatsword, golden_sword, iron_axe, iron_bow,
iron_mace, iron_spear, iron_sword, jade_axe, jade_battleaxe, jade_greatsword,
jade_mace, jade_spear, jade_sword, maul, mithril_axe, mithril_battleaxe,
mithril_bow, mithril_mace, mithril_spear, sledge_hammer, spiked_club, spiked_staff,
staff, steel_battleaxe, steel_bow, steel_greatsword, steel_mace, steel_sword,
wooden_bow, wooden_greatsword, wooden_sword, golden_necklace, bronze_shield, crystal_shield,
golden_shield, iron_shield, mithril_shield, steel_shield, wooden_shield
2024-02-15 21:03:09 -05:00
);
------------------------------------------------------------------------------------------
type information is record
name : core.short_string;
kind : slot;
attributes : attribute.points;
favor : faction.enumeration;
evoke : effect.enumeration;
2024-02-15 21:03:09 -05:00
end record;
type value is record
2024-05-11 03:38:33 -04:00
data : enumeration := equipment.none;
2024-05-11 02:13:20 -04:00
show : boolean := true;
end record;
2024-05-11 02:13:20 -04:00
type equip_array is array (slot) of value;
2024-02-15 21:03:09 -05:00
------------------------------------------------------------------------------------------
2024-05-11 03:38:33 -04:00
empty : constant value := (equipment.none, false);
2024-05-11 02:13:20 -04:00
count : constant natural := enumeration'pos (enumeration'last) + 1;
trait : constant array (enumeration) of information := (
2024-05-11 02:13:20 -04:00
("-- ", head, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
2024-05-11 03:50:51 -04:00
("Bone Chestplate ", chest, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Bronze Chestplate ", chest, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Chainmail Chestplate ", chest, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Crystal Chestplate ", chest, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Golden Chestplate ", chest, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Iron Chestplate ", chest, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Leather Chestplate ", chest, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Mithril Chestplate ", chest, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Steel Chestplate ", chest, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Bone Greaves ", feet, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Bronze Greaves ", feet, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Chainmail Greaves ", feet, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Crystal Greaves ", feet, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Golden Greaves ", feet, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Iron Greaves ", feet, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Leather Greaves ", feet, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Mithril Greaves ", feet, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Steel Greaves ", feet, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Black Tunic ", full_body, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Blue Tunic ", full_body, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Cyan Tunic ", full_body, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Green Tunic ", full_body, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Grey Tunic ", full_body, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Lime Tunic ", full_body, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Orange Tunic ", full_body, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Pink Tunic ", full_body, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Purple Tunic ", full_body, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Red Tunic ", full_body, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("White Tunic ", full_body, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Yellow Tunic ", full_body, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Bone Gauntlets ", hands, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Bronze Gauntlets ", hands, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Chainmail Gauntlets ", hands, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Crystal Gauntlets ", hands, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Golden Gauntlets ", hands, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Iron Gauntlets ", hands, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Leather Gauntlets ", hands, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Mithril Gauntlets ", hands, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Steel Gauntlets ", hands, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Bone Helmet ", head, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Bronze Helmet ", head, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Chainmail Helmet ", head, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Crystal Helmet ", head, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Golden Helmet ", head, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Iron Helmet ", head, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Leather Helmet ", head, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Mithril Helmet ", head, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Steel Helmet ", head, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Bone Axe ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Bone Battleaxe ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Bone Bow ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Bone Mace ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Bone Spear ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Bone Sword ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Bronze Axe ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Bronze Greatsword ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Bronze Mace ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Bronze Spear ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Bronze Sword ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Club ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Crystal Bow ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Crystal Greatsword ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Crystal Mace ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Crystal Spear ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Crystal Sword ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Golden Axe ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Golden Battleaxe ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Golden Bow ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Golden Greatsword ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Golden Sword ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Iron Axe ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Iron Bow ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Iron Mace ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Iron Spear ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Iron Sword ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Jade Axe ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Jade Battleaxe ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Jade Greatsword ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Jade Mace ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Jade Spear ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Jade Sword ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Maul ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Mithril Axe ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Mithril Battleaxe ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Mithril Bow ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Mithril Mace ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Mithril Spear ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Sledge Hammer ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Spiked Club ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Spiked Staff ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Staff ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Steel Battleaxe ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Steel Bow ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Steel Greatsword ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Steel Mace ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Steel Sword ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Wooden Bow ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Wooden Greatsword ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Wooden Sword ", main_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Golden Necklace ", neck, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Bronze Shield ", off_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Crystal Shield ", off_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Golden Shield ", off_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Iron Shield ", off_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Mithril Shield ", off_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Steel Shield ", off_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
("Wooden Shield ", off_hand, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none)
2024-02-15 21:03:09 -05:00
);
sprite : array (enumeration) of core.sprite;
2024-02-15 21:03:09 -05:00
------------------------------------------------------------------------------------------
procedure configure;
procedure draw (index : in enumeration; state : in core.animation; x, y : in integer);
2024-02-15 21:03:09 -05:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2024-05-11 03:38:33 -04:00
end equipment;