TABLE OF CONTENTS


Events/Events [ Packages ]

[ Top ] [ Packages ]

FUNCTION

 Provide code to generate and update random events

SOURCE

package Events is

Events/Events.Events_Types [ Types ]

[ Top ] [ Events ] [ Types ]

FUNCTION

 Types of events

SOURCE

   type Events_Types is
     (NONE, ENEMYSHIP, ATTACKONBASE, DISEASE, DOUBLEPRICE, BASERECOVERY,
      FULLDOCKS, ENEMYPATROL, TRADER, FRIENDLYSHIP) with
      Default_Value => NONE;

Events/Events.Event_Data [ Records ]

[ Top ] [ Events ] [ Records ]

FUNCTION

 Data structure for random events

SOURCE

   type Event_Data(E_Type: Events_Types := NONE) is record
      Sky_X: Map_X_Range;
      Sky_Y: Map_Y_Range;
      Time: Positive;
      case E_Type is
         when DOUBLEPRICE =>
            Item_Index: Positive;
         when ATTACKONBASE | ENEMYSHIP | ENEMYPATROL | TRADER | FRIENDLYSHIP =>
            Ship_Index: Positive;
         when others =>
            Data: Natural := 0;
      end case;
   end record;

PARAMETERS

 E_Type     - The type of the event
 Sky_X      - X coordinate on sky map
 Sky_Y      - Y coordinate on sky map
 Time       - Time to end of event
 Item_Index - Index of proto item which have bonus to price
 Ship_Index - Index of proto ship which player meet
 Data      - Various data for event (for example index of enemy ship)

Events/Events.Empty_Event [ Constants ]

[ Top ] [ Events ] [ Constants ]

FUNCTION

 Default value for Event_Data, an empty event

SOURCE

   Empty_Event: constant Event_Data :=
     (E_Type => No_Event, Sky_X => 1, Sky_Y => 1, Time => 1, Data => 0);

Events/Events.No_Event [ Constants ]

[ Top ] [ Events ] [ Constants ]

FUNCTION

 Default value for Events_Types

SOURCE

   No_Event: constant Events_Types := NONE;

Events/Events.Check_For_Event [ Subprograms ]

[ Top ] [ Events ] [ Subprograms ]

FUNCTION

 Check if event happen

SOURCE

   function Check_For_Event return Boolean;

RESULT

 Return true if combat starts, otherwise false

Events/Events.Delete_Event [ Subprograms ]

[ Top ] [ Events ] [ Subprograms ]

FUNCTION

 Delete selected event

SOURCE

   procedure Delete_Event(Event_Index: Positive);

PARAMETERS

 EventIndex - Index of the event to delete

Events/Events.Generate_Traders [ Subprograms ]

[ Top ] [ Events ] [ Subprograms ]

FUNCTION

 Create list of traders needed for trader event

SOURCE

   procedure Generate_Traders;

Events/Events.GenerateEnemies [ Subprograms ]

[ Top ] [ Events ] [ Subprograms ]

FUNCTION

 Create list of enemies ships

SOURCE

   procedure Generate_Enemies
     (Enemies: in out Positive_Container.Vector;
      Owner: Tiny_String.Bounded_String :=
        Tiny_String.To_Bounded_String(Source => "Any");
      With_Traders: Boolean := True);

PARAMETERS

 Enemies      - List of enemies to generate
 Owner        - Index of faction which enemies list should contains.
                Default all factions
 With_Traders - Did list should contains enemy traders too. Default true