66 lines
2.6 KiB
Ada
66 lines
2.6 KiB
Ada
-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
|
|
--
|
|
-- GNU General Public Licence (version 3 or later)
|
|
|
|
with core, effect;
|
|
|
|
package magic is
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
type school is (
|
|
air, dark, earth, fire, light, water
|
|
);
|
|
|
|
type enumeration is (
|
|
-- Air
|
|
arrow_storm,
|
|
-- Dark
|
|
torment,
|
|
-- Earth
|
|
stone_armour,
|
|
-- Fire
|
|
fireball,
|
|
-- Light
|
|
heal,
|
|
-- Water
|
|
ice_armour
|
|
);
|
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
subtype level_limit is natural range 0 .. 6;
|
|
|
|
type information is record
|
|
name : core.short_string;
|
|
kind : school;
|
|
level : level_limit;
|
|
evoke : effect.value;
|
|
text : core.long_string;
|
|
end record;
|
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
count : constant natural := enumeration'pos (enumeration'last) + 1;
|
|
|
|
trait : constant array (enumeration) of information := (
|
|
arrow_storm => ("Arrow Storm ", air, 1, effect.none, "Arrow Storm increases the range of your ranged units. "),
|
|
torment => ("Torment ", dark, 1, effect.none, "Torment causes targeted friend or foe to feel pain and shit. "),
|
|
stone_armour => ("Stone Armour ", earth, 1, effect.none, "Stone Armour increases defense of selected unit. "),
|
|
fireball => ("Fireball ", fire, 1, effect.none, "Fireball conjures a literal ball of fire that flies go brr. "),
|
|
heal => ("Heal ", light, 1, effect.none, "Heal does what it says it will do, keeps the promise. "),
|
|
ice_armour => ("Ice Armour ", water, 1, effect.none, "Ice Armour increases defense and stamina of selected unit. ")
|
|
);
|
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
procedure configure;
|
|
|
|
procedure draw (index : in enumeration; x, y : in integer);
|
|
|
|
procedure menu (x, y : in integer; center : in boolean);
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
end magic;
|