185 lines
14 KiB
Ada
185 lines
14 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,
|
|
-- 04.05.2024.
|
|
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
|
|
);
|
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
type information is record
|
|
name : core.short_string;
|
|
kind : slot;
|
|
attributes : attribute.points;
|
|
favor : faction.enumeration;
|
|
evoke : effect.enumeration;
|
|
end record;
|
|
|
|
type value is record
|
|
data : enumeration := equipment.none;
|
|
show : boolean := true;
|
|
end record;
|
|
|
|
type equip_array is array (slot) of value;
|
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
empty : constant value := (equipment.none, false);
|
|
|
|
count : constant natural := enumeration'pos (enumeration'last) + 1;
|
|
|
|
trait : constant array (enumeration) of information := (
|
|
("-- ", head, (0, 0, 0, 0, 0, 0), faction.neutral, effect.none),
|
|
("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)
|
|
);
|
|
|
|
sprite : array (enumeration) of core.sprite;
|
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
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;
|