-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic -- -- GNU General Public Licence (version 3 or later) with core, effect, attribute, faction, equipment; 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 name : core.short_string := "-- "; kind : enumeration := imp_base; state : core.animation := core.idle; attributes : attribute.points := (others => 0); equipments : equipment.equip_array := (others => equipment.none); end record; type value_limit is range 0 .. 90; type value_array is array (value_limit) of value; ------------------------------------------------------------------------------------------ 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, " ") ); default_value : value; values : value_array := ( ("Dwarf Berserker ", dwarf_base, core.idle, (3, 2, 1, 3, 2, 2), (equipment.main_hand => equipment.mithril_axe, others => equipment.none)), ("Dwarf Berserker ", dwarf_base, core.idle, (3, 2, 1, 3, 2, 2), (equipment.main_hand => equipment.mithril_battleaxe, others => equipment.none)), ("Dwarf Berserker ", dwarf_base, core.idle, (3, 2, 1, 3, 2, 2), (equipment.main_hand => equipment.mithril_mace, others => equipment.none)), -- others => default_value ); ------------------------------------------------------------------------------------------ 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 draw_full (index : in natural; x, y : in integer); ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ end unit;