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

[Ship categories] Freighters and Ktlitan ships should get their own category. #1925

Open
hemmond opened this issue Mar 2, 2023 · 3 comments

Comments

@hemmond
Copy link
Contributor

hemmond commented Mar 2, 2023

I'd recommend adding ship category for Freighters and Ktlitan ships. As of now, Freighters are in "Corvette" category and Ktlitan ships are in "No class" category. I don't believe freighters are corvettes, since freighters usually don't have any weapons. Is there a reason not to do that? If not, I can fix this issue and file a PR.

@oznogon
Copy link
Contributor

oznogon commented Mar 2, 2023

I assume you mean "class" here when you say "category". What's the goal or benefit of changing their classes? To change the organization in the science database? Something else?

For what it's worth, freighters already have a subclass ("Freighter").

Some scenarios employ freighters and Ktlitan ships, and classes are a factor in docking, though only the Jump Carrier has Corvettes as a dock class. Would this change add freighters as a dock class to more ships?

Scenarios 44, 47, 59, 74, and 88 manually modify the science database and rely on the class "No class" or subclass "Freighter" for queryScienceDatabase calls, so the scenarios might need retesting or updates if ships are reclassified.

@hemmond
Copy link
Contributor Author

hemmond commented Mar 2, 2023

Yes, I meant ship class. The main idea was to de-clutter science database, since freighters come in a LOT of shapes and sizes.

From my point of view, when I'm (as GM) picking up ship of suitable size and armaments, those three Corvettes (that are not Freighters) that would do the trick, but they are burreid deep inside Freighter list. And also feels a little ilogical to have Freighter class and not having any Freighters in it. But yes, the scenarios would probably need some more testing afterwards. I haven't thought of that relation yet.

Daid should probably say if it is worth fixing or not really.

@oznogon
Copy link
Contributor

oznogon commented Mar 3, 2023

And also feels a little ilogical to have Freighter class and not having any Freighters in it.

The Freighter _sub_class isn't empty, the six freighter types all use the subclass. Like all subclasses, the science DB doesn't use it.

Daid should probably say if it is worth fixing or not really.

I haven't suggested that it's not worth changing. I'm trying to understand the problem in order to also understand the options available to solve the problem while trying to avoid causing other problems.

For instance, if the problem is science DB's navigation, the science DB could also organize ships based on subclass. This would require no changes to ship templates, but would result in new subclass categories in the science DB for all non-Ktlitan ships, not just corvettes.

Either reclassifying the ships or restructuring the science DB would require changes in scenarios that rely on a specific science DB structure and strings. For example with Freighters, that'd be at least the 7 genericFreighterScienceInfo lines copied in each of scenarios 44 and 74:

scripts/scenario_44_outpost.lua:                                genericFreighterScienceInfo(physics_research_db,queryScienceDatabase("Ships","Corvette","Garbage Freighter 3"),ship)

scripts/scenario_74_omicron.lua:                                genericFreighterScienceInfo(omnibus_db,queryScienceDatabase("Ships","Corvette","Personnel Jump Freighter 5"),ship)

For Ktlitans, that'd be at least the five "base ship database entry" lines copied in each of scenarios 44, 59, 74, and 88:

scripts/scenario_44_outpost.lua:                                queryScienceDatabase("Ships","No Class","Ktlitan Drone"),     --base ship database entry
...
scripts/scenario_59_border.lua:                         queryScienceDatabase("Ships","No Class","Ktlian Drone"),     --base ship database entry
...
scripts/scenario_74_omicron.lua:                                queryScienceDatabase("Ships","No Class","Ktlitan Drone"),     --base ship database entry
...
scripts/scenario_88_chaos.lua:                  queryScienceDatabase("Ships","No Class","Ktlitan Fighter"),   --base ship database entry

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants