-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic -- -- GNU General Public Licence (version 3 or later) with core, attribute, material, effect; package monster is ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ type enumeration is ( none, hill_troll, cave_troll, mountain_troll, swamp_worm, sand_worm, ash_worm ); ------------------------------------------------------------------------------------------ type definition is record name : access string := new string'("--"); attributes : attribute.bonus := (others => 0); size : core.vector := (1, 1); materials : access material.drops := new material.drops'((material.meat, 1, 1), (material.bone, 1, 1)); evoke : effect.information := effect.none; end record; type information is record index : enumeration := enumeration'first; state : core.animation := core.idle; x : integer := 0; y : integer := 0; health : core.point := (24, 24); mana : core.point := (24, 24); stamina : core.point := (24, 24); end record; type informations is array (natural range <>) of information; ------------------------------------------------------------------------------------------ count : constant natural := enumeration'pos (enumeration'last) + 1; description : constant array (enumeration) of definition := ( none => (others => <>), -- hill_troll => (new string'("Hill Troll"), (3, 3, 3, 6, 6, 6), (2, 2), new material.drops'((material.meat, 3, 6), (material.skull, 1, 1)), effect.none), cave_troll => (new string'("Cave Troll"), (3, 3, 3, 6, 6, 6), (2, 2), new material.drops'((material.meat, 3, 6), (material.skull, 1, 1)), effect.none), mountain_troll => (new string'("Mountain Troll"), (3, 3, 3, 6, 6, 6), (2, 2), new material.drops'((material.meat, 3, 6), (material.skull, 1, 1)), effect.none), swamp_worm => (new string'("Swamp Worm"), (2, 3, 3, 4, 6, 6), (2, 2), new material.drops'((material.meat, 3, 6), (material.bone, 1, 3)), effect.none), sand_worm => (new string'("Sand Word"), (2, 3, 3, 4, 6, 6), (2, 2), new material.drops'((material.meat, 3, 6), (material.bone, 1, 3)), effect.none), ash_worm => (new string'("Ash Worm"), (2, 3, 3, 4, 6, 6), (2, 2), new material.drops'((material.meat, 3, 6), (material.bone, 1, 3)), effect.none) ); game : array (enumeration) of core.sprite; icon : array (enumeration) of core.sprite; view : array (enumeration) of core.sprite; ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ end monster;