xhads/source/chad.ads

75 lines
3.0 KiB
Ada

-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
--
-- GNU General Public Licence (version 3 or later)
with core, attribute, skill, resource, faction, equipment;
package chad is
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
type enumeration is (
ada, richard, ognjen, wouter, john, marina
);
------------------------------------------------------------------------------------------
type information is record
name : core.short_string;
kind : faction.enumeration;
bonus_attribute : attribute.enumeration;
bonus_skill : skill.enumeration;
bonus_resource : resource.enumeration;
end record;
item_limit : constant natural := 24;
type item_array is array (0 .. item_limit - 1) of equipment.enumeration;
type data is record
index : enumeration;
state : core.animation;
health : core.point;
mana : core.point;
stamina : core.point;
attributes : attribute.points;
skills : skill.points;
resources : resource.points;
equipments : equipment.equip_array;
item_count : natural;
items : item_array;
end record;
type data_list is array (natural range <>) of data;
------------------------------------------------------------------------------------------
count : constant natural := enumeration'pos (enumeration'last) + 1;
trait : constant array (enumeration) of information := (
("Ada Augusta King ", faction.fairy, attribute.defense, skill.diplomacy, resource.metal),
("Richard Martin Stallman ", faction.dwarf, attribute.offense, skill.leadership, resource.wood),
("Ognjen Milan Robovic ", faction.kobold, attribute.stamina, skill.archery, resource.leather),
("Wouter van Oortmerssen ", faction.gnoll, attribute.speed, skill.medicine, resource.stone),
("John Warner Backus ", faction.goblin, attribute.wisdom, skill.sorcery, resource.gem),
("Marina Ann Hantzis ", faction.imp, attribute.reach, skill.necromancy, resource.gold)
);
------------------------------------------------------------------------------------------
procedure configure;
procedure draw (player : in data; x, y : in integer);
procedure view (player : in data; x, y : in integer);
procedure draw_data (player : in data; x, y : in integer);
procedure draw_menu (player : in data; x, y : in integer);
function take_equipment_item (player : in out data; item : in equipment.enumeration) return boolean;
procedure draw_pepe;
procedure draw_alice;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
end chad;