xhads/source/equipment.ads

216 lines
20 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-06-02 07:02:36 -04:00
use core;
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 (
none,
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,
2024-05-15 05:40:06 -04:00
golden_shield, iron_shield, mithril_shield, steel_shield, wooden_shield, wooden_armour,
fur_armour, fur_greaves, fur_gauntlets, red_hood, white_hood, wooden_helmet,
human_helmet, human_armour, elven_helmet, elven_armour, orcish_helmet, orcish_armour,
black_robe, cyan_robe, lime_dress, magenta_dress, orange_robe, pink_dress,
red_robe, sexy_dress, white_robe, lime_robe, orange_hood, fur_helmet,
black_hood, cyan_hood, lime_hood
2024-02-15 21:03:09 -05:00
);
------------------------------------------------------------------------------------------
type definition is record
2024-06-01 15:36:15 -04:00
name : core.unstring;
kind : slot;
attributes : attribute.bonus;
favor : faction.enumeration;
evoke : effect.information;
2024-02-15 21:03:09 -05:00
end record;
type equip_array is array (slot) of enumeration;
2024-02-15 21:03:09 -05:00
------------------------------------------------------------------------------------------
count : constant natural := enumeration'pos (enumeration'last) + 1;
2024-06-02 07:02:36 -04:00
description : constant array (enumeration) of definition := (
none => (+("--"), full_body, (others => 0), faction.neutral, effect.none),
bone_chestplate => (+("Bone Chestplate"), chest, (others => 0), faction.neutral, effect.none),
bronze_chestplate => (+("Bronze Chestplate"), chest, (others => 0), faction.neutral, effect.none),
chainmail_chestplate => (+("Chainmail Chestplate"), chest, (others => 0), faction.neutral, effect.none),
crystal_chestplate => (+("Crystal Chestplate"), chest, (others => 0), faction.neutral, effect.none),
golden_chestplate => (+("Golden Chestplate"), chest, (others => 0), faction.neutral, effect.none),
iron_chestplate => (+("Iron Chestplate"), chest, (others => 0), faction.neutral, effect.none),
leather_chestplate => (+("Leather Chestplate"), chest, (others => 0), faction.neutral, effect.none),
mithril_chestplate => (+("Mithril Chestplate"), chest, (others => 0), faction.neutral, effect.none),
steel_chestplate => (+("Steel Chestplate"), chest, (others => 0), faction.neutral, effect.none),
bone_greaves => (+("Bone Greaves"), feet, (others => 0), faction.neutral, effect.none),
bronze_greaves => (+("Bronze Greaves"), feet, (others => 0), faction.neutral, effect.none),
chainmail_greaves => (+("Chainmail Greaves"), feet, (others => 0), faction.neutral, effect.none),
crystal_greaves => (+("Crystal Greaves"), feet, (others => 0), faction.neutral, effect.none),
golden_greaves => (+("Golden Greaves"), feet, (others => 0), faction.neutral, effect.none),
iron_greaves => (+("Iron Greaves"), feet, (others => 0), faction.neutral, effect.none),
leather_greaves => (+("Leather Greaves"), feet, (others => 0), faction.neutral, effect.none),
mithril_greaves => (+("Mithril Greaves"), feet, (others => 0), faction.neutral, effect.none),
steel_greaves => (+("Steel Greaves"), feet, (others => 0), faction.neutral, effect.none),
black_tunic => (+("Black Tunic"), full_body, (others => 0), faction.neutral, effect.none),
blue_tunic => (+("Blue Tunic"), full_body, (others => 0), faction.neutral, effect.none),
cyan_tunic => (+("Cyan Tunic"), full_body, (others => 0), faction.neutral, effect.none),
green_tunic => (+("Green Tunic"), full_body, (others => 0), faction.neutral, effect.none),
grey_tunic => (+("Grey Tunic"), full_body, (others => 0), faction.neutral, effect.none),
lime_tunic => (+("Lime Tunic"), full_body, (others => 0), faction.neutral, effect.none),
orange_tunic => (+("Orange Tunic"), full_body, (others => 0), faction.neutral, effect.none),
pink_tunic => (+("Pink Tunic"), full_body, (others => 0), faction.neutral, effect.none),
purple_tunic => (+("Purple Tunic"), full_body, (others => 0), faction.neutral, effect.none),
red_tunic => (+("Red Tunic"), full_body, (others => 0), faction.neutral, effect.none),
white_tunic => (+("White Tunic"), full_body, (others => 0), faction.neutral, effect.none),
yellow_tunic => (+("Yellow Tunic"), full_body, (others => 0), faction.neutral, effect.none),
bone_gauntlets => (+("Bone Gauntlets"), hands, (others => 0), faction.neutral, effect.none),
bronze_gauntlets => (+("Bronze Gauntlets"), hands, (others => 0), faction.neutral, effect.none),
chainmail_gauntlets => (+("Chainmail Gauntlets"), hands, (others => 0), faction.neutral, effect.none),
crystal_gauntlets => (+("Crystal Gauntlets"), hands, (others => 0), faction.neutral, effect.none),
golden_gauntlets => (+("Golden Gauntlets"), hands, (others => 0), faction.neutral, effect.none),
iron_gauntlets => (+("Iron Gauntlets"), hands, (others => 0), faction.neutral, effect.none),
leather_gauntlets => (+("Leather Gauntlets"), hands, (others => 0), faction.neutral, effect.none),
mithril_gauntlets => (+("Mithril Gauntlets"), hands, (others => 0), faction.neutral, effect.none),
steel_gauntlets => (+("Steel Gauntlets"), hands, (others => 0), faction.neutral, effect.none),
bone_helmet => (+("Bone Helmet"), head, (others => 0), faction.neutral, effect.none),
bronze_helmet => (+("Bronze Helmet"), head, (others => 0), faction.neutral, effect.none),
chainmail_helmet => (+("Chainmail Helmet"), head, (others => 0), faction.neutral, effect.none),
crystal_helmet => (+("Crystal Helmet"), head, (others => 0), faction.neutral, effect.none),
golden_helmet => (+("Golden Helmet"), head, (others => 0), faction.neutral, effect.none),
iron_helmet => (+("Iron Helmet"), head, (others => 0), faction.neutral, effect.none),
leather_helmet => (+("Leather Helmet"), head, (others => 0), faction.neutral, effect.none),
mithril_helmet => (+("Mithril Helmet"), head, (others => 0), faction.neutral, effect.none),
steel_helmet => (+("Steel Helmet"), head, (others => 0), faction.neutral, effect.none),
bone_axe => (+("Bone Axe"), main_hand, (others => 0), faction.neutral, effect.none),
bone_battleaxe => (+("Bone Battleaxe"), main_hand, (others => 0), faction.neutral, effect.none),
bone_bow => (+("Bone Bow"), main_hand, (others => 0), faction.neutral, effect.none),
bone_mace => (+("Bone Mace"), main_hand, (others => 0), faction.neutral, effect.none),
bone_spear => (+("Bone Spear"), main_hand, (others => 0), faction.neutral, effect.none),
bone_sword => (+("Bone Sword"), main_hand, (others => 0), faction.neutral, effect.none),
bronze_axe => (+("Bronze Axe"), main_hand, (others => 0), faction.neutral, effect.none),
bronze_greatsword => (+("Bronze Greatsword"), main_hand, (others => 0), faction.neutral, effect.none),
bronze_mace => (+("Bronze Mace"), main_hand, (others => 0), faction.neutral, effect.none),
bronze_spear => (+("Bronze Spear"), main_hand, (others => 0), faction.neutral, effect.none),
bronze_sword => (+("Bronze Sword"), main_hand, (others => 0), faction.neutral, effect.none),
club => (+("Club"), main_hand, (others => 0), faction.neutral, effect.none),
crystal_bow => (+("Crystal Bow"), main_hand, (others => 0), faction.neutral, effect.none),
crystal_greatsword => (+("Crystal Greatsword"), main_hand, (others => 0), faction.neutral, effect.none),
crystal_mace => (+("Crystal Mace"), main_hand, (others => 0), faction.neutral, effect.none),
crystal_spear => (+("Crystal Spear"), main_hand, (others => 0), faction.neutral, effect.none),
crystal_sword => (+("Crystal Sword"), main_hand, (others => 0), faction.neutral, effect.none),
golden_axe => (+("Golden Axe"), main_hand, (others => 0), faction.neutral, effect.none),
golden_battleaxe => (+("Golden Battleaxe"), main_hand, (others => 0), faction.neutral, effect.none),
golden_bow => (+("Golden Bow"), main_hand, (others => 0), faction.neutral, effect.none),
golden_greatsword => (+("Golden Greatsword"), main_hand, (others => 0), faction.neutral, effect.none),
golden_sword => (+("Golden Sword"), main_hand, (others => 0), faction.neutral, effect.none),
iron_axe => (+("Iron Axe"), main_hand, (others => 0), faction.neutral, effect.none),
iron_bow => (+("Iron Bow"), main_hand, (others => 0), faction.neutral, effect.none),
iron_mace => (+("Iron Mace"), main_hand, (others => 0), faction.neutral, effect.none),
iron_spear => (+("Iron Spear"), main_hand, (others => 0), faction.neutral, effect.none),
iron_sword => (+("Iron Sword"), main_hand, (others => 0), faction.neutral, effect.none),
jade_axe => (+("Jade Axe"), main_hand, (others => 0), faction.neutral, effect.none),
jade_battleaxe => (+("Jade Battleaxe"), main_hand, (others => 0), faction.neutral, effect.none),
jade_greatsword => (+("Jade Greatsword"), main_hand, (others => 0), faction.neutral, effect.none),
jade_mace => (+("Jade Mace"), main_hand, (others => 0), faction.neutral, effect.none),
jade_spear => (+("Jade Spear"), main_hand, (others => 0), faction.neutral, effect.none),
jade_sword => (+("Jade Sword"), main_hand, (others => 0), faction.neutral, effect.none),
maul => (+("Maul"), main_hand, (others => 0), faction.neutral, effect.none),
mithril_axe => (+("Mithril Axe"), main_hand, (others => 0), faction.neutral, effect.none),
mithril_battleaxe => (+("Mithril Battleaxe"), main_hand, (others => 0), faction.neutral, effect.none),
mithril_bow => (+("Mithril Bow"), main_hand, (others => 0), faction.neutral, effect.none),
mithril_mace => (+("Mithril Mace"), main_hand, (others => 0), faction.neutral, effect.none),
mithril_spear => (+("Mithril Spear"), main_hand, (others => 0), faction.neutral, effect.none),
sledge_hammer => (+("Sledge Hammer"), main_hand, (others => 0), faction.neutral, effect.none),
spiked_club => (+("Spiked Club"), main_hand, (others => 0), faction.neutral, effect.none),
spiked_staff => (+("Spiked Staff"), main_hand, (others => 0), faction.neutral, effect.none),
staff => (+("Staff"), main_hand, (others => 0), faction.neutral, effect.none),
steel_battleaxe => (+("Steel Battleaxe"), main_hand, (others => 0), faction.neutral, effect.none),
steel_bow => (+("Steel Bow"), main_hand, (others => 0), faction.neutral, effect.none),
steel_greatsword => (+("Steel Greatsword"), main_hand, (others => 0), faction.neutral, effect.none),
steel_mace => (+("Steel Mace"), main_hand, (others => 0), faction.neutral, effect.none),
steel_sword => (+("Steel Sword"), main_hand, (others => 0), faction.neutral, effect.none),
wooden_bow => (+("Wooden Bow"), main_hand, (others => 0), faction.neutral, effect.none),
wooden_greatsword => (+("Wooden Greatsword"), main_hand, (others => 0), faction.neutral, effect.none),
wooden_sword => (+("Wooden Sword"), main_hand, (others => 0), faction.neutral, effect.none),
golden_necklace => (+("Golden Necklace"), neck, (others => 0), faction.neutral, effect.none),
bronze_shield => (+("Bronze Shield"), off_hand, (others => 0), faction.neutral, effect.none),
crystal_shield => (+("Crystal Shield"), off_hand, (others => 0), faction.neutral, effect.none),
golden_shield => (+("Golden Shield"), off_hand, (others => 0), faction.neutral, effect.none),
iron_shield => (+("Iron Shield"), off_hand, (others => 0), faction.neutral, effect.none),
mithril_shield => (+("Mithril Shield"), off_hand, (others => 0), faction.neutral, effect.none),
steel_shield => (+("Steel Shield"), off_hand, (others => 0), faction.neutral, effect.none),
wooden_shield => (+("Wooden Shield"), off_hand, (others => 0), faction.neutral, effect.none),
wooden_armour => (+("Wooden Armour"), chest, (others => 0), faction.neutral, effect.none),
fur_armour => (+("Fur Armour"), chest, (others => 0), faction.neutral, effect.none),
fur_greaves => (+("Fur Greaves"), feet, (others => 0), faction.neutral, effect.none),
fur_gauntlets => (+("Fur Gauntlets"), hands, (others => 0), faction.neutral, effect.none),
red_hood => (+("Red Hood"), head, (others => 0), faction.neutral, effect.none),
white_hood => (+("White Hood"), head, (others => 0), faction.neutral, effect.none),
wooden_helmet => (+("Wooden Helmet"), head, (others => 0), faction.neutral, effect.none),
human_helmet => (+("Human Helmet"), head, (others => 0), faction.neutral, effect.none),
human_armour => (+("Human Armour"), chest, (others => 0), faction.neutral, effect.none),
elven_helmet => (+("Elven Helmet"), head, (others => 0), faction.neutral, effect.none),
elven_armour => (+("Elven Armour"), chest, (others => 0), faction.neutral, effect.none),
orcish_helmet => (+("Orcish Helmet"), head, (others => 0), faction.neutral, effect.none),
orcish_armour => (+("Orcish Armour"), chest, (others => 0), faction.neutral, effect.none),
black_robe => (+("Black Robe"), full_body, (others => 0), faction.neutral, effect.none),
cyan_robe => (+("Cyan Robe"), full_body, (others => 0), faction.neutral, effect.none),
lime_dress => (+("Lime Dress"), full_body, (others => 0), faction.neutral, effect.none),
magenta_dress => (+("Magenta Dress"), full_body, (others => 0), faction.neutral, effect.none),
orange_robe => (+("Orange Robe"), full_body, (others => 0), faction.neutral, effect.none),
pink_dress => (+("Pink Dress"), full_body, (others => 0), faction.neutral, effect.none),
red_robe => (+("Red Robe"), full_body, (others => 0), faction.neutral, effect.none),
sexy_dress => (+("Sexy Dress"), full_body, (others => 0), faction.neutral, effect.none),
white_robe => (+("White Robe"), full_body, (others => 0), faction.neutral, effect.none),
lime_robe => (+("Lime Robe"), full_body, (others => 0), faction.neutral, effect.none),
orange_hood => (+("Orange Hood"), head, (others => 0), faction.neutral, effect.none),
fur_helmet => (+("Fur Helmet"), head, (others => 0), faction.neutral, effect.none),
black_hood => (+("Black Hood"), head, (others => 0), faction.neutral, effect.none),
cyan_hood => (+("Cyan Hood"), head, (others => 0), faction.neutral, effect.none),
lime_hood => (+("Lime Hood"), head, (others => 0), faction.neutral, effect.none)
);
sprite : array (enumeration) of core.sprite;
icon : array (enumeration) of core.sprite;
2024-02-15 21:03:09 -05:00
------------------------------------------------------------------------------------------
function "=" (a, b : in enumeration) return boolean;
function "/" (a, b : in enumeration) return boolean;
2024-02-15 21:03:09 -05:00
procedure configure;
2024-05-11 06:01:07 -04:00
procedure draw (index : in enumeration; state : in core.animation; x, y : in integer);
procedure draw_plus (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;