$MissionContext Commands
Contents
- 1 AddBlock()
- 2 AddButton()
- 3 AddInRegionTrigger()
- 4 AddObstacles()
- 5 AddOutsideRegionTrigger()
- 6 AddShipByDefinition() / SpawnShipByDefinition()
- 7 AddShipByPlayerShipId() / SpawnShipByPlayerShipId()
- 8 AddShipStatusIcon()
- 9 ClearShipStatusIcons()
- 10 EnableButtonForPlayer() / DisableButtonForPlayer()
- 11 EnableDetectors() / DisableDetectors()
- 12 FocusCamera()
- 13 MoveShip()
- 14 RemoveBlock()
- 15 RemoveBuilding()
- 16 RemoveButton()
- 17 RemoveCounter()
- 18 RemoveMissionObjective()
- 19 RemoveObstacles()
- 20 RemoveShip()
- 21 RemoveShipStatusIcon()
- 22 RemoveTimer()
- 23 RemoveTrigger()
- 24 SendSystemMessage()
- 25 SetBuildingHitpoints()
- 26 SetBuildingOwner()
- 27 SetCounter()
- 28 SetMissionObjective()
- 29 SetMissionFailed()
- 30 SetMissionSuccessful()
- 31 SetRegion()
- 32 SetShipBehaviour()
- 33 SetShipOwner()
- 34 SetShipPosition()
- 35 SetTimer()
AddBlock()
This command adds a single block to the mission map.
$MissionContext->AddBlock($coordinates, $materialId)
Parameter | Type | Description |
---|---|---|
$coordinates | array | An array with the x, y, z coordinates of the location where to spawn the block. |
$materialId | integer | The Id of the material the block should have. Taken from Blocks Id List |
Example:
$MissionContext->AddBlock(array(10, 3, 12), 2); //Iron
$MissionContext->AddBlock($someLocation, 6); //Red Granite
AddButton()
This command adds a custom button at a given location (e.g. a building), which can be used for quests, story, or objectives.
$MissionContext->AddButton($buttonId, $coordinates, $buttonType)
Parameter | Type | Description |
---|---|---|
$buttonId | string | The id of the button, which can be used to enable/disable the button with the $MissionContext->EnableButtonForPlayer command, and which is handed to the OnButtonClicked event. |
$coordinates | array | An array with the x, y, z coordinates of the location where to spawn the button. |
$buttonType | string | Defines the icon of the button. Possible values are: ship, arrowleft, arrowright, refresh, build, delete, jump, money, edit, sticky, arena, statistics, follow, hold, energy, chat, level, cargo |
Example:
$MissionContext->AddButton('myButtonId', array(10, 3, 12), 'hold');
$MissionContext->AddButton($someButtonId, array(10, 3, 12), 'money');
AddInRegionTrigger()
This command adds a trigger for when a ship is inside a certain region. The function call like this:
$MissionContext->AddInRegionTrigger($triggerId, $regionId, $shipId)
Parameter | Type | Description |
---|---|---|
$triggerId | string | The Id which is passed in the OnTrigger event handler and can be used in the RemoveTrigger command. |
$regionId | string | The Id of a region that has been defined with the SetRegion command before. |
$shipId | integer | The Id of a ship. 0 if this trigger should accept any ship. |
Example:
$MissionContext->SetRegion('myCircle', array(10, 12), 7);
$MissionContext->AddInRegionTrigger('myTrigger', 'myCircle', 17);
AddObstacles()
This command fills up a region with blocks, so it becomes unpassable:
$MissionContext->AddObstacles($regionId, $materialId, $height, $density)
Parameter | Type | Description |
---|---|---|
$regionId | string | The Id of a region that has been defined with the SetRegion command before, or placed in the editor. |
$materialId | integer | The Id of the material the block should have. Taken from Blocks Id List |
$height | integer | number of blocks above and beyond the ship height that should be filled too (e.g. to create a wall) |
$density | integer | =0: solid obstacle. 1-100 The higher, the more dense. 10 is approx. like the Ice biome. |
Example:
$MissionContext->AddObstacles('myRegion', 2, 16, 10); //Ice blocks with density like normal ice biome
$MissionContext->AddObstacles($someRegion, 1, 2, 0); //Solid carbon wall of height 5.
AddOutsideRegionTrigger()
This command adds a trigger for when a ship is not inside a certain region. The function signature and parameters are identical to the AddInRegionTrigger command:
$MissionContext->AddOutsideRegionTrigger($triggerId, $regionId, $shipId)
AddShipByDefinition() / SpawnShipByDefinition()
These commands add a new ship to the map, based on a ship definition from shipdefinitions.xml. AddShipByDefinition() adds the ship via map coordinates, SpawnShipByDefinition() adds the ship at a given spawn location. The function calls look like this:
$shipId = $MissionContext->AddShipByDefinition($definitionId, $coordinates, $rotation, $owner, $playJumpAnimation)
$shipId = $MissionContext->SpawnShipByDefinition($definitionId, $spawnLocationId, $rotation, $owner, $playJumpAnimation)
Parameter | Type | Description |
---|---|---|
$definitionId | string | The Id of the <ShipDefinition> from the shipdefinitions.xml. |
$coordinates | array | The x and z coordinates where to spawn the ship. |
$spawnLocationId | string | The Id of the spawn location present in the map created with the editor. |
$rotation | integer | The rotation (in degrees) of the ship. |
$owner | string | The PlayerId of the ship owner. 'X' for enemies, 'Y' for allies, the playerId from the $MissionContext->PlayerList property for a player. |
$playJumpAnimation | bool | Determines if a jump portal animation should be played when the ship appears. |
Type | Description |
---|---|
int | The Id of the ship on the map for use in MoveShip command or OnShipKilled trigger for example. null, if the ship could not be added. |
Examples:
$shipId = $MissionContext->AddShipByDefinition('PirateProbe', array(10, 12), 0, General::$NeutralPlayerId, false);
$shipId2 = $MissionContext->SpawnShipByDefinition('PirateProbe', SpawnLocations::$JumpPortalAtBase, 0, General::$NeutralPlayerId, false);
$shipId3 = $MissionContext->AddShipByDefinition(ShipDefinitions::$Rosinante, array(6, -7), 45, $this->PlayerOne, false);
$shipId4 = $MissionContext->SpawnShipByDefinition(ShipDefinitions::$Rosinante, SpawnLocations::$JumpPortalAtBase, 45, $this->PlayerOne, false);
AddShipByPlayerShipId() / SpawnShipByPlayerShipId()
These commands add a new ship to the map, based on an Id of a ship players brought into the mission (e.g. to copy or reconstruct ships). AddShipByPlayerShipId() adds the ship via map coordinates, SpawnShipByPlayerShipId() adds the ship at a given spawn location. The function calls look like this:
$shipId = $MissionContext->AddShipByPlayerShipId($shipId, $coordinates, $rotation, $owner, $playJumpAnimation)
$shipId = $MissionContext->SpawnShipByPlayerShipId($shipId, $spawnLocationId, $rotation, $owner, $playJumpAnimation)
Parameter | Type | Description |
---|---|---|
$shipId | integer | The Id of the player ship, taken from $MissionContext->PlayersShipList. |
$coordinates | array | The x and z coordinates where to spawn the ship. |
$spawnLocationId | string | The Id of the spawn location present in the map created with the editor. |
$rotation | integer | The rotation (in degrees) of the ship. |
$owner | string | The PlayerId of the ship owner. 'X' for enemies, 'Y' for allies, the playerId from the $MissionContext->PlayerList property for a player. |
$playJumpAnimation | bool | Determines if a jump portal animation should be played when the ship appears. |
Type | Description |
---|---|
int | The Id of the ship on the map for use in MoveShip command or OnShipKilled trigger for example. null, if the ship could not be added. |
Examples:
$existingShipId = $MissionContext->PlayersShipList[0]->ID;
$shipId = $MissionContext->AddShipByPlayerShipId(existingShipId , array(10, 12), 0, General::$NeutralPlayerId, false);
$shipId2 = $MissionContext->SpawnShipByPlayerShipId(existingShipId , SpawnLocations::$JumpPortalAtBase, 0, General::$NeutralPlayerId, false);
AddShipStatusIcon()
Adds an icon to the ship to display a mission status (e.g. has a quest item loaded, etc.)
$MissionContext->AddShipStatusIcon($shipId, $iconType)
Parameter | Type | Description |
---|---|---|
$shipId | integer | The Id of the ship, received as return value from the $MissionContext->AddShip command or from $MissionContext->PlayersShipList. |
$iconType | string | Defines the icon type. Possible values are: ship, arrowleft, arrowright, refresh, build, delete, jump, money, edit, sticky, arena, statistics, follow, hold, energy, chat, level, cargo |
Example:
$MissionContext->AddShipStatusIcon (17, 'refresh');
$MissionContext->AddShipStatusIcon ($MissionContext-PlayersShipList[0]->ID, Icons::Cargo);
ClearShipStatusIcons()
Removes all icons from a ship which have been added with $MissionContext->AddShipStatusIcon.
$MissionContext->ClearShipStatusIcons($shipId)
Parameter | Type | Description |
---|---|---|
$shipId | integer | The Id of the ship, received as return value from the $MissionContext->AddShip command or from $MissionContext->PlayersShipList. |
Example:
$MissionContext->ClearShipStatusIcons(17);
EnableButtonForPlayer() / DisableButtonForPlayer()
These commands enable/disable a button, which has been defined with $MissionContext->AddButton, for a specific player
$MissionContext->EnableButtonForPlayer($buttonId, $playerId)
$MissionContext->DisableButtonForPlayer($buttonId, $playerId)
Parameter | Type | Description |
---|---|---|
$buttonId | string | The Id of the button, which has been used when the button was created with $MissionContext->AddButton |
$owner | string | The PlayerId for who the button should be enabled/disabled. |
Examples:
$MissionContext->EnableButtonForPlayer('myButtonId', $PlayerOne);
$MissionContext->DisableButtonForPlayer($someButtonId, $MissionContext->PlayersList[0]);
EnableDetectors() / DisableDetectors()
These commands enable/disable the detector capabilities of a ship in the mission, e.g. for a quest ship to avoid unfair advantages.
$MissionContext->EnableDetectors($shipId)
$MissionContext->DisableDetectors($shipId)
Parameter | Type | Description |
---|---|---|
$ship | integer | The Id of the ship, either received as return value from $MissionContext->AddShip, or from the PlayersShipList. |
Examples:
$MissionContext->EnableDetectors('myShipId');
$MissionContext->DisableDetectors($someShipId);
FocusCamera()
This command focuses the camera on a certain map location (for story-telling purposes) for a given time.
$MissionContext->FocusCamera($cameraCoordinates, $lookAtCoordinates, $duration, $playerId)
Parameter | Type | Description |
---|---|---|
$cameraCoordinates | array | The x,y,z coordinates of the camera location (look from) |
$lookAtCoordinates | array | The x,y,z coordinates of the target location (look at) |
$duration | integer | The duration of the camera focus in seconds |
$playerId | string | The Id of the player for who the camera should get focused |
Examples:
$MissionContext->FocusCamera(array(5, 10, 20), array(-2, 1, 13), 5, $MissionContext->PlayersList[0]);
MoveShip()
This command moves an existing ship to the target coordinates.
$MissionContext->MoveShip($shipId, $coordinates)
Parameter | Type | Description |
---|---|---|
$shipId | integer | The Id of the ship received from the AddShip command or from the $MissionContext->PlayerShipList or $MissionContext->EnemyShipList properties. |
$coordinates | array | The x and z coordinates where to move the ship. |
Example:
$rosinante = $MissionContext->AddShip('Rosinante', array(6, -7), 45, '4711');
$MissionContext->MoveShip($rosinante, array(12, 22));
RemoveBlock()
This command removes a single block from the mission map.
$MissionContext->RemoveBlock($coordinates, $explode)
Parameter | Type | Description |
---|---|---|
$coordinates | array | An array with the x, y, z coordinates of the location where to remove the block. |
$explode | boolean | Determines if the block should explode (true) or just disappear (false) |
Example:
$MissionContext->RemoveBlock(array(10, 3, 12), true);
RemoveBuilding()
This command removes a building from the mission map.
$MissionContext->RemoveBuilding($coordinates, $explode)
Parameter | Type | Description |
---|---|---|
$coordinates | array | An array with the x, y, z coordinates of the building location. |
$explode | boolean | Determines if the building should explode (true) or just disappear (false) |
Example:
$MissionContext->RemoveBuilding(array(10, 3, 12));
RemoveButton()
This command removes a previously defined button from the mission.
$MissionContext->RemoveButton($buttonId)
Parameter | Type | Description |
---|---|---|
$buttonId | string | The Id of the button which has been used during creation with $MissionContext->AddButton |
Example:
$MissionContext->RemoveButton('myButtonId');
RemoveCounter()
Removes an existing counter from the UI of the players.
$MissionContext->RemoveCounter($counterId)
Parameter | Type | Description |
---|---|---|
$counterId | string | The Id of the counter used when creating the counter with the SetCounter command. |
Example:
$MissionContext->SetCounter('myCounter', 12, array('EN' => 'This counter has the value 12.));
$MissionContext->RemoveCounter('myCounter');
RemoveMissionObjective()
Removes an existing mission objective from the UI of the players.
$MissionContext->RemoveMissionObjective($objectiveId)
Parameter | Type | Description |
---|---|---|
$objectiveId | string | The Id of the objective used when creating the objective with the SetMissionObjective command. |
Example:
$MissionContext->SetMissionObjective('myObjective', array('EN' => 'This is an objective'));
$MissionContext->RemoveMissionObjective('myObjective');
RemoveObstacles()
This command removes a all blocks from a region
$MissionContext->RemoveObstacles($regionId, $explode)
Parameter | Type | Description |
---|---|---|
$regionId | array | The Id of a region defined with the AddRegion command or in the editor. |
$explode | boolean | Determines if the blocks should explode (true) or just disappear(false) |
Example:
$MissionContext->RemoveObstacles('myRegion', true);
RemoveShip()
Removes a ship from the mission.
$MissionContext->RemoveShip($shipId, $explode)
Parameter | Type | Description |
---|---|---|
$shipId | integer | The Id of the ship to remove from the mission. Taken from the PlayersShipList or from the return value of AddShip. |
$explode | boolean | Set if the ship should be destroyed/explode (true), or just disappear (false) |
Example:
$MissionContext->RemoveShip(17, true));
RemoveShipStatusIcon()
Removes an icon from the ship which has been added with $MissionContext->AddShipStatusIcon.
$MissionContext->RemoveShipStatusIcon($shipId, $iconType)
Parameter | Type | Description |
---|---|---|
$shipId | integer | The Id of the ship, received as return value from the $MissionContext->AddShip command or from $MissionContext->PlayersShipList. |
$iconType | string | The icon type to be removed. |
Example:
$MissionContext->RemoveShipStatusIcon(17, 'refresh');
$MissionContext->RemoveShipStatusIcon($MissionContext-PlayersShipList[0]->ID, Icons::Cargo);
RemoveTimer()
Removes an existing timer, and prevents its expiration.
$MissionContext->RemoveTimer($timerId)
Parameter | Type | Description |
---|---|---|
$timerId | string | The Id of the timer used when creating the timer with the SetTimer command. |
Example:
$MissionContext->SetTimer('myTimer', 12, true, array('EN' => 'This is a visible timer.'));
$MissionContext->RemoveTimer('myTimer');
RemoveTrigger()
Removes an existing trigger and prevents it from being triggered.
$MissionContext->RemoveTrigger($triggerId)
Parameter | Type | Description |
---|---|---|
$trigger | string | The Id of the trigger used when creating the trigger with the AddInRegionTrigger or AddOutsideRegionTrigger command. |
Example:
$MissionContext->AddInRegionTrigger('myTrigger', 'myCircle', 18);
$MissionContext->RemoveTrigger('myTrigger');
SendSystemMessage()
Sends an orange system chat message to all players.
$MissionContext->SendSystemMessage($messages)
Parameter | Type | Description |
---|---|---|
$messages | array | The array of translated messages. |
Example:
$MissionContext->SendSystemMessage(array('EN' => 'This is a message', 'DE' => 'Dies ist eine Nachricht'));
SetBuildingHitpoints()
This command modifies the hitpoints of a building.
$MissionContext->SetBuildingHitpoints($coordinates, $explode)
Parameter | Type | Description |
---|---|---|
$coordinates | array | An array with the x, y, z coordinates of the building location. |
$hitpoints | integer | Sets the remaining hitpoints of the building. If <= 0, RemoveBuilding with explode=true will be called. |
Example:
$MissionContext->SetBuildingHitpoints(array(10, 3, 12), 1500);
SetBuildingOwner()
This command changes the owner of a building.
$MissionContext->SetBuildingOwner($coordinates, $ownerId)
Parameter | Type | Description |
---|---|---|
$coordinates | array | An array with the x, y, z coordinates of the building location. |
$ownerId | string | X for enemies, Y for allies. |
Example:
$MissionContext->SetBuildingOwner(array(10, 3, 12), 'X');
SetCounter()
Adds or updates a counter visible to all players.
$MissionContext->SetCounter($counterId, $value, $counterTexts)
Parameter | Type | Description |
---|---|---|
$counterId | string | The Id which can be used to call RemoveCounter or SetCounter (in order to update it again) later. |
$value | integer | The (new) value of the counter. |
$counterTexts | array | The array of translated counter descriptions |
Example:
$MissionContext->SetCounter('enemyCounter', 20, array('EN' => 'Remaining enemies', 'DE' => 'Verbleibende Feinde.')); //Create
$MissionContext->SetCounter('enemyCounter', $MissionContext->EnemiesShipList->Count, array('EN' => 'Remaining enemies', 'DE' => 'Verbleibende Feinde.')); //Update
SetMissionObjective()
Adds or updates a mission objective visible to all players.
$MissionContext->SetCounter($objectiveId, $objectiveTexts)
Parameter | Type | Description |
---|---|---|
$objectiveId | string | The Id which can be used to call RemoveMissionObjective or SetMissionObjective (in order to update it again) later. |
$objectiveTexts | array | The array of translated objective texts. |
Example:
$MissionContext->SetMissionObjective('killEnemies', array('EN' => 'Kill the first three enemies', 'DE' => 'Zerstöre die ersten drei Feinde.')); //Create
$MissionContext->SetMissionObjective('killEnemies', array('EN' => 'Kill all remaining enemies', 'DE' => 'Zerstöre alle verbleibenden Feinde.')); //Update
SetMissionFailed()
Ends the mission with a fail.
$MissionContext->SetMissionFailed($loseTexts)
Parameter | Type | Description |
---|---|---|
$loseTexts | array | The array of translated texts why the mission was lost. |
Example:
$MissionContext->SetMissionFailed(array('EN' => 'The timer has expired.', 'DE' => 'Die Zeit ist abgelaufen.'));
SetMissionSuccessful()
Ends the mission with a win. Will trigger the loot distribution.
$MissionContext->SetMissionSuccessful($winTexts)
Parameter | Type | Description |
---|---|---|
$winTexts | array | The array of translated texts why the mission was won. |
Example:
$MissionContext->SetMissionSuccessful(array('EN' => 'All enemies have been defeated.', 'DE' => 'Alle Feinde wurden zerstört.'));
SetRegion()
Defines a region on the map. A region can be used for a in-region trigger or outside-region trigger, or to add/remove obstacles. This function has an overload for two region types:
$MissionContext->SetRegion($regionId, $topLeftCoordinates, $size); //Rectangle
$MissionContext->SetRegion($regionId, $centerCoordinates, $radius); //Circle
Parameter | Type | Description |
---|---|---|
$regionId | string | The Id of the region which can be used for the AddRegionTrigger or AddOutsideRegionTrigger commands. |
$topLeftCoordinates | array | The x and z coordinates of the top left corner of the rectangle. |
$size | array | The width and height of the rectangle. |
$centerCoordinates | array | The x and z coordinates of the center of the circle. |
$radius | integer | The radius of the circle. |
Examples:
$MissionContext->SetRegion('myRectangle, array(10, 12), array(5, 5));
$MissionContext->SetRegion('myCircle', array(10, 12), 4);
SetShipBehaviour()
Changes the current AI behaviour for the ship. Works for non-player ships only.
$MissionContext->SetShipBehaviour($shipId, $behaviour);
Parameter | Type | Description |
---|---|---|
$shipId | integer | The Id of the ship which has been retreived from the PlayersShipList or via the AddShip command. |
$behaviour | string | The new ship behaviour. Valid values are: hold, follow. |
Examples:
$MissionContext->SetShipBehaviour(1, 'hold');
$MissionContext->SetShipBehaviour($myShipId, 'follow');
SetShipOwner()
Changes the owner of a ship.
$MissionContext->SetShipOwner($shipId, $ownerId);
Parameter | Type | Description |
---|---|---|
$shipId | integer | The Id of the ship which has been retreived from the PlayersShipList or via the AddShip command. |
$ownerId | string | The player Id of the new owner of the ship. X for enemy, Y for neutral, or from the PlayersList |
Examples:
$MissionContext->SetShipOwner(1,'X');
$MissionContext->SetShipOwner($myShipId, General::PlayerOne);
SetShipPosition()
Changes the current location of a ship.
$MissionContext->SetShipPosition($shipId, $coordinates, $playJumpAnimation);
Parameter | Type | Description |
---|---|---|
$shipId | integer | The Id of the ship which has been retreived from the PlayersShipList or via the AddShip command. |
$coordinates | array | The x,y,z coordinates where the ship should be located |
$playJumpAnimation | boolean | Play the jump portal animation at previous and new location, or not. |
Examples:
$MissionContext->SetShipPosition(1, array(1, 0, 10), true);
$MissionContext->SetShipPosition($myShipId, $someLocation, false);
SetTimer()
Adds or updates a timer. It can count down secretly or be displayed (with a title) to the players.
$MissionContext->SetTimer($timerId, $seconds, $display, $timerTexts);
Parameter | Type | Description |
---|---|---|
$timerId | string | The Id of the timer which can be used for the RemoveTimer or SetTimer (to update it later) commands, and which is passed to the OnTimerExpired event handler. |
$seconds | integer | The remaining seconds on the timer until expiration. |
$display | boolean | Defines if the timer is visible to the players. |
$timerTexts | array | The translated titles of the timer. Mandatory, if $display = true. |
Example:
$MissionContext->SetTimer('myTimer', 60, false);
$MissionContext->SetTimer('myTimer', 30, true, array('EN' => 'Remaining time until attack wave', 'DE' => 'Verbleibende Zeit bis Angriffswelle'));