127 lines
6.2 KiB
Ada
127 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;
|
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
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;
|