Jump to content

Contract Pack: Giving Aircraft a Purpose (GAP) 2.11 - Milestones, Air Flights, Coast Guard (Now Updated for KSP 1.12.5)


inigma

Recommended Posts

Dev Update:

Now that SpaceDock is stable, time for me to focus on GAP.

With that, Contract Configurator 1.9.6 is out, and with it comes some delicious enhancements.

To Do:

1. Better Vessel Parameter Group definitions to prevent rogue missions from completing or failing contracts unintentionally. This is the core reason for the outstanding bug reports so far, and I'm halfway tempted just to burn through it and release 1.1.3 before leaping with ideas into 1.2.

2. I have a plan to completely re-do the starting contract: Join SSI. With CC 1.9.6 I can now charge players a hefty membership fee to join SSI (thinking at least half of their starting funds). I have in mind to offer also a bailout loan via SSI Loan contract, giving a player with little to no funds their starting funds back with a 25% interest due in 30 days. Also other economic contracts to sell the player other low tech parts to get started doing GAP contracts in stock KSP.

3. I might need to completely re-think my releases. 1.2 is turning out not to have anything to do with Cargo. Ha. Unless I can sprint to the end after all the above.

 

Link to comment
Share on other sites

You might to consider a "max" price for join SSI. Meaning, if player have grinded more money in early careeer somehow, it could be too harsh to take from him 50% of funding.
That could hapen more often for players who installed mod somewhere in middle of playtrough.

50% can be small amount of money only at very begining of career. So, if player have more money than max price, you charge him that max price for joining SSI. If he does not have that kind of money than use 50% equation. In both cases you have to put in consideration to leave enough money for player so he is still able to build some small craft and continue career.

This might have more impact on career than your first thought that it could be.

Link to comment
Share on other sites

5 hours ago, kcs123 said:

You might to consider a "max" price for join SSI. Meaning, if player have grinded more money in early careeer somehow, it could be too harsh to take from him 50% of funding.
That could hapen more often for players who installed mod somewhere in middle of playtrough.

50% can be small amount of money only at very begining of career. So, if player have more money than max price, you charge him that max price for joining SSI. If he does not have that kind of money than use 50% equation. In both cases you have to put in consideration to leave enough money for player so he is still able to build some small craft and continue career.

This might have more impact on career than your first thought that it could be.

I was testing starting conditions and I think I might go with a simple flat fee of 1000 funds (or free) and separate all part giveaways into optional vendor contracts requiring funds for prototypes tied to percentages of a player's starting funds.  This would at least give the player the starting option to invest early cash into making a tour bus from which to make money to grind funds to acquire additional parts to make a Wright type glider if so desired.

This way all players are forced to join SSI and thus be drawn into the context of GAP contracts (which then unlocks their availability) but not have to accept  any part bundles unless they want to pay for them separately through the SSI prototype market.

I'm still undecided if I should require a member fee yet. Depends on whether anyone would be hostile to the idea of paying funds to acquire access to contracts. 

Edited by inigma
Link to comment
Share on other sites

Well, this weekend I didn't work on vessel definitions, but I did fiddle with the starting contracts, and submitted a commit! 

Join SSI is required to open the GAP tree. It only requires a 10% starting funds membership fee. No need to ferry Inigma anywhere. No parts given.

Four new contracts were developed to sell the prototypes separately, and obviously with starting funds alone, you won't be able to acquire all of them. The Tour Bus contract was bumped to give 3500 funds per tour, making it a nice way to make early funds and purchase more parts or make a science car, or a glider, or even this - a sounding rocket!

 

And I found that after balancing the prototype market contracts, the progression works well with stock tree and modded tech trees. In fact, I was having so much fun with this setup and freedom of choice, that I decided to just go with it as the new GAP starting contract progression. 

I also removed the Command Seat requirement for Wright Glider and replaced it with a Control Surface requirement, meaning you have to have at least movable aerodynamic parts (aka elevons) before Glider shows up. It made more sense, and prevented Glider from showing up before Tour Bus (I'm a stickler for proper chronology). Now Tour Bus shows up, but if you decide to purchase the glider prototype package, you can skip straight to gliders. This has fit nicely into the modularlization of GAP I committed a few changes back in the dev version of GAP.

In light of all these changes, I've pushed cargo and all downstream releases up a level to 1.3 and higher, and instead will be releasing 1.2 as a progression revamp rebalance, and bug fix release. I want to prove this design is stable before going all out on enhancements, although I have an itch to include in 1.2 a BD Armory required contract to rescue Scott Kerman from being held hostage at KSC Island.

Link to comment
Share on other sites

On 2/13/2016 at 11:27 PM, GhostMonkeyNKHI said:

Whether people revert or not, a crash on the way over to the island doesn't seem relevant to the contract.  Crashes during/after the barnstorm are interesting, because safe landing both signals the end of the contract, and is an objective measure of successful barnstorming - you didn't hit the mountains behind the hanger.

What about this idea?  You could play "ATC" and have staging area / holding pattern waypoints to signal when a plane is intended for some of the contracts.  To take barnstorming again, "ATC" might allow your stunt, but first you have to proceed to Waypoint X and receive clearance.  Hitting that waypoint would identify the contract vessel.  If you pick the waypoints well enough, there shouldn't be many people hitting them by accident.  If they did hit it by accident, or didn't want to go through with the stunt, they could still always safely land and recover to free the tag (right)?

I just had a brilliant idea. Instead requiring a flight to a waypoint (could be rather monotaneous), how about requiring for every GAP flight, a pref-flight check... essentially simply requiring a player to EVA a Kerbal on the ground (they don't have to load it back into the plane, but are welcome to). This would essentially trigger the definition completion, and then mark that particular flight as intending to complete the GAP contract. 

Link to comment
Share on other sites

12 minutes ago, inigma said:

I just had a brilliant idea. Instead requiring a flight to a waypoint (could be rather monotaneous), how about requiring for every GAP flight, a pref-flight check... essentially simply requiring a player to EVA a Kerbal on the ground (they don't have to load it back into the plane, but are welcome to). This would essentially trigger the definition completion, and then mark that particular flight as intending to complete the GAP contract. 

I like the idea of stuff like pre-flight checks, but I'm not sure it actually solves a problem.  Does it actually lessen perceived negative effects, or just trade one type for another?  Also, my EVA may be for some non-GAP purpose, like I was just trying to gather science, or I needed Bill to officiate a Drag Race, or whatever.

Link to comment
Share on other sites

1 minute ago, GhostMonkeyNKHI said:

I like the idea of stuff like pre-flight checks, but I'm not sure it actually solves a problem.  Does it actually lessen perceived negative effects, or just trade one type for another?  Also, my EVA may be for some non-GAP purpose, like I was just trying to gather science, or I needed Bill to officiate a Drag Race, or whatever.

The logic would follow that the craft would have to meet the contract's standard basic design requirements (which are what i have now), and the EVA has to be on the runway (which I want to add). EVAing a Kerbal on the runway should be enough of a specific player engagement to trigger a GAP definition. That, or the option was to have the player wait 30 seconds before getting clearance for takeoff from ATC - which would not make sense for early contracts since ATC is introduced later in the contract series.

Link to comment
Share on other sites

15 minutes ago, GhostMonkeyNKHI said:

I like the idea of stuff like pre-flight checks, but I'm not sure it actually solves a problem.  Does it actually lessen perceived negative effects, or just trade one type for another?  Also, my EVA may be for some non-GAP purpose, like I was just trying to gather science, or I needed Bill to officiate a Drag Race, or whatever.

hmm, I'm running into a problem with Command Seat Kerbals. seems they are passing the EVA check as-is without exiting. 

 

How about a 20 second flight clearance countdown? Require that a player hold their plane perfectly still on the runway for 20 seconds, before flight clearance is granted and their mission begins?

Link to comment
Share on other sites

20 second flight clearance with required stationary stop on the runway seems to work perfect. Nice manual trigger. Just wish I had some other way, but for now this works. Hopefully 20 sec is long enough to disqualify unintended flights, but short enough to not be worthy of a complaint by players intending to fly a GAP contract.

Link to comment
Share on other sites

A day in the life of a former coast guard.

 

Hillary and Duffy needs rescuing at sea and Jeb and the Lt. is just the team for the job and after pestering the engineering team, they have a brand new Helicopter, although with tree rotors on top of each other, instead of the intended two, as the helicopter was a bit heavy, due to all the snacks, it prolly couldn't have flown with just two anyway.

 

Jeb figures out how to fly the thing and point it at the sea'ed sea urchins (Editors Note: A beach rescue would have worked better here),  as Jeb arrive and pass the rescue location (stopping a helicopter is complicated), something explodes, but since our craft is still in multiple interconnected pieces, Jeb worries more about reversing, so we can see the rescue location and what exploded.

 

Ever heard of those plastic soups out in the ocean? Here we have a soup of debris, 3 feet thick and we seem to have lost the girls, but good thing I brought Jeb, I tell him to point the Helicopter towards them and he promptly turns it upside down, as I'm busy drowning Jeb, I look past him down into the water and find that 900 meters down two girls is floating, seems my request to point the helicopter at them was fairly stupid due to their location.

 

Several hours later and lots of swearing, the girls is still floating 900 meters down, even jumping from debris piece to debris piece to get within 100 m of them, only result in the debris surfacing, not the girls.

 

At this point I return to the space center, I can actually view all the debris from here, after clicking and clicking and clicking and then more hours of clicking, there is a lot less debris, my bank account has doubled, oh wait two of those markers wasn't debris but the girls, they are now drying off in the Astronaut complex. With my awesome powers I produce another Helicopter and quickly put Jeb, Lt and the girls inside it before anyone notice.

 

The girls vanish after I figure out I need to make the fake rescue helicopter float for a second. Mission Complete.

 

We Will Never Speak of This Again.

Link to comment
Share on other sites

@inigmadid you manage to confirm the crew experience bugs?

Also what is the best way of getting passed the starting SSI contract without waiting for it to end or getting the free Engineer? 

(Just to clarify it will end if I leave the space center on the screen for long enough. i think it is waiting for the end 5 minutes mission time even after crew recovered)

still getting [Warning]: FF: recover of kerbal Inigma Kerman without ongoing mission

Only other bag log entry I can see is [Exception]: ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index. 

Don't know if that is related. I know this will all be sorted once the your plans are implemented in the new version of SSI contracts but kind of curious what is the best way to tweak the current version as it opens up the rest of those wonderful missions. 

Edited by nobodyhasthis2
Link to comment
Share on other sites

Does this have some sort of interaction with SXT, I get this after adding a couple of the SXT mini packs to my game.   Don't really want to add all of SXT, any way to bypass this?

[ERR 21:48:14.353] ContractConfigurator.PartUnlockedRequirement: CONTRACT_TYPE 'Wright-FirstFlight', REQUIREMENT 'PartUnlocked' of type 'PartUnlocked': Error parsing part

[EXC 21:48:14.357] ArgumentException: 'SXTTinyprop' is not a valid Part.
	ContractConfigurator.ExpressionParser.PartParser.ParseIdentifier (ContractConfigurator.ExpressionParser.Token token)
	ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseVarOrIdentifier (ContractConfigurator.ExpressionParser.Token token)
	ContractConfigurator.ExpressionParser.ExpressionParser`1[AvailablePart].ParseSimpleStatement[AvailablePart] ()
	Rethrow as Exception: Error parsing statement.
	Error occurred near '*':
	SXTTinyprop
	...........* <-- HERE
	ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode)
	ContractConfigurator.ConfigNodeUtil.ParseSingleValue[AvailablePart] (System.String key, System.String stringValue, Boolean allowExpression)
	System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
	Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
	System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
	System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
	ContractConfigurator.ConfigNodeUtil.ParseValue[List`1] (.ConfigNode configNode, System.String key, Boolean allowExpression)
	UnityEngine.Debug:LogException(Exception)
	ContractConfigurator.LoggingUtil:LogException(Exception)
	ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, List`1, Func`2)
	ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory)
	ContractConfigurator.PartUnlockedRequirement:Load(ConfigNode)
	ContractConfigurator.ContractRequirement:GenerateRequirement(ConfigNode, ContractType, ContractRequirement&, IContractConfiguratorFactory)
	ContractConfigurator.ContractRequirement:GenerateRequirement(ConfigNode, ContractType, ContractRequirement&, IContractConfiguratorFactory)
	ContractConfigurator.ContractType:Load(ConfigNode)
	ContractConfigurator.<LoadContractConfig>d__1e:MoveNext()
	ContractConfigurator.ContractConfigurator:Update()

EDIT:  I figured out how to remove the SXT reference by editing that mission config file.  

Edited by eberkain
Link to comment
Share on other sites

On 3/1/2016 at 10:34 AM, nobodyhasthis2 said:

@inigmadid you manage to confirm the crew experience bugs?

Also what is the best way of getting passed the starting SSI contract without waiting for it to end or getting the free Engineer? 

(Just to clarify it will end if I leave the space center on the screen for long enough. i think it is waiting for the end 5 minutes mission time even after crew recovered)

still getting [Warning]: FF: recover of kerbal Inigma Kerman without ongoing mission

Only other bag log entry I can see is [Exception]: ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index. 

Don't know if that is related. I know this will all be sorted once the your plans are implemented in the new version of SSI contracts but kind of curious what is the best way to tweak the current version as it opens up the rest of those wonderful missions. 

I'm pushing out 1.0.3 once I find a moment to finish it up. I was gone all last week out of state for training for a new job that started today so I am in a catch up mode now with real life responsibilities and trying to find my placement. It may be a week before I work on GAP again with any gusto.  I know with 1.0.3 dev I've removed Inigma from the starting contract now that players can pay funds to get technologies rather than a silly golf cart mission that seemed out of place for an aircraft contract pack. heh. I may reintroduce the Inigma Kerman contract in a later version when I expand the offroad expansion to GAP, and the reward will be him as a free engineer.

Link to comment
Share on other sites

On 3/2/2016 at 9:18 PM, eberkain said:

Does this have some sort of interaction with SXT, I get this after adding a couple of the SXT mini packs to my game.   Don't really want to add all of SXT, any way to bypass this?


[ERR 21:48:14.353] ContractConfigurator.PartUnlockedRequirement: CONTRACT_TYPE 'Wright-FirstFlight', REQUIREMENT 'PartUnlocked' of type 'PartUnlocked': Error parsing part

[EXC 21:48:14.357] ArgumentException: 'SXTTinyprop' is not a valid Part.
	ContractConfigurator.ExpressionParser.PartParser.ParseIdentifier (ContractConfigurator.ExpressionParser.Token token)
	ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseVarOrIdentifier (ContractConfigurator.ExpressionParser.Token token)
	ContractConfigurator.ExpressionParser.ExpressionParser`1[AvailablePart].ParseSimpleStatement[AvailablePart] ()
	Rethrow as Exception: Error parsing statement.
	Error occurred near '*':
	SXTTinyprop
	...........* <-- HERE
	ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode)
	ContractConfigurator.ConfigNodeUtil.ParseSingleValue[AvailablePart] (System.String key, System.String stringValue, Boolean allowExpression)
	System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
	Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
	System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
	System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
	ContractConfigurator.ConfigNodeUtil.ParseValue[List`1] (.ConfigNode configNode, System.String key, Boolean allowExpression)
	UnityEngine.Debug:LogException(Exception)
	ContractConfigurator.LoggingUtil:LogException(Exception)
	ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, List`1, Func`2)
	ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory)
	ContractConfigurator.PartUnlockedRequirement:Load(ConfigNode)
	ContractConfigurator.ContractRequirement:GenerateRequirement(ConfigNode, ContractType, ContractRequirement&, IContractConfiguratorFactory)
	ContractConfigurator.ContractRequirement:GenerateRequirement(ConfigNode, ContractType, ContractRequirement&, IContractConfiguratorFactory)
	ContractConfigurator.ContractType:Load(ConfigNode)
	ContractConfigurator.<LoadContractConfig>d__1e:MoveNext()
	ContractConfigurator.ContractConfigurator:Update()

EDIT:  I figured out how to remove the SXT reference by editing that mission config file.  

which contract was it?

Edited by inigma
Link to comment
Share on other sites

So just returned to KSP after a while away, and after updating all my mods, and starting a new game, I ran into a snag right off with this mod:

CnbDg45.jpg

CuzW7gk.jpg

Unless I'm missing something, I've met all the mission requirements, but the mission has not completed. I used the debug menu to complete it, but I did this twice to be sure.

Link to comment
Share on other sites

4 hours ago, vardicd said:

So just returned to KSP after a while away, and after updating all my mods, and starting a new game, I ran into a snag right off with this mod:

<snip>

Unless I'm missing something, I've met all the mission requirements, but the mission has not completed. I used the debug menu to complete it, but I did this twice to be sure.

Whoops, I broke that in the 1.9.7 release.  I'll get a patch out fairly quickly.

Edited by nightingale
Link to comment
Share on other sites

1 minute ago, Kowgan said:

@MerlinsMaster Nightingale is talking about Contract Configurator, not GAP. ;)

Oh, okay.  Thanks.

 

Of course, that is the release I'm am running, so I must have a different problem.  Has anyone else had trouble completing that contract getting Inigma Kerman to the R & D center in 5 minutes?

Link to comment
Share on other sites

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