-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic -- -- GNU General Public Licence (version 3 or later) with core, effect, attribute, faction, item; package unit is ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ type enumeration is ( dwarf_base, fairy_base, gnoll_base, goblin_base, imp_base, kobold_base ); ------------------------------------------------------------------------------------------ type information is record name : core.short_string; kind : faction.enumeration; attributes : attribute.points; evoke : effect.enumeration; text : core.long_string; end record; type value is record kind : enumeration; state : core.animation; attributes : attribute.points; -- items : item.list; end record; ------------------------------------------------------------------------------------------ count : constant natural := enumeration'pos (enumeration'last) + 1; trait : constant array (enumeration) of information := ( ("Dwarf ", faction.dwarf, (others => 1), effect.none, " "), ("Fairy ", faction.fairy, (others => 1), effect.none, " "), ("Gnoll ", faction.gnoll, (others => 1), effect.none, " "), ("Goblin ", faction.goblin, (others => 1), effect.none, " "), ("Imp ", faction.imp, (others => 1), effect.none, " "), ("Kobold ", faction.kobold, (others => 1), effect.none, " ") ); list : array (0 .. 100) of value := ( others => (dwarf_base, core.idle, (others => 1), ( item.main_hand => (item.iron_sword, true), item.full_body => (item.cyan_tunic, true), item.head => (item.iron_helmet, true), item.feet => (item.iron_greaves, true), others => (item.iron_sword, false))) ); ------------------------------------------------------------------------------------------ procedure configure; procedure draw (index : in enumeration; state : in core.animation; x, y : in integer); procedure icon (index : in enumeration; x, y : in integer); procedure view (index : in enumeration; x, y : in integer); procedure full_draw (data : in value; x, y : in integer); ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ end unit;