xhads/source/location.ads

61 lines
4.1 KiB
Ada

-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
--
-- GNU General Public Licence (version 3 or later)
with core, effect, attribute, skill, resource, material;
package location is
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
type enumeration is (
well_of_agility, well_of_knowledge, well_of_strength, old_dwarven_grave, huge_ancient_urn, banana_tree,
apple_tree, cherry_tree, lemon_tree, orange_tree, pear_tree, peach_tree,
plum_tree, pillars_of_observation
);
------------------------------------------------------------------------------------------
type definition is record
name : access string := new string'("--");
clip : boolean := false;
frames : integer := 0;
evoke : effect.information := effect.none;
end record;
type information is record
index : enumeration := enumeration'first;
used : boolean := false;
x : integer := 0;
y : integer := 0;
end record;
type informations is array (natural range <>) of information;
------------------------------------------------------------------------------------------
count : constant natural := enumeration'pos (enumeration'last) + 1;
description : constant array (enumeration) of definition := (
well_of_agility => (new string'("Well of Agility"), true, 4, (effect.modify_attribute, attribute.enumeration'pos (attribute.speed), 2, false, 0)),
well_of_knowledge => (new string'("Well of Knowledge"), true, 4, (effect.modify_attribute, attribute.enumeration'pos (attribute.wisdom), 2, false, 0)),
well_of_strength => (new string'("Well of Strength"), true, 4, (effect.modify_attribute, attribute.enumeration'pos (attribute.offense), 2, false, 0)),
old_dwarven_grave => (new string'("Old Dwarven Grave"), true, 1, (effect.modify_attribute, attribute.enumeration'pos (attribute.defense), 1, false, 0)),
huge_ancient_urn => (new string'("Huge Ancient Urn"), true, 1, (effect.modify_attribute, attribute.enumeration'pos (attribute.offense), 1, false, 0)),
banana_tree => (new string'("Banana Tree"), true, 4, (effect.append_material, material.enumeration'pos (material.banana), 4, true, 12)),
apple_tree => (new string'("Apple Tree"), true, 4, (effect.append_material, material.enumeration'pos (material.apple), 6, true, 12)),
cherry_tree => (new string'("Cherry Tree"), true, 4, (effect.append_material, material.enumeration'pos (material.cherry), 6, true, 12)),
lemon_tree => (new string'("Lemon Tree"), true, 4, (effect.append_material, material.enumeration'pos (material.lemon), 6, true, 12)),
orange_tree => (new string'("Orange Tree"), true, 4, (effect.append_material, material.enumeration'pos (material.orange), 6, true, 12)),
pear_tree => (new string'("Pear Tree"), true, 4, (effect.append_material, material.enumeration'pos (material.pear), 6, true, 12)),
peach_tree => (new string'("Peach Tree"), true, 4, (effect.append_material, material.enumeration'pos (material.peach), 6, true, 12)),
plum_tree => (new string'("Plum Tree"), true, 4, (effect.append_material, material.enumeration'pos (material.plum), 6, true, 12)),
pillars_of_observation => (new string'("Pillars of Observation"), true, 1, (effect.modify_attribute, attribute.enumeration'pos (attribute.reach), 2, false, 0))
);
game : array (enumeration) of core.sprite;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
end location;