xhads/source/item.ads

68 lines
3.8 KiB
Ada

-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
--
-- GNU General Public Licence (version 3 or later)
with core, effect, attribute, faction;
package item is
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
type slot is (
with_body, full_body, head, chest, hands, feet,
neck, main_hand, off_hand, bag, cloak, additional
);
type enumeration is (
iron_chestplate, iron_greaves, iron_gauntlets, iron_helmet, iron_sword,
golden_necklace, iron_round_shield,
grey_tunic, white_tunic, black_tunic, red_tunic, green_tunic, blue_tunic,
yellow_tunic, orange_tunic, cyan_tunic, lime_tunic, pink_tunic, purple_tunic
);
------------------------------------------------------------------------------------------
type information is record
name : core.short_string;
kind : slot;
attributes : attribute.points;
favor : faction.enumeration;
evoke : effect.enumeration;
end record;
------------------------------------------------------------------------------------------
count : constant natural := enumeration'pos (enumeration'last) + 1;
trait : constant array (enumeration) of information := (
("Iron Chestplate ", chest, (0, 3, 0, 0, 0, 0), faction.gnoll, effect.none),
("Iron Greaves ", feet, (0, 1, 0, 0, 0, 0), faction.gnoll, effect.none),
("Iron Gauntlets ", hands, (0, 1, 0, 0, 0, 0), faction.gnoll, effect.none),
("Iron Helmet ", head, (0, 1, 0, 0, 0, 0), faction.gnoll, effect.none),
("Iron Sword ", main_hand, (1, 0, 0, 0, 1, 2), faction.gnoll, effect.none),
("Golden Necklace ", neck, (0, 0, 0, 0, 0, 0), faction.fairy, effect.none),
("Iron Round Shield ", off_hand, (0, 2, 0, 0, 0, 1), faction.gnoll, effect.none),
("Grey Tunic ", full_body, (0, 1, 0, 1, 0, 0), faction.neutral, effect.none),
("White Tunic ", full_body, (0, 1, 0, 1, 0, 0), faction.neutral, effect.none),
("Black Tunic ", full_body, (0, 1, 0, 1, 0, 0), faction.neutral, effect.none),
("Red Tunic ", full_body, (0, 1, 0, 1, 0, 0), faction.neutral, effect.none),
("Green Tunic ", full_body, (0, 1, 0, 1, 0, 0), faction.neutral, effect.none),
("Blue Tunic ", full_body, (0, 1, 0, 1, 0, 0), faction.neutral, effect.none),
("Yellow Tunic ", full_body, (0, 1, 0, 1, 0, 0), faction.neutral, effect.none),
("Orange Tunic ", full_body, (0, 1, 0, 1, 0, 0), faction.neutral, effect.none),
("Cyan Tunic ", full_body, (0, 1, 0, 1, 0, 0), faction.neutral, effect.none),
("Lime Tunic ", full_body, (0, 1, 0, 1, 0, 0), faction.neutral, effect.none),
("Pink Tunic ", full_body, (0, 1, 0, 1, 0, 0), faction.neutral, effect.none),
("Purple Tunic ", full_body, (0, 1, 0, 1, 0, 0), faction.neutral, effect.none)
);
------------------------------------------------------------------------------------------
procedure configure;
procedure draw (index : in enumeration; x, y : in integer);
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
end item;