|
- -- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
- --
- -- GNU General Public Licence (version 3 or later)
-
- with core, effect;
-
- package magic is
-
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
- type school is (
- neutral, air, dark, earth, fire, light,
- prime, water
- );
-
- type enumeration is (
- -- Neutral
- magic_arrow, chain_magic_arrow,
- -- Air
- blow_away, chain_lightning, grounded, lightning, storm_arrows, storm_winds,
- summon_air_elemental, thunderclap,
- -- Dark
- agony_mass, agony, despair_mass, despair, life_drain_mass, life_drain,
- purge, summon_dark_elemental, terror, weakness_mass, weakness,
- -- Earth
- earthquake, erosion, petrification, poison_cloud, regeneration_mass, regeneration,
- rockwalls, stone_skin_mass, stone_skin, summon_earth_elemental,
- -- Fire
- determination_mass, determination, fireball, fire_bolt, fire_shield, fire_storm,
- frenzy, immolation, inner_fire_mass, inner_fire, summon_fire_elemental,
- -- Light
- blindness, celestial_armor_mass, celestial_armor, heal_mass, heal, purify,
- retribution_heal, retribution_mana, retribution_shot, summon_light_elemental, sunburst,
- -- Prime
- dispel_magic_mass, dispel_magic, disruption, haste_mass, haste, implosion,
- mana_drain, slow_mass, slow, teleport, time_statis,
- -- Water
- blizzard, eternal_winter, frozen_ground, ice_armor_mass, ice_armor, ice_bolt,
- ice_breaker, ice_wall, summon_water_elemental, winter_circle
- );
-
- ------------------------------------------------------------------------------------------
-
- 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 := (
- ("Magic Arrow ", neutral, 0, effect.none, "Primary spell that channels mana through the air in order to do damage. "),
- ("Chain Magic Arrow ", neutral, 0, effect.none, "Advanced primary spell that chains mana to damage multiple foes. "),
- ("Blow Away ", air, 0, effect.none, "Weak spell that creates a strong gust of wind to knock back enemies. "),
- ("Chain Lightning ", air, 0, effect.none, "A spell that sends a bolt of lightning jumping from target to target. "),
- ("Grounded ", air, 0, effect.none, "A protective spell that renders the target immune to electrical attacks."),
- ("Lightning ", air, 0, effect.none, "This spell releases a bolt of lightning to strike a single target. "),
- ("Storm Arrows ", air, 0, effect.none, "Enchants arrows with the power of a storm, enhancing their range. "),
- ("Storm Winds ", air, 0, effect.none, "A spell that summons powerful winds to hinder enemies projectiles. "),
- ("Summon Air Elemental ", air, 0, effect.none, "This spell calls forth a powerful elemental creature of magic winds. "),
- ("Thunderclap ", air, 0, effect.none, "A spell that creates a sudden, deafening clap of thunder to disorient. "),
- ("Agony Mass ", dark, 0, effect.none, "A spell that inflicts excruciating pain on multiple targets. "),
- ("Agony ", dark, 0, effect.none, "This spell causes intense suffering and torment to a target. "),
- ("Despair Mass ", dark, 0, effect.none, "Ordinary spell that spreads feelings of hopelessness and despair. "),
- ("Despair ", dark, 0, effect.none, "A spell that overwhelms a target with feelings of profound sadness. "),
- ("Life Drain Mass ", dark, 0, effect.none, "A spell that drains life force from multiple targets to heal the caster."),
- ("Life Drain ", dark, 0, effect.none, "This spell allows the caster to drain the life essence of a foe. "),
- ("Purge ", dark, 0, effect.none, "A spell that cleanses a target from curses, diseases, and negativity. "),
- ("Summon Dark Elemental ", dark, 0, effect.none, "This spell summons a sinister creature of darkness to serve the caster. "),
- ("Terror ", dark, 0, effect.none, "A spell that instills intense fear in the target, causing them to flee. "),
- ("Weakness Mass ", dark, 0, effect.none, "A spell that reduces the strength and abilities of multiple targets. "),
- ("Weakness ", dark, 0, effect.none, "This spell weakens the target, reducing their physical prowess. "),
- ("Earthquake ", earth, 0, effect.none, "This spell causes the ground to shake violently, damaging the area. "),
- ("Erosion ", earth, 0, effect.none, "A spell that gradually wears away and weakens the defenses of the foes. "),
- ("Petrification ", earth, 0, effect.none, "A powerful spell that turns the target to stone, rendering them useless."),
- ("Poison Cloud ", earth, 0, effect.none, "This spell creates a toxic cloud that poisons and harms all in it. "),
- ("Regeneration Mass ", earth, 0, effect.none, "A spell that rapidly heals and rejuvenates multiple enemies. "),
- ("Regeneration ", earth, 0, effect.none, "This spell accelerates the natural healing process of a single target. "),
- ("Rockwalls ", earth, 0, effect.none, "A spell that summons sturdy walls of rock for defense or to block paths."),
- ("Stone Skin Mass ", earth, 0, effect.none, "A spell that hardens the skin of multiple friends, increasing defense. "),
- ("Stone Skin ", earth, 0, effect.none, "This spell encases one unit in tough stone armor, reducing damage taken."),
- ("Summon Earth Elemental ", earth, 0, effect.none, "This spell summons a elemental creature of earth to aid the caster. "),
- ("Determination Mass ", fire, 0, effect.none, "A spell that boosts the resolve and strength of multiple targets. "),
- ("Determination ", fire, 0, effect.none, "This spell enhances the determination and willpower of a single target. "),
- ("Fireball ", fire, 0, effect.none, "A powerful projectile of fiery energy that explodes on impact. "),
- ("Fire Bolt ", fire, 0, effect.none, "A quick and focused bolt of fire that can be launched at a target. "),
- ("Fire Shield ", fire, 0, effect.none, "This spell creates a protective barrier of flames around the caster. "),
- ("Fire Storm ", fire, 0, effect.none, "A spell that unleashes a fierce rain of fire upon all foes in the area. "),
- ("Frenzy ", fire, 0, effect.none, "This spell increases the speed and aggression of a target in combat. "),
- ("Immolation ", fire, 0, effect.none, "A spell that engulfs the target in flames, causing continuous burning. "),
- ("Inner Fire Mass ", fire, 0, effect.none, "A spell that ignites the inner fire of multiple targets. "),
- ("Inner Fire ", fire, 0, effect.none, "This spell increases the inner strength and power of a single target. "),
- ("Summon Fire Elemental ", fire, 0, effect.none, "A spell that calls forth a formidable elemental creature of flames. "),
- ("Blindness ", light, 0, effect.none, "A spell that causes the target to be temporarily blinded. "),
- ("Celestial Armor Mass ", light, 0, effect.none, "This spell grants multiple targets celestial protection. "),
- ("Celestial Armor ", light, 0, effect.none, "A spell that bestows celestial armor upon a single target. "),
- ("Heal Mass ", light, 0, effect.none, "A spell that heals multiple targets simultaneously. "),
- ("Heal ", light, 0, effect.none, "This spell restores health to a single friendly target. "),
- ("Purify ", light, 0, effect.none, "A spell that removes curse or misfortune from a single target. "),
- ("Retribution Heal ", light, 0, effect.none, "A healing spell that also inflicts damage to attackers of a unit. "),
- ("Retribution Mana ", light, 0, effect.none, "This spell damages enemies and replenishes the caster's mana. "),
- ("Retribution Shot ", light, 0, effect.none, "A spell that deals damage to foes and heals the caster. "),
- ("Summon Light Elemental ", light, 0, effect.none, "This spell summons a radiant elemental being to aid the caster. "),
- ("Sunburst ", light, 0, effect.none, "A powerful spell that releases a blinding burst of light. "),
- ("Dispel Magic Mass ", prime, 0, effect.none, "A spell that removes magical effects from multiple targets at once. "),
- ("Dispel Magic ", prime, 0, effect.none, "This spell cancels out magical buffs and effects on a single target. "),
- ("Disruption ", prime, 0, effect.none, "A spell that disrupts the flow of magic, causing chaos and instability. "),
- ("Haste Mass ", prime, 0, effect.none, "This spell accelerates the movement and actions of multiple targets. "),
- ("Haste ", prime, 0, effect.none, "A spell that boosts the speed and agility of a single target. "),
- ("Implosion ", prime, 0, effect.none, "A powerful spell that collapses the target in on itself, dealing damage."),
- ("Mana Drain ", prime, 0, effect.none, "This spell siphons mana from the target, depleting their magical energy."),
- ("Slow Mass ", prime, 0, effect.none, "This spell reduces the speed and reaction time of multiple targets. "),
- ("Slow ", prime, 0, effect.none, "A spell that decreases the speed and movement of a single target. "),
- ("Teleport ", prime, 0, effect.none, "A spell that instantly transports the caster to another location. "),
- ("Time Statis ", prime, 0, effect.none, "A spell that suspends a foe, rendering them temporarily unable to act. "),
- ("Blizzard ", water, 0, effect.none, "A spell that conjures a fierce snowstorm, dealing cold damage. "),
- ("Eternal Winter ", water, 0, effect.none, "This spell creates a perpetual winter environment in the targeted area. "),
- ("Frozen Ground ", water, 0, effect.none, "A spell that freezes the ground, creating ice that hinders movement. "),
- ("Ice Armor Mass ", water, 0, effect.none, "This spell envelops multiple targets in protective ice armor. "),
- ("Ice Armor ", water, 0, effect.none, "A spell that forms a protective ice shield around a single target. "),
- ("Ice Bolt ", water, 0, effect.none, "A basic spell that launches a bolt of ice towards a target. "),
- ("Ice Breaker ", water, 0, effect.none, "A spell that shatters ice-based defenses and immunities on a target. "),
- ("Ice Wall ", water, 0, effect.none, "This spell creates a barrier of solid ice, blocking movement and arrows."),
- ("Summon Water Elemental ", water, 0, effect.none, "A spell that summons a powerful water elemental ally to aid in combat. "),
- ("Winter Circle ", water, 0, effect.none, "This spell creates a magical circle that enhances ice-based spells. ")
- );
-
- ------------------------------------------------------------------------------------------
-
- procedure configure;
-
- procedure icon (index : in enumeration; x, y : in integer);
- procedure view (index : in enumeration; x, y : in integer);
-
- procedure menu (x, y : in integer; center : in boolean);
-
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
- end magic;
|