Experimental work on code structure in Items...

This commit is contained in:
Ognjen Milan Robovic 2024-04-26 15:49:49 -04:00
parent e5b06431bd
commit 93a8898b56
2 changed files with 23 additions and 15 deletions

View File

@ -2,31 +2,30 @@
-- --
-- GNU General Public Licence (version 3 or later) -- GNU General Public Licence (version 3 or later)
with core, effect; with core, effect, attribute, skill;
package item is package item is
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
type slot is ( type slot is (
main_hand, off_hand, head, chest, neck, full_body, with_body, full_body, head, chest, hands, feet,
finger, feet, hands, bag neck, main_hand, off_hand, bag, cloak, additional
); );
type codex is ( type codex is (
a, b iron_chestplate, iron_greaves, grey_tunic, iron_gauntlets, iron_helmet, iron_sword,
golden_necklace, iron_round_shield, ginger_long_beard, ginger_short_hair, head_runic_tattoo
); );
------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------
subtype level_limit is natural range 0 .. 3; type information is record
name : core.short_string;
type information is kind : slot;
record attributes : attribute.points;
name : core.short_string; bonus_skill : skill.codex;
kind : slot; evoke : effect.codex;
level : level_limit;
evoke : effect.codex;
end record; end record;
------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------
@ -34,8 +33,17 @@ package item is
count : constant natural := codex'pos (codex'last) + 1; count : constant natural := codex'pos (codex'last) + 1;
trait : constant array (codex) of information := ( trait : constant array (codex) of information := (
("A ", head, 0, effect.none), ("Iron Chestplate ", chest, (0, 3, 0, 0, 0, 0), skill.leadership, effect.none),
("B ", full_body, 0, effect.none) ("Iron Greaves ", feet, (0, 1, 0, 0, 0, 0), skill.logistics, effect.none),
("Grey Tunic ", full_body, (0, 1, 0, 1, 0, 0), skill.exploration, effect.none),
("Iron Gauntlets ", hands, (0, 1, 0, 0, 0, 0), skill.logistics, effect.none),
("Iron Helmet ", head, (0, 1, 0, 0, 0, 0), skill.leadership, effect.none),
("Iron Sword ", main_hand, (1, 0, 0, 0, 1, 2), skill.tactics, effect.none),
("Golden Necklace ", neck, (0, 0, 0, 0, 0, 0), skill.estates, effect.none),
("Iron Round Shield ", off_hand, (0, 2, 0, 0, 0, 1), skill.tactics, effect.none),
("Ginger Long Beard ", with_body, (0, 0, 0, 0, 0, 0), skill.mercantile, effect.none),
("Ginger Short Hair ", with_body, (0, 0, 0, 0, 0, 0), skill.mercantile, effect.none),
("Head Runic Tattoo ", with_body, (0, 0, 1, 0, 0, 0), skill.mysticism, effect.none)
); );
------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------

View File

@ -11,7 +11,7 @@ package ray is
type pointer is access all system.address; type pointer is access all system.address;
type colour_range is range 0 .. 2 ** 8 - 1; type colour_range is range 0 .. 2 ** 8 - 1;
type logical is new boolean; type logical is new boolean;
for logical'size use 32; for logical'size use 32;