Difference between revisions of "Oolite JavaScript Reference: World script event handlers"

From Elite Wiki
(Added shipEnergyBecameFull etc.)
(added shipLostTarget)
Line 243: Line 243:
 
==== <code>shipDestroyedTarget</code> ====
 
==== <code>shipDestroyedTarget</code> ====
  
The <code>shipDestroyedTarget</code> handler is called when the target gets destroyed. <code>target</code> contains the destroyed target entity.
+
The <code>shipDestroyedTarget</code> handler is called when the target gets destroyed. <code>target</code> contains the destroyed target entity. This command is always preceded by the <code>shipLostTarget</code> handler.
  
 
  this.shipDestroyedTarget = function(target)
 
  this.shipDestroyedTarget = function(target)
Line 273: Line 273:
  
 
  this.shipEnergyIsLow = function()
 
  this.shipEnergyIsLow = function()
 +
{
 +
      // Your code here
 +
}
 +
 +
==== <code>shipLostTarget</code> ====
 +
 +
The <code>shipLostTarget</code> handler is called when the target gets lost. <code>target</code> contains the lost target entity. (As with Oolite 1.71 this returns not the right target but just "unknown")
 +
 +
this.shipLostTarget = function(target)
 
  {
 
  {
 
       // Your code here
 
       // Your code here

Revision as of 10:34, 4 July 2008

Note: this documentation is incomplete. It will be updated soon.

This page provides an exhaustive list of event handlers which can be implemented by JavaScript scripts for Oolite.

Game State

startUp

The startUp handler is called after all OXPs have been loaded. It can be used to do one-off initialisation such as registering to listen for certain keystrokes etc.

this.startUp = function()
{
     // Your code here
}


reset

The reset handler is called whenever the player is respawned, such as after dying or when loading a saved game. It should be used to reset any local state in the script.

this.reset = function()
{
     // Your code here
}

Docking

shipWillDockWithStation

The shipWillDockWithStation handler is called at the beginning of the docking tunnel effect.

this.shipWillDockWithStation = function(station)
{
     // Your code here
}


shipDockedWithStation

The shipDockedWithStation handler is called at the end of the docking tunnel effect.

this.shipDockedWithStation = function(station)
{
     // Your code here
}


shipWillLaunchFromStation

The shipWillLaunchFromStation handler is called at the beginning of the launch tunnel effect.

this.shipWillLaunchFromStation = function()
{
     // Your code here
}


shipLaunchedFromStation

The shipLaunchedFromStation handler is called at the end of the launch tunnel effect.

this.shipLaunchedFromStation = function()
{
     // Your code here
}

playerStartedAutoPilot

The playerStartedAutoPilot handler is called when the player starts autopilot docking. It is not called for the instantaneous dock command.

this.playerStartedAutoPilot = function()
{
     // Your code here
}


playerCancelledAutoPilot

The playerCancelledAutoPilot handler is called when the player cancels autopilot docking.

this.playerCancelledAutoPilot = function()
{
     // Your code here
}


playerDockingRefused

The playerDockingRefused handler is called when a station refuses to provide autopilot docking instructions.

this. playerDockingRefused = function()
{
     // Your code here
}


Witchspace Jumps

playerStartedJumpCountdown

The playerStartedJumpCountdown handler is called when the user starts a witchspace or galactic witchspace jump countdown. The type parameter is a string specifying which type of jump is occuring; currently, the possible values are “standard” and “galactic”. Other values may be added in future.

this.playerStartedJumpCountdown = function(type)
{
     // Your code here
}


playerCancelledJumpCountdown

The playerCancelledJumpCountdown handler is called when the user cancels a witchspace or galactic witchspace jump countdown.

this.playerCancelledJumpCountdown = function()
{
     // Your code here
}


playerJumpFailed

The playerJumpFailed handler is called at the end of a witchspace or galactic witchspace countdown, if the jump is not possible. The reason parameter is a string specifying why the jump failed; currently, the possible values are “blocked”, “too far” and “insufficient fuel”. Other values may be added in future.

this.playerJumpFailed = function(reason)
{
     // Your code here
}


shipWillEnterWitchspace

The shipWillEnterWitchspace handler is called immediately before a witchspace jump, while the player is still in the starting system. The cause parameter is a string specifying what sort of jump is occuring; currently, the possible values are “standard jump”, “galactic jump” and “wormhole”. Other values may be added in future.

this.shipWillEnterWitchspace = function(cause)
{
     // Your code here
}


shipWillExitWitchspace

The shipWillExitWitchspace handler is called as a witchspace jump concludes. When it is called, the player is (from a program perspective) in the destination system, but the tunnel effect has not yet been shown. This is the reccomended time to set up elements which, so to speak, were already there when the player arrived.

this.shipWillExitWitchspace = function()
{
     // Your code here
}

shipExitedWitchspace

The shipExitedWitchspace handler is called after a witchspace jump has concluded and the tunnel effect has been shown.

this.shipExitedWitchspace = function()
{
     // Your code here
}

playerEnteredNewGalaxy

The playerEnteredNewGalaxy handler is called just before a witchspace jump starts.

this.playerEnteredNewGalaxy = function(galaxyNumber)
{
     // Your code here
}


Enter/Exit Aegis

shipEnteredStationAegis

The shipEnteredStationAegis handler is called when the player enters the station aegis (2x scanner range from station).

this.shipEnteredStationAegis = function(station)
{
     // Your code here
}

shipExitedStationAegis

The shipExitedStationAegis handler is called when the player leaves the station aegis (2x scanner range from station).

this.shipExitedStationAegis = function()
{
     // Your code here
}

shipEnteredPlanetaryVicinity

The shipEnteredPlanetaryVicinity handler is called when the player enters the planet aegis (3x planet radius).

this.shipEnteredPlanetaryVicinity = function(planet)
{
     // Your code here
}

shipExitedPlanetaryVicinity

The shipExitedPlanetaryVicinity handler is called when the player leaves the planet aegis (3x planet radius).

this.shipExitedPlanetaryVicinity = function()
{
     // Your code here
}

shipApproachingPlanetSurface

The shipApproachingPlanetSurface handler is called when the player is very close to the planet (crosses a border ± 500 meter above the surface).

this.shipApproachingPlanetSurface = function(planet)
{
     // Your code here
}

shipLeavingPlanetSurface

The shipLeavingPlanetSurface handler is called when the player leaves the planet (crosses a border ± 500 meter above the surface).

this.shipLeavingPlanetSurface = function(planet)
{
     // Your code here
}

Combat

alertConditionChanged

The alertConditionChanged handler is called when the player’s alert status (player.alertCondition) changes.

this.alertConditionChanged = function()
{
     // Your code here
}

shipAttackedWithMissile

The shipAttackedWithMissile handler is called when a missile is fired. missile contains the missile entity and whom the identity of the ship that launched the missile.

this.shipAttackedWithMissile = function(missile, whom)
{
     // Your code here
}

shipDestroyedTarget

The shipDestroyedTarget handler is called when the target gets destroyed. target contains the destroyed target entity. This command is always preceded by the shipLostTarget handler.

this.shipDestroyedTarget = function(target)
{
     // Your code here
}

shipDied

The shipDied handler is called when the ship or player dies. Expect a reset() shortly when it is the player ship.

this.shipDied = function(whom, why)
{
     // Your code here
}

shipEnergyBecameFull

The shipEnergyBecameFull handler is called when the energy level reaches it's maximum value again.

this.shipEnergyBecameFull = function()
{
     // Your code here
}

shipEnergyIsLow

The shipEnergyIsLow handler is called when the energy level drops below 25% of it's maximum value.

this.shipEnergyIsLow = function()
{
     // Your code here
}

shipLostTarget

The shipLostTarget handler is called when the target gets lost. target contains the lost target entity. (As with Oolite 1.71 this returns not the right target but just "unknown")

this.shipLostTarget = function(target)
{
     // Your code here
}

shipTargetCloaked

The shipTargetCloaked handler is called when the target cloakes.

this.shipTargetCloaked = function()
{
     // Your code here
}

Other

guiScreenChanged

The guiScreenChanged handler is called when the guiScreen changes. 1.71 only transfers the "to" screen. 1.72 will also transfer the "from" screen. Note that the screen can have changed again in the meantime.

this.guiScreenChanged = function(to)
{
     // Your code here
}

missionScreenEnded

The missionScreenEnded handler is called when the missionscreen ends. Note that an other script may have put up a new missionscreen in the meantime.

this.missionScreenEnded = function()
{
     // Your code here
}

shipScoopedOther

The shipScoopedOther handler is called when a ship scoops scripted_cargo. ("cargo_type" = CARGO_SCRIPTED_ITEM) Other cargo, even scooping escapepods, doesn't trigger a handler.
The scooped item is transferred as argument. The scooped cargo itselfs gets the handler: shipWasScooped with the scooper as argument.

this.shipScoopedOther = function(whom)
{
     // Your code here
}

shipLaunchedEscapePod

The shipLaunchedEscapePod handler is called when the player bails out. This will be followed by a shipWillDockWithStation()/shipDockedWithStation() pair after a few seconds.

this.shipLaunchedEscapePod = function(escapepod)
{
     // Your code here
}

shipWasScooped

The shipWasScooped handler is send to the cargopod when a ship scoops scripted_cargo. ("cargo_type" = CARGO_SCRIPTED_ITEM) The scooper is transferred as argument. The scooper itself gets a trigger on the handler shipScoopedOther

this.shipWasScooped = function(scooper)
{
     // Your code here
}

tickle

The tickle handler is called periodically-ish, whenever the old plist scripts are updated. For performance reasons, it is reccomended that you avoid using this if possible, but it may be needed until the planned timer mechanism is implemented.

The status parameter is a string containing the player’s current status - “STATUS_IN_FLIGHT” and “STATUS_DOCKED” being commonly-seen examples.

this.tickle = function(status)
{
     // Your code here
}

Not Yet Implemented

Handlers do not yet exist for the following events:

  • Target changed.
  • Advanced space compass mode changed.
  • Cloaking device events.

If there are other events you would like to be able to respond to, please write a request on the forum.