private with Ada.Strings.Unbounded;
package Tools.Enemy_Spawners is
type Enemy_Spawner is new Tool with private;
type A_Enemy_Spawner is access all Enemy_Spawner'Class;
function Create_Enemy_Spawner( id : String ) return A_Tool;
pragma Precondition( id'Length > 0 );
pragma Postcondition( Create_Enemy_Spawner'Result /= null );
function Get_ID( this : not null access Enemy_Spawner'Class ) return String;
pragma Postcondition( Get_ID'Result'Length > 0 );
private
use Ada.Strings.Unbounded;
type Enemy_Spawner is new Tool with
record
id : Unbounded_String;
end record;
procedure Apply( this : access Enemy_Spawner;
func : Function_Type;
modifiers : Modifiers_Array;
first : Boolean;
world : not null A_World;
worldX,
worldY,
layer : Integer );
procedure Construct( this : access Enemy_Spawner; id : String );
pragma Precondition( id'Length > 0 );
end Tools.Enemy_Spawners;