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