TABLE OF CONTENTS


ShipModules/ShipModules [ Packages ]

[ Top ] [ Packages ]

FUNCTION

 Provided code to manipulate ship modules prototypes

SOURCE

package ShipModules is

ShipModules/ShipModules.Module_Size [ Types ]

[ Top ] [ ShipModules ] [ Types ]

FUNCTION

 Range of size of ships' modules

SOURCE

   subtype Module_Size is Positive range 1 .. 10;

HISTORY

 7.4 - Added

ShipModules/ShipModules.Module_Type [ Types ]

[ Top ] [ ShipModules ] [ Types ]

FUNCTION

 Types of ship modules

SOURCE

   type Module_Type is
     (ANY, ENGINE, CABIN, COCKPIT, TURRET, GUN, CARGO, HULL, ARMOR,
      BATTERING_RAM, ALCHEMY_LAB, FURNACE, WATER_COLLECTOR, WORKSHOP,
      GREENHOUSE, MEDICAL_ROOM, HARPOON_GUN, TRAINING_ROOM) with
      Default_Value => ANY;

ShipModules/ShipModules.Owners_Amount [ Types ]

[ Top ] [ ShipModules ] [ Types ]

FUNCTION

 Range of allowed owners for ships' modules

SOURCE

   subtype Owners_Amount is Natural range 0 .. 10;

HISTORY

 7.4 - Added

ShipModules/ShipModules.Base_Module_Data [ Records ]

[ Top ] [ ShipModules ] [ Records ]

FUNCTION

 Data structure for prototypes of ship modules

SOURCE

   type Base_Module_Data is record
      Name: Tiny_String.Bounded_String;
      M_Type: Module_Type;
      Weight: Natural := 0;
      Value: Integer := 0;
      Max_Value: Integer := 0;
      Durability: Integer := 0;
      Repair_Material: Tiny_String.Bounded_String;
      Repair_Skill: SkillsData_Container.Extended_Index;
      Price: Natural := 0;
      Install_Time: Positive := 1;
      Unique: Boolean;
      Size: Module_Size := 1;
      Description: Short_String.Bounded_String;
      Max_Owners: Owners_Amount := 0;
      Speed: Integer := 0;
      Reputation: Reputation_Range;
   end record;

PARAMETERS

 Name            - Name of module
 M_Type          - Type of module
 Weight          - Base weight of module
 Value           - For engine base power, depends on module
 Max_Value       - For gun, damage, depends on module
 Durability      - Base durability of module
 Repair_Material - Material needed for repair module
 Repair_Skill    - Skill needed for repair module
 Price           - Price for module in shipyards
 Install_Time    - Amount of minutes needed for install/remove module
 Unique          - Did ship can have installed only one that module
 Size            - How many space in ship this module take
 Description     - Description of module
 Max_Owners      - How many owners module can have
 Speed           - How fast the gun shoots in combat
 Reputation      - Minimal reputation in base needed to buy that module

ShipModules/ShipModules.Default_Module_Type [ Constants ]

[ Top ] [ ShipModules ] [ Constants ]

FUNCTION

 Default value for modules type

SOURCE

   Default_Module_Type: constant Module_Type := ANY;

ShipModules/ShipModules.Empty_Base_Module [ Constants ]

[ Top ] [ ShipModules ] [ Constants ]

FUNCTION

 Empty prototype module data

SOURCE

   Empty_Base_Module: constant Base_Module_Data := (others => <>);

ShipModules/ShipModules.Get_Module_Type [ Subprograms ]

[ Top ] [ ShipModules ] [ Subprograms ]

FUNCTION

 Get type of selected module (replace all underscore with spaces)

SOURCE

   function Get_Module_Type(Module_Index: Positive) return String with
      Post => Get_Module_Type'Result'Length > 0;

PARAMETERS

 Module_Index - Index of module in prototypes list
 RETURNS
 Formatted type of module