Skip to content

Safely propagating sciences through the tech tree #33

@Frontrider

Description

@Frontrider

Sometimes we want to get a science pack to pass through to future research. But, this creates issues depending on how the tech tree ends up being, it can create cases when an entire branch or the whole tree becomes impossible to progress with.

These are any mods that don't let you import that science pack until a certain point, or want you to use a lab that can't have that science (the game will crash during load in this case).

Solution from: @SimonBrodtmann :
Build a new tree from the sciences as you propagate the pack.
Problem:
There is exactly no way to tell if the other mod was intended to be beatable with your science packs, or if the game won't crash from it. I think We could try to look for like all vanilla sciences but that is still not a good condition.

My solution:

  • Mark the science pack's technology with a flag that has the pack's name in it. (so we don't need to figure out what science we're unlocking from the effects that it has). If we find this flag, we propagate the science from here.
  • Mark technologies where we don't want to propagate the packs with something to let the mod protect itself from sciences it may not be able to access. I expect these to be planet discoveries. (cerys and maraxsis will use these flags, I can see metal and stars use this flag once it becomes its own solar system)
  • Maybe allow for a whitelist, in case you know that your mod won't break from another one.

When a flagged technology is found we no longer push new science packs beyond it. There will be a point when they merge back together again, but essential sciences can be protected.
This one goes directly against it being an opt-in feature but I also don't see a way for it to be like that without flagging every single technology that exists in the game.
At least you can know which mod is doing it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions