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