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

[Mechanic] Disabled Self-Repair #9846

Merged
merged 11 commits into from
May 4, 2024

Conversation

Azure3141
Copy link
Contributor

@Azure3141 Azure3141 commented Feb 21, 2024

Feature

This PR addresses the feature described in issues #7266 and #4678 (sorta kinda) and requested by @Ebreus on Discord.

Summary

This adds a new attribute, disabled recovery timer (name TBR) that allows disabled ships to repair themselves after a counter reaches the value of disabled recovery timer. It also adds attributes to apply a cost of energy or fuel (which must be met in order for a ship to repair itself) and apply any of the various damage types in a single burst upon a ship self repairing.

Usage examples

My testing ship was a Hawk, which I shot up until it was disabled (took a couple tries to not instantly kill it).

ship "Hawk"
	sprite "ship/hawk"
	thumbnail "thumbnail/hawk"
	attributes
		category "Interceptor"
		"cost" 670000
		"shields" 2500
		"hull" 500
		"required crew" 1
		"bunks" 4
		"mass" 110
		"drag" 2.1
		"heat dissipation" .8
		"fuel capacity" 300
		"cargo space" 20
		"outfit space" 200
		"weapon capacity" 50
		"engine capacity" 70
		"disabled recovery timer" 180
		"disabled recovery heat" 500
		"disabled recovery energy" 100
		"disabled recovery slowing" 100

In this case, the Hawk had to have at least 100 energy in order to repair itself, which was subtracted upon the repair actually happening, as well as the addition of 500 heat and 100 slowing.

Testing Done

Did the aforementioned Hawk abuse. Probably still need to test energy/fuel requirements actually being able to restrict the repair from happening.

Save File

N/A

Artwork Checklist

N/A

Performance Impact

Likely none.

@bene-dictator bene-dictator added the mechanics Things dealing with the mechanics & code of how the game works label Feb 21, 2024
@Azure3141
Copy link
Contributor Author

Kindly ignore the map rework stuff that was accidentally pushed to master a month ago and then reverted (unless someone wants to merge it in which case I'm all for it)

@Ebreus
Copy link

Ebreus commented Feb 22, 2024

Thanks for the awesome mechanic!

@Zitchas
Copy link
Member

Zitchas commented Feb 22, 2024

When did the timer start? When disabled? Or when last hit? Personally I would prefer from last hit with a possibility of overriding it to from when disabled. I can think of story situations where I would want the later, but most of the time I think from last hit post being disabled is better.

I do believe there is a conversation on GitHub somewhere for this, too.

@Azure3141
Copy link
Contributor Author

When did the timer start? When disabled? Or when last hit? Personally I would prefer from last hit with a possibility of overriding it to from when disabled. I can think of story situations where I would want the later, but most of the time I think from last hit post being disabled is better.

I considered using last hit but I think that might work out to be much more frustrating from a player user experience perspective, where random stray shots around the system can already end up killing you when disabled with nothing you can really do about it.

Copy link
Member

@EjoThims EjoThims left a comment

Choose a reason for hiding this comment

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

Just a minor typo.

data/_ui/tooltips.txt Outdated Show resolved Hide resolved
Co-authored-by: EjoThims <JEIPH@MAC.COM>
@Zitchas
Copy link
Member

Zitchas commented Feb 27, 2024

I am ambivalent about using "last hit" for the player. I think it is better, but not strongly. I do think it is much better for NPCs, though, because we don't have to worry about their feelings, sand having repair work reset by the player or other enemies hitting it makes more sense. Only the biggest and toughest of ships should be successfully recovering from being disabled while they are actively being shot.

Actually, even better would be to have a 'disable recovery reset chance' attribute that survivors what the chances are. Old reliable so like the Firebird? Low chance of disable recovery being reset by a hit. Some fancy delicate rescuing Flivvr? Really high chance of reset.

But honestly, the more things can be put into the player's hands and not just a dictated way the game works, the better. Meaning of they don't bother investing in tools to improve their recovery, then they recovery slowly and increase the risk of a stray hit keeping them disabled for longer. Even better if ways to reduce the chance each hit had of resetting the timer.

Having A timer is good, but only marginal improvement as most will probably still reload. The more we can make it something that players can actively plan for and make decisions about, the more it becomes just another part of the game to be experienced as part of the player's story.

data/_ui/tooltips.txt Outdated Show resolved Hide resolved
@quyykk
Copy link
Member

quyykk commented Mar 26, 2024

Should this be tied to hull repair in some way (or use a new hull repair attribute) instead of a timer? Having a small hull ship self-repair just as fast as a large hull ship seems weird.

@Azure3141
Copy link
Contributor Author

Should this be tied to hull repair in some way (or use a new hull repair attribute) instead of a timer? Having a small hull ship self-repair just as fast as a large hull ship seems weird.

I see it as being more analogous to the way ships can repair each other (which doesn't have any kind of size dependence) than the sort of repair system used by hull repair outfits.

@Hurleveur
Copy link
Member

Hurleveur commented Mar 27, 2024

I dont think it matters, instant repair is just good gameplay and thats always the focus. We can always find things to justify the gameplay we want (in repair case its just standard for all ships bigger than a fighter to have a repair mechanism)
I'd say you got it reversed; first we find good gameplay then ways to justify it.

Back to the matter at hand, I think big ships should have to equip more repair outfits to have it be as fast as small ships. Mb just base it on mass or smth

@Zitchas
Copy link
Member

Zitchas commented Mar 27, 2024

I would prefer to have the base repair timer specified as a ship data point, with the capacity to have outfits that modify that by percentage, fixed amount, or override.

While I generally agree that bigger sis should take longer, I consider this to be in the same category of data as "big ships have more shields." Which is generally true, but subject to so many other factors that it can only be decided by creators, not by automated game mechanic.

@quyykk
Copy link
Member

quyykk commented Mar 27, 2024

So my last comment was so crazy it doesn't even get a response

@Hurleveur did address it: Gameplay over Realism. We have this conversation a lot of times, and people fall on different sides, but usually people can agree that we cannot make everything hyperrealistic (I'm not sure if that's what you were implying, so I apologize if not). I also apologize if it feels that ideas from the "out-group" always get shot down, this is absolutely not the case.

If you get disabled there should consequences in the form of having to wait.

This suggested change already includes a timer, unless you're talking about the instant repair when you ask a ship for help. In that case, the time it takes for the ship to dock you is already kinda a timer already. I'm not sure if adding another timer on top of that is a good idea from a gameplay perspective.

@Azure3141
Copy link
Contributor Author

Azure3141 commented Mar 27, 2024

I would prefer to have the base repair timer specified as a ship data point, with the capacity to have outfits that modify that by percentage, fixed amount, or override.

While I generally agree that bigger sis should take longer, I consider this to be in the same category of data as "big ships have more shields." Which is generally true, but subject to so many other factors that it can only be decided by creators, not by automated game mechanic.

I like the idea of this. I'm not sure whether we'd want to implement this across the board for ships, to create a variance in repair speeds (even independently of this PR, which I'd be in favor of), but I can definitely see the use of this attribute even just for special cases.

@Azure3141
Copy link
Contributor Author

I know it's pointless but, I still maintain it can't feel like magic. If it is made instant it's basically the same as making a ship unable to be disabled in the first place. Being invincible is bad game play. Here is the current suggested game play scenario.

you fight and get disabled
poof! your not disabled

It'll only be instant if you set the repair delay attribute to 0, which is just bad content design. It's exactly the same as giving a shield generator 100 million shields/frame; that doesn't mean the concept of shield generation itself is flawed.

@Azure3141
Copy link
Contributor Author

This is why I said, it needs to be tied to something. Not just a simple timer. Different ships do need different timers and should be handled in this PR. Why add only half a solution just to go back and re-due it again latter? Like I said tie it to the hull and crew or outfit space stats. Just anything that would be a contributing factor as to how long it takes to repair to a non disabled state. That's assuming you want it to make sense instead feeling like magic. Your choice, except the challenge or keep it simple.

Again, this is how repairs work in the current version of the game. A ship can repair a drone or a superheavy warship in the same amount of time, even ignoring the size of the ship doing the repairing in the first place. Whether or not this should be different, such as with a ship-specific repair time attribute used for both self-repair and external repairs as suggested by Zitchas, is a different debate (and probably could be a different PR independent of this one).

I would also appreciate it if you were less aggressive in your responses to other people in this PR, as it's creating unnecessary friction that isn't relevant to the discussion.

@xX-Dillinger-Xx
Copy link

xX-Dillinger-Xx commented Mar 27, 2024

I deleted my content as my attitude was not appreciated. Do not take it as done in a fit of rage. I'm sorry if my form of criticism is considered aggressive. I forget some people can't handle criticism.

EDIT: This wasn't a result of what Azure3141posted. I was contacted by somebody else.

@Hecter94
Copy link
Member

I deleted my content as it was not appreciated. Do not take it as done in a fit of rage. I'm sorry if my form of criticism is considered aggressive. I forget some people can't handle criticism.

We appreciate all kinds of feedback, including constructive criticism.

However, please remember to maintain a professional and respectful tone while sharing your thoughts. GitHub is a hub for professionals actively involved in development, and we expect everyone using the platform to contribute to creating a constructive and productive environment.

As long as you follow the guidelines, please continue to provide valuable feedback. Our ultimate goal is to make Endless Sky the best product possible, and player feedback is crucial to achieving that objective.

@petervdmeer
Copy link
Member

I've read through #4678, through #7266 and through the thread here; this PR seems to be doing exactly what was requested. (There were a lot of "out of scope" and "unrelated" discussions, but they can go to their own tickets.)

This PR also seems safe for merging; the only time when it is active is when the condition if(isDisabled && attributes.Get("disabled recovery time")) is true, and the attributes are only visible when used. The PR is also quite small.

@petervdmeer petervdmeer merged commit f94ec09 into endless-sky:master May 4, 2024
20 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
Development

Successfully merging this pull request may close these issues.

None yet