Jump to content

[WIP] [1.2.2] Career Evolution Contract Pack - BETA Release v0.3 Updated 3-27-2017


pap1723

Recommended Posts

7 hours ago, pap1723 said:

Ahhhhhhhh, @/stations does not exist. I worked with some other code and used a different name to declare the stations. I will fix that as well.

Really?  then what is this:

    DATA
    {
        type = List<Vessel>
        requiredValue = false
        stations = AllVessels().Where(v => v.VesselType() == Station)
        title = Find the stations
    }
	
	// Find a body that we have returned from that does not have a space station
    DATA
    {
        type = CelestialBody
        requiredValue = true
        uniquenessCheck = CONTRACT_ACTIVE
        targetBody1 = ReturnedFromBodies().Where(body => @/stations.Where(v => v.CelestialBody() == body).Count() == 0).SelectUnique()
		title = Must have returned from a Celestial Body, but not have any stations deployed.
    }

This is in the 10-SpaceStations.cfg file, looks like stations IS defined, in the Data section.  I'll freely admit it is generating an error, but I have no idea why.

Edited by linuxgurugamer
Link to comment
Share on other sites

6 hours ago, TawynT said:

I was working on the "Landing on the Mun with Extended Stay" contract today. I sent a small lander with a rover that had a command seat to the Mun and visited all the sites with the rover (and a kerbal).

Upon leaving the rover and getting back into the lander I noticed that I lost the contract progress for visiting the sites. Switching back to the rover showed the progress as completed again (but not on the lander I was planning to return with, even though it had the kerbal that visited the sites in it).

Since one of the requirements to complete it is to return home safely, it appears you can only complete it by visiting all sites with exact vessel that you're going to return with (and kerbals alone don't count).

Was just wondering if this is intended or just a limitation in the way contracts are tracked.

@TawynT This is a slight limitation in the contract system, but more in the way the contract was constructed. I have changed the layout and order of the contract and going forward, this should not be an issue. There is a mission that is almost exactly the same for Minmus and I have fixed that one as well.

6 hours ago, tater said:

I did a Mun impact mission, and combined it with another mission by including 2 probes, one was aimed at the mun, the other then orbited.

Everything seemed OK, but it balked on the new craft part, even though it was indeed a new craft. I launched the next thing I had, and the existence of a new craft on the pad satisfied it.

@tater Sot he way that the contracts are tracked can sometimes cause funny issues where contracts are considered complete, even when they did not actually happen. To overcome this, I had required New Vessels to be launched. However, in practice it is not working out the way it should be. I have removed the requirement for a New Vessel to be launched for the unmanned missions on the Mun and Minmus.

1 hour ago, linuxgurugamer said:

Really?  then what is this:


    DATA
    {
        type = List<Vessel>
        requiredValue = false
        stations = AllVessels().Where(v => v.VesselType() == Station)
        title = Find the stations
    }
	
	// Find a body that we have returned from that does not have a space station
    DATA
    {
        type = CelestialBody
        requiredValue = true
        uniquenessCheck = CONTRACT_ACTIVE
        targetBody1 = ReturnedFromBodies().Where(body => @/stations.Where(v => v.CelestialBody() == body).Count() == 0).SelectUnique()
		title = Must have returned from a Celestial Body, but not have any stations deployed.
    }

This is in the 10-SpaceStations.cfg file, looks like stations IS defined, in the Data section.  I'll freely admit it is generating an error, but I have no idea why.

@linuxgurugamer I believe that the error is caused by the field being listed as requiredValue = true

I have changed it to false, I believe it will fix the error, but I don't like that the contract is looking for those parameters every couple of minutes anyway.I know that @nightingale has been pretty much away for a while, but I think the contract should look at the REQUIREMENTS first. If they are not met, no need to look at the DATA fields. Now, the issue with that is that some REQUIREMENTS require some of the information pulled from the DATA fields. I do not know if there is a good way to fix that problem.

 

New version should be up shortly.

Link to comment
Share on other sites

NEW VERSION IS UP! Version 0.3 BETA

https://github.com/pap1723/IntelligentProgression/releases/tag/0.3

DELETE the previous version of this. However, your contracts should still work with your current career save and it should remember what has been completed. Just to be sure, make a quick backup of your save file.

  • Changed missions to Mun and Minmus that required New Vessels. Only the original flyby and the rover missions require New Vessels to be launched.
  • Fixed the Landing & Stay Missions for the Mun and Minmus not tracking the accomplishments despite the player visiting the waypoints.
  • Corrected a typo on the Space Station contracts.
  • Reorganized the folder structure to allow for proper and easier installation

 

I have not had time (and won't for a while) to test the mission changes, but I have tested to make sure that KSP is not throwing any errors and it looks clean. Thank you all for the continued support and feedback! Hopefully this will be the last Beta version before a true release. Well that might not be true, I need some graphics work done to make a logo for a company that offers these contracts, and that is something that I am NOT good at.

Link to comment
Share on other sites

6 minutes ago, tater said:

The Mun Exploration set of missions is titled "Moon Exploration," whereas Minmus is "Minmus Exploration."

That is due to the fact that I cannot dynamically name the full set of Missions. It is designed to be used with Real Solar System as well so I went with Moon Exploration because even the Mun is a moon. :)

Link to comment
Share on other sites

8 hours ago, pap1723 said:

I have changed it to false, I believe it will fix the error, but I don't like that the contract is looking for those parameters every couple of minutes anyway.I know that @nightingale has been pretty much away for a while, but I think the contract should look at the REQUIREMENTS first. If they are not met, no need to look at the DATA fields. Now, the issue with that is that some REQUIREMENTS require some of the information pulled from the DATA fields. I do not know if there is a good way to fix that problem.

It used to be much worse, it really used to hit the performance of the system

Link to comment
Share on other sites

You might want to test the rendezvous and docking contracts. I managed to select a few at once for the same flight(s). I think perhaps the order I landed the craft in screwed it up, but it again said I did not launch a new vessel, even though obviously 1 was in flight, then I built and launched another---though one of the craft may have been existing already in orbit.

Link to comment
Share on other sites

On 3/24/2017 at 1:22 PM, pap1723 said:

So the way that it pulls the planetary data is definitely causing some issues with Sigma Binary. Essentially what the pack does is to find Jupiter / Jool, it searches for the first gas giant that is further away from the Sun than Kerbin / Earth. With Sigma Binary installed, it cannot find what it is looking for. I have been looking into different ways to try and get a listing of the planets, but I haven't found a good strategy yet. Unfortunately, this will not work with Sigma Binary for the time being.

what kind of issues are you having?

if the only problem is that barycenters are mistaken for gas giants you can get away with it by putting a 100 meter radius limit (every gas giant with a radius under 100 meters will be ignored)

I think nightingale did it that way for his mod(s)

Link to comment
Share on other sites

On 3/28/2017 at 9:46 AM, Sigma88 said:

what kind of issues are you having?

if the only problem is that barycenters are mistaken for gas giants you can get away with it by putting a 100 meter radius limit (every gas giant with a radius under 100 meters will be ignored)

I think nightingale did it that way for his mod(s)

Ah, that is probably what is happening. Good tip!

Link to comment
Share on other sites

Game Paused!
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

ContractConfigurator.ContractType: CONTRACT_TYPE 'SpaceStation': Error parsing targetBody1
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

NullReferenceException: Object reference not set to an instance of an object
  at ContractConfigurator.ExpressionParser.CelestialBodyParser.CheckTree (KSPAchievements.CelestialBodySubtree tree, ProgressItem pi) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c__DisplayClass8_0.<BodiesForItem>b__0 (KSPAchievements.CelestialBodySubtree node) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[KSPAchievements.CelestialBodySubtree].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[KSPAchievements.CelestialBodySubtree,CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody].AddEnumerable (IEnumerable`1 enumerable) [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody]..ctor (IEnumerable`1 collection) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable.ToList[CelestialBody] (IEnumerable`1 source) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c.<RegisterMethods>b__5_43 () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[CelestialBody].ParseMethod[CelestialBody] (ContractConfigurator.ExpressionParser.Token token, .CelestialBody obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as Exception: Error parsing statement.
Error occurred near '*':
ReturnedFromBodies().Where(body => @/stations.Where(v => v.CelestialBody() == body).Count() == 0).SelectUnique()
....................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ExecuteExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
ContractConfigurator.LoggingUtil:LogException(Exception)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, CelestialBody, Func`2)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Func`2)
ContractConfigurator.DeferredLoadUtil:ExecuteLoad(DeferredLoadObject`1)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
ContractConfigurator.<UpdateNonDeterministicValuesIterator>d__30:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
ContractConfigurator.<GenerateContract>d__33:MoveNext()
ContractConfigurator.<ContractEnumerator>d__32:MoveNext()
ContractConfigurator.ContractPreLoader:Update()
 
(Filename:  Line: -1)

ContractConfigurator.ContractType: CONTRACT_TYPE 'SpaceStation': Error parsing targetBody1
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

NullReferenceException: Object reference not set to an instance of an object
  at ContractConfigurator.ExpressionParser.CelestialBodyParser.CheckTree (KSPAchievements.CelestialBodySubtree tree, ProgressItem pi) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c__DisplayClass8_0.<BodiesForItem>b__0 (KSPAchievements.CelestialBodySubtree node) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[KSPAchievements.CelestialBodySubtree].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[KSPAchievements.CelestialBodySubtree,CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody].AddEnumerable (IEnumerable`1 enumerable) [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody]..ctor (IEnumerable`1 collection) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable.ToList[CelestialBody] (IEnumerable`1 source) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c.<RegisterMethods>b__5_43 () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[CelestialBody].ParseMethod[CelestialBody] (ContractConfigurator.ExpressionParser.Token token, .CelestialBody obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as Exception: Error parsing statement.
Error occurred near '*':
ReturnedFromBodies().Where(body => @/stations.Where(v => v.CelestialBody() == body).Count() == 0).SelectUnique()
....................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ExecuteExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
ContractConfigurator.LoggingUtil:LogException(Exception)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, CelestialBody, Func`2)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Func`2)
ContractConfigurator.DeferredLoadUtil:ExecuteLoad(DeferredLoadObject`1)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
ContractConfigurator.<UpdateNonDeterministicValuesIterator>d__30:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
ContractConfigurator.<GenerateContract>d__33:MoveNext()
ContractConfigurator.<ContractEnumerator>d__32:MoveNext()
ContractConfigurator.ContractPreLoader:Update()
 
(Filename:  Line: -1)

ContractConfigurator.ContractType: CONTRACT_TYPE 'SpaceStation': Error parsing targetBody1
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

NullReferenceException: Object reference not set to an instance of an object
  at ContractConfigurator.ExpressionParser.CelestialBodyParser.CheckTree (KSPAchievements.CelestialBodySubtree tree, ProgressItem pi) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c__DisplayClass8_0.<BodiesForItem>b__0 (KSPAchievements.CelestialBodySubtree node) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[KSPAchievements.CelestialBodySubtree].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[KSPAchievements.CelestialBodySubtree,CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody].AddEnumerable (IEnumerable`1 enumerable) [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody]..ctor (IEnumerable`1 collection) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable.ToList[CelestialBody] (IEnumerable`1 source) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c.<RegisterMethods>b__5_43 () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[CelestialBody].ParseMethod[CelestialBody] (ContractConfigurator.ExpressionParser.Token token, .CelestialBody obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as Exception: Error parsing statement.
Error occurred near '*':
ReturnedFromBodies().Where(body => @/stations.Where(v => v.CelestialBody() == body).Count() == 0).SelectUnique()
....................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ExecuteExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
ContractConfigurator.LoggingUtil:LogException(Exception)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, CelestialBody, Func`2)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Func`2)
ContractConfigurator.DeferredLoadUtil:ExecuteLoad(DeferredLoadObject`1)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
ContractConfigurator.<UpdateNonDeterministicValuesIterator>d__30:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
ContractConfigurator.<GenerateContract>d__33:MoveNext()
ContractConfigurator.<ContractEnumerator>d__32:MoveNext()
ContractConfigurator.ContractPreLoader:Update()
 
(Filename:  Line: -1)

ContractConfigurator.ContractType: CONTRACT_TYPE 'SpaceStation': Error parsing targetBody1
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

NullReferenceException: Object reference not set to an instance of an object
  at ContractConfigurator.ExpressionParser.CelestialBodyParser.CheckTree (KSPAchievements.CelestialBodySubtree tree, ProgressItem pi) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c__DisplayClass8_0.<BodiesForItem>b__0 (KSPAchievements.CelestialBodySubtree node) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[KSPAchievements.CelestialBodySubtree].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[KSPAchievements.CelestialBodySubtree,CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody].AddEnumerable (IEnumerable`1 enumerable) [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody]..ctor (IEnumerable`1 collection) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable.ToList[CelestialBody] (IEnumerable`1 source) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c.<RegisterMethods>b__5_43 () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[CelestialBody].ParseMethod[CelestialBody] (ContractConfigurator.ExpressionParser.Token token, .CelestialBody obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as Exception: Error parsing statement.
Error occurred near '*':
ReturnedFromBodies().Where(body => @/stations.Where(v => v.CelestialBody() == body).Count() == 0).SelectUnique()
....................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ExecuteExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
ContractConfigurator.LoggingUtil:LogException(Exception)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, CelestialBody, Func`2)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Func`2)
ContractConfigurator.DeferredLoadUtil:ExecuteLoad(DeferredLoadObject`1)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
ContractConfigurator.<UpdateNonDeterministicValuesIterator>d__30:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
ContractConfigurator.<GenerateContract>d__33:MoveNext()
ContractConfigurator.<ContractEnumerator>d__32:MoveNext()
ContractConfigurator.ContractPreLoader:Update()
 
(Filename:  Line: -1)

ContractConfigurator.ContractType: CONTRACT_TYPE 'SpaceStation': Error parsing targetBody1
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

NullReferenceException: Object reference not set to an instance of an object
  at ContractConfigurator.ExpressionParser.CelestialBodyParser.CheckTree (KSPAchievements.CelestialBodySubtree tree, ProgressItem pi) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c__DisplayClass8_0.<BodiesForItem>b__0 (KSPAchievements.CelestialBodySubtree node) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[KSPAchievements.CelestialBodySubtree].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[KSPAchievements.CelestialBodySubtree,CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody].AddEnumerable (IEnumerable`1 enumerable) [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody]..ctor (IEnumerable`1 collection) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable.ToList[CelestialBody] (IEnumerable`1 source) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c.<RegisterMethods>b__5_43 () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[CelestialBody].ParseMethod[CelestialBody] (ContractConfigurator.ExpressionParser.Token token, .CelestialBody obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as Exception: Error parsing statement.
Error occurred near '*':
ReturnedFromBodies().Where(body => @/stations.Where(v => v.CelestialBody() == body).Count() == 0).SelectUnique()
....................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ExecuteExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
ContractConfigurator.LoggingUtil:LogException(Exception)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, CelestialBody, Func`2)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Func`2)
ContractConfigurator.DeferredLoadUtil:ExecuteLoad(DeferredLoadObject`1)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
ContractConfigurator.<UpdateNonDeterministicValuesIterator>d__30:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
ContractConfigurator.<GenerateContract>d__33:MoveNext()
ContractConfigurator.<ContractEnumerator>d__32:MoveNext()
ContractConfigurator.ContractPreLoader:Update()
 
(Filename:  Line: -1)

ContractConfigurator.ContractType: CONTRACT_TYPE 'SpaceStation': Error parsing targetBody1
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

NullReferenceException: Object reference not set to an instance of an object
  at ContractConfigurator.ExpressionParser.CelestialBodyParser.CheckTree (KSPAchievements.CelestialBodySubtree tree, ProgressItem pi) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c__DisplayClass8_0.<BodiesForItem>b__0 (KSPAchievements.CelestialBodySubtree node) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[KSPAchievements.CelestialBodySubtree].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[KSPAchievements.CelestialBodySubtree,CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody].AddEnumerable (IEnumerable`1 enumerable) [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody]..ctor (IEnumerable`1 collection) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable.ToList[CelestialBody] (IEnumerable`1 source) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c.<RegisterMethods>b__5_43 () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[CelestialBody].ParseMethod[CelestialBody] (ContractConfigurator.ExpressionParser.Token token, .CelestialBody obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as Exception: Error parsing statement.
Error occurred near '*':
ReturnedFromBodies().Where(body => @/stations.Where(v => v.CelestialBody() == body).Count() == 0).SelectUnique()
....................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ExecuteExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
ContractConfigurator.LoggingUtil:LogException(Exception)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, CelestialBody, Func`2)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Func`2)
ContractConfigurator.DeferredLoadUtil:ExecuteLoad(DeferredLoadObject`1)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
ContractConfigurator.<UpdateNonDeterministicValuesIterator>d__30:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
ContractConfigurator.<GenerateContract>d__33:MoveNext()
ContractConfigurator.<ContractEnumerator>d__32:MoveNext()
ContractConfigurator.ContractPreLoader:Update()
 
(Filename:  Line: -1)

ContractConfigurator.ContractType: CONTRACT_TYPE 'SpaceStation': Error parsing targetBody1
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

NullReferenceException: Object reference not set to an instance of an object
  at ContractConfigurator.ExpressionParser.CelestialBodyParser.CheckTree (KSPAchievements.CelestialBodySubtree tree, ProgressItem pi) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c__DisplayClass8_0.<BodiesForItem>b__0 (KSPAchievements.CelestialBodySubtree node) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[KSPAchievements.CelestialBodySubtree].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[KSPAchievements.CelestialBodySubtree,CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody].AddEnumerable (IEnumerable`1 enumerable) [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody]..ctor (IEnumerable`1 collection) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable.ToList[CelestialBody] (IEnumerable`1 source) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c.<RegisterMethods>b__5_43 () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[CelestialBody].ParseMethod[CelestialBody] (ContractConfigurator.ExpressionParser.Token token, .CelestialBody obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as Exception: Error parsing statement.
Error occurred near '*':
ReturnedFromBodies().Where(body => @/stations.Where(v => v.CelestialBody() == body).Count() == 0).SelectUnique()
....................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ExecuteExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
ContractConfigurator.LoggingUtil:LogException(Exception)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, CelestialBody, Func`2)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Func`2)
ContractConfigurator.DeferredLoadUtil:ExecuteLoad(DeferredLoadObject`1)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
ContractConfigurator.<UpdateNonDeterministicValuesIterator>d__30:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
ContractConfigurator.<GenerateContract>d__33:MoveNext()
ContractConfigurator.<ContractEnumerator>d__32:MoveNext()
ContractConfigurator.ContractPreLoader:Update()
 
(Filename:  Line: -1)

ContractConfigurator.ContractType: CONTRACT_TYPE 'SpaceStation': Error parsing targetBody1
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

NullReferenceException: Object reference not set to an instance of an object
  at ContractConfigurator.ExpressionParser.CelestialBodyParser.CheckTree (KSPAchievements.CelestialBodySubtree tree, ProgressItem pi) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c__DisplayClass8_0.<BodiesForItem>b__0 (KSPAchievements.CelestialBodySubtree node) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[KSPAchievements.CelestialBodySubtree].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[KSPAchievements.CelestialBodySubtree,CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody].AddEnumerable (IEnumerable`1 enumerable) [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody]..ctor (IEnumerable`1 collection) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable.ToList[CelestialBody] (IEnumerable`1 source) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c.<RegisterMethods>b__5_43 () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[CelestialBody].ParseMethod[CelestialBody] (ContractConfigurator.ExpressionParser.Token token, .CelestialBody obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as Exception: Error parsing statement.
Error occurred near '*':
ReturnedFromBodies().Where(body => @/stations.Where(v => v.CelestialBody() == body).Count() == 0).SelectUnique()
....................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ExecuteExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
ContractConfigurator.LoggingUtil:LogException(Exception)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, CelestialBody, Func`2)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Func`2)
ContractConfigurator.DeferredLoadUtil:ExecuteLoad(DeferredLoadObject`1)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
ContractConfigurator.<UpdateNonDeterministicValuesIterator>d__30:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
ContractConfigurator.<GenerateContract>d__33:MoveNext()
ContractConfigurator.<ContractEnumerator>d__32:MoveNext()
ContractConfigurator.ContractPreLoader:Update()
 
(Filename:  Line: -1)

TextGenerator Error: No Text Set called Adjectives, Depreciative exists.
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

TextGenerator Error: No Text Set called Adjectives, Depreciative exists.
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

TextGenerator Error: No Text Set called Adjectives, Depreciative exists.
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

TextGenerator Error: No Text Set called Adjectives, Depreciative exists.
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

TextGenerator Error: No Text Set called Adjectives, Depreciative exists.
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

ContractConfigurator.ContractType: CONTRACT_TYPE 'SpaceStation': Error parsing targetBody1
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

NullReferenceException: Object reference not set to an instance of an object
  at ContractConfigurator.ExpressionParser.CelestialBodyParser.CheckTree (KSPAchievements.CelestialBodySubtree tree, ProgressItem pi) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c__DisplayClass8_0.<BodiesForItem>b__0 (KSPAchievements.CelestialBodySubtree node) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[KSPAchievements.CelestialBodySubtree].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[KSPAchievements.CelestialBodySubtree,CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody].AddEnumerable (IEnumerable`1 enumerable) [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody]..ctor (IEnumerable`1 collection) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable.ToList[CelestialBody] (IEnumerable`1 source) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c.<RegisterMethods>b__5_43 () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[CelestialBody].ParseMethod[CelestialBody] (ContractConfigurator.ExpressionParser.Token token, .CelestialBody obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as Exception: Error parsing statement.
Error occurred near '*':
ReturnedFromBodies().Where(body => @/stations.Where(v => v.CelestialBody() == body).Count() == 0).SelectUnique()
....................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ExecuteExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
ContractConfigurator.LoggingUtil:LogException(Exception)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, CelestialBody, Func`2)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Func`2)
ContractConfigurator.DeferredLoadUtil:ExecuteLoad(DeferredLoadObject`1)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
ContractConfigurator.<UpdateNonDeterministicValuesIterator>d__30:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
ContractConfigurator.<GenerateContract>d__33:MoveNext()
ContractConfigurator.<ContractEnumerator>d__32:MoveNext()
ContractConfigurator.ContractPreLoader:Update()
 
(Filename:  Line: -1)

ContractConfigurator.ContractType: CONTRACT_TYPE 'SpaceStation': Error parsing targetBody1
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

NullReferenceException: Object reference not set to an instance of an object
  at ContractConfigurator.ExpressionParser.CelestialBodyParser.CheckTree (KSPAchievements.CelestialBodySubtree tree, ProgressItem pi) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c__DisplayClass8_0.<BodiesForItem>b__0 (KSPAchievements.CelestialBodySubtree node) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[KSPAchievements.CelestialBodySubtree].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[KSPAchievements.CelestialBodySubtree,CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[CelestialBody].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody].AddEnumerable (IEnumerable`1 enumerable) [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1[CelestialBody]..ctor (IEnumerable`1 collection) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable.ToList[CelestialBody] (IEnumerable`1 source) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.CelestialBodyParser+<>c.<RegisterMethods>b__5_43 () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Function`1[System.Collections.Generic.List`1[CelestialBody]].Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[CelestialBody].ParseMethod[CelestialBody] (ContractConfigurator.ExpressionParser.Token token, .CelestialBody obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as Exception: Error parsing statement.
Error occurred near '*':
ReturnedFromBodies().Where(body => @/stations.Where(v => v.CelestialBody() == body).Count() == 0).SelectUnique()
....................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ExecuteExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
ContractConfigurator.LoggingUtil:LogException(Exception)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, CelestialBody, Func`2)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Func`2)
ContractConfigurator.DeferredLoadUtil:ExecuteLoad(DeferredLoadObject`1)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
ContractConfigurator.<UpdateNonDeterministicValuesIterator>d__30:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
ContractConfigurator.<GenerateContract>d__33:MoveNext()
ContractConfigurator.<ContractEnumerator>d__32:MoveNext()
ContractConfigurator.ContractPreLoader:Update()
 
(Filename:  Line: -1)

[UIMasterController]: ShowUI
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

Game Unpaused!
 

Pasted the error from my output log file, not obvious on how to attach the complete file to the forum.  The issue I'm having is after progressing  to the mun fly by mission, i accept it, do a free return trajectory and recover the probe on Kerbin.  On returning to the space center the contracts resets to first uncrewed flight mission and i lose all progression of the uncrewed missions.  If you need any more info, please let me know, i'll do my best to provide. cheers

 

Edited by iSquared
output file log
Link to comment
Share on other sites

Musings after playing this a while:

I like many elements of this compared to the stock career. I like the compartmentalized way it puts the types of missions.

I like the organic way the "extended" stays are on the surface via the waypoints, but they suffer from the stock issue with navigation to them, I can get pretty close to "area Alpha" in most cases, but if that area was in fact a part lying on the surface that I could target, I could literally land on top of it. Keep this in mind, it will be expanded upon, later...

I like the overall "systematic" approach to goals, that mimics real programs. I understand some people will find it too regimented, but the extant career system doesn't really support the required elements to make such an approach a good idea in KSP, though it is in reality. That would require a bigger mod than this which would incorporate other changes to make a sort of "RO" of career stuff, to make these mission goals not just "realistic" in terms of what they mimic, but useful in terms of career progression.

Things I am less fond of? Oddly, some of the same things I like. I don't like having to complete a flyby to then do an orbit, etc. I don't like having to make a new craft. I have some ideas along these lines, but I'm not sure what is possible.

Return missions are OK, but I might like to see some new science parts at some point (or a mod dependency to one that adds interesting parts (see ore comments, below).

Imagine a career where instead of the normal rewards, you are given X funds every Y days to spend. A budget, in short. The budget would be very small, in fact, not enough. the stock milestones need to be turned off in terms of rewards somehow (can diff level sliders do this?)

In addition to this small budget, we have this contract mod. Instead of providing a reward upon completion, it provides the reward as a budget, in advance. Completion times might need to be adjusted, and ideally there would be a way to have the clock stop on completion once launched---what would be best would be for the mission to be considered accomplished from a budget standpoint upon launch, so that your XX thousand Duna probe budget is to get the thing launched, and need not wait the X hundred days for it to arrive.

Combining missions would then have some utility in terms of excess funds available (say 3 60,000 fund missions could be combined into one 100,000 craft, then you pocket 80k excess funds, and this would be designed so that failure was a possibility (more like Hard mode, but without the grind, as you'd get funds to do missions). Obviously this eliminates some of the mission completion requirements required to be able to take certain missions. If you can't tell, I'm wanting a more "total career rebuild" using tools at hand. I'm really not sure what is possible, however.

I'd also like to see station resupply/expansion missions that are less arbitrary than stock.

All stock "ore" contracts need to be killed with fire, but "ore" transfer has a place for your career mod, as "sample return." To work, either all ore must be delivered to Kerbin, or perhaps to an existing station if the station has a lab (no idea if that is possible). The amount of ore would be vastly reduced, however. Small enough to fit in the smallest ore tank with room to spare.

For the extended stay, and rover missions I have a novel idea, but it requires a few new parts in the game, with variable textures depending on the target world (model could be shared). The parts would be interesting looking rocks. Like scatter, but different enough to matter. Right now, you have 3 waypoints to reach. One of them could be a black volcanic looking rock, so no variable texture required. The other two? No idea, one might be gray (there are gray rocks on Mars, not everything is rusty), and perhaps just one matches the various world colors. Alternately, it could be a sort of surface decal looking thing that indicated water ice or something (whatever, we brainstorm something). Then, instead of the area alpha, beta, charlie, there is a physical object left as wrecked craft are for rescue missions.

This allows actually targeting them, and on the surface, the player can actually see the bloody things, and know where to go. Make at least one of them such that a grabber can get them, and the rock might be a sample return (like a craft return rescue mission).

Life support would be another "suggested" mod to go with this. I'd like a "light" version of something like Dang it! I suppose, so that the incremental approach actually makes sense (but then testing/flight needs to reduce the chances of future failure).

 

Edited by tater
Link to comment
Share on other sites

On 4/2/2017 at 1:32 PM, tater said:

Musings after playing this a while:

I like many elements of this compared to the stock career. I like the compartmentalized way it puts the types of missions.

I like the organic way the "extended" stays are on the surface via the waypoints, but they suffer from the stock issue with navigation to them, I can get pretty close to "area Alpha" in most cases, but if that area was in fact a part lying on the surface that I could target, I could literally land on top of it. Keep this in mind, it will be expanded upon, later...

I like the overall "systematic" approach to goals, that mimics real programs. I understand some people will find it too regimented, but the extant career system doesn't really support the required elements to make such an approach a good idea in KSP, though it is in reality. That would require a bigger mod than this which would incorporate other changes to make a sort of "RO" of career stuff, to make these mission goals not just "realistic" in terms of what they mimic, but useful in terms of career progression.

Things I am less fond of? Oddly, some of the same things I like. I don't like having to complete a flyby to then do an orbit, etc. I don't like having to make a new craft. I have some ideas along these lines, but I'm not sure what is possible.

Return missions are OK, but I might like to see some new science parts at some point (or a mod dependency to one that adds interesting parts (see ore comments, below).

Imagine a career where instead of the normal rewards, you are given X funds every Y days to spend. A budget, in short. The budget would be very small, in fact, not enough. the stock milestones need to be turned off in terms of rewards somehow (can diff level sliders do this?)

In addition to this small budget, we have this contract mod. Instead of providing a reward upon completion, it provides the reward as a budget, in advance. Completion times might need to be adjusted, and ideally there would be a way to have the clock stop on completion once launched---what would be best would be for the mission to be considered accomplished from a budget standpoint upon launch, so that your XX thousand Duna probe budget is to get the thing launched, and need not wait the X hundred days for it to arrive.

Combining missions would then have some utility in terms of excess funds available (say 3 60,000 fund missions could be combined into one 100,000 craft, then you pocket 80k excess funds, and this would be designed so that failure was a possibility (more like Hard mode, but without the grind, as you'd get funds to do missions). Obviously this eliminates some of the mission completion requirements required to be able to take certain missions. If you can't tell, I'm wanting a more "total career rebuild" using tools at hand. I'm really not sure what is possible, however.

I'd also like to see station resupply/expansion missions that are less arbitrary than stock.

All stock "ore" contracts need to be killed with fire, but "ore" transfer has a place for your career mod, as "sample return." To work, either all ore must be delivered to Kerbin, or perhaps to an existing station if the station has a lab (no idea if that is possible). The amount of ore would be vastly reduced, however. Small enough to fit in the smallest ore tank with room to spare.

For the extended stay, and rover missions I have a novel idea, but it requires a few new parts in the game, with variable textures depending on the target world (model could be shared). The parts would be interesting looking rocks. Like scatter, but different enough to matter. Right now, you have 3 waypoints to reach. One of them could be a black volcanic looking rock, so no variable texture required. The other two? No idea, one might be gray (there are gray rocks on Mars, not everything is rusty), and perhaps just one matches the various world colors. Alternately, it could be a sort of surface decal looking thing that indicated water ice or something (whatever, we brainstorm something). Then, instead of the area alpha, beta, charlie, there is a physical object left as wrecked craft are for rescue missions.

This allows actually targeting them, and on the surface, the player can actually see the bloody things, and know where to go. Make at least one of them such that a grabber can get them, and the rock might be a sample return (like a craft return rescue mission).

Life support would be another "suggested" mod to go with this. I'd like a "light" version of something like Dang it! I suppose, so that the incremental approach actually makes sense (but then testing/flight needs to reduce the chances of future failure).

 

I agree with pretty much everything that you have written! I am working on a conversion of the career system, but it will be more historical based. Using the information learned from there, I will hopefully use it to improve the stock career system as well.

I will go through your post in more detail later. I really appreciate the detailed information!

Edited by pap1723
Link to comment
Share on other sites

Back when I wrote a campaign mod for Silent Hunter 4, there was another mod that was deeply historical that I liked (and the 2 of us communicated, since while both were career mods, they were very different in intent).

His was a stunning, perfectly historical career mod---the right convoys, in the right places, at the right times where possible. Mine was to simply have plausible shipping at the right times in the war, while making that shipping entirely random.

I would say that a historical feel is what you are really looking for, without requiring an exact copy of Mercury-->Gemini-->Apollo, etc.

I could see some player choices driving things. Goal: Crew to the Mun. Within that set, instead of flyby, orbit, land as separate missions, there could be sub-directories. Direct, Kerrin Orbit Rendezvous, Mun Orbit Rendezvous, would be 3 examples.

KOR would check for rendezvous in LKO, and if not offer it. Ditto docking. All Mun landing with crew missions might require missions to select a landing area...

That's a good set of missions to add now. Flyby is gathering science. A generic orbital mission can be assumed to be a broad survey. Then, perhaps you could either add a mission to fly over X spots at some altitude or less.

Impact the Mun? The first would be "we can hit the mun!" as you have it. There could be MORE of these, however. The second could be to hit within one of the survey areas I just mentioned (I can imagine the mission text might be that scientists want up close images, then want to study the impact zone). There is a mod that add impact instruments (seismometers you deploy on the surface, then get science via impact). Those could be the final version.

The unmanned sample return, or robotic landings could be in specific areas. These will be reused for crew missions.

Another crew mission might be to land at the site of one of those earlier probes:

383417main_surveyor3_full.jpg

(Apollo 12 and Surveyor 3)

Link to comment
Share on other sites

  • 3 weeks later...

Odd that the Reach Orbit and return requires a munar flyby.

Generally, I think the progression paths should be more generic, if this means making more subsets of mission types, so be it. In this case, it seems like the requirement should be to have reached orbit to then be able to test reentry vehicles. That could be a new subset. Uncrewed reentry. First you test recovery from an atmospheric flight (this might be required to test a crew vehicle at all). Then suborbital (karman line then recovery). Then orbital, then perhaps high orbital---is there a way to require a certain velocity?

Link to comment
Share on other sites

5 minutes ago, tater said:

Odd that the Reach Orbit and return requires a munar flyby.

Generally, I think the progression paths should be more generic, if this means making more subsets of mission types, so be it. In this case, it seems like the requirement should be to have reached orbit to then be able to test reentry vehicles. That could be a new subset. Uncrewed reentry. First you test recovery from an atmospheric flight (this might be required to test a crew vehicle at all). Then suborbital (karman line then recovery). Then orbital, then perhaps high orbital---is there a way to require a certain velocity?

This was done because historically, it was much easier to throw a spacecraft at the Moon than it was to learn how to bring something back from orbit. I don't think most people understand the actual difficulty in bringing things back safely to Earth from orbit. The US failed 12 times with their Corona program before they were successful, then there were many others that failed. There was the tragedy of Soyuz and Columbia. The temperatures that build up outside of a reentry vehicle are hotter than the sun.

That is what I was trying to recreate.

Link to comment
Share on other sites

23 minutes ago, pap1723 said:

This was done because historically, it was much easier to throw a spacecraft at the Moon than it was to learn how to bring something back from orbit. I don't think most people understand the actual difficulty in bringing things back safely to Earth from orbit. The US failed 12 times with their Corona program before they were successful, then there were many others that failed. There was the tragedy of Soyuz and Columbia. The temperatures that build up outside of a reentry vehicle are hotter than the sun.

That is what I was trying to recreate.

I assumed this was the case, I just tend to disagree with it, I guess.

I addressed it a couple posts up. Is the goal for people to have to do the campaign exactly the same, every single time, or is it to provide a framework where the actual, historical progression makes sense, but other progressions (equally plausible) are possible? I think the latter is better, frankly, but obviously YMMV.

So you'd do what you have already done, making sub-types of milestone chains, with some requiring other milestones get hit, to demonstrate testing capabilities before taking the next step. Some are unconnected, though.

Going to the Mun, Minmus, or wherever is not really a prerequisite to learning how to do a reentry. Seems like you could have a reentry grouping, with milestones that I suggested (or better ones). I am not aware of how much you can require in missions. Obviously part testing is possible here... since chutes, engines, etc can have a velocity requirement, could you have such a test requirement on a heat shield? Test a heat shield at 2500 m/s or whatever makes sense?

Link to comment
Share on other sites

The Space Station missions/contracts don't appear without the Moon landing condition. This seems wrong-headed to me. You might want to do an EOR style mission where things are assembled in orbit, then sent. In stock this is pretty unlikely, but in a modded game (I'm currently using parts for stock in a 4X planets, 6.4X distance solar system) you might well want to stay in LEO a while... add in life support, and this is even more likely. 

Alternately, you might be playing with Soviet parts, and not making a station before the Mun would pretty much stop you in your tracks :wink: .

Link to comment
Share on other sites

I seem to have encountered a bug. I launched a space station when I got the contract, completed it successfully. But the next contract never appeared. After a while I got concerned and looked. The first crew contract show "Get your space station" as unmet.

I am playing with SSRSS and all other contracts seem to to work fine. Since I cannot get this contract, I also cannot progress with any other crewed missions. Is there a work-around, perhaps a save-file hack I could use for right now ? Or a fix suggestion to get it to appear ?

Link to comment
Share on other sites

I believe I found the cause of the bug. Found this in the log file:

 NotSupportedException: The SelectUnique method can only be used in DATA nodes with the uniquenessCheck attribute set.

So I added: uniquenessCheck = true

To the DATA node in the SSFirstCrew mission - that did not help.

So I instead I removed the SelectUnique() call from the targetVessel line. That made the contract not show up in the All listing even - suggesting it broke it entirely.

Next thing I tried was to open my save file, get the hash for my station vessel - and replace that entire line with one that read

targetVessel1 = <hash code>

Hoping this would match what SelectUnique was meant to return. No luck. 

I googled the error message, it's actually defined in the ContractConfigurator code - so this may well be a version incompatibility with C.C. perhaps @nightingale has some insights ?

Update: I found it, my very first hunch was right - it did need a uniquenessCheck line added, I just had to look up valid values for it. Based on my understanding of the documentation, and what I think the contracts want to do: adding uniquenessCheck = GROUP_ALL to every one of the targetVessel data nodes is the fix for the bug.

Edited by metalpoetza
Link to comment
Share on other sites

35 minutes ago, metalpoetza said:

I believe I found the cause of the bug. Found this in the log file:

 NotSupportedException: The SelectUnique method can only be used in DATA nodes with the uniquenessCheck attribute set.

So I added: uniquenessCheck = true

To the DATA node in the SSFirstCrew mission - that did not help.

So I instead I removed the SelectUnique() call from the targetVessel line. That made the contract not show up in the All listing even - suggesting it broke it entirely.

Next thing I tried was to open my save file, get the hash for my station vessel - and replace that entire line with one that read

targetVessel1 = <hash code>

Hoping this would match what SelectUnique was meant to return. No luck. 

I googled the error message, it's actually defined in the ContractConfigurator code - so this may well be a version incompatibility with C.C. perhaps @nightingale has some insights ?

Update: I found it, my very first hunch was right - it did need a uniquenessCheck line added, I just had to look up valid values for it. Based on my understanding of the documentation, and what I think the contracts want to do: adding uniquenessCheck = GROUP_ALL to every one of the targetVessel data nodes is the fix for the bug.

Do you think you can do a PR for @pap1723 ?  If not could you send a fixed file to me and I will.

Link to comment
Share on other sites

33 minutes ago, linuxgurugamer said:

Do you think you can do a PR for @pap1723 ?  If not could you send a fixed file to me and I will.

I probably could, but I'm still experimenting a bit with the fix - looks like it needs a bit more tweaking to work for everything - GROUP_ALL worked for first crew but not for the next ones. Once I have it working properly I will do a P.R.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...