|
- -- 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.value;
- 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 draw_icon (index : in enumeration; x, y : in integer);
- procedure draw_view (index : in enumeration; x, y : in integer);
- procedure draw_full (index : in natural; x, y : in integer);
-
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
- end unit;
|