private with Events.Entities;
private with Events.Keen;
package Games.Keen is
pragma Elaborate_Body;
private
use Events.Entities;
use Events.Keen;
type Keen_Game is new Game with null record;
procedure Construct( this : access Keen_Game );
procedure Delete( this : in out Keen_Game );
procedure Handle_Event( this : access Keen_Game;
evt : in out A_Event;
resp : out Response_Type );
pragma Precondition( evt /= null );
procedure Handle( this : access Keen_Game;
evt : not null A_Give_Ammo_Event );
procedure Handle( this : access Keen_Game;
evt : not null A_Give_Drops_Event );
procedure Handle( this : access Keen_Game;
evt : not null A_Give_Points_Event );
procedure Handle( this : access Keen_Game;
evt : not null A_Impulse_Event );
procedure New_Game( this : access Keen_Game );
procedure Pause( this : access Keen_Game; enabled : Boolean );
end Games.Keen;