Difference between revisions of "Oolite JavaScript Reference: Player"
m (→replaceShip: new option) |
(→ship) |
||
(14 intermediate revisions by 4 users not shown) | |||
Line 37: | Line 37: | ||
=== <code>contractReputation</code> === |
=== <code>contractReputation</code> === |
||
'''contractReputation''' : Number (read-only integer) |
'''contractReputation''' : Number (read-only integer) |
||
− | The player’s cargo contract reputation, ranging from -7 to +7. Reputation is based on fulfilled and unfulfilled contracts. Both individually ranging from 0 till 7. Both good and bad value erode away in time towards 0. All individually values below 7 are seen as '''unknown''' reputation. This unknown part is randomised based on the market situation. |
||
+ | {{oolite-prop-added|1.79}} |
||
+ | '''contractReputationPrecise''' : Number (read-only decimal) |
||
+ | The player’s cargo contract reputation, ranging from -7 to +7. Reputation is made up internally of three components - "good", "bad", and "unknown". "good" and "bad" will decay back to "unknown" slowly over time, while "unknown" may in some systems (randomised on entry) be partially treated as "good", to represent imperfect knowledge of the player's reputation. The value reported by these properties is the final value after this randomisation is applied. The "Precise" version includes fractional reputation, used in Oolite 1.79 onwards.. |
||
'''See also:''' <code>[[#decreaseContractReputation|decreaseContractReputation()]]</code>, <code>[[#increaseContractReputation|increaseContractReputation()]]</code>, <code>[[#passengerReputation|passengerReputation]]</code> |
'''See also:''' <code>[[#decreaseContractReputation|decreaseContractReputation()]]</code>, <code>[[#increaseContractReputation|increaseContractReputation()]]</code>, <code>[[#passengerReputation|passengerReputation]]</code> |
||
=== <code>credits</code> === |
=== <code>credits</code> === |
||
− | '''credits''' : Number (read/write, |
+ | '''credits''' : Number (read/write, float) |
− | The amount of money the player has. |
+ | The amount of money the player has, in credits. |
=== <code>dockingClearanceStatus</code> === |
=== <code>dockingClearanceStatus</code> === |
||
Line 53: | Line 55: | ||
* <code>"DOCKING_CLEARANCE_STATUS_GRANTED"</code> |
* <code>"DOCKING_CLEARANCE_STATUS_GRANTED"</code> |
||
* <code>"DOCKING_CLEARANCE_STATUS_TIMING_OUT"</code> |
* <code>"DOCKING_CLEARANCE_STATUS_TIMING_OUT"</code> |
||
+ | |||
+ | === <code>escapePodRescueTime</code> === |
||
+ | {{oolite-prop-added|1.89}} |
||
+ | '''escapePodRescueTime''' : Number (read-write decimal) |
||
+ | Number of seconds that will be added to the clock when the player uses an escape pod and is rescued. Default value is 0 (zero), which will utilise the default time calculation that can add up to eight days to the clock. |
||
+ | Negative numbers will be ignored (and default calculation will apply). |
||
=== <code>legalStatus</code> === |
=== <code>legalStatus</code> === |
||
Line 59: | Line 67: | ||
=== <code>name</code> === |
=== <code>name</code> === |
||
− | '''name''' : String (read-only) |
+ | '''name''' : String (read-only, read/write from 1.79) |
− | The name of the player’s character (e.g., “Jameson”). |
+ | The name of the player’s character (e.g., “Jameson”). Prior to 1.79 this was also used as the filename for the savegame, and so was not writable. |
+ | |||
+ | === <code>parcelReputation</code> === |
||
+ | {{oolite-prop-added|1.77}} |
||
+ | '''parcelReputation''' : Number (read-only integer) |
||
+ | {{oolite-prop-added|1.79}} |
||
+ | '''parcelReputationPrecise''' : Number (read-only decimal) |
||
+ | The player’s parcel contract reputation, ranging from -7 to +7. Reputation is made up internally of three components - "good", "bad", and "unknown". "good" and "bad" will decay back to "unknown" slowly over time, while "unknown" may in some systems (randomised on entry) be partially treated as "good", to represent imperfect knowledge of the player's reputation. The value reported by these properties is the final value after this randomisation is applied. The "Precise" version includes fractional reputation, used in Oolite 1.79 onwards. |
||
+ | |||
+ | '''See also:''' <code>[[#decreaseParcelReputation|decreaseParcelReputation()]]</code>, <code>[[#increaseParcelReputation|increaseParcelReputation()]]</code> |
||
=== <code>passengerReputation</code> === |
=== <code>passengerReputation</code> === |
||
'''passengerReputation''' : Number (read-only integer) |
'''passengerReputation''' : Number (read-only integer) |
||
− | The player’s passenger contract reputation, ranging from -7 to +7. Reputation is based on fulfilled and unfulfilled contracts. Both individually ranging from 0 till 7. Both good and bad value erode away in time towards 0. All individually values below 7 are seen as '''unknown''' reputation. This unknown part is randomised based on the market situation. |
||
+ | {{oolite-prop-added|1.79}} |
||
+ | '''passengerReputationPrecise''' : Number (read-only decimal) |
||
+ | The player’s passenger contract reputation, ranging from -7 to +7. Reputation is made up internally of three components - "good", "bad", and "unknown". "good" and "bad" will decay back to "unknown" slowly over time, while "unknown" may in some systems (randomised on entry) be partially treated as "good", to represent imperfect knowledge of the player's reputation. The value reported by these properties is the final value after this randomisation is applied. The "Precise" version includes fractional reputation, used in Oolite 1.79 onwards. |
||
'''See also:''' <code>[[#contractReputation|contractReputation()]]</code>, <code>[[#decreasePassengerReputation|decreasePassengerReputation()]]</code>, <code>[[#increasePassengerReputation|increasePassengerReputation()]]</code> |
'''See also:''' <code>[[#contractReputation|contractReputation()]]</code>, <code>[[#decreasePassengerReputation|decreasePassengerReputation()]]</code>, <code>[[#increasePassengerReputation|increasePassengerReputation()]]</code> |
||
Line 71: | Line 81: | ||
'''rank''' : String (read-only) |
'''rank''' : String (read-only) |
||
A string describing the player’s rank for display purposes, based on <code>[[#score|score]]</code>, such as <code>"Mostly Harmless"</code> or <code>"Dangerous"</code>. Note that it can be localized. |
A string describing the player’s rank for display purposes, based on <code>[[#score|score]]</code>, such as <code>"Mostly Harmless"</code> or <code>"Dangerous"</code>. Note that it can be localized. |
||
+ | |||
+ | === <code>roleWeights</code> === |
||
+ | {{oolite-prop-added|1.79}} |
||
+ | '''roleWeights''' : Array (read-only) |
||
+ | An array of the player's current role as perceived by the game. Generally NPCs will pick a random entry from this list and treat the player as if they were an NPC of that role. The '<code>player-unknown</code>' role is the default role. The size of the list depends on the player's current Elite ranking. |
||
+ | |||
+ | '''See also:''' <code>[[#setPlayerRole|setPlayerRole()]]</code> |
||
=== <code>score</code> === |
=== <code>score</code> === |
||
'''score''' : Number (read/write, integer) |
'''score''' : Number (read/write, integer) |
||
The player’s score; nominally the number of kills the player has made, although some missions award additional points. |
The player’s score; nominally the number of kills the player has made, although some missions award additional points. |
||
+ | |||
+ | === <code>ship</code> === |
||
+ | '''ship''' : [[Oolite_JavaScript_Reference:_Ship | Ship]] |
||
+ | The player’s ship |
||
=== <code>trumbleCount</code> === |
=== <code>trumbleCount</code> === |
||
Line 99: | Line 120: | ||
'''See also:''' <code>[[#contractReputation|contractReputation]]</code>, <code>[[#increaseContractReputation|increaseContractReputation()]]</code> |
'''See also:''' <code>[[#contractReputation|contractReputation]]</code>, <code>[[#increaseContractReputation|increaseContractReputation()]]</code> |
||
+ | |||
+ | === <code>decreaseParcelReputation</code> === |
||
+ | {{oolite-method-added|1.77}} |
||
+ | function '''decreaseParcelReputation'''() |
||
+ | Give the player a negative reputation point for parcel contracts. Decreases the underlying value for parcelReputation by 1 until a minimum of -7. Depending on the randomised part of the value can the visible value stay the same in one system. |
||
+ | |||
+ | '''See also:''' <code>[[#parcelReputation|parcelReputation]]</code>, <code>[[#increaseParcelReputation|increaseParcelReputation()]]</code> |
||
=== <code>decreasePassengerReputation</code> === |
=== <code>decreasePassengerReputation</code> === |
||
Line 105: | Line 133: | ||
'''See also:''' <code>[[#passengerReputation|passengerReputation]]</code>, <code>[[#increasePassengerReputation|increasePassengerReputation()]]</code> |
'''See also:''' <code>[[#passengerReputation|passengerReputation]]</code>, <code>[[#increasePassengerReputation|increasePassengerReputation()]]</code> |
||
+ | |||
+ | === <code>endScenario</code> === |
||
+ | {{oolite-method-added|1.79}} |
||
+ | function '''endScenario'''(key : String) |
||
+ | End the current game immediately and return to the start game screen. Returns true if it succeeds (though this will shortly be irrelevant), and false if it fails, which it will do if the key passed in is not the same as the [[scenarios.plist|scenario key]] in the current game scenario. If the current game scenario has no scenario key, this method will always fail. |
||
+ | |||
+ | There is no way to find out what, if any, the current scenario key is. If you are calling this function, you should be doing so in a context where you already know what it is. |
||
=== <code>increaseContractReputation</code> === |
=== <code>increaseContractReputation</code> === |
||
Line 111: | Line 146: | ||
'''See also:''' <code>[[#contractReputation|contractReputation]]</code>, <code>[[#decreaseContractReputation|decreaseContractReputation()]]</code> |
'''See also:''' <code>[[#contractReputation|contractReputation]]</code>, <code>[[#decreaseContractReputation|decreaseContractReputation()]]</code> |
||
+ | |||
+ | === <code>increaseParcelReputation</code> === |
||
+ | {{oolite-method-added|1.77}} |
||
+ | function '''increaseParcelReputation'''() |
||
+ | Give the player a positive reputation point for parcel contracts. Increases the underlying value for parcelReputation by 1 until a maximum of 7 |
||
+ | |||
+ | '''See also:''' <code>[[#parcelReputation|parcelReputation]]</code>, <code>[[#decreaseParcelReputation|decreaseParcelReputation()]]</code> |
||
=== <code>increasePassengerReputation</code> === |
=== <code>increasePassengerReputation</code> === |
||
Line 120: | Line 162: | ||
=== <code>setEscapePodDestination</code> === |
=== <code>setEscapePodDestination</code> === |
||
function '''setEscapePodDestination'''(destination) |
function '''setEscapePodDestination'''(destination) |
||
− | This method can only be called after the player has launched an escape pod – for example, from the <code>escapePodSequenceOver()</code> event handler. It determines where the player will end up. <code>destination</code> may be any carrier/station entity, or the string <code>"NEARBY_SYSTEM"</code>, or <code>null</code>. If it is <code>"NEARBY_SYSTEM"</code>, the player will end up at the main station in a random nearby system. If it is <code>null</code>, the player will die of life support failure. (<code>null</code> is the default in interstellar space.) |
+ | This method can only be called after the player has launched an escape pod – for example, from the [[Oolite_JavaScript_Reference:_World_script_event_handlers#escapePodSequenceOver|<code>escapePodSequenceOver()</code>]] event handler. It determines where the player will end up. <code>destination</code> may be any carrier/station entity, or the string <code>"NEARBY_SYSTEM"</code>, or <code>null</code>. If it is <code>"NEARBY_SYSTEM"</code>, the player will end up at the main station in a random nearby system. If it is <code>null</code>, the player will die of life support failure. (<code>null</code> is the default in interstellar space.) |
− | [[Category:Oolite JavaScript Reference]] |
||
+ | === <code>setPlayerRole</code> === |
||
+ | {{oolite-method-added|1.79}} |
||
+ | function '''setPlayerRole'''(role [,index]) |
||
+ | Sets one of the player's perceived role entries to the specified role. If index is not specified, a random entry will be chosen. |
||
+ | |||
+ | '''See also:''' <code>[[#roleWeights|roleWeights]]</code> |
||
=== <code>replaceShip</code> === |
=== <code>replaceShip</code> === |
||
{{Oolite-method-added|1.77}} |
{{Oolite-method-added|1.77}} |
||
function '''replaceShip'''(dataKey [, personality]) |
function '''replaceShip'''(dataKey [, personality]) |
||
− | This method can only be called while the player is docked at a station. It discards the player's current ship (including all cargo, passenger contracts, and equipment), and replaces it with the ship defined by the shipyard.plist entry <code>dataKey</code> (obviously the key must also be defined in shipyard.plist as a valid player ship). The new ship will have all standard equipment for a ship of that type, and any equipment from the previous ship which was [[ |
+ | This method can only be called while the player is docked at a station. It discards the player's current ship (including all cargo, passenger contracts, and equipment), and replaces it with the ship defined by the shipyard.plist entry <code>dataKey</code> (obviously the key must also be defined in shipyard.plist as a valid player ship). The new ship will have all standard equipment for a ship of that type, and any equipment from the previous ship which was [[Oolite JavaScript Reference: EquipmentInfo#isPortableBetweenShips|isPortableBetweenShips]]. While this may not necessarily be a ship purchase, the [[Oolite JavaScript Reference: World script event handlers#playerBoughtNewShip|playerBoughtNewShip]] will fire to notify other scripts of the change, although this event is being deprecated in favour of [[Oolite JavaScript Reference: World script event handlers#playerReplacedShip|playerReplacedShip]], which was added in Oolite Test Release 1.89. |
If the dataKey was not defined in both shipdata.plist and shipyard.plist, or the player is in flight, this method does nothing. |
If the dataKey was not defined in both shipdata.plist and shipyard.plist, or the player is in flight, this method does nothing. |
||
<code>personality</code> is optional, and can be between 0 and 32767. The new ship is given that specific [[Oolite_JavaScript_Reference:_Ship#entityPersonality|entityPersonality]], which for some ships may affect its appearance with shaders. |
<code>personality</code> is optional, and can be between 0 and 32767. The new ship is given that specific [[Oolite_JavaScript_Reference:_Ship#entityPersonality|entityPersonality]], which for some ships may affect its appearance with shaders. |
||
+ | |||
+ | [[Category:Oolite JavaScript Reference]] |
Latest revision as of 21:19, 11 July 2021
Prototype: Object
Subtypes: none
The Player
class is represents the player. There is always exactly one Player
object in existence, which can be accessed through the player
global property.
Contents
- 1 Properties
- 1.1 alertAltitude
- 1.2 alertCondition
- 1.3 alertEnergy
- 1.4 alertHostiles
- 1.5 alertMassLocked
- 1.6 alertTemperature
- 1.7 bounty
- 1.8 contractReputation
- 1.9 credits
- 1.10 dockingClearanceStatus
- 1.11 escapePodRescueTime
- 1.12 legalStatus
- 1.13 name
- 1.14 parcelReputation
- 1.15 passengerReputation
- 1.16 rank
- 1.17 roleWeights
- 1.18 score
- 1.19 ship
- 1.20 trumbleCount
- 2 Methods
- 2.1 addMessageToArrivalReport
- 2.2 commsMessage
- 2.3 consoleMessage
- 2.4 decreaseContractReputation
- 2.5 decreaseParcelReputation
- 2.6 decreasePassengerReputation
- 2.7 endScenario
- 2.8 increaseContractReputation
- 2.9 increaseParcelReputation
- 2.10 increasePassengerReputation
- 2.11 setEscapePodDestination
- 2.12 setPlayerRole
- 2.13 replaceShip
Properties
alertAltitude
alertAltitude : Boolean (read-only)
Whether the player is dangerously close to a planet. (closer than 4000 meter to the surface)
alertCondition
alertCondition : Number (read-only, integer)
Returns the current alert condition. 0 = Docked, 1 = Green, 2 = Yellow, 3 = Red.
alertEnergy
alertEnergy : Boolean (read-only)
Whether the player’s energy level is depleted (i.e., energy
is less than maxEnergy
).
alertHostiles
alertHostiles : Boolean (read-only)
Whether there are hostile ships within scanner range.
alertMassLocked
alertMassLocked : Boolean (read-only)
Whether the player is mass locked.
alertTemperature
alertTemperature : Boolean (read-only)
Whether the cabin temperature is dangerously high.
bounty
bounty : Number (read/write integer)
The bounty on the player, which determines legal status. It is halved at each witchspace jump.
See also: legalStatus
contractReputation
contractReputation : Number (read-only integer)
This property was added in Oolite test release 1.79.
contractReputationPrecise : Number (read-only decimal)
The player’s cargo contract reputation, ranging from -7 to +7. Reputation is made up internally of three components - "good", "bad", and "unknown". "good" and "bad" will decay back to "unknown" slowly over time, while "unknown" may in some systems (randomised on entry) be partially treated as "good", to represent imperfect knowledge of the player's reputation. The value reported by these properties is the final value after this randomisation is applied. The "Precise" version includes fractional reputation, used in Oolite 1.79 onwards..
See also: decreaseContractReputation()
, increaseContractReputation()
, passengerReputation
credits
credits : Number (read/write, float)
The amount of money the player has, in credits.
dockingClearanceStatus
dockingClearanceStatus : String (read-only)
A string indicating whether the player has docking clearance. (Clarify: for which station? -Ahruman 20:34, 3 November 2008 (UTC)) Possible values are:
"DOCKING_CLEARANCE_STATUS_NONE"
"DOCKING_CLEARANCE_STATUS_REQUESTED"
"DOCKING_CLEARANCE_STATUS_NOT_REQUIRED"
"DOCKING_CLEARANCE_STATUS_GRANTED"
"DOCKING_CLEARANCE_STATUS_TIMING_OUT"
escapePodRescueTime
This property was added in Oolite test release 1.89.
escapePodRescueTime : Number (read-write decimal)
Number of seconds that will be added to the clock when the player uses an escape pod and is rescued. Default value is 0 (zero), which will utilise the default time calculation that can add up to eight days to the clock. Negative numbers will be ignored (and default calculation will apply).
legalStatus
legalStatus : String (read-only)
A string describing the player’s legal status for display purposes, based on bounty
. In English, this is one of "Clean"
(bounty = 0), "Offender"
(0 < bounty ≤ 50) or "Fugitive"
, but note that it can be localized.
name
name : String (read-only, read/write from 1.79)
The name of the player’s character (e.g., “Jameson”). Prior to 1.79 this was also used as the filename for the savegame, and so was not writable.
parcelReputation
This property was added in Oolite test release 1.77.
parcelReputation : Number (read-only integer)
This property was added in Oolite test release 1.79.
parcelReputationPrecise : Number (read-only decimal)
The player’s parcel contract reputation, ranging from -7 to +7. Reputation is made up internally of three components - "good", "bad", and "unknown". "good" and "bad" will decay back to "unknown" slowly over time, while "unknown" may in some systems (randomised on entry) be partially treated as "good", to represent imperfect knowledge of the player's reputation. The value reported by these properties is the final value after this randomisation is applied. The "Precise" version includes fractional reputation, used in Oolite 1.79 onwards.
See also: decreaseParcelReputation()
, increaseParcelReputation()
passengerReputation
passengerReputation : Number (read-only integer)
This property was added in Oolite test release 1.79.
passengerReputationPrecise : Number (read-only decimal)
The player’s passenger contract reputation, ranging from -7 to +7. Reputation is made up internally of three components - "good", "bad", and "unknown". "good" and "bad" will decay back to "unknown" slowly over time, while "unknown" may in some systems (randomised on entry) be partially treated as "good", to represent imperfect knowledge of the player's reputation. The value reported by these properties is the final value after this randomisation is applied. The "Precise" version includes fractional reputation, used in Oolite 1.79 onwards.
See also: contractReputation()
, decreasePassengerReputation()
, increasePassengerReputation()
rank
rank : String (read-only)
A string describing the player’s rank for display purposes, based on score
, such as "Mostly Harmless"
or "Dangerous"
. Note that it can be localized.
roleWeights
This property was added in Oolite test release 1.79.
roleWeights : Array (read-only)
An array of the player's current role as perceived by the game. Generally NPCs will pick a random entry from this list and treat the player as if they were an NPC of that role. The 'player-unknown
' role is the default role. The size of the list depends on the player's current Elite ranking.
See also: setPlayerRole()
score
score : Number (read/write, integer)
The player’s score; nominally the number of kills the player has made, although some missions award additional points.
ship
ship : Ship
The player’s ship
trumbleCount
trumbleCount : Number (read-only nonnegative integer)
The number of trumbles the player is currently blessed with.
Methods
addMessageToArrivalReport
function addMessageToArrivalReport(message : String)
Adds a message to the arrival report shown immediately after docking. Oolite puts its own stuff on the list immediately after shipWillDockWithStation() so this is a good moment to add the messages when you know what station will be docked. shipDockedWithStation() may also be used. Messages added will be on the list above Oolite's own arrival messages if added during shipWillDockWithStation() or while in flight, and below Oolite's own arrival messages if added during shipDockedWithStation().
commsMessage
function commsMessage(message : String [, duration: Number])
Writes the specified message in the player’s communications log, as well as displaying it as a console message. The optional duration
parameter determines how long the message should be displayed on the console before fading out. It is clamped to the range [1, 10]. If no duration is specified, 4.5 seconds will be used. Example: player.commsMessage("Hello, cruel universe.", 6)
NB. This commsMessage() is a property of "player". "player.ship" has also a commsMessage() property, but that belongs to ship and has a different second parameter. (see Oolite JavaScript Reference: Ship)
consoleMessage
function consoleMessage(message : String [, duration: Number])
Displays the specified message as a console message, that is, as a message on the HUD. The optional duration
parameter determines how long the message should be displayed before fading out. It is clamped to the range [1, 10]. If no duration is specified, 3 seconds will be used.
decreaseContractReputation
function decreaseContractReputation()
Give the player a negative reputation point for cargo contracts. Decreases the underlying value for contractReputation by 1 until a minimum of -7. Depending on the randomised part of the value can the visible value stay the same in one system.
See also: contractReputation
, increaseContractReputation()
decreaseParcelReputation
This method was added in Oolite test release 1.77.
function decreaseParcelReputation()
Give the player a negative reputation point for parcel contracts. Decreases the underlying value for parcelReputation by 1 until a minimum of -7. Depending on the randomised part of the value can the visible value stay the same in one system.
See also: parcelReputation
, increaseParcelReputation()
decreasePassengerReputation
function decreasePassengerReputation()
Give the player a negative reputation point for passenger contracts. Decreases the underlying value for passengerReputation by 1 until a minimum of -7. Depending on the randomised part of the value can the visible value stay the same in one system.
See also: passengerReputation
, increasePassengerReputation()
endScenario
This method was added in Oolite test release 1.79.
function endScenario(key : String)
End the current game immediately and return to the start game screen. Returns true if it succeeds (though this will shortly be irrelevant), and false if it fails, which it will do if the key passed in is not the same as the scenario key in the current game scenario. If the current game scenario has no scenario key, this method will always fail.
There is no way to find out what, if any, the current scenario key is. If you are calling this function, you should be doing so in a context where you already know what it is.
increaseContractReputation
function increaseContractReputation()
Give the player a positive reputation point for cargo contracts. Increases the underlying value for contractReputation by 1 until a maximum of 7
See also: contractReputation
, decreaseContractReputation()
increaseParcelReputation
This method was added in Oolite test release 1.77.
function increaseParcelReputation()
Give the player a positive reputation point for parcel contracts. Increases the underlying value for parcelReputation by 1 until a maximum of 7
See also: parcelReputation
, decreaseParcelReputation()
increasePassengerReputation
function increasePassengerReputation()
Give the player a positive reputation point for passenger contracts. Increases the underlying value for passengerReputation by 1 until a maximum of 7
See also: passengerReputation
, decreasePassengerReputation()
setEscapePodDestination
function setEscapePodDestination(destination)
This method can only be called after the player has launched an escape pod – for example, from the escapePodSequenceOver()
event handler. It determines where the player will end up. destination
may be any carrier/station entity, or the string "NEARBY_SYSTEM"
, or null
. If it is "NEARBY_SYSTEM"
, the player will end up at the main station in a random nearby system. If it is null
, the player will die of life support failure. (null
is the default in interstellar space.)
setPlayerRole
This method was added in Oolite test release 1.79.
function setPlayerRole(role [,index])
Sets one of the player's perceived role entries to the specified role. If index is not specified, a random entry will be chosen.
See also: roleWeights
replaceShip
This method was added in Oolite test release 1.77.
function replaceShip(dataKey [, personality])
This method can only be called while the player is docked at a station. It discards the player's current ship (including all cargo, passenger contracts, and equipment), and replaces it with the ship defined by the shipyard.plist entry dataKey
(obviously the key must also be defined in shipyard.plist as a valid player ship). The new ship will have all standard equipment for a ship of that type, and any equipment from the previous ship which was isPortableBetweenShips. While this may not necessarily be a ship purchase, the playerBoughtNewShip will fire to notify other scripts of the change, although this event is being deprecated in favour of playerReplacedShip, which was added in Oolite Test Release 1.89.
If the dataKey was not defined in both shipdata.plist and shipyard.plist, or the player is in flight, this method does nothing.
personality
is optional, and can be between 0 and 32767. The new ship is given that specific entityPersonality, which for some ships may affect its appearance with shaders.