-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic -- -- GNU General Public Licence (version 3 or later) with core, attribute, skill, resource, material, faction, equipment, unit; package chad is ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ type enumeration is ( ada, richard, ognjen, wouter, john, marina ); ------------------------------------------------------------------------------------------ item_limit : constant natural := 24; skill_limit : constant natural := 8; type item_array is array (0 .. item_limit - 1) of equipment.enumeration; 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; 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.points := (others => (others => <>)); 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); units : unit.points := (others => (others => <>)); end record; type informations is array (natural range <>) of information; ------------------------------------------------------------------------------------------ -- Knight Cleric Ranger Druid Alchemist Wizard Heretic Demoniac Necromancer Death-Knight Overlord Warlock Barbarian Battlemage Beast-Tamer Witch 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;