Work in progress update, refactored Effect package...

This commit is contained in:
Ognjen Milan Robovic 2024-05-23 03:57:06 -04:00
parent 50eced984c
commit ea3496c1a5
4 changed files with 56 additions and 44 deletions

View File

@ -13,13 +13,36 @@ package body effect is
procedure apply (data : in value) is procedure apply (data : in value) is
begin begin
case data.operation is case data.operation is
when player_add => when offense => world.map.chads (1).attributes (attribute.offense) := world.map.chads (1).attributes (attribute.offense) + data.modifier;
case data.operator is when defense => world.map.chads (1).attributes (attribute.defense) := world.map.chads (1).attributes (attribute.defense) + data.modifier;
when attribute_offense => world.map.chads (1).attributes (attribute.offense) := world.map.chads (1).attributes (attribute.offense) + data.modifier; when wisdom => world.map.chads (1).attributes (attribute.wisdom) := world.map.chads (1).attributes (attribute.wisdom) + data.modifier;
when attribute_wisdom => world.map.chads (1).attributes (attribute.wisdom) := world.map.chads (1).attributes (attribute.wisdom) + data.modifier; when stamina => world.map.chads (1).attributes (attribute.stamina) := world.map.chads (1).attributes (attribute.stamina) + data.modifier;
when attribute_speed => world.map.chads (1).attributes (attribute.speed) := world.map.chads (1).attributes (attribute.speed) + data.modifier; when speed => world.map.chads (1).attributes (attribute.speed) := world.map.chads (1).attributes (attribute.speed) + data.modifier;
when others => null; when reach => world.map.chads (1).attributes (attribute.reach) := world.map.chads (1).attributes (attribute.reach) + data.modifier;
end case; when alchemy => world.map.chads (1).skills (skill.alchemy) := world.map.chads (1).skills (skill.alchemy) + data.modifier;
when archery => world.map.chads (1).skills (skill.archery) := world.map.chads (1).skills (skill.archery) + data.modifier;
when architecture => world.map.chads (1).skills (skill.architecture) := world.map.chads (1).skills (skill.architecture) + data.modifier;
when athletics => world.map.chads (1).skills (skill.athletics) := world.map.chads (1).skills (skill.athletics) + data.modifier;
when diplomacy => world.map.chads (1).skills (skill.diplomacy) := world.map.chads (1).skills (skill.diplomacy) + data.modifier;
when estates => world.map.chads (1).skills (skill.estates) := world.map.chads (1).skills (skill.estates) + data.modifier;
when exploration => world.map.chads (1).skills (skill.exploration) := world.map.chads (1).skills (skill.exploration) + data.modifier;
when leadership => world.map.chads (1).skills (skill.leadership) := world.map.chads (1).skills (skill.leadership) + data.modifier;
when logistics => world.map.chads (1).skills (skill.logistics) := world.map.chads (1).skills (skill.logistics) + data.modifier;
when medicine => world.map.chads (1).skills (skill.medicine) := world.map.chads (1).skills (skill.medicine) + data.modifier;
when mercantile => world.map.chads (1).skills (skill.mercantile) := world.map.chads (1).skills (skill.mercantile) + data.modifier;
when mysticism => world.map.chads (1).skills (skill.mysticism) := world.map.chads (1).skills (skill.mysticism) + data.modifier;
when necromancy => world.map.chads (1).skills (skill.necromancy) := world.map.chads (1).skills (skill.necromancy) + data.modifier;
when resistance => world.map.chads (1).skills (skill.resistance) := world.map.chads (1).skills (skill.resistance) + data.modifier;
when skirmish => world.map.chads (1).skills (skill.skirmish) := world.map.chads (1).skills (skill.skirmish) + data.modifier;
when sorcery => world.map.chads (1).skills (skill.sorcery) := world.map.chads (1).skills (skill.sorcery) + data.modifier;
when tactics => world.map.chads (1).skills (skill.tactics) := world.map.chads (1).skills (skill.tactics) + data.modifier;
when thaumaturgy => world.map.chads (1).skills (skill.thaumaturgy) := world.map.chads (1).skills (skill.thaumaturgy) + data.modifier;
when gold => world.map.chads (1).resources (resource.gold) := world.map.chads (1).resources (resource.gold) + data.modifier;
when wood => world.map.chads (1).resources (resource.wood) := world.map.chads (1).resources (resource.wood) + data.modifier;
when stone => world.map.chads (1).resources (resource.stone) := world.map.chads (1).resources (resource.stone) + data.modifier;
when metal => world.map.chads (1).resources (resource.metal) := world.map.chads (1).resources (resource.metal) + data.modifier;
when leather => world.map.chads (1).resources (resource.leather) := world.map.chads (1).resources (resource.leather) + data.modifier;
when gem => world.map.chads (1).resources (resource.gem) := world.map.chads (1).resources (resource.gem) + data.modifier;
when others => null; when others => null;
end case; end case;
end apply; end apply;

View File

@ -7,28 +7,17 @@ package effect is
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
type operation_index is ( type operation_index is (
idle, offense, defense, wisdom, stamina, speed, reach,
player_add, alchemy, archery, architecture, athletics, diplomacy, estates,
player_subtract, exploration, leadership, logistics, medicine, mercantile, mysticism,
player_multiply, necromancy, resistance, skirmish, sorcery, tactics, thaumaturgy,
player_divide, gold, wood, stone, metal, leather, gem
player_increment,
player_decrement
);
type operator_index is (
attribute_offense, attribute_defense, attribute_wisdom, attribute_stamina, attribute_speed, attribute_reach,
skill_alchemy, skill_archery, skill_architecture, skill_athletics, skill_diplomacy, skill_estates,
skill_exploration, skill_leadership, skill_logistics, skill_medicine, skill_mercantile, skill_mysticism,
skill_necromancy, skill_resistance, skill_skirmish, skill_sorcery, skill_tactics, skill_thaumaturgy,
resource_gold, resource_wood, resource_stone, resource_metal, resource_leather, resource_gem
); );
------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------
type value is record type value is record
operation : operation_index; operation : operation_index;
operator : operator_index;
modifier : integer; modifier : integer;
permanent : boolean; permanent : boolean;
duration : natural; duration : natural;

View File

@ -29,24 +29,24 @@ package skill is
count : constant natural := enumeration'pos (enumeration'last) + 1; count : constant natural := enumeration'pos (enumeration'last) + 1;
trait : constant array (enumeration) of information := ( trait : constant array (enumeration) of information := (
("Alchemy ", 0, "Alchemy skill determines effectiveness of your vials and potions. "), alchemy => ("Alchemy ", 0, "Alchemy skill determines effectiveness of your vials and potions. "),
("Archery ", 0, "Archery skill determines effectiveness and range or your archers. "), archery => ("Archery ", 0, "Archery skill determines effectiveness and range or your archers. "),
("Architecture ", 0, "Architecture decreases time spent on building constructions. "), architecture => ("Architecture ", 0, "Architecture decreases time spent on building constructions. "),
("Athletics ", 0, "Athletics increases movement speed of all your units, since they train. "), athletics => ("Athletics ", 0, "Athletics increases movement speed of all your units, since they train. "),
("Diplomacy ", 0, "Diplomacy helps you to avoid starting a battle you can't win. "), diplomacy => ("Diplomacy ", 0, "Diplomacy helps you to avoid starting a battle you can't win. "),
("Estates ", 0, "Estates makes you the ultimate crypto-bro, establishing a blockchain. "), estates => ("Estates ", 0, "Estates makes you the ultimate crypto-bro, establishing a blockchain. "),
("Exploration ", 0, "Exploration is quite self-explanatory... "), exploration => ("Exploration ", 0, "Exploration is quite self-explanatory... "),
("Leadership ", 0, "Leadership is the default skill for any true chad, like God intended. "), leadership => ("Leadership ", 0, "Leadership is the default skill for any true chad, like God intended. "),
("Logistics ", 0, "Logistics is a nightmare in real life, but this is only a game. "), logistics => ("Logistics ", 0, "Logistics is a nightmare in real life, but this is only a game. "),
("Medicine ", 0, "Medicine skill makes you swallow pills like a kid in a drugstore. "), medicine => ("Medicine ", 0, "Medicine skill makes you swallow pills like a kid in a drugstore. "),
("Mercantile ", 0, "Mercantile is the skill of any true-born nosy person, otherwise useless."), mercantile => ("Mercantile ", 0, "Mercantile is the skill of any true-born nosy person, otherwise useless."),
("Mysticism ", 0, "Mysticism allows you to have 60 cats, drink wine and talk weird. "), mysticism => ("Mysticism ", 0, "Mysticism allows you to have 60 cats, drink wine and talk weird. "),
("Necromancy ", 0, "Necromancy lets you not to waste the bones after every battle. "), necromancy => ("Necromancy ", 0, "Necromancy lets you not to waste the bones after every battle. "),
("Resistence ", 0, "Resistence skill increases defense points of all your units slightly. "), resistance => ("Resistence ", 0, "Resistence skill increases defense points of all your units slightly. "),
("Skirmish ", 0, "Skirmish makes your units go berserk when they have little health left. "), skirmish => ("Skirmish ", 0, "Skirmish makes your units go berserk when they have little health left. "),
("Sorcery ", 0, "Sorcery skill is appropriately named useless skill to have in real life."), sorcery => ("Sorcery ", 0, "Sorcery skill is appropriately named useless skill to have in real life."),
("Tactics ", 0, "Tactics is the opposite of skirmish, master it and lose in every battle."), tactics => ("Tactics ", 0, "Tactics is the opposite of skirmish, master it and lose in every battle."),
("Thaumaturgy ", 0, "Thaumaturgy lets you do nothing, and hope that the best will happen. ") thaumaturgy => ("Thaumaturgy ", 0, "Thaumaturgy lets you do nothing, and hope that the best will happen. ")
); );
------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------

View File

@ -105,9 +105,9 @@ package world is
); );
location_trait : constant array (location_index) of location_stats := ( location_trait : constant array (location_index) of location_stats := (
well_of_agility => ("Well of Agility ", true, 4, 3, (effect.player_add, effect.attribute_speed, 2, false, 0)), well_of_agility => ("Well of Agility ", true, 4, 3, (effect.speed, 2, false, 0)),
well_of_knowledge => ("Well of Knowledge ", true, 4, 3, (effect.player_add, effect.attribute_wisdom, 2, false, 0)), well_of_knowledge => ("Well of Knowledge ", true, 4, 3, (effect.wisdom, 2, false, 0)),
well_of_strength => ("Well of Strength ", true, 4, 3, (effect.player_add, effect.attribute_offense, 2, false, 0)) well_of_strength => ("Well of Strength ", true, 4, 3, (effect.offense, 2, false, 0))
); );
map : information; map : information;