2024-04-25 00:27:13 -04:00
|
|
|
-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
|
|
|
|
--
|
|
|
|
-- GNU General Public Licence (version 3 or later)
|
|
|
|
|
2024-02-15 21:03:09 -05:00
|
|
|
with core, effect;
|
|
|
|
|
|
|
|
package magic is
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
type school is (
|
2024-05-02 20:43:31 -04:00
|
|
|
air, dark, earth, fire, light, water
|
2024-02-15 21:03:09 -05:00
|
|
|
);
|
|
|
|
|
2024-04-26 16:05:48 -04:00
|
|
|
type enumeration is (
|
2024-02-15 21:03:09 -05:00
|
|
|
-- Air
|
2024-05-02 20:43:31 -04:00
|
|
|
arrow_storm,
|
2024-02-15 21:03:09 -05:00
|
|
|
-- Dark
|
2024-05-02 20:43:31 -04:00
|
|
|
torment,
|
2024-02-15 21:03:09 -05:00
|
|
|
-- Earth
|
2024-05-02 20:43:31 -04:00
|
|
|
stone_armour,
|
2024-02-15 21:03:09 -05:00
|
|
|
-- Fire
|
2024-05-02 20:43:31 -04:00
|
|
|
fireball,
|
2024-02-15 21:03:09 -05:00
|
|
|
-- Light
|
2024-05-02 20:43:31 -04:00
|
|
|
heal,
|
2024-02-15 21:03:09 -05:00
|
|
|
-- Water
|
2024-05-02 20:43:31 -04:00
|
|
|
ice_armour
|
2024-02-15 21:03:09 -05:00
|
|
|
);
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
subtype level_limit is natural range 0 .. 6;
|
|
|
|
|
2024-06-01 11:46:17 -04:00
|
|
|
type definition is record
|
2024-06-04 07:52:44 -04:00
|
|
|
name : access string;
|
|
|
|
kind : school;
|
|
|
|
level : level_limit;
|
|
|
|
evoke : effect.information;
|
|
|
|
text : access string;
|
2024-02-15 21:03:09 -05:00
|
|
|
end record;
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
|
2024-04-26 16:05:48 -04:00
|
|
|
count : constant natural := enumeration'pos (enumeration'last) + 1;
|
2024-02-19 16:20:38 -05:00
|
|
|
|
2024-06-01 11:46:17 -04:00
|
|
|
description : constant array (enumeration) of definition := (
|
2024-06-04 07:52:44 -04:00
|
|
|
arrow_storm => (new string' ("Arrow Storm"), air, 1, effect.none, new string' ("Arrow Storm increases the range of your ranged units.")),
|
|
|
|
torment => (new string' ("Torment"), dark, 1, effect.none, new string' ("Torment causes targeted friend or foe to feel pain and shit.")),
|
|
|
|
stone_armour => (new string' ("Stone Armour"), earth, 1, effect.none, new string' ("Stone Armour increases defense of selected unit.")),
|
|
|
|
fireball => (new string' ("Fireball"), fire, 1, effect.none, new string' ("Fireball conjures a literal ball of fire that flies go brr.")),
|
|
|
|
heal => (new string' ("Heal"), light, 1, effect.none, new string' ("Heal does what it says it will do, keeps the promise.")),
|
|
|
|
ice_armour => (new string' ("Ice Armour"), water, 1, effect.none, new string' ("Ice Armour increases defense and stamina of selected unit."))
|
2024-02-15 21:03:09 -05:00
|
|
|
);
|
|
|
|
|
2024-06-02 13:00:54 -04:00
|
|
|
view_width : constant natural := 64;
|
|
|
|
view_height : constant natural := 64;
|
2024-03-11 16:47:28 -04:00
|
|
|
|
2024-06-02 13:00:54 -04:00
|
|
|
view : array (enumeration) of core.sprite;
|
2024-05-13 15:43:06 -04:00
|
|
|
|
2024-02-15 21:03:09 -05:00
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
end magic;
|