xhads/source/might.ads

125 lines
6.2 KiB
Ada

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;
------------------------------------------------------------------------------------------
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;