KSP-RO / RP-1

Realistic Progression One - Career mode for Realism Overhaul
Other
345 stars 215 forks source link

Contracts moving forward #177

Closed NathanKell closed 5 years ago

NathanKell commented 9 years ago

We currently have:

We also currently use the stock satellite and collectScience contracts (pending replacement with CC contracts).

However, there's lots more to do. Boldly stealing contract ideas from BARIS:

Links: BARIS (free) and its remake Buzz Aldrin's Space Program Manager (not so free) for mission ideas.

magico13 commented 9 years ago

I'll just toss this idea out there: any interest in making it so KCT upgrade points are awarded through contracts instead of (or in addition to) tech node unlocks? When I start working on the API for KCT one of the first things I'm planning on adding is the ability for other mods to add upgrade points, and @jrossignol has assured me that Contract Configurator has a way to trigger that on completion of a contract. So you might get a bunch of upgrades for escaping the atmosphere for the first time, or something like that.

It'd probably fit better as an extension to existing contracts, rather than as any specific new contracts, but I figured I'd toss the idea out there for people to think about.

jrossignol commented 9 years ago

@magico13 - I totally don't remember that conversation (not saying that it didn't happen, just that I have a short memory for that type of stuff sometimes). Taking a quick look, I think it'd be super easy for me to add something for setting/incrementing the upgrade points (from a quick scan of the code, I assume I could just set/increment KCT_GameStates.TotalUpgradePoints through reflection). If you're okay with the approach of adding this directly into Contract Configurator, drop me an issue with some more details.

@NathanKell - As far as a replacement to the stock CollectScience, have a look at my Field Research contract pack - that's basically what it is. You're more than welcome to use it for inspiration, strip mine it of what you need (it's CC-BY-NA-SA 4.0, so really no license issues since you're under the same), or even include it as a dependency if you think the fit is pretty close (although there's a lot of the contract text that wouldn't fit a non-kerbal universe with references to Wernher and such).

I did notice a mention of a contract that provides XP to crew - something I've had on the feature list for a while (https://github.com/jrossignol/ContractConfigurator/issues/54). I'll bump up the priority since I now know there's an interested party.

magico13 commented 9 years ago

I totally don't remember that conversation

It was less of a conversation and more of a "Hey is this possible?" "Yep!" "Cool, thanks." situation here. You're looking at Master, not at Development. I do things in a slightly weird way (really just need to start using tags) where Master is always the latest released code and Development is where new code goes. In Development you'll see that TotalUpgradePoints has been removed because you can now turn off getting points from tech nodes and can change the total starting upgrades, so it's not as easy anymore.

The next project for KCT is an API. One of the items in the API will be a function to let you add/remove upgrades. If Contract Configurator wants to tie into that as an optional parameter that would be awesome, but it's still a bit down the line. If there's pressure to get that done, I'll get it done sooner. Currently there's nobody other than me who wants that feature :P

As for giving Kerbals XP, it's not as trivial as it should be. Take a look at Field Experience (source is in download, sorry) to see how I handle automatic leveling. XP is tied directly into the Flight Log and is recalculated every time the game is loaded, so whatever XP you give you'll have to keep giving every time the save is loaded. MKS/OKS has an "Academy" or something like that that might do something different but my guess is that it writes a "simulated" flight log based on the "instructor" Kerbal's Career Log.

jrossignol commented 9 years ago

Well, there's three ways to do it:

  1. KCT uses CC to add the behaviour (or whatever it ends up being). No way to do this via reflection, since subclassing is required. Since I imagine you don't want a permanent dependency on Contract Configurator, this means splitting it into a separate assembly.
  2. CC adds the behaviour and uses reflection to call the public API. I'll also add it to the public doco. Once your API is set up, there's probably less risk of something changing/breaking too.
  3. Make it a completely independent mod/release. This sounds like a pain and not worth doing, but just mentioning it for completeness. :wink:

So yeah, once that API is in place, I'll definitely look at adding some integration into KCT.

And thanks for the tip on Kerbal XP - I've added that info to https://github.com/jrossignol/ContractConfigurator/issues/54.

Arbos commented 9 years ago

I see that moon flyby is in "Milestones" while other celestial bodies flybys are in "Fly-by Contracts". Is the plan to migrate all flybys to "Milestones"?

NathanKell commented 9 years ago

Milestones are, if you will, the "guided tutorial" of RP-0. They cover the basic early milestones of space exploration. By that metric, perhaps the Venus and Mars flybies should be there, but probably nothing else.

Arbos commented 9 years ago

I understand. I have looked at the cfg files for contracts and they don't seem very difficult. Maybe I could add some if you specify me what contracts need to be added. I miss contracts that resemble Apollo 8 and Apollo 11, for example.

NathanKell commented 9 years ago

Great! Yes, we could very much use those. :)

jrossignol commented 9 years ago

Question for you guys, and I figured this would be the best place since @NathanKell and @magico13 may have input. I have an old enhancement request for Contract Configurator (https://github.com/jrossignol/ContractConfigurator/issues/45) to do a REQUIREMENT that is based on calendar date. I've never had much of an appetite to do that change since time doesn't really matter in KSP and the "transfer window" aspect would better be handled by actually doing the math to figure out appropriate transfer windows.

But with KCT being a key part of RP-0, maybe a calendar date based requirement makes sense for you guys (and possibly a parameter too)? Some uses off the top of my head would be:

  1. Preventing contracts that are meant to be early game from being offered once you hit a certain point (although this is arguably better handled with progression based stuff)
  2. Setting up some kind of "space race" scenario (we have 10 years to get to the Mun Moon).

Any interest in this one? If so, please feel free to comment on the CC issue. I'll have to think through the issues of how to input the time (probably UT) and how to display it (if there isn't already something available I'll make sure to put in the smarts for Kerbin/Earth time).

NathanKell commented 9 years ago

So commented. :)

glilienthal commented 9 years ago

@Arbos Thanks for the Lunar orbit contract! I wonder however whether the reward of 20,000 Funds is not far too low, considering you get that for unmanned lunar orbits already. Maybe increase but 10fold?

But I do have to admit that I don't really know how the other rewards have been set. (One of the major reasons holding me back desiging contracts myself.)

NathanKell commented 9 years ago

@glilienthal excellent point, I missed that on my PR review. I'll have a think. Your 10x increase sounds good as a first wash.

Arbos commented 9 years ago

@glilienthal No problem :)

It seems that the funds rewarded by unmanned earth orbits are similar to human orbital at LEO. Maybe this is unbalanced too.

Are you interested in space stations contracts?

glilienthal commented 9 years ago

I love space station contracts!

NathanKell commented 9 years ago

Single-person repeatable LEO takes only about 15k funds of rocket, so 20k funds reward all told makes sense. Lunar orbit, even for a single person, takes about five hundred tons of rocket, and that costs...rather more. However, the best solution here IMO is to make a milestone HSF flyby mission, and a repeatable lunar orbit mission...working on that.

NathanKell commented 9 years ago

And I, too, love space station contracts. :)

BevoLJ commented 9 years ago

Was wondering what y'all thought of removing the duration limitation on the flyby contracts to allow for tour mission?

batuhantasli commented 8 years ago

Are those contracts still not done? If so, I'll start working on them.

stratochief66 commented 8 years ago

They are not. You are most welcome to work on them @batuhantasli !

NathanKell commented 8 years ago

Yep! Missed this in my busyness--please please do! :)

Zarbizaure commented 8 years ago

So I added a bit of lunar stuff but we need rovers! Also, are the date now in Earth days? I noticed that some of the lunar contracts still have the *4 factor.

Another idea would be reusability contracts: suceed to launch a SSTO in orbit and recover it (though totally hardcore contract for RO) or recover at least an engine from the LV (but I have no idea how to check if there's an engine on the recovered parts).

pap1723 commented 5 years ago

Complete