Skip to content

Duna/Eve progression contract ordering changed sometime after 1.7 #401

Description

@JonnyOThan

In 1.7 and earlier, Duna progression contracts always show up after you've completed the Kerbin SOI.
In 1.12, the first interplanetary destination is always Eve. I'm not sure which version actually contained the change.

I'm nearly completely certain that this was NOT an intentional change, which is why I think it's a candidate for a KSPCF patch. This is a big deal for new players because if they accept the Eve contract and enter the SOI, they will not receive any other progression contracts for other bodies until they complete Eve (or go to a different body that they don't have a contract for).

The ordering of the bodies is first sorted by the recovery science value (ascending order). Surprisingly, Duna and Eve have the same recovery value. Arguably, Eve's should be higher - and that would also fix this - but that is outside the scope of what KSPCF should be doing.

Since they have the same recovery value, the difference in behavior actually comes down to whether or not List.Sort preserves the original order of the elements or not. In both versions, Eve comes before Duna in the bodies array. In 1.7, sorting the list swaps their order (so Duna comes first and gets selected as the destination), while in 1.12 the order is preserved and Eve gets selected. This was likely caused by the .net upgrade that happened in 1.8.

There's basically no way this was an intentional decision.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kspBugIdentified KSP issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions