2024-04-25 00:27:13 -04:00
|
|
|
-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
|
|
|
|
--
|
|
|
|
-- GNU General Public Licence (version 3 or later)
|
|
|
|
|
2024-05-16 14:52:41 -04:00
|
|
|
with core, attribute, skill, resource, faction, equipment;
|
2024-02-22 03:29:04 -05:00
|
|
|
|
|
|
|
package chad is
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
2024-04-26 16:05:48 -04:00
|
|
|
type enumeration is (
|
2024-04-25 00:27:13 -04:00
|
|
|
ada, richard, ognjen, wouter, john, marina
|
2024-02-22 03:29:04 -05:00
|
|
|
);
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
|
2024-04-27 10:01:54 -04:00
|
|
|
type information is record
|
2024-03-13 18:18:07 -04:00
|
|
|
name : core.short_string;
|
2024-04-26 16:05:48 -04:00
|
|
|
kind : faction.enumeration;
|
|
|
|
bonus_attribute : attribute.enumeration;
|
|
|
|
bonus_skill : skill.enumeration;
|
|
|
|
bonus_resource : resource.enumeration;
|
2024-02-22 03:29:04 -05:00
|
|
|
end record;
|
|
|
|
|
2024-05-17 18:35:31 -04:00
|
|
|
item_limit : constant natural := 24;
|
|
|
|
|
|
|
|
type item_array is array (0 .. item_limit - 1) of equipment.enumeration;
|
|
|
|
|
2024-05-19 13:29:28 -04:00
|
|
|
type value is record
|
2024-04-26 16:05:48 -04:00
|
|
|
index : enumeration;
|
2024-05-16 14:52:41 -04:00
|
|
|
state : core.animation;
|
2024-05-19 13:29:28 -04:00
|
|
|
x : integer;
|
|
|
|
y : integer;
|
2024-05-16 12:35:36 -04:00
|
|
|
health : core.point;
|
|
|
|
mana : core.point;
|
|
|
|
stamina : core.point;
|
2024-04-23 16:19:29 -04:00
|
|
|
attributes : attribute.points;
|
|
|
|
skills : skill.points;
|
|
|
|
resources : resource.points;
|
2024-05-17 18:35:31 -04:00
|
|
|
equipments : equipment.equip_array;
|
|
|
|
item_count : natural;
|
|
|
|
items : item_array;
|
2024-03-13 18:32:59 -04:00
|
|
|
end record;
|
|
|
|
|
2024-05-19 13:29:28 -04:00
|
|
|
type value_array is array (natural range <>) of value;
|
2024-05-17 18:35:31 -04:00
|
|
|
|
2024-02-22 03:29:04 -05:00
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
|
2024-04-26 16:05:48 -04:00
|
|
|
count : constant natural := enumeration'pos (enumeration'last) + 1;
|
2024-02-22 03:29:04 -05:00
|
|
|
|
2024-04-26 16:05:48 -04:00
|
|
|
trait : constant array (enumeration) of information := (
|
2024-05-23 04:52:45 -04:00
|
|
|
ada => ("Ada Augusta King ", faction.fairy, attribute.defense, skill.diplomacy, resource.metal),
|
|
|
|
richard => ("Richard Martin Stallman ", faction.dwarf, attribute.offense, skill.leadership, resource.wood),
|
|
|
|
ognjen => ("Ognjen Milan Robovic ", faction.kobold, attribute.stamina, skill.archery, resource.leather),
|
|
|
|
wouter => ("Wouter van Oortmerssen ", faction.gnoll, attribute.speed, skill.medicine, resource.stone),
|
|
|
|
john => ("John Warner Backus ", faction.goblin, attribute.wisdom, skill.sorcery, resource.gem),
|
|
|
|
marina => ("Marina Ann Hantzis ", faction.imp, attribute.reach, skill.necromancy, resource.gold)
|
2024-02-22 03:29:04 -05:00
|
|
|
);
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
procedure configure;
|
|
|
|
|
2024-05-19 13:29:28 -04:00
|
|
|
procedure draw (player : in value; x, y : in integer);
|
|
|
|
procedure draw_data (player : in value; x, y : in integer);
|
|
|
|
procedure draw_menu (player : in value; x, y : in integer);
|
2024-02-22 03:29:04 -05:00
|
|
|
|
2024-05-19 13:29:28 -04:00
|
|
|
function take_equipment_item (player : in out value; item : in equipment.enumeration) return boolean;
|
2024-05-17 18:35:31 -04:00
|
|
|
|
2024-05-01 14:41:55 -04:00
|
|
|
procedure draw_pepe;
|
2024-05-03 05:28:44 -04:00
|
|
|
procedure draw_alice;
|
2024-05-01 14:41:55 -04:00
|
|
|
|
2024-05-25 03:53:53 -04:00
|
|
|
procedure save_value (here : in core.io.file_type; data : in value);
|
|
|
|
procedure load_value (here : in core.io.file_type; data : out value);
|
2024-05-25 03:00:30 -04:00
|
|
|
|
2024-02-22 03:29:04 -05:00
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
end chad;
|