Skip to content

Commit

Permalink
Merge branch 'master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
tibetiroka authored Aug 14, 2024
2 parents c7505a1 + ab2a55e commit ff068e2
Show file tree
Hide file tree
Showing 12 changed files with 76 additions and 22 deletions.
Empty file added .codespell.exclude
Empty file.
1 change: 1 addition & 0 deletions .codespell.words.exclude
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
grey
1 change: 1 addition & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@
**Typo fix**

(If this PR is to include details on a new feature or a change to a feature, include a link to the PR that makes the corresponding change to Endless Sky.)
https://github.com/endless-sky/endless-sky/pull/<number>

## Summary
28 changes: 28 additions & 0 deletions .github/workflows/checks.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Check

on:
push:
branches:
- master
pull_request:
types: [opened, synchronize]

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
spellcheck:
name: Spelling
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
show-progress: false
- uses: codespell-project/actions-codespell@master
with:
builtin: clear,en-GB_to_en-US
path: wiki/
exclude_file: .codespell.exclude
ignore_words_file: .codespell.words.exclude
7 changes: 4 additions & 3 deletions wiki/CreatingInterfaces.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ interface <name> [<anchor>]
center <x#> <y#> [<anchor>]
dimensions <x#> <y#>
[colored]
(label <text>) | (string <name>) | (button <key> <text>)
(label <text>) | (string <name>) | (button <key> <text>) | ("dynamic button" <key> <name>)
from <x#> <y#> [<anchor>]
[color <color>]
width <width#>
Expand Down Expand Up @@ -209,7 +209,7 @@ If the `colored` child node is present, then a custom color can be set by the ga
## Labels, strings, and buttons

```html
(label <text>) | (string <name>) | (button <key> <text>)
(label <text>) | (string <name>) | (button <key> <text>) | ("dynamic button" <key> <name>)
from <x#> <y#> to <x#> <y#> [<anchor>]
size <size#>
color <color>
Expand All @@ -221,8 +221,9 @@ Defines a location for text to be drawn.
In the case of a label, the given text will be drawn directly.
With a string, a name is given, and the game sets the text at runtime, selecting this text location with that name.
A button is similar to a label, except it also accepts a key token. The first character of this token will be sent as keyboard input if the bounding box for this button is clicked while it is visible and active.
A dynamic button **(v. 0.10.5)** is a combination of a button and a string element. It has the functionality of a button, but its caption is retrieved at runtime.

Size defines the font size of the text. The vanilla game supports 12 and 14.
Size defines the font size of the text. The vanilla game supports 14 and 18.

Color sets the named color that will be used for the text when it is visible and active.
If no color is given, the following defaults will be used:
Expand Down
5 changes: 3 additions & 2 deletions wiki/CreatingMissions.md
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,7 @@ These placeholders will be substituted in any text in the following places:
* the mission description
* dialog messages contained in the mission
* conversations contained in the mission
* custom substitutions defined in the mission **(v. 0.10.9)**

For example, the mission description might be, "Deliver `<cargo>` to `<destination>` by `<date>`."

Expand Down Expand Up @@ -663,7 +664,7 @@ If you want to retrieve passengers or cargo by boarding a ship, set up the missi
ship <model> <name>
```

This specifies a single ship as an NPC. The first argument is the model type (or named variant), such as "Falcon", or "Star Barge (Armed)". The second is the ship's name.
This specifies a single ship as an NPC. The first argument is the model type (or named variant), such as "Falcon", or "Star Barge (Armed)". The second is the ship's name. Beginning in **v. 0.10.9**, phrases and substitutions are expanded NPC ship names.

If you want to customize an NPC (for example, having it start out with a particular cargo), you will need to define a variant of the ship and then reference that variant here. Placing the entire ship definition within the NPC definition is supported (because that is how NPC ships are loaded from a saved game) but will not work properly if the ship definition contains any outfits that are not defined yet when the mission definition is parsed. When loading NPCs from saved games, the rest of the game data has finished loading, but this is not otherwise guaranteed.

Expand Down Expand Up @@ -798,7 +799,7 @@ Beginning in **v. 0.9.15**, if the outfit being gifted has the "map" attribute,
give ship <model> [<name>]
```

Starting in **v. 0.9.13**, missions can gift ships to the player. The named ship model is given to the player. This ship model can be a [ship variant](https://github.com/endless-sky/endless-sky/wiki/CreatingShips#variants). It is optional that the given ship has a name, but if no name is provided then a random name will be generated from the civilian phrase.
Starting in **v. 0.9.13**, missions can gift ships to the player. The named ship model is given to the player. This ship model can be a [ship variant](https://github.com/endless-sky/endless-sky/wiki/CreatingShips#variants). It is optional that the given ship has a name, but if no name is provided then a random name will be generated from the civilian phrase. Beginning in **v. 0.10.9**, substitutions and phrases are expanded in gift ship names.

```html
(give | take) ship <model> [<name>]
Expand Down
28 changes: 15 additions & 13 deletions wiki/CreatingOutfits.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ Most attributes are given as a single number, but there are a few "special" attr

* `description`: a paragraph of text to show in the outfitter. To define multiple paragraphs, you can add more than one "description" line.

Unless otherwise states, other outfit attributes will stack additively between multiple outfits and can only have values greater than 0. The other attributes include the following:
Unless otherwise stated, other outfit attributes will stack additively between multiple outfits and can only have values greater than 0. The other attributes include the following:

* These attributes are basic attributes that practically every outfit will have.

Expand Down Expand Up @@ -115,17 +115,17 @@ Unless otherwise states, other outfit attributes will stack additively between m

* `"shield fuel"`: the amount of fuel that shield regeneration consumes when recharging at the full rate. **(v. 0.9.9)** Beginning in **v. 0.9.13**, this value is capable of being negative, causing shield generation to grant fuel.

* `"shield delay"`: the number of frames that must pass without taking shield damage in order for shield generation to begin. **(v. 0.9.13)** Beginning in **v. 0.10.7**, this only impacts the disabled shield attributes described below.
* `"shield delay"`: the number of frames that must pass without taking shield damage in order for shield generation to begin. **(v. 0.9.13)** Beginning in **v. 0.10.7**, this only impacts the delayed shield attributes described below.

* `"depleted shield delay"`: the number of frames that must pass after the shields have been depleted (i.e. reached 0) in order for shield generation to begin. **(v. 0.9.13)** Beginning in **v. 0.10.7**, this only impacts the disabled shield attributes described below.
* `"depleted shield delay"`: the number of frames that must pass after the shields have been depleted (i.e. reached 0) in order for shield generation to begin. **(v. 0.9.13)** Beginning in **v. 0.10.7**, this only impacts the delayed shield attributes described below.

* `"disabled shield generation"`: shield generation that is only active when the above shield delay timers have hit zero. **(v. 0.10.7)**
* `"delayed shield generation"`: shield generation that is only active when the above shield delay timers have hit zero. **(v. 0.10.7)**

* `"disabled shield energy"`: shield energy that is only active when the above shield delay timers have hit zero. **(v. 0.10.7)**
* `"delayed shield energy"`: shield energy that is only active when the above shield delay timers have hit zero. **(v. 0.10.7)**

* `"disabled shield heat"`: shield heat that is only active when the above shield delay timers have hit zero. **(v. 0.10.7)**
* `"delayed shield heat"`: shield heat that is only active when the above shield delay timers have hit zero. **(v. 0.10.7)**

* `"disabled shield fuel"`: shield fuel that is only active when the above shield delay timers have hit zero. **(v. 0.10.7)**
* `"delayed shield fuel"`: shield fuel that is only active when the above shield delay timers have hit zero. **(v. 0.10.7)**

* `"high shield permeability"`: The permeability of your shields while they are at 100% strength. A shield which is permeable allows some damage to bleed through to the hull. For example, a permeability of 10% means that 90% of the damage hits the shields and 10% hits the hull. As shield strength drops, the permeability of your shields approaches the low shield permeability value. **(v. 0.10.1)**

Expand All @@ -141,17 +141,17 @@ Unless otherwise states, other outfit attributes will stack additively between m

* `"hull fuel"`: the amount of fuel that hull repair consumes when recharging at the full rate. **(v. 0.9.9)** Beginning in **v. 0.9.13**, this value is capable of being negative, causing hull repairs to grant fuel.

* `"repair delay"`: the number of frames that must pass without taking hull damage in order for hull repairs to begin. **(v. 0.9.13)** Beginning in **v. 0.10.7**, this only impacts the disabled hull repair attributes described below.
* `"repair delay"`: the number of frames that must pass without taking hull damage in order for hull repairs to begin. **(v. 0.9.13)** Beginning in **v. 0.10.7**, this only impacts the delayed hull repair attributes described below.

* `"disabled repair delay"`: the number of frames that must pass without taking hull damage after the ship has been disabled in order for hull repairs to begin. Note that the delay timers for both hull and shields do not decrease while the ship is unable to repair itself (i.e. it is disabled), so this attribute is the time after the ship has been assisted for repairs to start. **(v. 0.9.13)** Beginning in **v. 0.10.7**, this only impacts the disabled hull repair attributes described below.
* `"disabled repair delay"`: the number of frames that must pass without taking hull damage after the ship has been disabled in order for hull repairs to begin. Note that the delay timers for both hull and shields do not decrease while the ship is unable to repair itself (i.e. it is disabled), so this attribute is the time after the ship has been assisted for repairs to start. **(v. 0.9.13)** Beginning in **v. 0.10.7**, this only impacts the delayed hull repair attributes described below.

* `"disabled hull repair rate"`: hull repair rate that is only active when the above repair delay timers have hit zero. **(v. 0.10.7)**
* `"delayed hull repair rate"`: hull repair rate that is only active when the above repair delay timers have hit zero. **(v. 0.10.7)**

* `"disabled hull energy"`: hull energy that is only active when the above repair delay timers have hit zero. **(v. 0.10.7)**
* `"delayed hull energy"`: hull energy that is only active when the above repair delay timers have hit zero. **(v. 0.10.7)**

* `"disabled hull heat"`: hull heat that is only active when the above repair delay timers have hit zero. **(v. 0.10.7)**
* `"delayed hull heat"`: hull heat that is only active when the above repair delay timers have hit zero. **(v. 0.10.7)**

* `"disabled hull fuel"`: hull fuel that is only active when the above repair delay timers have hit zero. **(v. 0.10.7)**
* `"delayed hull fuel"`: hull fuel that is only active when the above repair delay timers have hit zero. **(v. 0.10.7)**

* These attributes change the point at which a ship becomes disabled. The default point at which a ship becomes disabled is dictated by the equation `hull * max(.15, min(.45, 10. / sqrt(hull)))`. **(v. 0.9.13)**

Expand Down Expand Up @@ -654,6 +654,8 @@ An outfit that provides a weapon contains an extra set of attributes inside a `w

* `"offset" <x#> <y#>`: an *x,y* coordinate pair that cause the submunition projectile's generated location to be shifted from the parent projectile's death location by the given number of units in the x and y directions. Axes orientation is the standard Cartesian, where `+x` is "rightward" and `+y` is "upward." **(v. 0.9.15)**

* `"spawn on" <type>...`: a list defining when the submunition can spawn. Accepted values are: `natural` for natural death of the source projectile, and `anti-missile` for destruction of the source projectile by an anti-missile system. Omitting this line means that the submunition is spawned only when the parent projectile dies naturally. **(v. 0.10.9)**

The following attributes are tags (just the word by itself, no value following it) which alter how a weapon fires or the behavior of its projectiles.

* `stream`: makes a weapon fire in "stream" mode (multiple copies of this weapon take turns firing) even if it is susceptible to anti-missile. Most weapons fire in stream mode by default. **(v. 0.9.0)**
Expand Down
21 changes: 20 additions & 1 deletion wiki/CreatingPlugins.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
The easiest way to test out new content for Endless Sky is to create a plugin. An example plugin is available [here](https://endless-sky.github.io/example-plugin.zip). For each operating system, there are two places where the game looks for plugins, but generally you should only use the second option:
The easiest way to test out new content for Endless Sky is to create a plugin. An example plugin is available [here](https://endless-sky.github.io/example-plugin.zip).

There are two places where the game looks for a plugins folder, the "resource" directory, where the base game data is, and the "config" directory, where user specific data, like save files and preferences are stored.
Generally, you should only use the config directory (second in the list below).
This list gives the default locations of the plugins folder in the resource and config directories, respectively, for each operating system.

#### Linux
* /usr/share/games/endless-sky/plugins/
Expand Down Expand Up @@ -39,6 +43,21 @@ plugins/
...
```

## Finding errors

Alongside the plugins folder in the config directory, Endless Sky will create a file named "errors.txt".

Linux:
* ~/.local/share/endless-sky/errors.txt
Windows:
* %APPDATA%\endless-sky\errors.txt
macOS:
* ~/Library/Application Support/endless-sky/errors.txt

Any errors the game encounters while loading data or in gameplay will be written to this file.
The first time an error is encountered in a session, the existing content of this file will be deleted and overwritten, so the content reflects the most recent time errors were encountered. Note, however, that if two instances of the game are running, only one will be able to modify this file.
The errors reported here can be useful in identifying syntactic issues in plugin data, or finding mismatches in image properties, such as different frames of a sprite having different dimensions, or sprites having odd dimensions (which can lead to blurriness).

## Editing data files

When editing the game data, you should use a text editor that is designed for writing computer code. The data file format is represented by how indented each line is, so **editing the data in a word processor like Microsoft Word or in a program like Notepad that does not support automatic indentation will be difficult and frustrating**. If you're on Windows, [Notepad++](https://notepad-plus-plus.org/) is a good, free text editor you can use.
Expand Down
2 changes: 1 addition & 1 deletion wiki/CreatingSubstitutions.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ The three types of substitutions, hardcoded, mission-specific, and global, have
<text> <replacement>
```

Substitutions simply search for the text on the left and replace it with the text on the right whenever it is found within a piece of text. As mentioned above, multiple replacements of the same text can be defined, but whichever replacement is evaluated last is the one that gets used.
Substitutions simply search for the text on the left and replace it with the text on the right whenever it is found within a piece of text. As mentioned above, multiple replacements of the same text can be defined, but whichever replacement is evaluated last is the one that gets used. Beginning in **v. 0.10.9**, substitutions can contain phrases and other substitutions as well.

A substitutions node can define multiple text replacements at once.

Expand Down
2 changes: 1 addition & 1 deletion wiki/Home.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ These pages generally describe the game syntax in accordance with the [data form

### Compiling or modifying the source code

* [Build instructions](https://github.com/endless-sky/endless-sky/blob/master/docs/readme-developer.md)
* [Build instructions](https://github.com/endless-sky/endless-sky/blob/master/docs/readme-cmake.md)
* [Contributing to the code](ContributingCode)
* [C++ style guide](https://endless-sky.github.io/styleguide/styleguide.xml)

Expand Down
1 change: 1 addition & 0 deletions wiki/StoryIdeas.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ The military "strength" of each civilization also depends on how populous they a

The existing aliens are grouped roughly into tiers, where a heavy warship of a civilization on one tier is a match for a light warship of the next tier up:

* Tier 0.5: Incipias
* Tier 0.8: Gegno
* Tier 1: Humans
* Tier 1.2: Hai
Expand Down
2 changes: 1 addition & 1 deletion wiki/_Sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@

**Compiling or modifying the source code**

* [Build instructions](https://github.com/endless-sky/endless-sky/blob/master/docs/readme-developer.md)
* [Build instructions](https://github.com/endless-sky/endless-sky/blob/master/docs/readme-cmake.md)
* [Contributing to the code](ContributingCode)
* [C++ style guide](https://endless-sky.github.io/styleguide/styleguide.xml)

Expand Down

0 comments on commit ff068e2

Please sign in to comment.