with core, effect; package might is ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ type school is ( neutral, archery, defense, economy, education, logistics, offense, tactics ); type codex is ( -- Neutral -- Archery cover, evasive_maneuvers, focused_fire, magic_ammunition, piercing_bolt, precision, retreat, taunt, -- Defense charismatic_leader, counterstrike, double_counterstrike, resilience, revenge, shield_of_the_virtue, stand_your_ground_mass, stand_your_ground, toughness, -- Economy banker, destroyer, leadership, lumber, manager, merchant, miner, plunderer, snatch, -- Education alchemist, architect, ballistics, chosen_one, diplomacy, economist, general, mentor, siege_master, -- Logistics explorer, navigation, observer, orientation, pathfinder, scout, spy, trust_the_plan, -- Offense assailant, battle_march, cleave, flawless_attack, giant_slayer, heroic_charge, parry, pressed_attack, rampage, -- Tactics ambush, commander, crippling_traps, diving_attack, heroism_mass, heroism, intimidation, reinforcements ); ------------------------------------------------------------------------------------------ subtype level_limit is natural range 0 .. 6; type information is record name : core.short_string; kind : school; level : level_limit; 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 := ( ("Cover ", archery, 0, effect.none), ("Evasive Maneuvers ", archery, 0, effect.none), ("Focused Fire ", archery, 0, effect.none), ("Magic Ammunition ", archery, 0, effect.none), ("Piercing Bolt ", archery, 0, effect.none), ("Precision ", archery, 0, effect.none), ("Retreat ", archery, 0, effect.none), ("Taunt ", archery, 0, effect.none), ("Charismatic Leader ", defense, 0, effect.none), ("Counterstrike ", defense, 0, effect.none), ("Double Counterstrike ", defense, 0, effect.none), ("Resilience ", defense, 0, effect.none), ("Revenge ", defense, 0, effect.none), ("Shield Of The Virtue ", defense, 0, effect.none), ("Stand Your Ground Mass ", defense, 0, effect.none), ("Stand Your Ground ", defense, 0, effect.none), ("Toughness ", defense, 0, effect.none), ("Banker ", economy, 0, effect.none), ("Destroyer ", economy, 0, effect.none), ("Leadership ", economy, 0, effect.none), ("Lumber ", economy, 0, effect.none), ("Manager ", economy, 0, effect.none), ("Merchant ", economy, 0, effect.none), ("Miner ", economy, 0, effect.none), ("Plunderer ", economy, 0, effect.none), ("Snatch ", economy, 0, effect.none), ("Alchemist ", education, 0, effect.none), ("Architect ", education, 0, effect.none), ("Ballistics ", education, 0, effect.none), ("Chosen One ", education, 0, effect.none), ("Diplomacy ", education, 0, effect.none), ("Economist ", education, 0, effect.none), ("General ", education, 0, effect.none), ("Mentor ", education, 0, effect.none), ("Siege Master ", education, 0, effect.none), ("Explorer ", logistics, 0, effect.none), ("Navigation ", logistics, 0, effect.none), ("Observer ", logistics, 0, effect.none), ("Orientation ", logistics, 0, effect.none), ("Pathfinder ", logistics, 0, effect.none), ("Scout ", logistics, 0, effect.none), ("Spy ", logistics, 0, effect.none), ("Trust The Plan ", logistics, 0, effect.none), ("Assailant ", offense, 0, effect.none), ("Battle March ", offense, 0, effect.none), ("Cleave ", offense, 0, effect.none), ("Flawless Attack ", offense, 0, effect.none), ("Giant Slayer ", offense, 0, effect.none), ("Heroic Charge ", offense, 0, effect.none), ("Parry ", offense, 0, effect.none), ("Pressed Attack ", offense, 0, effect.none), ("Rampage ", offense, 0, effect.none), ("Ambush ", tactics, 0, effect.none), ("Commander ", tactics, 0, effect.none), ("Crippling Traps ", tactics, 0, effect.none), ("Diving Attack ", tactics, 0, effect.none), ("Heroism Mass ", tactics, 0, effect.none), ("Heroism ", tactics, 0, effect.none), ("Intimidation ", tactics, 0, effect.none), ("Reinforcements ", tactics, 0, effect.none) ); ------------------------------------------------------------------------------------------ procedure configure; procedure draw (value : in codex; x, y : in integer); ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ end might;