with core, attribute, skill, resource; package faction is ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ type codex is ( neutral, castle, stronghold, inferno, tower, conflux, necropolis, rampart, fortress, dungeon ); ------------------------------------------------------------------------------------------ type information is record name : core.short_string; attribute_bonus : attribute.codex; skill_bonus : skill.codex; resource_bonus : resource.codex; end record; type trait_array is array (codex) of information; ------------------------------------------------------------------------------------------ count : constant natural := codex'pos (codex'last) + 1; trait : constant trait_array := ( ("Neutral ", attribute.attack, skill.tactics, resource.gold), ("Castle ", attribute.attack, skill.archery, resource.ore), ("Stronghold ", attribute.defense, skill.offense, resource.wood), ("Inferno ", attribute.power, skill.fire_magic, resource.mercury), ("Tower ", attribute.knowledge, skill.intelligence, resource.gem), ("Conflux ", attribute.knowledge, skill.sorcery, resource.gem), ("Necropolis ", attribute.attack, skill.necromancy, resource.sulfur), ("Rampart ", attribute.defense, skill.scouting, resource.crystal), ("Fortress ", attribute.defense, skill.resistance, resource.mercury), ("Dungeon ", attribute.power, skill.archery, resource.ore) ); ------------------------------------------------------------------------------------------ procedure draw (value : in codex; x, y : in integer); ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ end faction;