xhads/source/magic.ads

63 lines
2.4 KiB
Ada
Raw Normal View History

-- 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
);
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;
type definition is record
name : access string;
kind : school;
level : level_limit;
evoke : effect.information;
text : access string;
2024-02-15 21:03:09 -05:00
end record;
------------------------------------------------------------------------------------------
count : constant natural := enumeration'pos (enumeration'last) + 1;
description : constant array (enumeration) of definition := (
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
);
view_width : constant natural := 64;
view_height : constant natural := 64;
2024-03-11 16:47:28 -04:00
view : array (enumeration) of core.sprite;
2024-02-15 21:03:09 -05:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
end magic;