-- 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.enumeration; text : core.long_string; end record; ------------------------------------------------------------------------------------------ count : constant natural := enumeration'pos (enumeration'last) + 1; trait : constant array (enumeration) of information := ( ("Arrow Storm ", air, 1, effect.none, "Arrow Storm increases the range of your ranged units. "), ("Torment ", dark, 1, effect.none, "Torment causes targeted friend or foe to feel pain and shit. "), ("Stone Armour ", earth, 1, effect.none, "Stone Armour increases defense of selected unit. "), ("Fireball ", fire, 1, effect.none, "Fireball conjures a literal ball of fire that flies go brr. "), ("Heal ", light, 1, effect.none, "Heal does what it says it will do, keeps the promise. "), ("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;