xhads/source/chad.ads

76 lines
3.7 KiB
Ada

-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
--
-- GNU General Public Licence (version 3 or later)
with core, attribute, skill, resource, material, faction, equipment;
package chad is
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
type enumeration is (
ada, richard, ognjen, wouter, john, marina
);
------------------------------------------------------------------------------------------
type definition is record
name : access string;
title : access string;
kind : faction.enumeration;
bonus_attribute : attribute.enumeration;
bonus_skill : skill.enumeration;
bonus_resource : resource.enumeration;
end record;
item_limit : constant natural := 24;
skill_limit : constant natural := 8;
type item_array is array (0 .. item_limit - 1) of equipment.enumeration;
type skill_array is array (0 .. skill_limit - 1) of skill.enumeration;
type skill_point is array (0 .. skill_limit - 1) of core.point;
type information is record
index : enumeration := ada;
state : core.animation := core.idle;
level : natural := 1;
x : integer := 0;
y : integer := 0;
health : core.point := (12, 12);
mana : core.point := (12, 12);
movement : core.point := (12, 12);
attributes : attribute.points := attribute.default;
skills : skill_array := (others => skill.none);
points : skill_point := (others => (0, 3));
resources : resource.points := resource.default;
materials : material.points := material.default;
equipments : equipment.equip_array := equipment.default;
item_count : natural := 0;
items : item_array := (others => equipment.none);
end record;
type informations is array (natural range <>) of information;
------------------------------------------------------------------------------------------
count : constant natural := enumeration'pos (enumeration'last) + 1;
description : constant array (enumeration) of definition := (
ada => (new string'("Ada Augusta King"), new string'("Guardian"), faction.fairy, attribute.defense, skill.diplomacy, resource.metal),
richard => (new string'("Richard Martin Stallman"), new string'("Prophet"), faction.dwarf, attribute.offense, skill.leadership, resource.wood),
ognjen => (new string'("Ognjen Milan Robovic"), new string'("Wanderer"), faction.kobold, attribute.stamina, skill.archery, resource.leather),
wouter => (new string'("Wouter van Oortmerssen"), new string'("Battlemage"), faction.gnoll, attribute.speed, skill.medicine, resource.stone),
john => (new string'("John Warner Backus"), new string'("Sorcerer"), faction.goblin, attribute.wisdom, skill.sorcery, resource.gem),
marina => (new string'("Marina Ann Hantzis"), new string'("Necromancer"), faction.imp, attribute.reach, skill.necromancy, resource.gold)
);
view_width : constant integer := 64;
view_height : constant integer := 96;
sprite : array (enumeration) of core.sprite;
view : array (enumeration) of core.sprite;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
end chad;