private with Events.Entities;
private with Events.Keen;
private with Events.Game;
package Games.Keen is
pragma Elaborate_Body;
private
use Events.Entities;
use Events.Game;
use Events.Keen;
type Keen_Game is new Game with
record
dialogId : Integer := Integer'First;
end record;
procedure Add_Event_Listeners( this : access 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 : not null access Keen_Game'Class;
evt : not null A_Dialog_Response_Event );
procedure Handle( this : not null access Keen_Game'Class;
evt : not null A_Entity_Entered_Tile_Event );
procedure Handle( this : not null access Keen_Game'Class;
evt : not null A_Give_Ammo_Event );
procedure Handle( this : not null access Keen_Game'Class;
evt : not null A_Give_Drops_Event );
procedure Handle( this : not null access Keen_Game'Class;
evt : not null A_Give_Points_Event );
procedure Handle( this : not null access Keen_Game'Class;
evt : not null A_Impulse_Event );
procedure Handle( this : not null access Keen_Game'Class;
evt : not null A_Player_Died_Event );
procedure New_Game( this : access Keen_Game );
procedure One_Up( this : not null access Keen_Game'Class );
procedure Pause( this : access Keen_Game; enabled : Boolean );
procedure Remove_Event_Listeners( this : access Keen_Game );
end Games.Keen;