xhads/source/construction.ads

157 lines
11 KiB
Ada

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, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Enchanter's Hollow ", faction.neutral, 1, 1, (120, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Hovel ", faction.neutral, 2, 1, (180, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Nomad Tent ", faction.neutral, 3, 1, (240, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Rogue Cavern ", faction.neutral, 3, 1, (180, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Thatched Hut ", faction.neutral, 4, 1, (300, 0, 0, 0, 0, 0, 0), 3, effect.none),
("Troll's Bridge ", faction.neutral, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Crystalized Cave ", faction.neutral, 1, 1, ( 90, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Frozen Cliffs ", faction.neutral, 1, 1, (120, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Magic Forest ", faction.neutral, 2, 1, (180, 0, 0, 0, 0, 0, 0), 3, effect.none),
("Pyramid ", faction.neutral, 3, 1, (240, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Sulfurous Lair ", faction.neutral, 3, 1, (180, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Treetop Tower ", faction.neutral, 4, 1, (300, 0, 0, 0, 0, 0, 0), 1, effect.none),
--
("Guardhouse ", faction.castle, 1, 1, ( 90, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Watchtower ", faction.castle, 1, 1, (120, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Griffin Tower ", faction.castle, 2, 1, (180, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Barracks ", faction.castle, 3, 1, (240, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Monastery ", faction.castle, 3, 1, (180, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Training Grounds ", faction.castle, 4, 1, (300, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Holy Portal ", faction.castle, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
--
("Goblin Shed ", faction.stronghold, 1, 1, ( 90, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Wolf Pen ", faction.stronghold, 1, 1, (120, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Orc Tower ", faction.stronghold, 2, 1, (180, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Ogre Fort ", faction.stronghold, 3, 1, (240, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Cliff Nest ", faction.stronghold, 3, 1, (180, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Cyclops Cave ", faction.stronghold, 4, 1, (300, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Behemoth Lair ", faction.stronghold, 5, 1, (360, 0, 0, 0, 0, 0, 0), 3, effect.none),
--
("Imp Crucible ", faction.inferno, 5, 1, (360, 0, 0, 0, 0, 0, 0), 3, effect.none),
("Hall of Sins ", faction.inferno, 5, 1, (360, 0, 0, 0, 0, 0, 0), 3, effect.none),
("Kennels ", faction.inferno, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Demon Gate ", faction.inferno, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Hell Hole ", faction.inferno, 5, 1, (360, 0, 0, 0, 0, 0, 0), 3, effect.none),
("Fire Lake ", faction.inferno, 5, 1, (360, 0, 0, 0, 0, 0, 0), 3, effect.none),
("Forsaken Palace ", faction.inferno, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
--
("Workshop ", faction.tower, 5, 1, (360, 0, 0, 0, 0, 0, 0), 3, effect.none),
("Parapet ", faction.tower, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Golem Factory ", faction.tower, 5, 1, (360, 0, 0, 0, 0, 0, 0), 3, effect.none),
("Mage Tower ", faction.tower, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Altar of Wishes ", faction.tower, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Golden Pavilion ", faction.tower, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Cloud Temple ", faction.tower, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
--
("Little Lantern ", faction.conflux, 5, 1, (360, 0, 0, 0, 0, 0, 0), 3, effect.none),
("Air Shrine ", faction.conflux, 5, 1, (360, 0, 0, 0, 0, 0, 0), 3, effect.none),
("Water Shrine ", faction.conflux, 5, 1, (360, 0, 0, 0, 0, 0, 0), 3, effect.none),
("Fire Shrine ", faction.conflux, 5, 1, (360, 0, 0, 0, 0, 0, 0), 3, effect.none),
("Earth Shrine ", faction.conflux, 5, 1, (360, 0, 0, 0, 0, 0, 0), 3, effect.none),
("Magic Shrine ", faction.conflux, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Flamewhirl ", faction.conflux, 5, 1, (360, 0, 0, 0, 0, 0, 0), 3, effect.none),
--
("Cursed Shrine ", faction.necropolis, 1, 1, ( 90, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Graveyard ", faction.necropolis, 1, 1, (120, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Tomb of Souls ", faction.necropolis, 2, 1, (180, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Estate ", faction.necropolis, 3, 1, (240, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Mausoleum ", faction.necropolis, 3, 1, (180, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Hall of Darkness ", faction.necropolis, 4, 1, (300, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Bone Vault ", faction.necropolis, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
--
("Centaur Stables ", faction.rampart, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Dwarf Cottage ", faction.rampart, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Homestead ", faction.rampart, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Enchanted Spring ", faction.rampart, 5, 1, (360, 0, 0, 0, 0, 0, 0), 3, effect.none),
("Dendroid Arches ", faction.rampart, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Unicorn Glades ", faction.rampart, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Dragon Cliffs ", faction.rampart, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
--
("Gnoll Hut ", faction.fortress, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Lizard Den ", faction.fortress, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Dragonfly Hive ", faction.fortress, 5, 1, (360, 0, 0, 0, 0, 0, 0), 3, effect.none),
("Basilisk Pit ", faction.fortress, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Gorgon Lair ", faction.fortress, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Wyvern Next ", faction.fortress, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Hydra Pond ", faction.fortress, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
--
("Warren ", faction.dungeon, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Harpy Loft ", faction.dungeon, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Pillar of Eyes ", faction.dungeon, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Chappel of Voice ", faction.dungeon, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Labyrinth ", faction.dungeon, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Manticore Lair ", faction.dungeon, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none),
("Dragon Cave ", faction.dungeon, 5, 1, (360, 0, 0, 0, 0, 0, 0), 1, effect.none)
);
------------------------------------------------------------------------------------------
procedure configure;
procedure draw (index : in codex; x, y : in integer);
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
end construction;