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

API: Add a way to get the list of all factions #1457

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from

Conversation

catloversg
Copy link
Contributor

"Getting the list of all factions" is a frequently requested feature. We have discussed it many times but have not come to a conclusion on how to implement it. There are 3 ways to add this feature:

  • ns.enums.FactionName: This is the easiest way to implement it. It's also the most discoverable place for new players. The only concern is that some faction names may be spoilers. IMO, faction names are not spoilers. With a new player, there is no difference between the names of Daedalus and NiteSec. Those are both faction names. There is nothing special about the name of Daedalus. The special thing is only revealed when they join it, buy TRP, read the message, look around for special servers, etc. It's the same for other special factions. For example, knowing the name of Church of the Machine God does not reveal anything. It's just the name of a faction.
  • ns.singularity.enums.FactionName: Having access to the list of faction names is most useful for using the singularity API. We also don't have to worry about spoilers. However, due to how the NS proxy works, it's really hard to implement it this way.
  • ns.singularity.getAllFactionNames: Make it an API function instead of an enum. This is the last resort.

I decided to choose ns.enums.FactionName.

@d0sboots
Copy link
Collaborator

d0sboots commented Jul 4, 2024

I agree with your reasoning that "just the names of factions are not spoilers." There is somewhat of a counterargument, in that knowing of the existence of factions that you don't have/haven't seen is a slight spoiler. But we already have this in a much more major way with the major mechanics and their namespace; these are at least hidden in an enum that you can avoid seeing.

This looks good to me, but I'll wait for @Snarling since this has already been contentious.

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

Successfully merging this pull request may close these issues.

2 participants