nightingale Posted July 24, 2015 Author Share Posted July 24, 2015 Sure. I'm modifying Advanced Progression's contracts.Here is the MM cached output:UrlConfig{ name = FirstPlanetFlyby type = CONTRACT_TYPE parentUrl = AdvancedProgression/Progression url = AdvancedProgression/Progression/FirstPlanetFlyby CONTRACT_TYPE { name = FirstPlanetFlyby group = AdvancedProgression title = Send the first manned mission to another planet. description = Our space program is ready to enter the next phase of exploration : the planets. Send the first manned mission to flyby another planet, and return safely to Kerbin. notes = Complete the following: synopsis = Launch a manned flyby mission to another planet. It doesn't matter which one. completedMessage = You did it! We've launched the very first manned mission to another planet! agent = Kerbin World-Firsts Record-Keeping Society cancellable = true declinable = true prestige = Significant maxCompletions = 1 maxSimultaneous = 1 rewardScience = 10.0 rewardReputation = 10.0 rewardFunds = 80000.0 advanceFunds = 70000.0 REQUIREMENT { name = CompleteContract11002 type = CompleteContract contractType = FirstPlanetProbe } PARAMETER { name = VesselParameterGroup11001 type = VesselParameterGroup define = Planetary Flyby PARAMETER { name = HasCrew11001 type = HasCrew minCrew = 1 } PARAMETER { name = Any11001 type = Any PARAMETER { name = ReachState11001 type = ReachState targetBody = Sun.Children().Random() situation = ESCAPING disableOnStateChange = true } } PARAMETER { name = ReturnHome11001 type = ReturnHome completeInSequence = true } } }}These are the changes I made:@CONTRACT_TYPE[FirstPlanetFlyby]{ @PARAMETER[VesselParameterGroup11001] { !PARAMETER[Any11001]{} !PARAMETER[ReturnHome11001]{} PARAMETER { name = Any11001 type = Any PARAMETER { name = ReachState11001 type = ReachState targetBody = Sun.Children().Random() situation = ESCAPING disableOnStateChange = true } } PARAMETER { name = ReturnHome11001 type = ReturnHome completeInSequence = true } }}And here is the original:CONTRACT_TYPE{name = FirstPlanetFlybygroup = AdvancedProgressiontitle = Send the first manned mission to another planet.description = Our space program is ready to enter the next phase of exploration : the planets. Send the first manned mission to flyby another planet, and return safely to Kerbin.notes = Complete the following:synopsis = Launch a manned flyby mission to another planet. It doesn't matter which one.completedMessage = You did it! We've launched the very first manned mission to another planet!agent = Kerbin World-Firsts Record-Keeping Society//deadline = 100 cancellable = truedeclinable = trueprestige = SignificantmaxCompletions = 1maxSimultaneous = 1rewardScience = 10.0rewardReputation = 10.0rewardFunds = 80000.0advanceFunds = 70000.0REQUIREMENT{ name = CompleteContract11002 type = CompleteContract contractType = FirstPlanetProbe}PARAMETER{ name = VesselParameterGroup11001 type = VesselParameterGroup define = Planetary Flyby PARAMETER { name = HasCrew11001 type = HasCrew minCrew = 1 } PARAMETER { name = Any11001 type = Any PARAMETER { name = ReachState11001 type = ReachState targetBody = Moho situation = ESCAPING disableOnStateChange = true } PARAMETER { name = ReachState11002 type = ReachState targetBody = Eve situation = ESCAPING disableOnStateChange = true } PARAMETER { name = ReachState11003 type = ReachState targetBody = Duna situation = ESCAPING disableOnStateChange = true } PARAMETER { name = ReachState11004 type = ReachState targetBody = Dres situation = ESCAPING disableOnStateChange = true } PARAMETER { name = ReachState11005 type = ReachState targetBody = Jool situation = ESCAPING disableOnStateChange = true } PARAMETER { name = ReachState11006 type = ReachState targetBody = Eeloo situation = ESCAPING disableOnStateChange = true } } PARAMETER { name = ReturnHome11001 type = ReturnHome completeInSequence = true }}}Careful, you're significantly changing the contract. The original has "do a flyby of Moho, or Eve, or ..."; yours ends up being "do a flyby of <one random planet selected at contract generation time>". What you want is more like this huge thing:{ DATA { type = List<CelestialBody> allPlanets = CelestialBody(Sun).Children() } @PARAMETER[VesselParameterGroup11001] { !PARAMETER[Any11001]{} !PARAMETER[ReturnHome11001]{} PARAMETER { name = Any11001 type = Any PARAMETER { type = ReachState targetBody = @/allPlanets.ElementAt(0) situation = ESCAPING REQUIREMENT { type = Expression expression = @/allPlanets.Count() > 0 } } PARAMETER { type = ReachState targetBody = @/allPlanets.ElementAt(1) situation = ESCAPING REQUIREMENT { type = Expression expression = @/allPlanets.Count() > 1 } } PARAMETER { type = ReachState targetBody = @/allPlanets.ElementAt(2) situation = ESCAPING REQUIREMENT { type = Expression expression = @/allPlanets.Count() > 2 } } PARAMETER { type = ReachState targetBody = @/allPlanets.ElementAt(3) situation = ESCAPING REQUIREMENT { type = Expression expression = @/allPlanets.Count() > 3 } } PARAMETER { type = ReachState targetBody = @/allPlanets.ElementAt(4) situation = ESCAPING REQUIREMENT { type = Expression expression = @/allPlanets.Count() > 4 } } PARAMETER { type = ReachState targetBody = @/allPlanets.ElementAt(5) situation = ESCAPING REQUIREMENT { type = Expression expression = @/allPlanets.Count() > 5 } } PARAMETER { type = ReachState targetBody = @/allPlanets.ElementAt(6) situation = ESCAPING REQUIREMENT { type = Expression expression = @/allPlanets.Count() > 6 } } PARAMETER { type = ReachState targetBody = @/allPlanets.ElementAt(7) situation = ESCAPING REQUIREMENT { type = Expression expression = @/allPlanets.Count() > 7 } } PARAMETER { type = ReachState targetBody = @/allPlanets.ElementAt(8) situation = ESCAPING REQUIREMENT { type = Expression expression = @/allPlanets.Count() > 8 } } PARAMETER { type = ReachState targetBody = @/allPlanets.ElementAt(9) situation = ESCAPING REQUIREMENT { type = Expression expression = @/allPlanets.Count() > 9 } } PARAMETER { type = ReachState targetBody = @/allPlanets.ElementAt(10) situation = ESCAPING REQUIREMENT { type = Expression expression = @/allPlanets.Count() > 10 } } PARAMETER { type = ReachState targetBody = @/allPlanets.ElementAt(11) situation = ESCAPING REQUIREMENT { type = Expression expression = @/allPlanets.Count() > 11 } } PARAMETER { type = ReachState targetBody = @/allPlanets.ElementAt(12) situation = ESCAPING REQUIREMENT { type = Expression expression = @/allPlanets.Count() > 12 } } PARAMETER { type = ReachState targetBody = @/allPlanets.ElementAt(13) situation = ESCAPING REQUIREMENT { type = Expression expression = @/allPlanets.Count() > 13 } } PARAMETER { type = ReachState targetBody = @/allPlanets.ElementAt(14) situation = ESCAPING REQUIREMENT { type = Expression expression = @/allPlanets.Count() > 14 } } PARAMETER { type = ReachState targetBody = @/allPlanets.ElementAt(15) situation = ESCAPING REQUIREMENT { type = Expression expression = @/allPlanets.Count() > 15 } } } PARAMETER { name = ReturnHome11001 type = ReturnHome completeInSequence = true } }}@CONTRACT_TYPE[FirstPlanetFlyby] Quote Link to comment Share on other sites More sharing options...
Nori Posted July 24, 2015 Share Posted July 24, 2015 (edited) Oh wow, that looks scary.Few things.I did intend to change the way that contract works, but I'm not sure that it really changes that much? You go from, a planet selected at random to do a flyby, vs do a flyby of anything. Hmm, typing that out I guess I do see the issue since this is supposed to be the first planet flyby. I guess what I wrote would be fine if it was a do random flyby.Ok you convinced me. Next, I'm curious as to why you need the 16 ReachState lines? Is it one for each possible planet or is something else happening that I'm not getting?Sorry for all the questions. This is just really fascinating and kind of makes me want to try my hand at making contracts.Oh and one more thing, was what I changed the contract too technically workable or did what I change cause the crash? Edited July 24, 2015 by Nori Quote Link to comment Share on other sites More sharing options...
nightingale Posted July 24, 2015 Author Share Posted July 24, 2015 Oh wow, that looks scary.Few things.I did intend to change the way that contract works, but I'm not sure that it really changes that much? You go from, a planet selected at random to do a flyby, vs do a flyby of anything. Hmm, typing that out I guess I do see the issue since this is supposed to be the first planet flyby. I guess what I wrote would be fine if it was a do random flyby.Ok you convinced me. I just assumed you're trying to maintain linuxgurugamer's original intent. Next, I'm curious as to why you need the 16 ReachState lines? Is it one for each possible planet or is something else happening that I'm not getting?It was an arbitrary number to account for any number of planet packs. One day I'll think of a way to do auto-expand that rather than having to make that huge messy structure.Sorry for all the questions. This is just really fascinating and kind of makes me want to try my hand at making contracts.No problem!Oh and one more thing, was what I changed the contract too technically workable or did what I change cause the crash?Technically workable. The crash is due to a bug somewhere in mono. Usually moving stuff around into DATA nodes (or breaking them up into smaller chunks) works around it. If I'm ever able to reliably reproduce it with a simple test case I'll see if I can change my code to work around the issue... but it doesn't come up very often and the expression handling logic is very complicated... so I don't want to mess around with it too much. Quote Link to comment Share on other sites More sharing options...
Nori Posted July 24, 2015 Share Posted July 24, 2015 If I'm trying to grab a a bunch of moons, then exclude a list of planets. I can exclude 1 just fine but not the whole list.I thought it'd be a simple comma separated. Also not sure if this is the best way to do it anyway. Or should I put something else in the Where function?AllBodies().Where(cb => cb.HasSurface() && cb.IsMoon()).Exclude(Kerbin,Aptur,Serran,Mun) Quote Link to comment Share on other sites More sharing options...
nightingale Posted July 24, 2015 Author Share Posted July 24, 2015 You're close, see the List methods. What you want is:[COLOR=#333333]AllBodies().Where(cb => cb.HasSurface() && cb.IsMoon()).Exclude[/COLOR][COLOR=#ff0000]All[/COLOR][COLOR=#333333]([/COLOR][COLOR=#ff0000][[/COLOR][COLOR=#333333]Kerbin,Aptur,Serran,Mun[/COLOR][COLOR=#ff0000]][/COLOR][COLOR=#333333])[/COLOR]This should also work:[COLOR=#333333]AllBodies().Where(cb => cb.HasSurface() && cb.IsMoon() && cb.Parent() != Sonnah)[/COLOR] Quote Link to comment Share on other sites More sharing options...
Sticky32 Posted July 25, 2015 Share Posted July 25, 2015 Hey Nightingale, I recently started work on a mod to add in a new resource system and just got that all working today but now would like to add some contracts to go with it, ...as you can see, this is where you come in... . I basically want it to be like an ISRU contract only you mine the new resource and have to recover on Kerbin every time. I got the contract mostly working, I just can't find the parameter to mine fresh resources. And then maybe a parameter to have "x" amount of the resource on the craft once back on Kerbin would be nice too. Hopefully I just missed them or something simple. Thank you in advance for any help.[h=1][/h] Quote Link to comment Share on other sites More sharing options...
Kerbas_ad_astra Posted July 25, 2015 Share Posted July 25, 2015 Hi nightingale,I got tired of RemoteTech getting all of the contract love, so I've put together a contract pack for AntennaRange. It gives people contracts to put relay satellites in orbit around all of the bodies in the solar system (planet packs and everything), plus a few extra high-orbit relays around gas giants and such. Quote Link to comment Share on other sites More sharing options...
nightingale Posted July 25, 2015 Author Share Posted July 25, 2015 Hi nightingale,I got tired of RemoteTech getting all of the contract love, so I've put together a contract pack for AntennaRange. It gives people contracts to put relay satellites in orbit around all of the bodies in the solar system (planet packs and everything), plus a few extra high-orbit relays around gas giants and such.Awesome, I'm always happy to see more contract packs, congrats on the release! Quote Link to comment Share on other sites More sharing options...
tattagreis Posted July 25, 2015 Share Posted July 25, 2015 Still an awesome job Nighingale! Each time I return to work on BeyondMun (Contract Campaign) there a new CC releases. I would dream of beeing such dedicated to a project! Quote Link to comment Share on other sites More sharing options...
nightingale Posted July 25, 2015 Author Share Posted July 25, 2015 Still an awesome job Nighingale! Each time I return to work on BeyondMun (Contract Campaign) there a new CC releases. I would dream of beeing such dedicated to a project! Thanks, glad to see you're still working on that campaign!. Quote Link to comment Share on other sites More sharing options...
MrChumley Posted July 26, 2015 Share Posted July 26, 2015 Hello!I'm trying to get the new MissionTimer parameter to work... Is there any examples of people using it yet?here's what I have so far:// Requires Contract Configurator. Fourm link http://forum.kerbalspaceprogram.com/threads/101604// Adds a Contract to recover a prebuilt SSTO spaceplane from Asclepius.// CONTRACT_TYPE{ name = KesslerRun title = The Kessler Run description = Can your baby do the Kessler run in under 12 mins? synopsis = We want you to Fly the Kessler Run completedMessage = You could probably outrun a bulk cruiser in that. // Agent (agency). If not populated, a random agent will be selected. //agent = Integrated Integrals cancellable = true declinable = true targetBody = Asclepius maxCompletions = 0 maxSimultaneous = 1 // Contract rewards rewardScience = 10.0 rewardReputation = 25.0 rewardFunds = 50000.0 failureReputation = 10.0 failureFunds = 5000.0 advanceFunds = 5000.0BEHAVIOUR{ name = WaypointGenerator type = WaypointGenerator WAYPOINT { name = SKessler // The parameter that must be completed before the waypoint becomes // visible. If not specified, the waypoint is always visible. parameter = Kessler1strt targetBody = Asclepius icon = balloon // The altitude of the waypoint above the terrain. Note that an // altitude of 0.0 means "on the ground". If not specified, uses a // A random value between 0.0 and the atmosphere ceiling (which is zero // if there's no atmosphere). altitude = 100 // The coordinates. latitude = -18.7265875306472 longitude = -53.9731235534922 } WAYPOINT { name = NKessler targetBody = Asclepius icon = balloon altitude = 100 // The coordinates. latitude = -3.75831542364648 longitude = -79.153185595674 }}PARAMETER{ name = KessTimer type = MissionTimer startCriteria = PARAMETER_COMPLETION startParameter = Kessler1strt endCriteria = PARAMETER_COMPLETION endParameter = Kessler1end}// PARAMETER { name = Kessler1strt type = VisitWaypoint // Distance tolerance to be considered at the waypoint. // // Type: double // Required: No (defaulted) // Default: 500.0 (if on the surface). // / 5.0 (if not on the surface). // distance = 500.0 // Whether the waypoint should get automatically hidden after completing // the contract objective. hideOnCompletion = true // Text to use for the parameter // // Type: string // Required: No (defaulted) // Default: Location: <waypoint> // title = Kessler Run Start }// PARAMETER { name = Kessler1end type = VisitWaypoint distance = 700.0 hideOnCompletion = false title = Kessler Run Finish }REQUIREMENT{ name = OrbitAsc type = Orbit // Target body, defaulted from the contract if not supplied. // // Type: CelestialBody // Required: No (defaulted) // targetBody = Asclepius}}My plan is to have a contract to get to point A, start the timer, get to point B, and end the mission. Eventually I want to add persistant data storage so that a "fastest time" gets recorded. (and ultimately spawn in an "easter egg" vessel if the contract is completed in X amount of time. Any help is apprecieated I usually just keep trying 1000000 times until I get it to work, but I thought it might help to ask around Quote Link to comment Share on other sites More sharing options...
nightingale Posted July 26, 2015 Author Share Posted July 26, 2015 Hello!I'm trying to get the new MissionTimer parameter to work... Is there any examples of people using it yet?here's what I have so far:http://i.imgur.com/ucixJzZ.png// Requires Contract Configurator. Fourm link http://forum.kerbalspaceprogram.com/threads/101604// Adds a Contract to recover a prebuilt SSTO spaceplane from Asclepius.// CONTRACT_TYPE{ name = KesslerRun title = The Kessler Run description = Can your baby do the Kessler run in under 12 mins? synopsis = We want you to Fly the Kessler Run completedMessage = You could probably outrun a bulk cruiser in that. // Agent (agency). If not populated, a random agent will be selected. //agent = Integrated Integrals cancellable = true declinable = true targetBody = Asclepius maxCompletions = 0 maxSimultaneous = 1 // Contract rewards rewardScience = 10.0 rewardReputation = 25.0 rewardFunds = 50000.0 failureReputation = 10.0 failureFunds = 5000.0 advanceFunds = 5000.0BEHAVIOUR{ name = WaypointGenerator type = WaypointGenerator WAYPOINT { name = SKessler // The parameter that must be completed before the waypoint becomes // visible. If not specified, the waypoint is always visible. parameter = Kessler1strt targetBody = Asclepius icon = balloon // The altitude of the waypoint above the terrain. Note that an // altitude of 0.0 means "on the ground". If not specified, uses a // A random value between 0.0 and the atmosphere ceiling (which is zero // if there's no atmosphere). altitude = 100 // The coordinates. latitude = -18.7265875306472 longitude = -53.9731235534922 } WAYPOINT { name = NKessler targetBody = Asclepius icon = balloon altitude = 100 // The coordinates. latitude = -3.75831542364648 longitude = -79.153185595674 }}PARAMETER{ name = KessTimer type = MissionTimer startCriteria = PARAMETER_COMPLETION startParameter = Kessler1strt endCriteria = PARAMETER_COMPLETION endParameter = Kessler1end}// PARAMETER { name = Kessler1strt type = VisitWaypoint // Distance tolerance to be considered at the waypoint. // // Type: double // Required: No (defaulted) // Default: 500.0 (if on the surface). // / 5.0 (if not on the surface). // distance = 500.0 // Whether the waypoint should get automatically hidden after completing // the contract objective. hideOnCompletion = true // Text to use for the parameter // // Type: string // Required: No (defaulted) // Default: Location: <waypoint> // title = Kessler Run Start }// PARAMETER { name = Kessler1end type = VisitWaypoint distance = 700.0 hideOnCompletion = false title = Kessler Run Finish }REQUIREMENT{ name = OrbitAsc type = Orbit // Target body, defaulted from the contract if not supplied. // // Type: CelestialBody // Required: No (defaulted) // targetBody = Asclepius}}My plan is to have a contract to get to point A, start the timer, get to point B, and end the mission. Eventually I want to add persistant data storage so that a "fastest time" gets recorded. (and ultimately spawn in an "easter egg" vessel if the contract is completed in X amount of time. Any help is apprecieated I usually just keep trying 1000000 times until I get it to work, but I thought it might help to ask around You're probably the first one using it, since it's so new. It looks fine the way you have it set up, but your second VisitWaypoint should have index=1 (right now both the start and end look at the same waypoint). If you have other issues with the MissionTimer let me know - it could always be a bug. Quote Link to comment Share on other sites More sharing options...
MrChumley Posted July 26, 2015 Share Posted July 26, 2015 (edited) ive done some more fiddling... it keeps saying[ERROR] ContractConfigurator.ParameterFactory.CONTRACT_TYPE'KesslerRun',PARAMETER 'KessTimer' of type 'MissionTimer': No ParameterFactory has been registered for type 'MissionTimer'.ParameterFactory? Edited July 26, 2015 by MrChumley Quote Link to comment Share on other sites More sharing options...
nightingale Posted July 26, 2015 Author Share Posted July 26, 2015 (edited) ive done some more fiddling... it keeps saying[ERROR] ContractConfigurator.ParameterFactory.CONTRACT_TYPE'KesslerRun',PARAMETER 'KessTimer' of type 'MissionTimer': No ParameterFactory has been registered for type 'MissionTimer'.ParameterFactory? Sounds like you're not on the latest version. A parameter factory is a factory where parameters are made!EDIT: That being said, the error isn't all that user friendly, I'll clean that up.EDIT2: So sorry, I just realized you are WAY ahead of the game, since I am just releasing the changes for MissionTimer right... NOW! Edited July 27, 2015 by nightingale Quote Link to comment Share on other sites More sharing options...
nightingale Posted July 27, 2015 Author Share Posted July 27, 2015 New release, bug fixes and a few small changes - download now!Contract Configurator 1.5.5New MissionTimer parameter for displaying a count-up timer (use it for challenges!).New functions/methods related to contract multipliers - ContractMultiplier(), CelestialBody.Multiplier() ContractPrestige.Multiplier().Made contract deadline independent of targetBody multiplier (thanks NathanKell).Correctly update Contracts Window Plus when contract state + titles changes at the same time.Improved error handling in parameter generation for unexpected scenarios - fixes New Horizons issues (thanks kp0llux & kingoftheinternet). Quote Link to comment Share on other sites More sharing options...
eightiesboi Posted July 27, 2015 Share Posted July 27, 2015 (edited) FYI - CKAN is throwing errors with this update... posted to CKAN thread here: http://forum.kerbalspaceprogram.com/threads/100067-The-Comprehensive-Kerbal-Archive-Network-%28CKAN%29-Package-Manager-v1-10-3-16-Jul-2015?p=2103861&viewfull=1#post2103861Update: It's fixed. Edited July 27, 2015 by eightiesboi Updated Quote Link to comment Share on other sites More sharing options...
nightingale Posted July 27, 2015 Author Share Posted July 27, 2015 FYI - CKAN is throwing errors with this update... posted to CKAN thread here: http://forum.kerbalspaceprogram.com/threads/100067-The-Comprehensive-Kerbal-Archive-Network-%28CKAN%29-Package-Manager-v1-10-3-16-Jul-2015?p=2103861&viewfull=1#post2103861Thanks for the tip, everything looks good on my side, it's either a CKAN issue or a CKAN issue with your install. Hopefully the guys on the CKAN thread will be able to sort it out. Quote Link to comment Share on other sites More sharing options...
eddiew Posted July 27, 2015 Share Posted July 27, 2015 Improved error handling in parameter generation for unexpected scenarios - fixes New Horizons issues (thanks kp0llux & kingoftheinternet).Cool, thanks chaps ^^ Quote Link to comment Share on other sites More sharing options...
Nori Posted July 27, 2015 Share Posted July 27, 2015 Is there anyway to ignore the celestial body modifier to get a static reward value? Quote Link to comment Share on other sites More sharing options...
nightingale Posted July 27, 2015 Author Share Posted July 27, 2015 Is there anyway to ignore the celestial body modifier to get a static reward value?Yes, just introduced in the last release! To get a value of 10000 regardless of the body modifier:rewardFunds = 10000 / @targetBody.[COLOR=#333333]Multiplier()[/COLOR]And if you also want to ignore the contract prestige multiplier:rewardFunds = 10000 / [COLOR=#3E3E3E]ContractMultiplier[/COLOR][COLOR=#333333]()[/COLOR] Quote Link to comment Share on other sites More sharing options...
Nori Posted July 27, 2015 Share Posted July 27, 2015 (edited) Cool thanks! I was not aware there was a prestige modifier. Is there some documentation on that somewhere? I haven't seen anything while searching.~Edit - You can disregard that. I did some testing and it appears that going from Trivial to Exceptional nets you about 50% more rewards. Unless there is something more too it I'm struggling to see why Squad put it in the game.Is there a way to select a Target body excluding ones that have been orbited, flown by or landed on?I figured I could do something like this:AllBodies().Where(cb => cb.HasSurface() && cb.xyz)But I'm not seeing a node under CelestialBody Type that would really fit. I mean there is the return a list of orbited or landed bodies. But I was hoping to be able to use something like the FlyBy requirement.~Edit - Another question (sorry!). I'm looking at CelestialBody Type and I don't see any method that returns the space high border. Is there a way to retrieve that that I am missing? Edited July 27, 2015 by Nori Quote Link to comment Share on other sites More sharing options...
nightingale Posted July 28, 2015 Author Share Posted July 28, 2015 (edited) Cool thanks! I was not aware there was a prestige modifier. Is there some documentation on that somewhere? I haven't seen anything while searching.~Edit - You can disregard that. I did some testing and it appears that going from Trivial to Exceptional nets you about 50% more rewards. Unless there is something more too it I'm struggling to see why Squad put it in the game.Correct, I documented them here. They are 1.0, 1.25 and 1.5. It makes more sense for non-Contract Configurator contracts as making a single contract type is a much bigger investment, so it pays to have it work differently for the different prestige levels.Is there a way to select a Target body excluding ones that have been orbited, flown by or landed on?I figured I could do something like this:AllBodies().Where(cb => cb.HasSurface() && cb.xyz)But I'm not seeing a node under CelestialBody Type that would really fit. I mean there is the return a list of orbited or landed bodies. But I was hoping to be able to use something like the FlyBy requirement.It's something that I've been meaning to get in for a little while now, right now it's fairly limited in what you can do. I've raised [#279], although I'm not sure I'll be able to get in for 1.6.0, so I've targeted 1.6.1 (or so). Please comment there if there's some specific thing you need beyond what you've mentioned in the thread here. If it's reasonably small I may be able to push it into the 1.6.0 release instead.EDIT: Didn't answer this part:~Edit - Another question (sorry!). I'm looking at CelestialBody Type and I don't see any method that returns the space high border. Is there a way to retrieve that that I am missing?Don't have it, I'll add in 1.6.0 - [#280]. Edited July 28, 2015 by nightingale Missed a question Quote Link to comment Share on other sites More sharing options...
Nori Posted July 28, 2015 Share Posted July 28, 2015 Cool! No that looks like it would be perfect. Can't think of anything else at this time. Oh, except, is there a way to check if a vessel currently orbits a celestial body? Quote Link to comment Share on other sites More sharing options...
nightingale Posted July 28, 2015 Author Share Posted July 28, 2015 Cool! No that looks like it would be perfect. Can't think of anything else at this time. Oh, except, is there a way to check if a vessel currently orbits a celestial body?Something along these lines:vessel = SomeVessel()targetBody = SomeBody()vesselOrbitsBody = @vessel.CelestialBody() == @targetBody- - - Updated - - -In unrelated news...BDArmory players rejoice - Volwen has a new military contract pack out! Kerbin on Fire Military Contract Pack includes a bunch of military contracts, including including aerial combat missions! Check it out! Quote Link to comment Share on other sites More sharing options...
Sticky32 Posted July 28, 2015 Share Posted July 28, 2015 I was able to get my contract to mine a new resource and return to Kerbin working, took all day though lol, I uploaded the file if anyone wants to take a look at it as another example. http://s000.tinyupload.com/?file_id=33277116876579487797 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.