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

Make escorts only pathfind through systems that the player has visited. #6127

Merged
merged 12 commits into from
Dec 17, 2023

Conversation

quyykk
Copy link
Member

@quyykk quyykk commented Jul 18, 2021

Bugfix: This PR fixes #6096

Fix Details

I made AI aware of PlayerInfo so that it knows which systems the player has visited or not. DistanceMap got a new constructor so that you can add a PlayerInfo to its pathfinding for a ship that is not the flagship.

Now escorts will not travel through systems that the player hasn't visisted.

Testing Done

I used the save file to reproduce the issue and fix it.

Save File

The save file from the linked issue above.

@Amazinite Amazinite added the mechanics Things dealing with the mechanics & code of how the game works label Oct 18, 2021
@quyykk
Copy link
Member Author

quyykk commented Nov 27, 2021

Is this solution/PR not wanted? I mean I get that passing a PlayerInfo to AI is not pretty but I'm not really seeing an alternative. Maybe adding a way for GameData to access HasSeen/HasVisited but that's not exactly better either. Or is this fix not wanted? Basically I need some form of feedback :)

@Zitchas
Copy link
Member

Zitchas commented Nov 27, 2021

In my experience, the Devs are pretty quick to slap a "unlikely" label on stuff they don't think will get into the game. And usually say something to that effect. And Amazinite has put the mechanics label on it, which tends to indicate stuff that they want to work on. So it's most likely that they just haven't been able to get to it yet; or haven't felt that they have the time to really dig into this as of yet.

@pepoluan
Copy link

pepoluan commented Apr 4, 2022

The game hasn't already done this??

Ahaha, I thought the game already did this, which is why whenever a new area opened up I rode solo through the space using a JD+HD combo (to save fuel) to map systems in the area...

petervdmeer
petervdmeer previously approved these changes Apr 5, 2022
Copy link
Member

@petervdmeer petervdmeer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice; the actual pathfinding code was already there; the only change that was needed was to pass the PlayerInfo for player-owned escorts.

Copy link
Collaborator

@tehhowch tehhowch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What should we do about a hyperdrive-only escort that has no known route to the flagship system because the player used their JD to get there and didn't buy maps?

Should the player get a message every time they take off that they need to go back / explore sideways?
Should we provide a new escort pip color in the map to highlight "stranded" escorts, and a tooltip as well?
Should we let the escort ship explore on its own, perhaps adding the systems it visits to the player's "seen" systems?
Should we let the escort ship "cheat" and take the shortest path between known paths?
Should we restrict the map view to known-accessible-via-hyperspace-lane-only systems, placing an information "fog-of-war" on star clusters not accessible by hyperlink from the player's current system (no trade info, etc.), completely cutting the player off from their stranded escorts?

source/AI.cpp Outdated Show resolved Hide resolved
DistanceMap(const Ship &ship, const System *destination);
// If a player is given, the path will only include systems that the
// player has visisted.
DistanceMap(const Ship &ship, const System *destination, const PlayerInfo *player = nullptr);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably we should refactor DistanceMap to take an optional set of known systems, rather than a player object.

(We can do that in a sooner-rather-then-later follow-up though.)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need the player object as well to check if a wormhole was visited by the player.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's required by the current implementation, yes. If we're passing in the knowledge of usable systems, passing in the knowledge of usable planets/wormholes is probably expected.

source/DistanceMap.h Outdated Show resolved Hide resolved
@quyykk
Copy link
Member Author

quyykk commented Apr 8, 2022

What should we do about a hyperdrive-only escort that has no known route to the flagship system because the player used their JD to get there and didn't buy maps?

We already have that problem: What happens currently if the flagship system has no links? The same behavior should happen in this case. I think the escort just stays in the system they were in. I think that's fine.

Should the player get a message every time they take off that they need to go back / explore sideways?

No. But we can maybe add something to the escort info display on the lower right to indicate that the escort is stranded.

Should we provide a new escort pip color in the map to highlight "stranded" escorts, and a tooltip as well?

I think that's a good idea.

Should we let the escort ship explore on its own, perhaps adding the systems it visits to the player's "seen" systems?

No, that would be weird.

Should we let the escort ship "cheat" and take the shortest path between known paths?

Nope.

Should we restrict the map view to known-accessible-via-hyperspace-lane-only systems, placing an information "fog-of-war" on star clusters not accessible by hyperlink from the player's current system (no trade info, etc.), completely cutting the player off from their stranded escorts?

Maybe, maybe not, but in any case I think that's for another PR if we were to do that.

@petervdmeer petervdmeer added the waiting on OP The OP needs to provide something, e.g, making requested changes, posting assets, etc. label Apr 23, 2022
@petervdmeer
Copy link
Member

"Waiting on OP" due to open review-comments and unresolved merge-conflict.

@quyykk quyykk removed the waiting on OP The OP needs to provide something, e.g, making requested changes, posting assets, etc. label May 17, 2022
Copy link
Collaborator

@tehhowch tehhowch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Last thing for this PR

@@ -180,6 +185,7 @@ template <class Type>

private:
// Data from the game engine.
const PlayerInfo &player;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How permanent shall this field be?

If "very," then we should remove the PlayerInfo parameter from the non-static class methods.

If "not very," we should add a TODO: remove this field. comment.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tehhowch I'm having a bit of trouble trying to avoid the player field. I would need to pass around 3 sets (seen systems, visited systems, visited planets) around to avoid using player, which isn't that great imo.

So, what would you recommend?

@warp-core warp-core added the waiting on OP The OP needs to provide something, e.g, making requested changes, posting assets, etc. label Aug 14, 2022
@Amazinite Amazinite linked an issue Aug 27, 2022 that may be closed by this pull request
@Amazinite
Copy link
Collaborator

Going through PRs older than three months to find PRs that could be closed.

Closing this PR because Quyykk himself has said that he's not getting to it soon and that he doesn't think it's too important of a change. I'll also note that there has been some discussion of reviving #5979, which would conflict with this change and cause player escorts to become stuck in shrouded systems because of those system being removed from the visited list. If we are to make both changes, then each change needs to keep the other in mind.

@Amazinite Amazinite closed this Jan 7, 2023
@Amazinite Amazinite removed the waiting on OP The OP needs to provide something, e.g, making requested changes, posting assets, etc. label Jan 7, 2023
@Zitchas
Copy link
Member

Zitchas commented Jun 4, 2023

Just a gentle nudge that this - while not a priority - would be much appreciated fix for escort behavior.

@quyykk quyykk reopened this Jun 4, 2023
@quyykk quyykk marked this pull request as draft June 4, 2023 21:38
@quyykk quyykk marked this pull request as ready for review September 4, 2023 11:14
@bene-dictator bene-dictator added the waiting on OP The OP needs to provide something, e.g, making requested changes, posting assets, etc. label Nov 2, 2023
@ziproot
Copy link
Contributor

ziproot commented Nov 2, 2023

It looks like this is waiting on reviewers. There are no merge conflicts and no unaddressed review comments as far as I can tell.

@quyykk quyykk removed the waiting on OP The OP needs to provide something, e.g, making requested changes, posting assets, etc. label Nov 16, 2023
@Amazinite Amazinite merged commit 5c9b49c into endless-sky:master Dec 17, 2023
21 checks passed
Zitchas added a commit to Zitchas/endless-sky that referenced this pull request May 18, 2024
* feat(enhancement): Allow ships to define their center of rotation (endless-sky#9423)

* feat(balance) Nerf Shield Refactor Module (endless-sky#9447)

* ci/cd: Run integration tests without OpenGL (endless-sky#9466)

* chore: Migrate to C++17 (endless-sky#8996)

Co-authored-by: quyykk <quyykk@protonmail.com>

* feat(ui): Added keyboard navigation to the preference and plugin panels (endless-sky#9581)

* fix(ui): Better switching from mouse to keyboard navigation in plugins menu (endless-sky#9610)

* feat(artwork): Unique projectile & hit effect for Ionic Turret (endless-sky#9596)

* feat(enhancement): NPCs can be given a "restricted" personality to follow their government travel restrictions (endless-sky#9412)

* refactor: Resolve some C++17 todo items (endless-sky#9613)

* ci: Make the integration tests a bit more deterministic (endless-sky#9546)

* ci: Use C++ instead of the test_parse scripts (endless-sky#9449)

* refactor: Rename confusingly named variables in Engine (endless-sky#9522)

* feat(mechanics): Make escorts only pathfind through systems that the player has visited (endless-sky#6127)

* fix(build): Fix compilation error on SDL before v2.0.22 (endless-sky#9609)

* fix(typo): Correct grammar around payment replacements (endless-sky#9619)

* feat(ui): Shop keyboard navigation remembers selected column when moving between differently sized rows (endless-sky#9617)

* fix(typo): Typo in "Pookie, Part 3" (endless-sky#9625)

* ci: Don't cancel commits to the main branch (endless-sky#9618)

* ci: Allow and run integration tests on every platform (endless-sky#9607)

* feat(enhancement): New minable payload attributes and prospecting weapons (endless-sky#9397)

* fix(typo): Fix uses of "v" vs "w" in Skadenga + some other tweaks (endless-sky#9622)

Ser -> Captain
`<destination>` -> `<stopovers>` in a mission dialog.

* feat(content): Insert joke about black box in Sheragi quest line (endless-sky#9589)

* feat(ui): Allow "u" and "e" to be used as "Buy/Sell All" shortcuts on the trading panel (endless-sky#9623)

* feat(content): A new set of bounty jobs where the bounty ship enters the source system (endless-sky#9532)

* fix(artwork): Adjust brightness of Core space on map sprite (endless-sky#9434)

* feat(content): Sell Typhoons from Lovelace Labs outfitters shortly after their release (endless-sky#9629)

* feat(enhancement): Create flotsam tractor beams (endless-sky#9398)

* fix(content): Fixed outdated event condition in FW Bloodsea missions (endless-sky#9636)

* feat(content): Diversify the Assisting Merchants boarding missions (endless-sky#9446)

* feat(enhancement): "Shrouded" systems that can't be seen unless in visible range (endless-sky#9396)

* feat(content): Add large Swiftsong Hai transport jobs (endless-sky#9575)

* feat(mechanics): Adjust scaling of scan times with increasing number of scanners (endless-sky#9552)

* feat(ui): Add scrolling to the plugins page for both the plugins list and the selected plugin description (endless-sky#9603)

* fix(mechanics): Consider rings entirely contained within a mask as colliding with it (endless-sky#9644)

Fixes a bug where flotsam could skip past the collection radius around the edge of a sprite and get stuck in the middle of it.

* fix(typo): Add missing punctuation in FW (endless-sky#9646)

* fix(content): Correctly account for whether the player attacked Greenrock in the FW campaign (endless-sky#9647)

* feat(content): Small wording tweaks in the intro missions (endless-sky#9649)

* fix(typo): Pluralize "drive" in mission text (endless-sky#9651)

* feat(content): Change how Sayari refers to humans when translating for the Wanderers (endless-sky#9654)

* fix(ui): Ensure that all steps of the player's travel plan are visible (endless-sky#9624)

* feat(enhancement): Allow projectiles to penetrate through ships, dealing damage multiple times (endless-sky#6276)

* feat(content): Add a carrier variant option for the Kestrel (endless-sky#9653)

* feat(content): Gegno Intro Content Adjustments (endless-sky#9652)

* fix(content): Coalition mission grammar/consistency changes (endless-sky#9633)

* feat(content): New mining-focused ships and outfits (endless-sky#9621)

* feat(content): Add a new pirate territory to the South, including new ships, outfits, and more (endless-sky#9597)

* fix(shader): Fix a shader compilation error that can occur on older OpenGL versions (endless-sky#9667)

* fix(content): Add a location filter to the "remnant cafeteria" news so that they can display (endless-sky#9666)

* fix(typo): Remove erroneous article (endless-sky#9664)

* fix(content): Change Lunarium rescue jobs distances to prevent location overlap (endless-sky#9660)

* refactor(ui): Convert ShopPanel to using the new ScrollVar for its scrolling panes (endless-sky#9645)

* feat(enhancement): Added a message log panel for reviewing past hails and status messages (endless-sky#9246)

* feat(content): You can now ask the Quarg about the Coalition after having joined the Heliarchs or Lunarium (endless-sky#9538)

* feat(content): Change the Ringworld Debris: Quarg conversation to be more vague about the Ringworld's fate (endless-sky#9672)

* fix(ui): Fix segmentation fault when opening the message log (endless-sky#9675)

* fix(typo): Fix various typos (endless-sky#9677)

* fix(ci): Output the reason why an integration test failed if it failed because of a segfault (endless-sky#9678)

* feat(content): Add missions where you transport a Hai film crew to Darkrest (endless-sky#9606)

* feat(content): Add a mission transporting a group of Hai college students to Darkrest (endless-sky#9601)

* feat(content): Add a mining tutorial mission to the Sparrow intro quest (endless-sky#9163)

* fix(typo): Gegno planet description improvements (endless-sky#9680)

* feat(enhancement): Add an action that can be triggered when encountering an NPC (endless-sky#9049)

* feat(input): Tie the state of the caps lock to the state of fast-forward if caps lock is used as the fast-forward key (endless-sky#9676)

* fix(content): Fix location filters for Hai Film Crew missions (endless-sky#9681)

* fix(typo): Fix typos in various missions (endless-sky#9683)

* fix(content): Disable the Gegno Intro if the player has not met the Quarg yet (endless-sky#9684)

* feat(ui): Add a tooltip for the message log key (endless-sky#9685)

* fix(content): Correctly restrict offering of the Hai wormhole warning mission if you've started the Hai Reveal storyline (endless-sky#9688)

* fix(mechanics): Always face the flight direction on takeoff (endless-sky#9687)

* fix(ui): Reset zoom modifier if "Landing zoom" setting is off (endless-sky#9686)

* feat(mechanics): Variants can now add licenses on top of a base model using a licenses node in "add attributes" (endless-sky#9682)

* fix(content): Mention all possible missing objectives in the on visit dialog of "Remnant: Void Sprites 3" (endless-sky#9694)

* fix(content): Add proper location attributes to Clink and Mutiny (endless-sky#9695)

* fix(content): Add missing Nest mining variant (endless-sky#9702)

* fix(typo): Convert various single quotes to double quotes and put punctuation inside quotations (endless-sky#9708)

* fix(segfault): Fix a segfault on losing your ship during boarding (endless-sky#9718)

* fix(mechanics): Only add variant licenses to the base attributes of the ship (endless-sky#9724)

* docs: v0.10.5 changelog (endless-sky#9668)

* docs: 0.10.5 credits and docs update (endless-sky#9725)

* fix: Steam workflow test parsing (endless-sky#9726)

Co-authored-by: M*C*O <mcofficer@gmx.de>

* chore: Update version numbers for 0.10.6-alpha (endless-sky#9727)

* fix(docs): Correctly update remaining version numbers for 0.10.6-alpha (endless-sky#9732)

* docs: Add "GOG" as an option for "Game source" in the bug report issue template (endless-sky#9730)

* feat(content): Reduce the spawn rate of Astral Cetaceans (endless-sky#9712)

* feat(content): Reduce size and spawn rate of Embersylph (endless-sky#9711)

* fix(content): Fix reference in 'First Contact: Gegno Vi' (endless-sky#9744)

* fix(typo): Missing spaces in boarding mission phrases(endless-sky#9736)

* feat(content): Edit descriptions for Hai stations (endless-sky#9698)

* fix(content): Give required crew to the Javelin and Gatling Turrets (endless-sky#9778)

* fix(content): Check correct conditions in Gemini Shipyards jobs (endless-sky#9798)

* fix(typo): Gemini -> Geminus (endless-sky#9800)

* feat(balance): Give Dreadnoughts back their fourth torpedo launcher (endless-sky#9795)

* fix(ui): Fix the padding between lines in the ship info display (endless-sky#9788)

* refactor: Remove unused ShopPanel::Search declaration (endless-sky#9784)

* feat(content): Mention abandoned Navy bases on planets during Checkmate (endless-sky#9782)

* feat(content): Make Lasher Pistols more defensive than offensive (endless-sky#9779)

* Docs: Rename feature request template (endless-sky#9775)

* feat(ui): Reset the scroll speed of the credits if it was previously set to 0 (endless-sky#9774)

* feat(content): Adding hails about dumping cargo for pirates (endless-sky#9758)

* fix(typo): Various typo fixes (endless-sky#9752)

* fix(content): Uninhabited systems & Kaus Borealis switch sides throughout the FW campaign (endless-sky#9748)

* fix(ui): Render animated sprites in the hail panel correctly (endless-sky#9767)

* fix(content): Add the ramming personality to the timer ship so that it doesn't avoid damaging itself (endless-sky#9751)

* fix(typo): Move apostrophe in Solifuge description (endless-sky#9807)

* fix(typo): Typos in Southern Fiance 2 and Gegno: First Contact (endless-sky#9808)

* fix(content): Remove second "on complete" in "Lunarium: Combat Training 2" (endless-sky#9816)

* fix(typo): Various typos and wording style changes (endless-sky#9812)

* fix(typo): Grammar adjustments in various Lunarium missions (endless-sky#9793)

* fix(ui): Add missing color definitions for message log colors (endless-sky#9831)

* fix(docs): Correct some copyright entry orders and file patterns (endless-sky#9731)

* List less specific file patterns in stanzas before more specific ones.
  * For example, 'images/land/*' is less specific than 'images/land/mars*' and so its stanza should be listed first.
* Replace some spaces in file patterns with '?' as file patterns cannot contain spaces.

* fix(ui): Correct message log colors (endless-sky#9836)

* feat(content): Add `lingering` to Gegno Protolith Fleet (endless-sky#9804)

* docs: 0.10.6 changelog and docs update (endless-sky#9803)

* fix(typo): Fix typo in changelog (endless-sky#9837)

* docs: 0.10.7 alpha versions (endless-sky#9839)

* chore(CI): Update Github Actions versions (endless-sky#9821)

* feat(CI): Stricter copyright checking (endless-sky#9750)

Certain warnings will now be considered to be errors.

* fix(CI): Fix edge case in code style checker (endless-sky#9789)

* feat(content): Give the harvest personality to Unfettered fleets (endless-sky#9810)

* feat(balance): Reduce the chances of finding Bactrians in random pirate fleet spawns by half (endless-sky#9699)

Also removed Bactrians from Hired Gun fleets and as a pirate job target.

* feat(enhancement): Autocondition for testing if you can land on a given planet (endless-sky#9716)

* fix(content): Earth day jobs no longer offer unless you can land on Earth (endless-sky#9715)

* feat(balance): Nerf the Unfettered medical jobs (endless-sky#9232)

* feat(UI): Include messages when hailing other ships in the message log (endless-sky#9787)

* fix(content): Make TMBR 3a dialogue choice order consistent (endless-sky#9806)

* refactor: Improve load panel tooltip timestamp generation (endless-sky#9773)

No longer make use of manual memory management.

* fix(typo): Add missing word in "Bounty Hunting (Small, Hidden)" (endless-sky#9845)

* feat(enhancement): Added a "fused" weapon tag that causes projectiles to explode at the end of their life (endless-sky#9822)

* feat(enhancement): Added tags that stop projectiles from colliding with different object types (endless-sky#9823)

* feat(ui): The shop now has tooltips for viewing your unabbreviated credits and the names of your ships without needing to select them (endless-sky#9825)

* fix: Don't consider "Parsing: <file>" output when in debug mode as errors when test parsing (endless-sky#9855)

* fix(crash): Fix game crash on short error messages (endless-sky#9869)

* feat(mechanics): Remove the forced-default disabled hails from Government (endless-sky#9866)

* feat(mechanics): Disabled hails are now sent passively (endless-sky#9858)

* feat(enhancement): Add a "quiet" personality that prevents passive hails but still allows direct hails (endless-sky#9857)

By contrast, mute blocks all hails with a ship.

* feat(content): Add a mission transporting a Hai to Unfettered space (endless-sky#9753)

* feat(content): add Unfettered-related Hai news (endless-sky#9756)

* feat(content): Add missions about Hogshead referencing Boaty McBoatface story (endless-sky#9770)

* fix(content): Add blocked message to Hai Film Crew 3 (endless-sky#9886)

* fix(content): Add missing indent, remove unnecessary labels and gotos to Mafia Extortion mission (endless-sky#9875)

* fix(ui): Don't draw name tooltips for ships hidden under the shop sidebar footer (endless-sky#9883)

* feat(content): Add Coalition culture conversations (endless-sky#9790)

* refactor: Style updates to Armament (endless-sky#9842)

* feat(content): Add new human merchant hails about mining asteroids (endless-sky#9769)

* fix(content): Fix overlapping stars in Umbral system (endless-sky#9889)

* feat(balance): Cut Wanderer sun reactor energy capacity in half + -20% energy generation on the biochemical cells (endless-sky#9743)

Wanderer sun reactor energy capacities were doubled back in 0.9.15. The Wanderer sun reactors were already dominant before their energy capacity was increased, and they have remained dominant due to not losing out as much relatively to the energy capacity buff that was given to other outfits. Reverting the energy capacity buff gives other reactors and battery outfits more breathing room.

In that same update, biochemical cells received a 10x energy capacity buff. This pushed them into the realm of being great batteries with some energy generation rather than a weak energy generator with some energy capacity, although the combined effect has ended up being a bit too strong. As such, reduced the energy generation by 20% as opposed to reverting part of the energy capacity buff to keep them in their niche while not being too overpowered.

* feat(AI): NPC scan and surveillance personality behavior changes (endless-sky#9714)

* fix(content): Fix attribute on Vyrmeid lifeform (endless-sky#9898)

* fix(ship): Variant ships correctly inherit display names from base ships (endless-sky#9897)

* fix(UI): Use singular "ship" in messages when recalling/deploying a single ship (endless-sky#9908)

* fix(docs): Fix errors in the copyright file (endless-sky#9853)

* fix(syntax): Rename variable to avoid ambiguity with std::queue in some versions of clang (endless-sky#9907)

* feat(ux): Hide unknown system names in the escort HUD (endless-sky#8816)

Escorts located in systems that the player hasn't visited don't leak the system name in the UX, and instead show "???" instead of the actual system name.

Co-authored-by: Amazinite <jsteck2000@gmail.com>
Co-authored-by: Nick <quyykk@protonmail.com>

* feat(ui): Allow multiple pages of controls (endless-sky#9913)

Also splits the interface control on a separate page to separate them from the gameplay controls.

* fix(ci): Don't check for leading/trailing spaces in substitutions defined in missions (endless-sky#9915)

* build(IDE): Support CodeBlocks no longer stand-alone, but only through CMake (endless-sky#8095)

* fix(content): Give Cruiser in "FWC Cebalrai 1B" Combat Drones instead of Lances (endless-sky#9919)

* fix(mechanics): Fix ship parenting on takeoff with fighter flagship (endless-sky#9905)

* feat(CI): Check copyright with a linter (endless-sky#9882)

* Refactor: General purpose TaskQueue instead of SpriteQueue. (endless-sky#6928)

Use a general purpose TaskQueue instead of SpriteQueue.

Co-authored-by: EjoThims <JEIPH@MAC.COM>
Co-authored-by: tibetiroka <68112292+tibetiroka@users.noreply.github.com>

* refactor(content): Refactor the Argosy Hijacking mission (endless-sky#9901)

* feat(ui): Conditions to word-form numbers in conversations (endless-sky#8798)

Allow converting conditions to word form numbers in conversations.

* feat(mechanics): Disabled fighters and drones will no longer be hit by stray projectiles (endless-sky#9760)

This greatly increases their odds of survival after being disabled.
Explosions will still damage them.

* feat(mechanics): Separate delayed and non-delayed shield generation and hull repair attributes (endless-sky#9771)

* feat(ui): A help message for managing multiple ships in the outfitter (endless-sky#9910)

* feat(content): Create more passenger jobs requiring keystones in Hai space (endless-sky#9872)

* fix(ui): Correctly handle arrow keys with no item selected in the shop (endless-sky#9929)

* feat(content): edits to Unfettered missions (endless-sky#9757)

* fix(content): Add new "CCOR Logistics" fleet for non-combat ships (endless-sky#9932)

* fix(ui): Align plugin checkbox clickzones correctly (endless-sky#9922)

* fix(mechanics): Fix mission distance calculations with different settings (endless-sky#9921)

* feat(content): Add more human news referring to Korath attacks in the Core (endless-sky#9928)

* fix(internal): Improvements to fix crashes when loading/unloading images (endless-sky#9941)

* fix: Fix custom port button name when using "add port" (endless-sky#9946)

* feat(content): Reworked the distribution of outfits in southern and pirate outfitters (endless-sky#9944)

* fix(content): Allow quantum keystone jobs to offer properly (endless-sky#9936)

* feat(UI): Added a preference to turn off the sobel filter on your flagship and target ship in the HUD (endless-sky#9942)

* fix(content): Update New China and Geyser to have outfitters and tribute fleets that match their region (endless-sky#9939)

* fix(copyright): Fix the attribution of various copyright entries (endless-sky#9900)

* feat(UI): Rotate interface images (endless-sky#9943)

* feat(balance): Cut the asteroid scanner's price in half (endless-sky#9947)

* feat(content): Conspiracy theorist spaceport news (endless-sky#9937)

* ci: Run CI workflows when their configuration file is changed (endless-sky#9945)

Modifying a CI workflow file now triggers every job inside of it. This is to make sure that any changes to the file are caught by CI instead of being skipped and requiring a separate (temp) change to trigger the jobs in question.

* feat(content): Add logbook entries for Alastair Korban (endless-sky#9938)

* fix(parsing): Corrected the parsing of the initial player rep grandchild node in Government (endless-sky#9954)

* feat(enhancement): Added a control for toggling the turret tracking setting (endless-sky#9916)

This control by default isn't mapped to anything, but is available for people to map if they wish to use it.

* fix(typo): Replace two mentions of "Burthensider" with "Burthenian" (endless-sky#9955)

* feat(content): Remove facilities from evacuated Wanderer worlds (endless-sky#9931)

* feat(enhancement): Allow boarding (repair or capture) ships with a fighter flagship (endless-sky#9741)

* fix(content): Remove duplicate Korath phrase (endless-sky#9962)

* fix(content): Clarify the description of the Far Osk 27 (endless-sky#9976)

* fix(content): Remove outfit scanning capabilities from Grey's person ship (endless-sky#9983)

* feat(balance): Reduce the requirements for unlocking the Kestrel the first time (endless-sky#9988)

* chore(docs): Fix typo in and add Hungarian language description to Unix metadata file (endless-sky#9990)

* fix(content): Block "Lunarium: Questions" from completing while assisting the Heliarchs (endless-sky#9985)

* fix(ui): Use "strftime" instead of "put_time" to correctly generate save file timestamps (endless-sky#9975)

* feat(content): Various improvements to human hails (endless-sky#9865)

- Adds three new civilian hails (two on zero-g cricket and one on the Quarg, derived from a previous hail).
- Adds one new variation on a Navy hail.
- Removes one hail but integrates its text into another hail set and adds some more to them (as those "in Soviet Russia"-type jokes were happening too often).
- Revises some other hails & cuts down on some truly absurd variations.
- Adds some new variation to a bunch of other hails.
- Adds new sets of pirate disabled hails and makes the pirate governments use those hails.

* fix(content): Reword Deep's description (endless-sky#9982)

* fix(copyright): List correct attributions for Unsplash images (endless-sky#9459)

* fix(ui): Draw distance to the selected system after mission markers (endless-sky#10003)

* fix(UI): Ships with "disables" personality ask for help disabling, instead of destroying, their enemies (endless-sky#10011)

* fix(typo): Fix various typos (endless-sky#10001)

* fix(typo): Correct indentation in "Ask Quarg About Coalition Late" (endless-sky#10012)

* fix(ui): Suppress missions require landing in the next system messages from failed missions (endless-sky#10014)

* Enhancement: conditional links (endless-sky#7987)

* fix: Remove outdated watchdog (endless-sky#10023)

Watchdogs are no longer used within tests; remove from recently merged test as well.

* fix(content): Add back instances of "ser" and explain what it means in the Skadenga and Stones of Our Fathers missions (endless-sky#9989)

* feat(content): Update the descriptions of two Sestor worlds after the factories are shut down (endless-sky#10016)

* feat(content): Add some additional mentions of how Tele'ek's Molt is progressing to the last few missions in Wanderers Middle (endless-sky#10005)

* fix(typo): Fix two typos (endless-sky#10019)

* feat(build): Link GLEW::glew instead of GLEW::GLEW in CMakeLists.txt (endless-sky#9978)

* feat(build): Simplify CMake build on Linux and MacOS (endless-sky#9950)

* fix(typo): Remove unnecessary speech mark (endless-sky#10029)

* feat(content): Add mention of the CCOR in a FW pirate recon mission (endless-sky#10006)

* feat(content): Outfitters near Earth and the Dirt Belt stock Kraz and Delta V after the war begins (endless-sky#10021)

* feat(content): remove pirates from Ildaria (endless-sky#9809)

* feat(content): A short set of missions involving the Wanderers and Mereti (endless-sky#9979)


Co-authored-by: bene_dictator <benstaples8068@gmail.com>
Co-authored-by: Lorenzo.BdO <81255699+LorenzoBolla@users.noreply.github.com>

* feat(content): More new human planets and stations, update Kraken Station landing image (endless-sky#9917)

* feat(content): Add new uninhabited landable planets to existing systems in Human space (endless-sky#9879)


Co-authored-by: bene_dictator <benstaples8068@gmail.com>
Co-authored-by: tibetiroka <68112292+tibetiroka@users.noreply.github.com>
Co-authored-by: ziproot <109186806+ziproot@users.noreply.github.com>
Co-authored-by: Amazinite <jsteck2000@gmail.com>

* feat(balance): Revert old human missile initial velocity changes + additional tweaks (endless-sky#9973)

* feat(balance): Reduced the Heavy Rocket's damage while increasing its blast radius (endless-sky#9912)

Reduces the damage dealt by heavy rockets from 1060/900 to 790/670, and increase their blast radius from 50 to 90. This is a drop of about 25% to damage, and an increase of 80% to blast radius.

The description of heavy rockets notes that they're primarily effective against groups of fighters, and this change leans further into that, making them more clearly distinct from the Torpedo, the premier anti-HW weapon for small ships.

* feat(content): Make the "Remnant: Cognizance 4" mission description more helpful (endless-sky#10017)


Co-authored-by: mOctave <73318970+mOctave@users.noreply.github.com>

* feat(balance): Tweak Marauder loadouts, including removing campaign unlocked outfits (endless-sky#9819)


Co-authored-by: Quantumshark <thedup.adg@gmail.com>

* fix(typo): Minor spelling in cognizance (hanger -> hangar) (endless-sky#10037)

* fix(content): make the <npc> substitution in Wanderers: Mereti: The Plant 5 point to the right npc (endless-sky#10036)

* feat(content): Changes to Pre-war Missions (endless-sky#9924)

* [Mechanic] Disabled Self-Repair (endless-sky#9846)

Co-authored-by: EjoThims <JEIPH@MAC.COM>

* feat(balance): Toned down the missile strength and turn rate of the Firelight (endless-sky#10038)

* fix(content): Don't offer the Terraforming missions at non-sensical times (endless-sky#10027)

* feat(balance): Give the Quicksilver +20 weapon capacity & a Capybara Reverse Thruster

* feat(content): Sell normal blaster weapons on pirate planets (endless-sky#10034)

* feat(enhancement): Game actions can now play music with a `music` node (endless-sky#10008)

* fix(content): Fixed an inconsistency in variable names used by Patir Mystery and Cognizance (endless-sky#10028)

* Feat(mechanics): Cloaking flexibility with additional attributes (endless-sky#7025)

Co-authored-by: EjoThims <JEIPH@MAC.COM>
Co-Authored-By: Nick <85879619+quyykk@users.noreply.github.com>
Co-authored-by: Peter van der Meer <peter.vd.meer@gmail.com>
Co-authored-by: TomGoodIdea <108272452+TomGoodIdea@users.noreply.github.com>
Co-authored-by: warp-core <warp-core@users.noreply.github.com>
Co-authored-by: Zitchas <32169904+Zitchas@users.noreply.github.com>

* fix(typo): "cloaking shield" -> "cloaking shields" (endless-sky#10047)

"cloaking shield" -> "cloaking shields"

* feat(content): Bringing a lost dog to its owner on Glory (endless-sky#9961)


Co-authored-by: bene_dictator <benstaples8068@gmail.com>

* fix(content): Syntax in Lost Dog missions (endless-sky#10050)

* feat(cloaking): Update some cloaking tooltips (endless-sky#10052)

* fix(content): Don't select Graffias as a target for Free Worlds "Scouting Run" jobs (endless-sky#10053)

* feat: Ability to limit turret firing arc (endless-sky#7094)

* Introduce a capability to limit the rotation of a turret.

Co-authored-by: Hurleveur <94366726+Hurleveur@users.noreply.github.com>
Co-authored-by: oo13 <ooyooxei+gh@gmail.com>
Co-authored-by: OOTA, Masato <ooyooxei+gh@gmail.com>
Co-authored-by: Rising Leaf <85687254+RisingLeaf@users.noreply.github.com>
Co-authored-by: tehhowch <tehhowch@users.noreply.github.com>
Co-authored-by: tibetiroka <68112292+tibetiroka@users.noreply.github.com>
Co-authored-by: TomGoodIdea <108272452+TomGoodIdea@users.noreply.github.com>

* feat(code): Ensuring label and line positions adapt to Weapons box positioning (endless-sky#10059)

Co-authored-by: Rising Leaf <85687254+RisingLeaf@users.noreply.github.com>

* feat(content): Core Pirate Ship Variants with Tractor Beams (endless-sky#9772)

* fix(mechanics): Properly check if a mission is failed (endless-sky#10015)

* feat(content): Prevent "Deep: Interrogation" from offering during the main campaign (endless-sky#10055)

* fix(content): "Remnant: Continue Research" no longer offers if you've completed the missions after it (endless-sky#10056)

* feat(ui): "Fancy" cloaked ship outlines (endless-sky#9642)

* feat(content): Various improvements to some pirate jobs (endless-sky#9740)

* "Drug Running" missions are now "infiltrating";
* Added (and used) generic aborted phrases for pirate slave jobs;
* Failing or aborting a pirate slave job causes a reduction in reputation with the "Pirate" government;
* Many jobs now have a minimum travel distance of 4, instead of 3, to prevent them from involving travelling between the Men system and a CCOR world, as this route does not involve any territory hostile to pirates. Affected jobs:
  * "Cargo Smuggling", "Bulk", and "Stealth (South)" variations,
  * "Drug Running", and "Stealth (South)" variation,
  * "Slave Transport", and "Bulk" variation,
  * "Escort Illegal Cargo" South variation, and
  * "Escort Stolen Vessel" South variation;
* The targets NPCs in "Eliminating Law Enforcement" jobs have been given the "marked" personality;
* Alphabetized the list of personalities for the target NPCs in "Eliminating Competition" jobs;
* Various jobs will only place NPCs in systems neighbored by a non-Pirate system. Affected jobs are:
  * "Eliminating Law Enforcement" Core and South variations,
  * "Raid on Merchants" North and South variations, and
  * "Cargo Theft (South)"; and
* Various jobs will only offer from systems neighbored by a non-Pirate system (that is, they will no longer offer from CCOR worlds). Affected jobs are:
  * "Eliminating Law Enforcement (South)",
  * "Southern Pirate Defense",
  * "Cargo Theft (South)", and
  * "FW Assassination".

* feat(content): Adjust Imo Dep Minables & Add Hai Mining fleets (endless-sky#10057)

* feat(content): Added derelict ships that can randomly spawn in some human systems (endless-sky#9039)

---------

Co-authored-by: Rising Leaf <85687254+RisingLeaf@users.noreply.github.com>
Co-authored-by: Arachi-Lover <82293490+Arachi-Lover@users.noreply.github.com>
Co-authored-by: Nick <quyykk@protonmail.com>
Co-authored-by: tibetiroka <68112292+tibetiroka@users.noreply.github.com>
Co-authored-by: Daniel <101683475+Koranir@users.noreply.github.com>
Co-authored-by: Hurleveur <94366726+Hurleveur@users.noreply.github.com>
Co-authored-by: mOctave <73318970+mOctave@users.noreply.github.com>
Co-authored-by: Alex Rov <98854112+alexrovw@users.noreply.github.com>
Co-authored-by: Amazinite <jsteck2000@gmail.com>
Co-authored-by: Ezra Alvarion <ezraalvarion71@gmail.com>
Co-authored-by: Quantumshark <thedup.adg@gmail.com>
Co-authored-by: Daeridanii1 <20879740+Daeridanii1@users.noreply.github.com>
Co-authored-by: roadrunner56 <65418682+roadrunner56@users.noreply.github.com>
Co-authored-by: Unordered Sigh <116329264+UnorderedSigh@users.noreply.github.com>
Co-authored-by: thewierdnut <9004013+thewierdnut@users.noreply.github.com>
Co-authored-by: bene_dictator <benstaples8068@gmail.com>
Co-authored-by: The-Legendary-M <130106565+The-Legendary-M@users.noreply.github.com>
Co-authored-by: Saugia <93169396+Saugia@users.noreply.github.com>
Co-authored-by: opusforlife2 <53176348+opusforlife2@users.noreply.github.com>
Co-authored-by: warp-core <warp-core@users.noreply.github.com>
Co-authored-by: LepRyot <88047246+LepRyot@users.noreply.github.com>
Co-authored-by: TomGoodIdea <108272452+TomGoodIdea@users.noreply.github.com>
Co-authored-by: williaji <70952724+williaji@users.noreply.github.com>
Co-authored-by: Timothy <tcollett+github@topazgryphon.org>
Co-authored-by: ThrawnCA <shell_layer-github@yahoo.com.au>
Co-authored-by: ziproot <109186806+ziproot@users.noreply.github.com>
Co-authored-by: M*C*O <mcofficer@gmx.de>
Co-authored-by: Max Horn <max@quendi.de>
Co-authored-by: Oversurge <42477777+AlexBassett@users.noreply.github.com>
Co-authored-by: neurotrope <137111201+neurotrope@users.noreply.github.com>
Co-authored-by: EjoThims <JEIPH@MAC.COM>
Co-authored-by: AvianGeneticist <64111606+AvianGeneticist@users.noreply.github.com>
Co-authored-by: xxxyyyqqq12345 <xxxyyyqqq12345@gmail.com>
Co-authored-by: Brendan Jones <16049594+brendanjones@users.noreply.github.com>
Co-authored-by: ovari <17465872+ovari@users.noreply.github.com>
Co-authored-by: Cromha <87318892+OcelotWalrus@users.noreply.github.com>
Co-authored-by: Peter van der Meer <peter.vd.meer@gmail.com>
Co-authored-by: enot888 <168086319+enot888@users.noreply.github.com>
Co-authored-by: Lorenzo.BdO <81255699+LorenzoBolla@users.noreply.github.com>
Co-authored-by: Anarchist2 <60202690+Anarchist2@users.noreply.github.com>
Co-authored-by: a4358 <a43582@gmail.com>
Co-authored-by: Azure_ <42621251+Azure3141@users.noreply.github.com>
Co-authored-by: lumbar527 <125756761+lumbar527@users.noreply.github.com>
Co-authored-by: eebop <68796004+eebop@users.noreply.github.com>
Co-authored-by: Nick <85879619+quyykk@users.noreply.github.com>
Co-authored-by: Dane <90231647+SpearDane@users.noreply.github.com>
Co-authored-by: 1010todd <19187937+1010todd@users.noreply.github.com>
Co-authored-by: oo13 <ooyooxei+gh@gmail.com>
Co-authored-by: tehhowch <tehhowch@users.noreply.github.com>
Co-authored-by: Petersupes <77224539+Petersupes@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
mechanics Things dealing with the mechanics & code of how the game works
Projects
None yet
9 participants