-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic -- -- GNU General Public Licence (version 3 or later) with core, effect, attribute, faction; package equipment is ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ type kind 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, light_crossbow, pickaxe, staff_of_fire, staff_of_air, staff_of_water, staff_of_earth, staff_of_light, staff_of_dark, cyan_pants, blue_pants, grey_pants, purple_pants ); ------------------------------------------------------------------------------------------ type definition is record name : access string := new string'("--"); slot : kind := full_body; attributes : attribute.bonus := (others => 0); favor : faction.enumeration := faction.neutral; evoke : effect.information := effect.none; end record; type equip_array is array (kind) of enumeration; ------------------------------------------------------------------------------------------ count : constant natural := enumeration'pos (enumeration'last) + 1; default : constant equip_array := (others => none); description : constant array (enumeration) of definition := ( none => (others => <>), -- 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, 1), 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, 1), 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, 1), 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, 1), 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, 1), 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, 1), 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, 1), 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, 1), 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, 1), 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, 1), 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, 1), 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_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, 1), 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, 1), faction.neutral, effect.none), bronze_sword => (new string'("Bronze Sword"), main_hand, (1, 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), bronze_helmet => (new string'("Bronze Helmet"), head, (0, 2, 0, 0, 0, 0), faction.neutral, effect.none), bronze_chestplate => (new string'("Bronze Chestplate"), chest, (0, 2, 0, 0, 1, 0), faction.neutral, effect.none), bronze_gauntlets => (new string'("Bronze Gauntlets"), hands, (0, 1, 0, 0, 0, 0), faction.neutral, effect.none), bronze_greaves => (new string'("Bronze Greaves"), feet, (0, 1, 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), chainmail_chestplate => (new string'("Chainmail Chestplate"), chest, (0, 3, 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), chainmail_greaves => (new string'("Chainmail Greaves"), feet, (0, 1, 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), leather_chestplate => (new string'("Leather Chestplate"), chest, (0, 2, 0, 0, 1, 0), faction.neutral, effect.none), leather_gauntlets => (new string'("Leather Gauntlets"), hands, (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), 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_gauntlets => (new string'("Fur Gauntlets"), hands, (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), wooden_sword => (new string'("Wooden Sword"), 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, 1), faction.neutral, effect.none), wooden_bow => (new string'("Wooden Bow"), main_hand, (1, 0, 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), 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, 1), faction.neutral, effect.none), jade_greatsword => (new string'("Jade Greatsword"), main_hand, (3, 0, 0, 0, 0, 1), 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, 1), faction.neutral, effect.none), jade_sword => (new string'("Jade Sword"), main_hand, (2, 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), spiked_club => (new string'("Spiked Club"), 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), spiked_staff => (new string'("Spiked Staff"), 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), pickaxe => (new string'("Pickaxe"), main_hand, (1, 0, 0, 0, 0, 0), faction.neutral, effect.none), light_crossbow => (new string'("Light Crossbow"), main_hand, (2, 0, 0, 0, 0, 7), faction.neutral, effect.none), magenta_dress => (new string'("Magenta Dress"), 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), pink_dress => (new string'("Pink Dress"), 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_tunic => (new string'("White 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), black_tunic => (new string'("Black 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), green_tunic => (new string'("Green 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), pink_tunic => (new string'("Pink 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), 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), purple_tunic => (new string'("Purple Tunic"), 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), black_robe => (new string'("Black Robe"), 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), cyan_robe => (new string'("Cyan 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_robe => (new string'("Orange Robe"), full_body, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none), cyan_pants => (new string'("Cyan Pants"), full_body, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none), blue_pants => (new string'("Blue Pants"), full_body, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none), grey_pants => (new string'("Grey Pants"), full_body, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none), purple_pants => (new string'("Purple Pants"), full_body, (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_hood => (new string'("Black Hood"), head, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none), red_hood => (new string'("Red 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), orange_hood => (new string'("Orange 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), golden_necklace => (new string'("Golden Necklace"), neck, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none), staff_of_fire => (new string'("Staff of Fire"), off_hand, (1, 0, 2, 0, 0, 9), faction.imp, effect.none), staff_of_air => (new string'("Staff of Air"), off_hand, (1, 0, 2, 0, 0, 9), faction.gnoll, effect.none), staff_of_water => (new string'("Staff of Water"), off_hand, (1, 0, 2, 0, 0, 9), faction.kobold, effect.none), staff_of_earth => (new string'("Staff of Earth"), off_hand, (1, 0, 2, 0, 0, 9), faction.dwarf, effect.none), staff_of_light => (new string'("Staff of Light"), off_hand, (1, 0, 2, 0, 0, 9), faction.fairy, effect.none), staff_of_dark => (new string'("Staff of Dark"), off_hand, (1, 0, 2, 0, 0, 9), faction.goblin, effect.none) ); sprite : array (enumeration) of core.sprite; icon : array (enumeration) of core.sprite; slot : array (kind) of core.sprite; ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ end equipment;