Oolite JavaScript Reference: PlayerShip

From Elite Wiki
Revision as of 12:19, 26 May 2012 by Cim (talk | contribs) (weaponFacings: (remove - moving to Ship))

Prototype: Ship
Subtypes: none

The PlayerShip class is an Entity representing the player’s ship. The PlayerShip has all the properties and methods of a Ship, and several others. There is always exactly one Player object in existence, which can be accessed through player.ship.

Like any entity, the player ship can become invalid – specifically, when the player dies or ejects. Unlike other entities, the player ship can become valid again (after ejecting and being rescued). This is a technicality and it’s not guaranteed to work this way in future.

Properties

aftShield

aftShield : Number (read/write, nonnegative)

The current aft shield level, ranging from 0 to maxAftShield.

See also: aftShieldRechargeRate, forwardShield, maxAftShield

aftShieldRechargeRate

aftShieldRechargeRate : Number (read-only, nonnegative)

The rate at which the aft shield recharges (assuming enough energy is available). This is affected by equipment – currently, the Military Shield Enhancement. Currently always the same as forwardShieldRechargeRate, but this may change in future.

See also: aftShield, forwardShieldRechargeRate, maxAftShield

cargoSpaceAvailable

cargoSpaceAvailable : Number (read-only integer)

The ship’s available cargo space, in tons.

cargoSpaceUsed

cargoSpaceUsed : Number (read-only integer)

The ship’s current cargo, in tons.

compassMode

compassMode : String (read-only)

Returns the current compass mode, which can be any one of the following:

  • COMPASS_MODE_BASIC
  • COMPASS_MODE_PLANET
  • COMPASS_MODE_STATION
  • COMPASS_MODE_SUN
  • COMPASS_MODE_TARGET
  • COMPASS_MODE_BEACONS

compassTarget

compassTarget : Entity(read-only)

Points at the entity currently targeted by the compass.

cursorCoordinates

cursorCoordinates : Vector3D (read-only)

Discouraged in favour of cursorCoordinatesInLY.
The current x and y cursor coordinates on the long range screen in the internal coordinate system. The z coordinate is always 0.

cursorCoordinatesInLY

cursorCoordinatesInLY : Vector3D (read-only)

The current x and y cursor coordinates on the long range screen, in light years. The z coordinate is always 0.

docked

docked : Boolean (read-only)

True if the player is docked with a station or carrier.

dockedStation

dockedStation : Station (read-only)

The station with which the player is currently docked.

forwardShield

forwardShield : Number (read/write, nonnegative)

The current forward shield level, ranging from 0 to maxForwardShield.

See also: aftShield, forwardShieldRechargeRate, maxForwardShield

forwardShieldRechargeRate

forwardShieldRechargeRate : Number (read-only, nonnegative)

The rate at which the forward shield recharges (assuming enough energy is available). This is affected by equipment – currently, the Military Shield Enhancement. Currently always the same as aftShieldRechargeRate, but this may change in future.

See also: aftShieldRechargeRate, forwardShield, maxForwardShield

fuelLeakRate

fuelLeakRate : Number (read/write)

The rate at which the player is losing fuel, in tenths of a LY per second. May not be negative. Reset to 0 when fuel is empty.

galacticHyperspaceBehaviour

galacticHyperspaceBehaviour : String (read/write)

A string indicating what the effect of a galactic hyperspace jump will be. The available options are:

  • "BEHAVIOUR_STANDARD": the player arrives in the closest system to the starting point that is part of the main group of stars. Small groups (as seen in galaxy 6, among others) can’t be reached.
  • "BEHAVIOUR_ALL_SYSTEMS_REACHABLE": The player arrives at the closest system to the starting point, even if it is in a small group. Important: this can leave the player stranded, unless there are missions providing the possibility of escape!
  • "BEHAVIOUR_FIXED_COORDINATES": The player arrives at the system closest to galacticHyperspaceFixedCoordsInLY.

See also: galacticHyperspaceFixedCoordsInLY

galacticHyperspaceFixedCoords

galacticHyperspaceFixedCoords : Vector3D (read/write)

Discouraged in favour of galacticHyperspaceFixedCoordsInLY.
Like galacticHyperspaceFixedCoordsInLY, but in the internal coordinate system.

galacticHyperspaceFixedCoordsInLY

galacticHyperspaceFixedCoordsInLY : Vector3D (read/write)

The destination coordinates when galacticHyperspaceBehaviour mode is "GALACTIC_HYPERSPACE_BEHAVIOUR_FIXED_COORDINATES". The coordinate system corresponds to galaxyCoordinatesInLY. Currently, when assigning a value its x and y coordinates will be rounded to integer internal coordinates, and the z coordinate will be rejected.

See also: galacticHyperspaceBehaviour

galaxyCoordinates

galaxyCoordinates : Vector3D (read-only)

Discouraged in favour of galaxyCoordinatesInLY.
The player’s location in galactic space, in the internal coordinate system. The z coordinate is always 0.

galaxyCoordinatesInLY

galaxyCoordinatesInLY : Vector3D (read-only)

The player’s location in galactic space, in light years (measured from the top left of the map). The z coordinate is always 0.

hud

hud : String (read/write)

The name of the HUD plists defining the ship’s head up display.

hudHidden

hudHidden : Boolean (read/write)

Whether the HUD should be visible.

laserHeatLevel

This property was added in Oolite test release 1.77.

laserHeatLevel : Number (read-only, 0 to 1)

The temperature of the player's currently active weapon. Thermal cut-out is active above 0.85

manifest

manifest : Manifest (read/write)

The manifest contains all the cargo the player carries. It can be addressed as a property of playerShip as well as a class Manifest of its own.

maxAftShield

maxAftShield : Number (read-only, nonnegative)

The highest possible value of aftShield. This is affected by equipment – currently the Shield Boosters and Military Shield Enhancement. Currently always the same as maxForwardShield, but this may change in future.

See also: aftShield, aftShieldRechargeRate, maxForwardShield

maxForwardShield

maxAftShield : Number (read-only, nonnegative)

The highest possible value of forwardShield. This is affected by equipment – currently the Shield Boosters and Military Shield Enhancement. Currently always the same as maxAftShield, but this may change in future.

See also: forwardShield, forwardShieldRechargeRate, maxAftShield

price

This property was added in Oolite test release 1.77.

price : Number (read-only, positive integer in decicredits)

The value the player's ship would have, including equipment, if in a perfect servicing state. Servicing costs 1% of this value, and the ship can be exchanged at a shipyard for 75% of this value if it really is in perfect servicing state.

reticleTargetSensitive

reticleTargetSensitive : Boolean (read/write)

If true, and Scanner Targeting Enhancement is installed, the selected target reticle will light up in red when the target is in the player’s sights. This is equivalent to the reticle_target_sensitive key in HUD plists.

scoopOverride

scoopOverride : Boolean (read/write)

If true, and the player has a fuel scoop, the fuel scoop effect will run even if not close to a sun or scooping cargo.

serviceLevel

This property was added in Oolite test release 1.77.

serviceLevel : Number (read/write, positive integer in range 75-100)

The level of servicing the player's ship has. Renovation will be offered in shipyards at 85 or below, and malfunctions are more likely at lower values. This affects the sales price of the ship.

specialCargo

specialCargo : String (read-only)

The special cargo the player is carrying, if any; otherwise null.

See also: useSpecialCargo()

targetSystem

targetSystem : Integer (read-only)

The ID of the selected hyperspace target system.

viewDirection

viewDirection : String (read-only)

Returns the view direction as string: "VIEW_FORWARD", "VIEW_AFT", "VIEW_PORT", "VIEW_STARBOARD", "VIEW_CUSTOM" or "VIEW_GUI_DISPLAY".

weaponsOnline

weaponsOnline : Boolean (read-only)

Returns the weapon safety status. Player can toggle the status with the underscore-key.

Methods

addPassenger

function addPassenger(name : String, start : Number, destination : Number, arrivalTime : Number, fee : Number) : Boolean

Add a passenger contract to the ship. arrivalTime is the arrival time in seconds and must be greater than the current time. start and destination are the ID numbers of the start and end systems.

Returns false when there is no room for the passenger, there is already a passenger with that name or the arrival time is invalid.

Example:

 player.ship.addPassenger("cmdr Jameson", 34, 67, clock.seconds+3*24*3600, 1500);

If successful - and in galaxy chart 1 - the player will have cmdr Jameson as a passenger, his documents will show that he boarded the ship at Inus, to go to Cemave, within exactly 3 days, and the player will be given 1500 credits if he gets there on time (early or late arrival will affect the amount paid).

N.B. Normally a passenger will pay the captain a small advance upon boarding. Using this method, no inital payment is made.

awardContract

function awardContract(quantity : Number, commodity : String, start : Number, destination : Number, arrivalTime : Number, fee : Number) : Boolean

Add a cargo contract to the ship. arrivalTime is the arrival time in seconds and must be greater than the current time. start and destination are the ID numbers of the start and end systems.

Returns false when there is no room for the cargo, the arrival time is invalid.

Example:

player.ship.awardContract(12, "Food", 34, 67, clock.seconds+7*24*3600, 5000)

If successful - and in galaxy chart 1 - the player will have 12 more food containers on board, the manifest will show that the cargo was picked up at Inus, to be delivered at Cemave, within exactly 7 days, and the player will be given 5000 credits if the cargo is delivered on time (early or late delivery will affect the amount paid). N.B. Normally to get a contract, the player will have to buy the cargo at the local market price. Using this method, no inital payment is made.

awardEquipmentToCurrentPylon

function awardEquipmentToCurrentPylon(item : equipmentInfoExpression) : Boolean

Replace the missile or mine currently being launched with the specified item (which must be an external store). This will only have an effect if called while a missile or mine is being launched. Effectively this means that this method must be used within the shipFiredMissile() handler or in the ENTER message of the GLOBAL state of an missileAI.plist.

Bug: In Oolite 1.74.0, if awardEquipmentToCurrentPylon() fails the script will be halted without any error message. In future versions, it will simply return false.

See also: Ship.awardEquipment()

disengageAutopilot

function disengageAutopilot()

Disenable autopilot.

See also: engageAutopilotToStation()

engageAutopilotToStation

function engageAutopilotToStation(station : Station) : Boolean

Engage autopilot, set to dock with the specified station.

See also: disengageAutopilot()

launch

function launch()

Launches the player’s ship if it is currently docked.

removeAllCargo

function removeAllCargo()

Removes all cargo from the ship’s cargo bay that are measured in tons. Does not affect Gold, Platinum or Gemstones. Can only be used while docked.

removePassenger

function removePassenger(name : String)

Remove a named passenger.

useSpecialCargo

function useSpecialCargo(description : String)

Fills the cargo bay with the cargo described, effectively disabling the use of the cargo bay until the cargo is removed.

See also: specialCargo