Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ES PR: NPC Travel Instructions (#8621) #33

Open
wants to merge 16 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions wiki/CreatingMissions.md
Original file line number Diff line number Diff line change
Expand Up @@ -541,6 +541,15 @@ npc (save | kill | board | assist | disable | "scan cargo" | "scan outfits" | ev
near <system> [[<min#>] <max#>]
distance [<min#>] <max#>
planet <name>
waypoint [<system>...]
waypoint
<location filter>...
destination [<planet>]
destination
<location filter>
stopover [<planet>...]
stopover
<location filter>...
dialog <text>
<text>...
conversation <name>
Expand All @@ -565,6 +574,8 @@ Each `npc` tag may have one or more tags following it, specifying what the playe
* `accompany`: You can only complete the mission if all members of this NPC are in the same system as you. Prior to **v. 0.10.0**, the `accompany` tag also implicitly had the behavior of the `save` tag. Now, ships that have been destroyed or captured don't count toward the accompany objective, and the `save` tag must be given to npc ships that you want to both be alive and with the player.
* `capture`: To complete the mission, the player must capture the given NPC. Capturing an NPC also counts as destroying it for the purposes of the mission, so this objective can't be combined with an objective like accompany or save.
* `provoke`: To complete the mission, the player must provoke the given NPC. Provocation occurs when an NPC is friendly and is made hostile by the player attacking it.
* `land`: To complete the mission, the given NPC must have first landed permanently at its destination, or land at the same time that the player does. **(v. 0.10.11)**
* `outrun`: You cannot complete the mission if the NPC has landed at its final destination. **(v. 0.10.11)**

```html
to (spawn | despawn)
Expand Down Expand Up @@ -648,6 +659,40 @@ planet <name>
```
This specifies the exact name of the starting planet for all ships in the NPC definition. A specified starting planet allows the NPCs to depart from a planet other than that which the player is landed on. If the NPCs do not start in the system in which the named planet is located, or the NPCs have an "entering" personality, this value is ignored.

```html
waypoint [<system>...]
waypoint
<location filter>...
```

Beginning with **v. 0.10.11**, NPCs can be given a set of one or more waypoints to navigate to, as above. This overrides all personality-defined travel directives like `staying`. Specifying waypoints causes all ships in the NPC to navigate towards them in the order that they are specified (although systems defined by a [location filter](LocationFilters) will be visited after explicitly named ones). If no value is specified, the mission destination system will be used instead. If a system is inaccessible, it will be removed in-flight. When all waypoints have been visited, the NPC will fall back on any orders defined by its personality.

If an NPC has the `uninterested` personality, it will ignore its waypoints.

```html
destination [<planet>]
destination
<location filter>
```

Beginning with **v. 0.10.11**, NPCs can be given a final `destination` planet to land on. If an NPC enters its destination system and has visited all of its `stopover`s (if any are defined), it will land on the selected planet, permanently satisfying the `land` objective and failing the `outrun` objective. If the destination is also the mission destination planet, the NPC will also permanently satisfy the `accompany` objective. The NPC will not take off after landing. If no value is specified, the mission destination planet will be used instead.

If an NPC has the `uninterested` personality, it will not attempt to land on its destination planet. However, if it does land on the planet anyways, it will act the same as an "interested" NPC.

NPCs do not automatically navigate to their destination planet. In order to do so, they require `waypoint`s.

```html
stopover [<planet>...]
stopover
<location filter>...
```

Beginning with **v. 0.10.11**, NPCs can be given a set of one or more `stopover` planets to visit. If an NPC enters a system containing a `stopover`, it will temporarily land on that planet. It will not satisfy the `land` objective, nor will it fail the `outrun` objective. Unlike waypoints, and similar to mission stopovers, `stopover` planets can be visited in any order. If no value is specified for a stopover, the mission destination planet will be used instead.

If an NPC has the `uninterested` personality, it will not attempt to land on its stopover planets. However, if it lands on the planet anyways, it will fulfill the stopover.

NPCs do not automatically navigate to stopover planets. In order to do so, they require `waypoint`s.

```html
dialog <text>
<text>...
Expand Down