57 lines
4.3 KiB
Ada
57 lines
4.3 KiB
Ada
-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
|
|
--
|
|
-- GNU General Public Licence (version 3 or later)
|
|
|
|
with core, notification, attribute, skill, resource, deity, material, magic, equipment, unit, construction, chad, world;
|
|
|
|
use type core.point;
|
|
|
|
package body effect is
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
procedure apply (data : in value) is
|
|
begin
|
|
case data.operation is
|
|
when idle => null;
|
|
when offense => core.increment (world.map.chads (1).attributes (attribute.offense).value, data.modifier);
|
|
when defense => core.increment (world.map.chads (1).attributes (attribute.defense).value, data.modifier);
|
|
when wisdom => core.increment (world.map.chads (1).attributes (attribute.wisdom).value, data.modifier);
|
|
when stamina => core.increment (world.map.chads (1).attributes (attribute.stamina).value, data.modifier);
|
|
when speed => core.increment (world.map.chads (1).attributes (attribute.speed).value, data.modifier);
|
|
when reach => core.increment (world.map.chads (1).attributes (attribute.reach).value, data.modifier);
|
|
when alchemy => core.increment (world.map.chads (1).skills (skill.alchemy).value, data.modifier);
|
|
when archery => core.increment (world.map.chads (1).skills (skill.archery).value, data.modifier);
|
|
when architecture => core.increment (world.map.chads (1).skills (skill.architecture).value, data.modifier);
|
|
when athletics => core.increment (world.map.chads (1).skills (skill.athletics).value, data.modifier);
|
|
when diplomacy => core.increment (world.map.chads (1).skills (skill.diplomacy).value, data.modifier);
|
|
when estates => core.increment (world.map.chads (1).skills (skill.estates).value, data.modifier);
|
|
when exploration => core.increment (world.map.chads (1).skills (skill.exploration).value, data.modifier);
|
|
when leadership => core.increment (world.map.chads (1).skills (skill.leadership).value, data.modifier);
|
|
when logistics => core.increment (world.map.chads (1).skills (skill.logistics).value, data.modifier);
|
|
when medicine => core.increment (world.map.chads (1).skills (skill.medicine).value, data.modifier);
|
|
when mercantile => core.increment (world.map.chads (1).skills (skill.mercantile).value, data.modifier);
|
|
when mysticism => core.increment (world.map.chads (1).skills (skill.mysticism).value, data.modifier);
|
|
when necromancy => core.increment (world.map.chads (1).skills (skill.necromancy).value, data.modifier);
|
|
when resistance => core.increment (world.map.chads (1).skills (skill.resistance).value, data.modifier);
|
|
when skirmish => core.increment (world.map.chads (1).skills (skill.skirmish).value, data.modifier);
|
|
when sorcery => core.increment (world.map.chads (1).skills (skill.sorcery).value, data.modifier);
|
|
when tactics => core.increment (world.map.chads (1).skills (skill.tactics).value, data.modifier);
|
|
when thaumaturgy => core.increment (world.map.chads (1).skills (skill.thaumaturgy).value, data.modifier);
|
|
when gold => core.increment (world.map.chads (1).resources (resource.gold).value, data.modifier);
|
|
when wood => core.increment (world.map.chads (1).resources (resource.wood).value, data.modifier);
|
|
when stone => core.increment (world.map.chads (1).resources (resource.stone).value, data.modifier);
|
|
when metal => core.increment (world.map.chads (1).resources (resource.metal).value, data.modifier);
|
|
when leather => core.increment (world.map.chads (1).resources (resource.leather).value, data.modifier);
|
|
when gem => core.increment (world.map.chads (1).resources (resource.gem).value, data.modifier);
|
|
--
|
|
when take_material => core.increment (world.map.chads (1).materials (material.enumeration'val (data.modifier)).value, data.amount);
|
|
end case;
|
|
--
|
|
notification.show (data.notify);
|
|
end apply;
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
end effect;
|