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.value_array; evoke : effect.codex; end record; type trait_array is array (codex) of information; ------------------------------------------------------------------------------------------ count : constant natural := codex'pos (codex'last) + 1; trait : constant trait_array := ( ("Azure Dragon ", faction.neutral, (others => 1), effect.none), ("Boar ", faction.neutral, (others => 1), effect.none), ("Crystal Dragon ", faction.neutral, (others => 1), effect.none), ("Enchanter ", faction.neutral, (others => 1), effect.none), ("Faerie Dragon ", faction.neutral, (others => 1), effect.none), ("Gold Golem ", faction.neutral, (others => 1), effect.none), ("Halfing ", faction.neutral, (others => 1), effect.none), ("Mummy ", faction.neutral, (others => 1), effect.none), ("Nomad ", faction.neutral, (others => 1), effect.none), ("Peasant ", faction.neutral, (others => 1), effect.none), ("Rogue ", faction.neutral, (others => 1), effect.none), ("Rust Dragon ", faction.neutral, (others => 1), effect.none), ("Sharpshooter ", faction.neutral, (others => 1), effect.none), ("Troll ", faction.neutral, (others => 1), effect.none), -- ("Pikeman ", faction.castle, (others => 1), effect.none), ("Halberdier ", faction.castle, (others => 1), effect.none), ("Archer ", faction.castle, (others => 1), effect.none), ("Crossbowman ", faction.castle, (others => 1), effect.none), ("Griffin ", faction.castle, (others => 3), effect.none), ("Royal Griffin ", faction.castle, (others => 1), effect.none), ("Swordsman ", faction.castle, (others => 1), effect.none), ("Crusader ", faction.castle, (others => 1), effect.none), ("Monk ", faction.castle, (others => 1), effect.none), ("Zealot ", faction.castle, (others => 1), effect.none), ("Cavalier ", faction.castle, (others => 1), effect.none), ("Champion ", faction.castle, (others => 1), effect.none), ("Angel ", faction.castle, (others => 1), effect.none), ("Arch-Angel ", faction.castle, (others => 1), effect.none), -- ("Goblin ", faction.stronghold, (others => 1), effect.none), ("Hobgoblin ", faction.stronghold, (others => 1), effect.none), ("Wolf Rider ", faction.stronghold, (others => 1), effect.none), ("Wolf Raider ", faction.stronghold, (others => 1), effect.none), ("Orc ", faction.stronghold, (others => 1), effect.none), ("Orc Chieftain ", faction.stronghold, (others => 1), effect.none), ("Orge ", faction.stronghold, (others => 1), effect.none), ("Ogre Magi ", faction.stronghold, (others => 1), effect.none), ("Roc ", faction.stronghold, (others => 1), effect.none), ("Thunderbird ", faction.stronghold, (others => 1), effect.none), ("Cyclops ", faction.stronghold, (others => 1), effect.none), ("Cyclops King ", faction.stronghold, (others => 1), effect.none), ("Behemoth ", faction.stronghold, (others => 1), effect.none), ("Ancient Behemoth ", faction.stronghold, (others => 1), effect.none), -- ("Imp ", faction.inferno, (others => 1), effect.none), ("Familiar ", faction.inferno, (others => 1), effect.none), ("Gog ", faction.inferno, (others => 1), effect.none), ("Magog ", faction.inferno, (others => 1), effect.none), ("Hell Hound ", faction.inferno, (others => 1), effect.none), ("Cerberus ", faction.inferno, (others => 1), effect.none), ("Demon ", faction.inferno, (others => 1), effect.none), ("Horned Demon ", faction.inferno, (others => 1), effect.none), ("Pit Fiend ", faction.inferno, (others => 1), effect.none), ("Pit Lord ", faction.inferno, (others => 1), effect.none), ("Efreeti ", faction.inferno, (others => 1), effect.none), ("Efreet Sultan ", faction.inferno, (others => 1), effect.none), ("Devil ", faction.inferno, (others => 1), effect.none), ("Arch Devil ", faction.inferno, (others => 1), effect.none), -- ("Gremlin ", faction.tower, (others => 1), effect.none), ("Master Gremlin ", faction.tower, (others => 1), effect.none), ("Stone Gargoyle ", faction.tower, (others => 1), effect.none), ("Obisidian Gargoyle ", faction.tower, (others => 1), effect.none), ("Stone Golem ", faction.tower, (others => 1), effect.none), ("Iron Golem ", faction.tower, (others => 1), effect.none), ("Mage ", faction.tower, (others => 1), effect.none), ("Arch Mage ", faction.tower, (others => 1), effect.none), ("Geany ", faction.tower, (others => 1), effect.none), ("Master Geany ", faction.tower, (others => 1), effect.none), ("Naga ", faction.tower, (others => 1), effect.none), ("Naga Queen ", faction.tower, (others => 1), effect.none), ("Giant ", faction.tower, (others => 1), effect.none), ("Titan ", faction.tower, (others => 1), effect.none), -- ("Pixie ", faction.conflux, (others => 1), effect.none), ("Spirit ", faction.conflux, (others => 1), effect.none), ("Air Elemental ", faction.conflux, (others => 1), effect.none), ("Storm Elemental ", faction.conflux, (others => 1), effect.none), ("Water Elemental ", faction.conflux, (others => 1), effect.none), ("Ice Elemental ", faction.conflux, (others => 1), effect.none), ("Fire Elemental ", faction.conflux, (others => 1), effect.none), ("Energy Elemental ", faction.conflux, (others => 1), effect.none), ("Earth Elemental ", faction.conflux, (others => 1), effect.none), ("Magma Elemental ", faction.conflux, (others => 1), effect.none), ("Psychic Elemental ", faction.conflux, (others => 1), effect.none), ("Magic Elemental ", faction.conflux, (others => 1), effect.none), ("Fire Bird ", faction.conflux, (others => 1), effect.none), ("Phoenix ", faction.conflux, (others => 1), effect.none), -- ("Skeleton ", faction.necropolis, (others => 1), effect.none), ("Skeleton Warrior ", faction.necropolis, (others => 1), effect.none), ("Walking Dead ", faction.necropolis, (others => 1), effect.none), ("Zombie ", faction.necropolis, (others => 1), effect.none), ("Wight ", faction.necropolis, (others => 1), effect.none), ("Wraith ", faction.necropolis, (others => 1), effect.none), ("Vampire ", faction.necropolis, (others => 1), effect.none), ("Vampire Lord ", faction.necropolis, (others => 1), effect.none), ("Lich ", faction.necropolis, (others => 1), effect.none), ("Power Lich ", faction.necropolis, (6, 3, 9, 7), effect.none), ("Black Knight ", faction.necropolis, (others => 1), effect.none), ("Dread Knight ", faction.necropolis, (others => 1), effect.none), ("Bone Dragon ", faction.necropolis, (others => 1), effect.none), ("Ghost Dragon ", faction.necropolis, (others => 1), effect.none), -- ("Centaur ", faction.rampart, (others => 1), effect.none), ("Centaur Captain ", faction.rampart, (others => 1), effect.none), ("Dwarf ", faction.rampart, (others => 1), effect.none), ("Battle Dwarf ", faction.rampart, (others => 1), effect.none), ("Wood Elf ", faction.rampart, (others => 1), effect.none), ("Grand Elf ", faction.rampart, (others => 1), effect.none), ("Pegasus ", faction.rampart, (others => 1), effect.none), ("Silver Pegasus ", faction.rampart, (others => 1), effect.none), ("Dendroid Guard ", faction.rampart, (others => 1), effect.none), ("Dendroid Soldier ", faction.rampart, (others => 1), effect.none), ("Unicorn ", faction.rampart, (others => 1), effect.none), ("War Unicorn ", faction.rampart, (others => 1), effect.none), ("Green Dragon ", faction.rampart, (others => 1), effect.none), ("Gold Dragon ", faction.rampart, (others => 1), effect.none), -- ("Gnoll ", faction.fortress, (others => 1), effect.none), ("Gnoll Marauder ", faction.fortress, (others => 1), effect.none), ("Lizardman ", faction.fortress, (others => 1), effect.none), ("Lizard Warrior ", faction.fortress, (others => 1), effect.none), ("Serpentfly ", faction.fortress, (others => 1), effect.none), ("Dragonfly ", faction.fortress, (others => 1), effect.none), ("Basilisk ", faction.fortress, (others => 1), effect.none), ("Greater Basilisk ", faction.fortress, (others => 1), effect.none), ("Gorgon ", faction.fortress, (others => 1), effect.none), ("Mighty Gorgon ", faction.fortress, (others => 1), effect.none), ("Wyvern ", faction.fortress, (others => 1), effect.none), ("Wyvern Monarch ", faction.fortress, (others => 1), effect.none), ("Hydra ", faction.fortress, (others => 1), effect.none), ("Chaos Hydra ", faction.fortress, (others => 1), effect.none), -- ("Troglodyte ", faction.dungeon, (others => 1), effect.none), ("Infernal Troglodyte ", faction.dungeon, (others => 1), effect.none), ("Harpy ", faction.dungeon, (others => 1), effect.none), ("Harpy Hag ", faction.dungeon, (others => 1), effect.none), ("Evil Eye ", faction.dungeon, (others => 1), effect.none), ("Beholder ", faction.dungeon, (others => 1), effect.none), ("Medusa ", faction.dungeon, (others => 1), effect.none), ("Medusa Queen ", faction.dungeon, (others => 1), effect.none), ("Minotaur ", faction.dungeon, (others => 1), effect.none), ("Minotaur King ", faction.dungeon, (others => 1), effect.none), ("Manticore ", faction.dungeon, (others => 1), effect.none), ("Scorpicore ", faction.dungeon, (others => 1), effect.none), ("Red Dragon ", faction.dungeon, (others => 1), effect.none), ("Black Dragon ", faction.dungeon, (others => 1), effect.none) ); ------------------------------------------------------------------------------------------ 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;