Jump to content

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


pap1723

Recommended Posts

4 hours ago, pap1723 said:

VERSION UPDATE to 0.2

  • Drastically modified all contract payout values
  • Changed most crewed missions to only require a minimum of 1 crew
  • Changed how the Space Station contracts chose the vessel to target
  • Fixed type errors for some of the contracts
  • Removed the need to launch a new vessel for all of the uncrewed flyby and landing missions

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

 

Thank you for the continued play-testing and keep reporting in!

I would suggest that you have missions to other planets (not the local moons) require a minimum of 2 crew.  Or maybe based on difficulty?

Link to comment
Share on other sites

Just now, linuxgurugamer said:

I would suggest that you have missions to other planets (not the local moons) require a minimum of 2 crew.  Or maybe based on difficulty?

That is how my initial thinking was. But to me, I'm not going to force the player. I prefer to play semi realistic, but I know the way everyone plays is very different. If someone wants to send their single seat SSTO to go flyby Duna, who am I to tell them otherwise?

Link to comment
Share on other sites

11 minutes ago, pap1723 said:

That is how my initial thinking was. But to me, I'm not going to force the player. I prefer to play semi realistic, but I know the way everyone plays is very different. If someone wants to send their single seat SSTO to go flyby Duna, who am I to tell them otherwise?

I understand, but could you either provide instructions on how to change it, or an alternative file to use?

Link to comment
Share on other sites

Just an FYI, Nightingale is trying to keep all contract mods for ContractConfigurator to live in the GameData/ContractPacks directory.

Looks like putting IPContracts in there will work, but you may want to zip it up for the next release starting at GameData, so that in the zip file it will be in the correct location.

Link to comment
Share on other sites

Odd idea that subverts the normal science paradigm in KSP...

It used to be that many science contracts gave large science rewards. Those were then reduced, making the science gained by the parts themselves the thing. A problem I have with stock "survey" contracts from orbit (and science from orbit, like the "transmit science" stuff that rewards the contract even with 0 science points transmitted).

OK, here's an idea: The extant surveys include points semi-randomly on the world that you must fly over, which is a pain in the posterior, since you have to warp until you fly over, then make sure the altitude is right (and it varies by site), then find the science part and click it before you leave the flyby zone. Instead, replace those orbital survey missions with specific orbits, usually polar, at a particular altitude, and require the survey science parts be on the spacecraft.

So instead of taking temp readings at 3 spots below 13km over the Mun (where you might also have to adjust altitude for 1 area), you would require a polar orbiting temperature scanner spacecraft, and require that it orbit for 100 days, then give the player the reward instead of the click-fest of the current versions.

For science instrumentality that scans "biomes" (gravity sensor, for example), I'd like to get the total science  as the reward, assuming a contract can mark those experiments done so that it cannot be exploited by 2X measurements. So a requirement of the mission to get the reward is that you fly the orbital scanner (gravoli in this case), but that if it has been used at all over that particular body before mission completion, the player gets no reward from the mission---is it possible for a contract to set science as done?

Link to comment
Share on other sites

10 minutes ago, tater said:

OK, here's an idea: The extant surveys include points semi-randomly on the world that you must fly over, which is a pain in the posterior, since you have to warp until you fly over, then make sure the altitude is right (and it varies by site), then find the science part and click it before you leave the flyby zone. Instead, replace those orbital survey missions with specific orbits, usually polar, at a particular altitude, and require the survey science parts be on the spacecraft.

So instead of taking temp readings at 3 spots below 13km over the Mun (where you might also have to adjust altitude for 1 area), you would require a polar orbiting temperature scanner spacecraft, and require that it orbit for 100 days, then give the player the reward instead of the click-fest of the current versions.

@tater

I like this idea!!! This is something that dMagic has done with some of his contracts. It makes for a fun design. I will look into some implementation of this!

10 minutes ago, tater said:

For science instrumentality that scans "biomes" (gravity sensor, for example), I'd like to get the total science  as the reward, assuming a contract can mark those experiments done so that it cannot be exploited by 2X measurements. So a requirement of the mission to get the reward is that you fly the orbital scanner (gravoli in this case), but that if it has been used at all over that particular body before mission completion, the player gets no reward from the mission---is it possible for a contract to set science as done?

I don't understand this idea completely. Can you please try to explain it a little differently?

14 hours ago, linuxgurugamer said:

I understand, but could you either provide instructions on how to change it, or an alternative file to use?

@linuxgurugamer

I will provide an alternate file in the download to require more crew.

 

13 hours ago, linuxgurugamer said:

Just an FYI, Nightingale is trying to keep all contract mods for ContractConfigurator to live in the GameData/ContractPacks directory.

Looks like putting IPContracts in there will work, but you may want to zip it up for the next release starting at GameData, so that in the zip file it will be in the correct location.

Yeah, that is how I have my other Contracts setup. This one will be moved into that structure as well. Thanks!

Edited by pap1723
Link to comment
Share on other sites

For temp and pressure, you can simply replace the current survey missions with polar orbits at perhaps different altitudes, and a new craft might only be required for the first flight, and orbital changes allowed for new missions, "Retask your munar temperature scanner to a lower orbit, and scan for 80 days" for example. This is because you only get 1 temp, and 1 pressure reading, so if the player has already gotten that science with a flyby, it doesn't matter, it's just a few points. So that's easy.

For the gravoli sensor, and some modded science instruments that look down from orbit at each biome, the trouble is that the player can click flying over each biome (big ones are easy, but "slopes" might come and go before you can click the part, particularly in low orbit). Then, if the new mission gives the sum total of such science as the reward, the player could collect the reward the easy way (a polar orbital probe for XX days), THEN they could click on the part and get the science again---unless a contract can mark science as collected. This only applies to instruments that collect data on biomes. The other solution is to not have the "scanning survey" missions for those parts.

Link to comment
Share on other sites

1 hour ago, pap1723 said:
15 hours ago, linuxgurugamer said:

I understand, but could you either provide instructions on how to change it, or an alternative file to use?

@linuxgurugamer

I will provide an alternate file in the download to require more crew.

Just a thought, is it possible to have a contract know the difficulty of the game?  If so, you could make the number of crew dependent on the game difficulty.

Link to comment
Share on other sites

The number of crew isn't really a difficulty thing, IMO, since landing or orbiting more effectively requires building a contraption. I'd think that anyone interested in a historical/logical set of objectives is likely less interested in some Rube Goldberg spacecraft for an arbitrary goal. The stock goals are already arbitrary. I was getting the Mun missions at a point where the stock pod I had was the mk1---a pod I always curtail myself to only ever using in Kerbin orbit.

Trying to make career seem like it has a point is pretty difficult given the awful career system Squad came up with, sadly.

Link to comment
Share on other sites

@pap1723 the Nullrefs I was getting from CC this evening were from this contract pack:

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, Syste

 

Here is the full log:  https://www.dropbox.com/s/crtssqsq2kpbczj/log.zip?dl=0

I have version 0.2 installed of your contract pack.  

Link to comment
Share on other sites

Some more info, looks like one of the problems is a single equals singn instead of two in the following:

IPContracts/Contracts/10-SpaceStations.cfg:        targetVessel1 = AllVessels().Where(v => v.VesselType() == Station && v.IsOrbiting() = true && v.CelestialBody() == @targetBody).SelectUnique()
IPContracts/Contracts/10-SpaceStations.cfg:        targetVessel1 = AllVessels().Where(v => v.VesselType() == Station && v.IsOrbiting() = true && v.CelestialBody() == @targetBody).SelectUnique()
IPContracts/Contracts/10-SpaceStations.cfg:        targetVessel1 = AllVessels().Where(v => v.VesselType() == Station && v.IsOrbiting() = true && v.CelestialBody() == @targetBody).SelectUnique()
IPContracts/Contracts/10-SpaceStations.cfg:        targetVessel1 = AllVessels().Where(v => v.VesselType() == Station && v.IsOrbiting() = true && v.CelestialBody() == @targetBody).SelectUnique()

see where it says " v.IsOrbiting() = true", I think it should be two equal signs there

Link to comment
Share on other sites

16 minutes ago, linuxgurugamer said:

And this isn't another:


ReturnedFromBodies().Where(body => @/stations.Where(v => v.CelestialBody() == body).Count() == 0).SelectUnique()

????

That one looks clean to me.

Link to comment
Share on other sites

Just now, linuxgurugamer said:

Me too. But CC reported an error on it.

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

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...