From 0c9eeebe2b95dd39cdb768d1473a2766495d132a Mon Sep 17 00:00:00 2001 From: tibetiroka Date: Sun, 23 Jun 2024 13:47:24 +0200 Subject: [PATCH 01/13] things --- wiki/CreatingMissions.md | 9 +++++---- wiki/CreatingSubstitutions.md | 2 +- wiki/MapData.md | 13 +++++++++++-- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/wiki/CreatingMissions.md b/wiki/CreatingMissions.md index e52522f2..2fe09f12 100644 --- a/wiki/CreatingMissions.md +++ b/wiki/CreatingMissions.md @@ -225,6 +225,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 `` to `` by ``." @@ -662,7 +663,7 @@ If you want to retrieve passengers or cargo by boarding a ship, set up the missi ship ``` -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. @@ -753,7 +754,7 @@ dialog phrase This gives a message to be displayed in a dialog message to the user. If the trigger is `on offer`, the dialog will have "accept" and "decline" buttons. Otherwise, it is a purely informational message and only an "okay" button is shown. -Each token following the `dialog` tag will be a separate paragraph. The first token may appear either on the same line or indented on a subsequent line. +Each token following the `dialog` tag will be a separate paragraph. The first token may appear either on the same line or indented on a subsequent line. Beginning in **v. 0.10.9**, each line can also be given a `to display` node with a [condition set](Player-Conditions). `dialog phrase` can be used to create a single phrase that is used for multiple dialogs, instead of needing to copy and paste the same dialog over and over again. An example of where this is used in game is for `on visit` dialogs. @@ -784,13 +785,13 @@ If the outfit cannot be installed due to lack of space, a warning message will b The `require` keyword checks that the player has at least one of the named outfit, but does not take it away. For example, this could be used in the `on offer` phase to only offer a mission to players who have a "Jump Drive". Starting with **v. 0.9.9**, a specific quantity can be required, including 0 (i.e. the player cannot have any). If a non-zero quantity is specified, then the player's flagship is checked alongside the cargo holds of all in-system escorts, or only the flagship's cargo if this is a boarding mission. If a quantity of zero is specified, then the player cannot have that outfit anywhere on any of their ships. -Beginning in **v. 0.9.15**, if the outfit being gifts has the "map" attribute, then the player will be given the information from that map as if they had purchased it from the outfitter. If an outfit with the "map" attribute is being required by a mission and the required value is 0, then the player must have the nearest systems that match the size of the map outfit unvisited, but if the required value is greater than 0 then the nearest systems must be visited. +Beginning in **v. 0.9.15**, if the outfit being gifted has the "map" attribute, then the player will be given the information from that map as if they had purchased it from the outfitter. If an outfit with the "map" attribute is being required by a mission and the required value is 0, then the player must have the nearest systems that match the size of the map outfit unvisited, but if the required value is greater than 0 then the nearest systems must be visited. ```html give ship [] ``` -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 [] diff --git a/wiki/CreatingSubstitutions.md b/wiki/CreatingSubstitutions.md index 93fb9866..aa7abe42 100644 --- a/wiki/CreatingSubstitutions.md +++ b/wiki/CreatingSubstitutions.md @@ -23,7 +23,7 @@ The three types of substitutions, hardcoded, mission-specific, and global, have ``` -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. diff --git a/wiki/MapData.md b/wiki/MapData.md index ec683b26..350d5ed5 100644 --- a/wiki/MapData.md +++ b/wiki/MapData.md @@ -471,13 +471,22 @@ The [music](#ambient-music) that is played while landed on this planet. description ``` -The description that is shown when first landing on a planet. +The description that is shown when first landing on a planet. Beginning in **v. 0.10.9**, each line can also be given a `to display` node with a [condition set](Player-Conditions): +```html +description "This planet is a very nice place." + to display + not "terrible things happened" +description "Frog People invaded and the planet is now almost devoid of life." + to display + has "terrible things happened" +``` + ```html spaceport ``` -The description of the spaceport after clicking the spaceport button. +The description of the spaceport after clicking the spaceport button. Beginning in **v. 0.10.9**, each line can also be given a `to display` node with a [condition set](Player-Conditions). ```html port [] From e8192accbda62223da40e07dc1ecd3ad95a6eeac Mon Sep 17 00:00:00 2001 From: tibetiroka Date: Mon, 24 Jun 2024 10:01:27 +0200 Subject: [PATCH 02/13] mh --- wiki/CreatingMissions.md | 5 ++--- wiki/CreatingSubstitutions.md | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/wiki/CreatingMissions.md b/wiki/CreatingMissions.md index 2fe09f12..00c8b6df 100644 --- a/wiki/CreatingMissions.md +++ b/wiki/CreatingMissions.md @@ -225,7 +225,6 @@ 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 `` to `` by ``." @@ -663,7 +662,7 @@ If you want to retrieve passengers or cargo by boarding a ship, set up the missi ship ``` -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. +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. 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. @@ -791,7 +790,7 @@ Beginning in **v. 0.9.15**, if the outfit being gifted has the "map" attribute, give ship [] ``` -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. +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. ```html (give | take) ship [] diff --git a/wiki/CreatingSubstitutions.md b/wiki/CreatingSubstitutions.md index aa7abe42..93fb9866 100644 --- a/wiki/CreatingSubstitutions.md +++ b/wiki/CreatingSubstitutions.md @@ -23,7 +23,7 @@ The three types of substitutions, hardcoded, mission-specific, and global, have ``` -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. +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. A substitutions node can define multiple text replacements at once. From 844153260ab742a167ce05e339fb1a6cff0e586a Mon Sep 17 00:00:00 2001 From: tibetiroka Date: Mon, 24 Jun 2024 10:12:42 +0200 Subject: [PATCH 03/13] Update CreatingMissions.md --- wiki/CreatingMissions.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/wiki/CreatingMissions.md b/wiki/CreatingMissions.md index e52522f2..e5798914 100644 --- a/wiki/CreatingMissions.md +++ b/wiki/CreatingMissions.md @@ -727,6 +727,14 @@ There are eleven events that can trigger a response of some sort: * `daily`: every time the date advanced (every jump between systems and departure from a planet). (**v. 0.9.15**) * `disabled`: if the player's flagship becomes disabled. (**v. 0.10.3**) +Beginning in **v. 0.10.9**, most of these triggers will not activate when the mission is already failed. In some cases, it still might be useful to keep track of the player until they land even if the mission failed. In these cases, you can make the triggers work by using `"can trigger after failure"`. +```html +on disabled + "can trigger after failure" + ... +``` + + Beginning with **v. 0.9.9**, the `enter` action supports determining the system with a [location filter](LocationFilters). This filter is formatted in the same manner as `source` or `destination` for missions, or `system` for NPCs. ```html on enter From 7a4698235e7204702d957ead7135d34d90eb19dd Mon Sep 17 00:00:00 2001 From: tibetiroka <68112292+tibetiroka@users.noreply.github.com> Date: Mon, 24 Jun 2024 12:38:09 +0200 Subject: [PATCH 04/13] Update wiki/CreatingMissions.md Co-authored-by: Loymdayddaud <145969603+TheGiraffe3@users.noreply.github.com> --- wiki/CreatingMissions.md | 1 - 1 file changed, 1 deletion(-) diff --git a/wiki/CreatingMissions.md b/wiki/CreatingMissions.md index e5798914..186d027f 100644 --- a/wiki/CreatingMissions.md +++ b/wiki/CreatingMissions.md @@ -734,7 +734,6 @@ on disabled ... ``` - Beginning with **v. 0.9.9**, the `enter` action supports determining the system with a [location filter](LocationFilters). This filter is formatted in the same manner as `source` or `destination` for missions, or `system` for NPCs. ```html on enter From 102b8a5e010c478a7bd988e933a2de6436dba7b3 Mon Sep 17 00:00:00 2001 From: tibetiroka <68112292+tibetiroka@users.noreply.github.com> Date: Mon, 24 Jun 2024 12:38:53 +0200 Subject: [PATCH 05/13] Update wiki/MapData.md Co-authored-by: Loymdayddaud <145969603+TheGiraffe3@users.noreply.github.com> --- wiki/MapData.md | 1 - 1 file changed, 1 deletion(-) diff --git a/wiki/MapData.md b/wiki/MapData.md index 350d5ed5..0f21a923 100644 --- a/wiki/MapData.md +++ b/wiki/MapData.md @@ -481,7 +481,6 @@ description "Frog People invaded and the planet is now almost devoid of life." has "terrible things happened" ``` - ```html spaceport ``` From 09ebef1757c5cacaa6e27f7fbcd7f2d4459000d6 Mon Sep 17 00:00:00 2001 From: mOctave <73318970+mOctave@users.noreply.github.com> Date: Tue, 9 Jul 2024 18:21:26 -0700 Subject: [PATCH 06/13] Include default values of planetary "bribe" and tribute threshold in MapData (#25) --- wiki/MapData.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wiki/MapData.md b/wiki/MapData.md index 0f21a923..27e577bc 100644 --- a/wiki/MapData.md +++ b/wiki/MapData.md @@ -545,6 +545,7 @@ security The behavior that this planet has when the player has illegal goods or outfits. The bribe number is a multiplier that modifies the severity of any fines, while the security number is a value between 0 and 1 that dictates the chance of a player's ship being scanned. +If no bribe is specified, then a default bribe of 0.01 is used. If no security is specified, then a default security of 0.25 is used. ```html @@ -573,7 +574,7 @@ The number of credits that will be paid to the player per day if this planet has threshold ``` -The combat rating that the player must have before being capable of demanding tribute from this planet. +The combat rating that the player must have before being capable of demanding tribute from this planet. If no threshold is specified, then a default threshold of 4000 is used. ```html fleet From 9a803e8f6feca15293dcfeaea4fd81150c24ab72 Mon Sep 17 00:00:00 2001 From: Loymdayddaud <145969603+TheGiraffe3@users.noreply.github.com> Date: Sat, 27 Jul 2024 13:02:59 +0300 Subject: [PATCH 07/13] Add Incipias to StoryIdeas (#29) --- wiki/StoryIdeas.md | 1 + 1 file changed, 1 insertion(+) diff --git a/wiki/StoryIdeas.md b/wiki/StoryIdeas.md index 081da745..18bdae30 100644 --- a/wiki/StoryIdeas.md +++ b/wiki/StoryIdeas.md @@ -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 From ced4fccba59f371cff6137603e857c19c6df1afa Mon Sep 17 00:00:00 2001 From: Anarchist2 <60202690+Anarchist2@users.noreply.github.com> Date: Mon, 29 Jul 2024 15:28:24 +1000 Subject: [PATCH 08/13] Link to the updated build instructions --- wiki/Home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wiki/Home.md b/wiki/Home.md index 52105211..e1817e41 100644 --- a/wiki/Home.md +++ b/wiki/Home.md @@ -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) From 88cb3fafa007451469fe5285dd03d08696ea7b5c Mon Sep 17 00:00:00 2001 From: Anarchist2 <60202690+Anarchist2@users.noreply.github.com> Date: Mon, 29 Jul 2024 15:29:22 +1000 Subject: [PATCH 09/13] On the sidebar as well --- wiki/_Sidebar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wiki/_Sidebar.md b/wiki/_Sidebar.md index 6f8358c2..a2ad5b6e 100644 --- a/wiki/_Sidebar.md +++ b/wiki/_Sidebar.md @@ -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) From 8ceab39e62ab7eddae81f86a316e2d1b83b14e6d Mon Sep 17 00:00:00 2001 From: tibetiroka Date: Fri, 9 Aug 2024 18:30:28 +0200 Subject: [PATCH 10/13] change --- wiki/SpriteData.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/wiki/SpriteData.md b/wiki/SpriteData.md index b5f81725..a0d75f7f 100644 --- a/wiki/SpriteData.md +++ b/wiki/SpriteData.md @@ -28,7 +28,7 @@ sprite sprite ``` -The name of the sprite should be a path relative to the **images** folder, and not including frame numbers, [blending mode specifiers](BlendingModes), or the ".png" or ".jpg" extension. For example, the "blaster impact" effect is an animation with four frames: +The name of the sprite should be a path relative to the **images** folder, and not including frame numbers, [blending mode specifiers](BlendingModes), or the file extension. For example, the "blaster impact" effect is an animation with four frames: * images/effect/blaster impact+0.png * images/effect/blaster impact+1.png @@ -37,6 +37,8 @@ The name of the sprite should be a path relative to the **images** folder, and n The `` for this sprite is "effect/blaster impact". The `+` in the file names specifies that the images should use [additive blending](BlendingModes#alpha-blending-vs-additive-blending), and the numbers after the `+` are the frame numbers for the animation. +You can also use `.avif` or `.avifs` files to store all frames of an animation. In this case, you should only have one file matching the sprite name. + ## Scale ```html From 1a2813e88394c82e8fac20cecabcdeb6bfdce80d Mon Sep 17 00:00:00 2001 From: tibetiroka Date: Fri, 9 Aug 2024 18:35:19 +0200 Subject: [PATCH 11/13] change --- wiki/SpriteData.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/wiki/SpriteData.md b/wiki/SpriteData.md index b5f81725..de7605d7 100644 --- a/wiki/SpriteData.md +++ b/wiki/SpriteData.md @@ -28,7 +28,7 @@ sprite sprite ``` -The name of the sprite should be a path relative to the **images** folder, and not including frame numbers, [blending mode specifiers](BlendingModes), or the ".png" or ".jpg" extension. For example, the "blaster impact" effect is an animation with four frames: +The name of the sprite should be a path relative to the **images** folder, and not including frame numbers, [blending mode specifiers](BlendingModes), or the file extension. For example, the "blaster impact" effect is an animation with four frames: * images/effect/blaster impact+0.png * images/effect/blaster impact+1.png @@ -37,6 +37,8 @@ The name of the sprite should be a path relative to the **images** folder, and n The `` for this sprite is "effect/blaster impact". The `+` in the file names specifies that the images should use [additive blending](BlendingModes#alpha-blending-vs-additive-blending), and the numbers after the `+` are the frame numbers for the animation. +The current file formats supported are `.png` and `.jpg`/`.jpeg`. + ## Scale ```html From a5f04c8ba600c85f1bdf8db0a7215fbaf220b9ed Mon Sep 17 00:00:00 2001 From: tibetiroka Date: Fri, 9 Aug 2024 18:37:22 +0200 Subject: [PATCH 12/13] change --- wiki/SpriteData.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/wiki/SpriteData.md b/wiki/SpriteData.md index a43479c6..f5bb9647 100644 --- a/wiki/SpriteData.md +++ b/wiki/SpriteData.md @@ -37,9 +37,7 @@ The name of the sprite should be a path relative to the **images** folder, and n The `` for this sprite is "effect/blaster impact". The `+` in the file names specifies that the images should use [additive blending](BlendingModes#alpha-blending-vs-additive-blending), and the numbers after the `+` are the frame numbers for the animation. -The current file formats supported are `.png` and `.jpg`/`.jpeg`. - -You can also use `.avif` or `.avifs` files to store all frames of an animation. In this case, you should only have one file matching the sprite name. +The current file formats supported for simple images are `.png` and `.jpg`/`.jpeg`. You can also use `.avif`/`.avifs` files to store all frames of an animation. In this case, you should only have one file matching the sprite name. ## Scale From ee8cd4663dae991db895ba636012ec1ea11207e8 Mon Sep 17 00:00:00 2001 From: tibetiroka <68112292+tibetiroka@users.noreply.github.com> Date: Wed, 14 Aug 2024 17:41:07 +0200 Subject: [PATCH 13/13] Update wiki/SpriteData.md --- wiki/SpriteData.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wiki/SpriteData.md b/wiki/SpriteData.md index f5bb9647..43fb6429 100644 --- a/wiki/SpriteData.md +++ b/wiki/SpriteData.md @@ -37,7 +37,7 @@ The name of the sprite should be a path relative to the **images** folder, and n The `` for this sprite is "effect/blaster impact". The `+` in the file names specifies that the images should use [additive blending](BlendingModes#alpha-blending-vs-additive-blending), and the numbers after the `+` are the frame numbers for the animation. -The current file formats supported for simple images are `.png` and `.jpg`/`.jpeg`. You can also use `.avif`/`.avifs` files to store all frames of an animation. In this case, you should only have one file matching the sprite name. +The current file formats supported for simple images are `.png` and `.jpg`/`.jpeg` / `.jpe`. You can also use `.avif`/`.avifs` files to store all frames of an animation. In this case, you should only have one file matching the sprite name. ## Scale