xhads/source/unit.ads

235 lines
26 KiB
Ada

with core, effect, attribute, faction;
package unit is
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
type animation is (
idle, wounded, dead, moving, toggle_moving, attack
);
type codex is (
azure_dragon, boar, crystal_dragon, enchanter, faerie_dragon, gold_golem,
halfing, mummy, nomad, peasant, rogue, rust_dragon,
sharpshooter, troll,
--
pikeman, halberdier, archer, marksman, griffin, royal_griffin,
swordsman, crusader, monk, zealot, cavalier, champion,
angel, arch_angel,
--
goblin, hobgoblin, wolf_rider, wolf_raider, orc, orc_chieftain,
ogre, ogre_magi, roc, thunderbird, cyclops, cyclops_king,
behemoth, ancient_behemoth,
--
imp, familiar, gog, magog, hell_hound, cerberus,
demon, horned_demon, pit_fiend, pit_lord, efreet, efreet_sultan,
devil, arch_devil,
--
gremlin, master_gremlin, stone_gargoyle, obsidian_gargoyle, stone_golem, iron_golem,
mage, arch_mage, geany, master_geany, naga, naga_queen,
giant, titan,
--
pixie, spirit, air_elemental, storm_elemental, water_elemental, ice_elemental,
fire_elemental, energy_elemental, earth_elemental, magma_elemental, psychic_elemental, magic_elemental,
fire_bird, phoenix,
--
skeleton, skeleton_warrior, walking_dead, zombie, wight, wraith,
vampire, vampire_lord, lich, power_lich, black_knight, dread_knight,
bone_dragon, ghost_dragon,
--
centaur, centaur_captain, dwarf, battle_dwarf, wood_elf, grand_elf,
pegasus, silver_pegasus, dendroid_guard, dendroid_soldier, unicorn, war_unicorn,
green_dragon, gold_dragon,
--
gnoll, gnoll_marauder, lizardman, lizard_warrior, serpentfly, dragonfly,
basilisk, greater_basilisk, gorgon, mighty_gorgon, wyvern, wyvern_monarch,
hydra, chaos_hydra,
--
troglodyte, infernal_troglodyte, harpy, harpy_hag, evil_eye, beholder,
medusa, medusa_queen, minotaur, minotaur_king, manticore, scorpicore,
red_dragon, black_dragon
);
------------------------------------------------------------------------------------------
type information is
record
name : core.short_string;
kind : faction.codex;
attributes : attribute.points;
evoke : effect.codex;
text : core.long_string;
end record;
------------------------------------------------------------------------------------------
count : constant natural := codex'pos (codex'last) + 1;
trait : constant array (codex) of information := (
("Azure Dragon ", faction.neutral, (others => 1), effect.none, "Powerful and majestic dragon known for its devastating attacks. "),
("Boar ", faction.neutral, (others => 1), effect.none, "Wild animal with tusks, often used as frontline warriors. "),
("Crystal Dragon ", faction.neutral, (others => 1), effect.none, "Crystal-encrusted dragon with powerful magical abilities. "),
("Enchanter ", faction.neutral, (others => 1), effect.none, "Spellcaster specializing in enchantments and buffs. "),
("Faerie Dragon ", faction.neutral, (others => 1), effect.none, "Mischievous creature with potent magical abilities. "),
("Gold Golem ", faction.neutral, (others => 1), effect.none, "Construct made of pure gold, resistant to magic. "),
("Halfing ", faction.neutral, (others => 1), effect.none, "Small, nimble creature with stealth and ranged abilities. "),
("Mummy ", faction.neutral, (others => 1), effect.none, "Undead creature wrapped in bandages, capable of curses. "),
("Nomad ", faction.neutral, (others => 1), effect.none, "Skilled ranged fighter from the desert with high mobility. "),
("Peasant ", faction.neutral, (others => 1), effect.none, "Basic unit, typically low-cost and expendable. "),
("Rogue ", faction.neutral, (others => 1), effect.none, "Sneaky unit specialized in stealth and surprise attacks. "),
("Rust Dragon ", faction.neutral, (others => 1), effect.none, "Dragon with corrosive breath, capable of weakening enemies. "),
("Sharpshooter ", faction.neutral, (others => 1), effect.none, "Highly skilled ranged unit with exceptional accuracy. "),
("Troll ", faction.neutral, (others => 1), effect.none, "Regenerating and powerful brute, often used as a tank. "),
--
("Pikeman ", faction.castle, (others => 1), effect.none, "Basic spear-wielding infantry unit with a defensive stance. "),
("Halberdier ", faction.castle, (others => 1), effect.none, "Advanced infantry unit armed with a versatile halberd. "),
("Archer ", faction.castle, (others => 1), effect.none, "Ranged unit proficient in shooting arrows at enemies. "),
("Crossbowman ", faction.castle, (others => 1), effect.none, "Highly skilled archer with superior accuracy and damage. "),
("Griffin ", faction.castle, (others => 1), effect.none, "Majestic creature with flying capabilities and swift attacks. "),
("Royal Griffin ", faction.castle, (others => 1), effect.none, "Upgraded version of the Griffin with enhanced stats and abilities. "),
("Swordsman ", faction.castle, (others => 1), effect.none, "Skillful melee fighter equipped with a sharp blade. "),
("Crusader ", faction.castle, (others => 1), effect.none, "Holy warrior with strong offensive and defensive capabilities. "),
("Monk ", faction.castle, (others => 1), effect.none, "Mystic unit with healing and support spells. "),
("Zealot ", faction.castle, (others => 1), effect.none, "Fanatic warrior dedicated to their cause, often infused with magic. "),
("Cavalier ", faction.castle, (others => 1), effect.none, "Mounted knight unit with speed and impact in battle. "),
("Champion ", faction.castle, (others => 1), effect.none, "Elite warrior with exceptional combat skills and resilience. "),
("Angel ", faction.castle, (others => 1), effect.none, "Divine being with powerful healing and offensive abilities. "),
("Arch-Angel ", faction.castle, (others => 1), effect.none, "Superior celestial being with extraordinary powers and influence. "),
--
("Goblin ", faction.stronghold, (others => 1), effect.none, "Small and mischievous creature known for its cunning and traps. "),
("Hobgoblin ", faction.stronghold, (others => 1), effect.none, "Stronger and more vicious version of the goblin, often brave warriors. "),
("Wolf Rider ", faction.stronghold, (others => 1), effect.none, "Fast-moving unit mounted on wolves for quick strikes. "),
("Wolf Raider ", faction.stronghold, (others => 1), effect.none, "Upgraded version of the Wolf Rider with enhanced strength and ferocity. "),
("Orc ", faction.stronghold, (others => 1), effect.none, "Brutal and fierce humanoid warrior with a penchant for melee combat. "),
("Orc Chieftain ", faction.stronghold, (others => 1), effect.none, "Leader of orcish tribes, commanding respect and fear among his folk. "),
("Orge ", faction.stronghold, (others => 1), effect.none, "Huge and powerful creature capable of crushing foes with its strength. "),
("Ogre Magi ", faction.stronghold, (others => 1), effect.none, "Magical variant of the ogre, using berserk spell in addition to mace. "),
("Roc ", faction.stronghold, (others => 1), effect.none, "Gigantic bird of prey with the ability to carry friendly units. "),
("Thunderbird ", faction.stronghold, (others => 1), effect.none, "Mythical bird with control over lightning and thunder. "),
("Cyclops ", faction.stronghold, (others => 1), effect.none, "One-eyed giant wielding massive clubs for devastating blows. "),
("Cyclops King ", faction.stronghold, (others => 1), effect.none, "Sovereign ruler among the cyclops race, commanding great respect. "),
("Behemoth ", faction.stronghold, (others => 1), effect.none, "Enormous and unstoppable monster wreaking havoc on the battlefield. "),
("Ancient Behemoth ", faction.stronghold, (others => 1), effect.none, "Legendary and exceptionally powerful behemoth with devastating attacks. "),
--
("Imp ", faction.inferno, (others => 1), effect.none, "Small, agile demon known for its cunning and mischief. "),
("Familiar ", faction.inferno, (others => 1), effect.none, "Devilish creature bound to a sorcerer, aiding in magic and combat. "),
("Gog ", faction.inferno, (others => 1), effect.none, "Mighty and brutish humanoid warrior wielding a massive club. "),
("Magog ", faction.inferno, (others => 1), effect.none, "Elite version of the Gog, boasting enhanced strength and aggression. "),
("Hell Hound ", faction.inferno, (others => 1), effect.none, "Fiery canine creature with a fierce bite and burning breath. "),
("Cerberus ", faction.inferno, (others => 1), effect.none, "Three-headed dog guarding the gates of the underworld with ferocity. "),
("Demon ", faction.inferno, (others => 1), effect.none, "Malevolent creature from the abyss, wielding dark powers and strength. "),
("Horned Demon ", faction.inferno, (others => 1), effect.none, "Upgraded demon with greater power and enhanced abilities. "),
("Pit Fiend ", faction.inferno, (others => 1), effect.none, "Terrifying demon lord commanding legions of infernal forces. "),
("Pit Lord ", faction.inferno, (others => 1), effect.none, "Ruthless ruler of demonic realms, instilling fear in all who oppose. "),
("Efreeti ", faction.inferno, (others => 1), effect.none, "Fiery elemental being capable of unleashing inferno upon enemies. "),
("Efreet Sultan ", faction.inferno, (others => 1), effect.none, "Powerful and regal efreet lord commanding fire and magic. "),
("Devil ", faction.inferno, (others => 1), effect.none, "Cunning and manipulative fiend striking deals for souls and power. "),
("Arch Devil ", faction.inferno, (others => 1), effect.none, "Ultimate demon lord embodying darkness and corruption. "),
--
("Gremlin ", faction.tower, (others => 1), effect.none, "Small, mischievous creature known for its trickery and cunning. "),
("Master Gremlin ", faction.tower, (others => 1), effect.none, "A more powerful version of the Gremlin with enhanced abilities. "),
("Stone Gargoyle ", faction.tower, (others => 1), effect.none, "Stone creature resembling a grotesque statue, often found in ruins. "),
("Obisidian Gargoyle ", faction.tower, (others => 1), effect.none, "Stronger variant of the Stone Gargoyle, with increased durability. "),
("Stone Golem ", faction.tower, (others => 1), effect.none, "Humanoid construct made entirely of stone, animated through magic. "),
("Iron Golem ", faction.tower, (others => 1), effect.none, "Stronger and more resilient golem crafted from iron and alloys. "),
("Mage ", faction.tower, (others => 1), effect.none, "Spellcaster wielding elemental magic and arcane powers in battles. "),
("Arch Mage ", faction.tower, (others => 1), effect.none, "Masterful mage with unparalleled mastery over various schools of magic. "),
("Geany ", faction.tower, (others => 1), effect.none, "Mystical creature capable of granting wishes, blessing his friends. "),
("Master Geany ", faction.tower, (others => 1), effect.none, "Higher-ranking Geany possessing greater magical prowess and wisdom. "),
("Naga ", faction.tower, (others => 1), effect.none, "Serpentine creature with a humanoid upper body, wielding deadly poison. "),
("Naga Queen ", faction.tower, (others => 1), effect.none, "Powerful matriarch among the Naga, ruling with pride and confidence. "),
("Giant ", faction.tower, (others => 1), effect.none, "Enormous humanoid known for its immense strength and sheer size. "),
("Titan ", faction.tower, (others => 1), effect.none, "Colossal and ancient being of immense power throwing lightning. "),
--
("Pixie ", faction.conflux, (others => 1), effect.none, "Tiny, sprite-like creature known for its magical abilities. "),
("Spirit ", faction.conflux, (others => 1), effect.none, "An actual sprite, but I used that name for image data sadly. "),
("Air Elemental ", faction.conflux, (others => 1), effect.none, "Elemental creature using the power of air, controling winds and storms. "),
("Storm Elemental ", faction.conflux, (others => 1), effect.none, "Powerful entity of turbulent weather, commanding lightning and thunder. "),
("Water Elemental ", faction.conflux, (others => 1), effect.none, "Entity formed of pure water, capable of manipulating rivers and rain. "),
("Ice Elemental ", faction.conflux, (others => 1), effect.none, "Elemental creature embodying the chilling power of ice and frost. "),
("Fire Elemental ", faction.conflux, (others => 1), effect.none, "Being of living flames and intense heat, wreaking havoc with its fire. "),
("Energy Elemental ", faction.conflux, (others => 1), effect.none, "Elemental entity representing raw energy in its most potent form. "),
("Earth Elemental ", faction.conflux, (others => 1), effect.none, "Elemental creature tied to the earth itself, possessing great strength. "),
("Magma Elemental ", faction.conflux, (others => 1), effect.none, "Fusion of fire and earth elements, embodying molten rock. "),
("Psychic Elemental ", faction.conflux, (others => 1), effect.none, "Entity harnessing the power of the mind, capable of psionic attacks. "),
("Magic Elemental ", faction.conflux, (others => 1), effect.none, "An elemental creature infused with pure arcane energy. "),
("Fire Bird ", faction.conflux, (others => 1), effect.none, "A mythical avian creature with feathers of flame, embodying the flames. "),
("Phoenix ", faction.conflux, (others => 1), effect.none, "Legendary bird of rebirth and renewal, reborn from its ashes. "),
--
("Skeleton ", faction.necropolis, (others => 1), effect.none, "Animated pile of bones, devoid of flesh or soul, controlled by magic. "),
("Skeleton Warrior ", faction.necropolis, (others => 1), effect.none, "Reanimated skeletal being armed for battle, serving as undead soldiers. "),
("Walking Dead ", faction.necropolis, (others => 1), effect.none, "Reanimated corpses stumbling aimlessly, driven by dark magic or curses. "),
("Zombie ", faction.necropolis, (others => 1), effect.none, "Flesh-eating undead creatures, reanimated through necromantic rituals. "),
("Wight ", faction.necropolis, (others => 1), effect.none, "Undead creature with malevolent powers, often draining life energy. "),
("Wraith ", faction.necropolis, (others => 1), effect.none, "Spectral entity dwelling in darkness, feeding on fear and despair. "),
("Vampire ", faction.necropolis, (others => 1), effect.none, "Immortal creature of the night, sustained by blood and flesh. "),
("Vampire Lord ", faction.necropolis, (others => 1), effect.none, "Powerful vampire noble with enhanced abilities and commanding undead. "),
("Lich ", faction.necropolis, (others => 1), effect.none, "Undead sorcerer achieving immortality through dark magic. "),
("Power Lich ", faction.necropolis, (others => 1), effect.none, "Elite lich with heightened magical prowess and devastating spells. "),
("Black Knight ", faction.necropolis, (others => 1), effect.none, "Undead warrior clad in dark armor, serving dark lords to spread terror. "),
("Dread Knight ", faction.necropolis, (others => 1), effect.none, "Elite black knight of immense power and skill, feared on the front. "),
("Bone Dragon ", faction.necropolis, (others => 1), effect.none, "Undead dragon reanimated from ancient bones, breathing death and decay. "),
("Ghost Dragon ", faction.necropolis, (others => 1), effect.none, "Spectral dragon of ethereal essence, haunting the living beings. "),
--
("Centaur ", faction.rampart, (others => 1), effect.none, "Half-human, half-horse creature known for archery and speed in combat. "),
("Centaur Captain ", faction.rampart, (others => 1), effect.none, "Distinguished centaur leader commanding troops with precision. "),
("Dwarf ", faction.rampart, (others => 1), effect.none, "Stout and sturdy underground-dwelling beings skilled in craftsmanship. "),
("Battle Dwarf ", faction.rampart, (others => 1), effect.none, "Ferocious dwarf warrior renowned for their combat prowess. "),
("Wood Elf ", faction.rampart, (others => 1), effect.none, "Graceful forest-dwelling elves attuned to nature and archery. "),
("Grand Elf ", faction.rampart, (others => 1), effect.none, "Elite wood elf warrior with exceptional skills in marksmanship. "),
("Pegasus ", faction.rampart, (others => 1), effect.none, "Majestic winged horse revered for its speed and grace in battle. "),
("Silver Pegasus ", faction.rampart, (others => 1), effect.none, "Rare and ethereal pegasus with shimmering silver wings and light aura. "),
("Dendroid Guard ", faction.rampart, (others => 1), effect.none, "Towering tree-like creature standing as a guardian of the forest. "),
("Dendroid Soldier ", faction.rampart, (others => 1), effect.none, "Animated tree warrior fiercely protecting nature with its wooden might. "),
("Unicorn ", faction.rampart, (others => 1), effect.none, "Magical horse-like creature with a spiraling horn, symbolizing grace. "),
("War Unicorn ", faction.rampart, (others => 1), effect.none, "Armored unicorn charging into battle with unmatched strength and valor. "),
("Green Dragon ", faction.rampart, (others => 1), effect.none, "Powerful dragon associated with nature and known for fire breath. "),
("Gold Dragon ", faction.rampart, (others => 1), effect.none, "Noble and majestic dragon of great wisdom and power. "),
--
("Gnoll ", faction.fortress, (others => 1), effect.none, "Agile and aggressive hyena-like humanoid known for their savagery. "),
("Gnoll Marauder ", faction.fortress, (others => 1), effect.none, "Ruthless and cunning gnoll leader skilled in hit-and-run tactics. "),
("Lizardman ", faction.fortress, (others => 1), effect.none, "Reptilian humanoid proficient in swamp and jungle environments. "),
("Lizard Warrior ", faction.fortress, (others => 1), effect.none, "Strong and resilient lizardman warrior with great archery skills. "),
("Serpentfly ", faction.fortress, (others => 1), effect.none, "Agile flying creature with a venomous sting, hunting prey from the air. "),
("Dragonfly ", faction.fortress, (others => 1), effect.none, "Swift flying insect-like creature known for its large wings. "),
("Basilisk ", faction.fortress, (others => 1), effect.none, "Terrifying creature capable of petrifying its victims. "),
("Greater Basilisk ", faction.fortress, (others => 1), effect.none, "Larger and more deadly variant of the basilisk, feared for its gaze. "),
("Gorgon ", faction.fortress, (others => 1), effect.none, "Mythical creature with the ability to turn foes to stone with a glance. "),
("Mighty Gorgon ", faction.fortress, (others => 1), effect.none, "Enhanced and formidable Gorgon, striking fear into enemies. "),
("Wyvern ", faction.fortress, (others => 1), effect.none, "Winged dragon-like creature with a barbed tail and a fierce nature. "),
("Wyvern Monarch ", faction.fortress, (others => 1), effect.none, "Sovereign wyvern of colossal size and power with its venomous breath. "),
("Hydra ", faction.fortress, (others => 1), effect.none, "Mythical multi-headed serpent known for its regenerative abilities. "),
("Chaos Hydra ", faction.fortress, (others => 1), effect.none, "Chaotic variant of the hydra with devastating attacks. "),
--
("Troglodyte ", faction.dungeon, (others => 1), effect.none, "Primitive subterranean humanoid with a keen sense of smell. "),
("Infernal Troglodyte ", faction.dungeon, (others => 1), effect.none, "Corrupted troglodyte infused with infernal power and dark magic. "),
("Harpy ", faction.dungeon, (others => 1), effect.none, "Half-bird, half-human creature known for its aerial attacks. "),
("Harpy Hag ", faction.dungeon, (others => 1), effect.none, "Malevolent and powerful harpy matriarch capable of casting curses. "),
("Evil Eye ", faction.dungeon, (others => 1), effect.none, "Floating creature with a deadly gaze that can weaken its victims. "),
("Beholder ", faction.dungeon, (others => 1), effect.none, "Floating abomination with multiple eye stalks that shoot venom. "),
("Medusa ", faction.dungeon, (others => 1), effect.none, "Mythical creature with a gaze that turns beings to stone. "),
("Medusa Queen ", faction.dungeon, (others => 1), effect.none, "Powerful and regal medusa with a deadly gaze, ruling over medusas. "),
("Minotaur ", faction.dungeon, (others => 1), effect.none, "Bull-headed humanoid known for its brute strength. "),
("Minotaur King ", faction.dungeon, (others => 1), effect.none, "Majestic and formidable minotaur leader with combat prowess. "),
("Manticore ", faction.dungeon, (others => 1), effect.none, "Mythical creature with a lion's body, bat-like wings, and a spiky tail. "),
("Scorpicore ", faction.dungeon, (others => 1), effect.none, "Hybrid creature combining traits of a manticore and a scorpion. "),
("Red Dragon ", faction.dungeon, (others => 1), effect.none, "Massive fire-breathing dragon with a fearsome reputation. "),
("Black Dragon ", faction.dungeon, (others => 1), effect.none, "Scheming and malevolent beast boasting fire breath and a cruel demeanor.")
);
------------------------------------------------------------------------------------------
procedure configure;
procedure draw (index : in codex; state : in animation; x, y : in integer);
procedure icon (index : in codex; x, y : in integer);
procedure view (index : in codex; x, y : in integer);
procedure menu (x, y : in integer; center : in boolean);
procedure stat (index : in codex; x, y : in integer; center : in boolean);
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
end unit;