-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic -- -- GNU General Public Licence (version 3 or later) with core, effect, resource, faction; package construction is ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ type codex is ( boar_glen, enchanters_hollow, hovel, nomad_tent, rogue_cavern, thatched_hut, trolls_bridge, crystalized_cave, frozen_cliffs, magic_forest, pyramid, sulfurous_lair, treetop_tower, -- guardhouse, watchtower, griffin_tower, barracks, monastery, training_grounds, holy_portal, -- goblin_shed, wolf_pen, orc_tower, ogre_fort, cliff_nest, cyclops_cave, behemoth_lair, -- imp_crucible, hall_of_sins, kennels, demon_gate, hell_hole, fire_lake, forsaken_palace, -- workshop, parapet, golem_factory, mage_tower, altar_of_wishes, golden_pavilion, cloud_temple, -- little_lantern, air_shrine, water_shrine, fire_shrine, earth_shrine, magic_shrine, flamewhirl, -- cursed_shrine, graveyard, tomb_of_souls, estate, mausoleum, hall_of_darkness, bone_vault, -- centaur_stables, dwarf_cottage, homestead, enchanted_spring, dendroid_arches, unicorn_glades, dragon_cliffs, -- gnoll_hut, lizard_den, dragonfly_hive, basilisk_pit, gorgon_lair, wyvern_nest, hydra_pond, -- warren, harpy_loft, pillar_of_eyes, chappel_of_voice, labyrinth, manticore_lair, dragon_cave ); ------------------------------------------------------------------------------------------ subtype grade_limit is natural range 0 .. 3; subtype level_limit is natural range 0 .. 6; type information is record name : core.short_string; kind : faction.codex; level : level_limit; grade : grade_limit; price : resource.points; frames : integer; evoke : effect.codex; end record; ------------------------------------------------------------------------------------------ count : constant natural := codex'pos (codex'last) + 1; trait : constant array (codex) of information := ( ("Boar Glen ", faction.neutral, 1, 1, ( 90, others => 0), 1, effect.none), ("Enchanter's Hollow ", faction.neutral, 1, 1, (120, others => 0), 1, effect.none), ("Hovel ", faction.neutral, 2, 1, (180, others => 0), 1, effect.none), ("Nomad Tent ", faction.neutral, 3, 1, (240, others => 0), 1, effect.none), ("Rogue Cavern ", faction.neutral, 3, 1, (180, others => 0), 1, effect.none), ("Thatched Hut ", faction.neutral, 4, 1, (300, others => 0), 3, effect.none), ("Troll's Bridge ", faction.neutral, 5, 1, (360, others => 0), 1, effect.none), ("Crystalized Cave ", faction.neutral, 1, 1, ( 90, others => 0), 1, effect.none), ("Frozen Cliffs ", faction.neutral, 1, 1, (120, others => 0), 1, effect.none), ("Magic Forest ", faction.neutral, 2, 1, (180, others => 0), 3, effect.none), ("Pyramid ", faction.neutral, 3, 1, (240, others => 0), 1, effect.none), ("Sulfurous Lair ", faction.neutral, 3, 1, (180, others => 0), 1, effect.none), ("Treetop Tower ", faction.neutral, 4, 1, (300, others => 0), 1, effect.none), -- ("Guardhouse ", faction.castle, 1, 1, ( 90, others => 0), 1, effect.none), ("Watchtower ", faction.castle, 1, 1, (120, others => 0), 1, effect.none), ("Griffin Tower ", faction.castle, 2, 1, (180, others => 0), 1, effect.none), ("Barracks ", faction.castle, 3, 1, (240, others => 0), 1, effect.none), ("Monastery ", faction.castle, 3, 1, (180, others => 0), 1, effect.none), ("Training Grounds ", faction.castle, 4, 1, (300, others => 0), 1, effect.none), ("Holy Portal ", faction.castle, 5, 1, (360, others => 0), 1, effect.none), -- ("Goblin Shed ", faction.stronghold, 1, 1, ( 90, others => 0), 1, effect.none), ("Wolf Pen ", faction.stronghold, 1, 1, (120, others => 0), 1, effect.none), ("Orc Tower ", faction.stronghold, 2, 1, (180, others => 0), 1, effect.none), ("Ogre Fort ", faction.stronghold, 3, 1, (240, others => 0), 1, effect.none), ("Cliff Nest ", faction.stronghold, 3, 1, (180, others => 0), 1, effect.none), ("Cyclops Cave ", faction.stronghold, 4, 1, (300, others => 0), 1, effect.none), ("Behemoth Lair ", faction.stronghold, 5, 1, (360, others => 0), 3, effect.none), -- ("Imp Crucible ", faction.inferno, 5, 1, (360, others => 0), 3, effect.none), ("Hall of Sins ", faction.inferno, 5, 1, (360, others => 0), 3, effect.none), ("Kennels ", faction.inferno, 5, 1, (360, others => 0), 1, effect.none), ("Demon Gate ", faction.inferno, 5, 1, (360, others => 0), 1, effect.none), ("Hell Hole ", faction.inferno, 5, 1, (360, others => 0), 3, effect.none), ("Fire Lake ", faction.inferno, 5, 1, (360, others => 0), 3, effect.none), ("Forsaken Palace ", faction.inferno, 5, 1, (360, others => 0), 1, effect.none), -- ("Workshop ", faction.tower, 5, 1, (360, others => 0), 3, effect.none), ("Parapet ", faction.tower, 5, 1, (360, others => 0), 1, effect.none), ("Golem Factory ", faction.tower, 5, 1, (360, others => 0), 3, effect.none), ("Mage Tower ", faction.tower, 5, 1, (360, others => 0), 1, effect.none), ("Altar of Wishes ", faction.tower, 5, 1, (360, others => 0), 1, effect.none), ("Golden Pavilion ", faction.tower, 5, 1, (360, others => 0), 1, effect.none), ("Cloud Temple ", faction.tower, 5, 1, (360, others => 0), 1, effect.none), -- ("Little Lantern ", faction.conflux, 5, 1, (360, others => 0), 3, effect.none), ("Air Shrine ", faction.conflux, 5, 1, (360, others => 0), 3, effect.none), ("Water Shrine ", faction.conflux, 5, 1, (360, others => 0), 3, effect.none), ("Fire Shrine ", faction.conflux, 5, 1, (360, others => 0), 3, effect.none), ("Earth Shrine ", faction.conflux, 5, 1, (360, others => 0), 3, effect.none), ("Magic Shrine ", faction.conflux, 5, 1, (360, others => 0), 1, effect.none), ("Flamewhirl ", faction.conflux, 5, 1, (360, others => 0), 3, effect.none), -- ("Cursed Shrine ", faction.necropolis, 1, 1, ( 90, others => 0), 1, effect.none), ("Graveyard ", faction.necropolis, 1, 1, (120, others => 0), 1, effect.none), ("Tomb of Souls ", faction.necropolis, 2, 1, (180, others => 0), 1, effect.none), ("Estate ", faction.necropolis, 3, 1, (240, others => 0), 1, effect.none), ("Mausoleum ", faction.necropolis, 3, 1, (180, others => 0), 1, effect.none), ("Hall of Darkness ", faction.necropolis, 4, 1, (300, others => 0), 1, effect.none), ("Bone Vault ", faction.necropolis, 5, 1, (360, others => 0), 1, effect.none), -- ("Centaur Stables ", faction.rampart, 5, 1, (360, others => 0), 1, effect.none), ("Dwarf Cottage ", faction.rampart, 5, 1, (360, others => 0), 1, effect.none), ("Homestead ", faction.rampart, 5, 1, (360, others => 0), 1, effect.none), ("Enchanted Spring ", faction.rampart, 5, 1, (360, others => 0), 3, effect.none), ("Dendroid Arches ", faction.rampart, 5, 1, (360, others => 0), 1, effect.none), ("Unicorn Glades ", faction.rampart, 5, 1, (360, others => 0), 1, effect.none), ("Dragon Cliffs ", faction.rampart, 5, 1, (360, others => 0), 1, effect.none), -- ("Gnoll Hut ", faction.fortress, 5, 1, (360, others => 0), 1, effect.none), ("Lizard Den ", faction.fortress, 5, 1, (360, others => 0), 1, effect.none), ("Dragonfly Hive ", faction.fortress, 5, 1, (360, others => 0), 3, effect.none), ("Basilisk Pit ", faction.fortress, 5, 1, (360, others => 0), 1, effect.none), ("Gorgon Lair ", faction.fortress, 5, 1, (360, others => 0), 1, effect.none), ("Wyvern Next ", faction.fortress, 5, 1, (360, others => 0), 1, effect.none), ("Hydra Pond ", faction.fortress, 5, 1, (360, others => 0), 1, effect.none), -- ("Warren ", faction.dungeon, 5, 1, (360, others => 0), 1, effect.none), ("Harpy Loft ", faction.dungeon, 5, 1, (360, others => 0), 1, effect.none), ("Pillar of Eyes ", faction.dungeon, 5, 1, (360, others => 0), 1, effect.none), ("Chappel of Voice ", faction.dungeon, 5, 1, (360, others => 0), 1, effect.none), ("Labyrinth ", faction.dungeon, 5, 1, (360, others => 0), 1, effect.none), ("Manticore Lair ", faction.dungeon, 5, 1, (360, others => 0), 1, effect.none), ("Dragon Cave ", faction.dungeon, 5, 1, (360, others => 0), 1, effect.none) ); ------------------------------------------------------------------------------------------ procedure configure; procedure draw (index : in codex; x, y : in integer); ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ end construction;