Jump to content

[1.2.2] Contract Pack: Clever Sats 1.4 (13/12/2016)


severedsolo

Recommended Posts

Hi. Thanks for that contract pact!

I am playing KSP on moderate difficulty career mode and have some suggestions for improvement, especially concerning the rewards-balance compared to other contracts. I'm in the early-game, have not visited Mun and am grinding for building-upgrades. Amongst my mods are SETI with unmanned before manned and RemoteTech.

So far i did one CleverSat contract, setting up a satelite in an orbit around Kerbin with around 3'000km AP and PE (which was the contract with the lowest orbit available).

I now have contract-offers based on that satellite. One is "investigate malfunctioning Satellite". It pays only 16k and 2 prestige. This reward is extremely little compared to other contracts and the required effort. The other one is "Move a Satellite". I should bring it in an orbit with around 5'000km AP and PE, with a flying-direction that is the oposite of the current flying-direction. The fuel left in the satellite would not even be enough for changing the orbit to the new distances in the same direction. The reward is 27k and 1 prestige. I guess calculating possible orbits, taking account of left fuel in the satellite would be too complicated. But turning the flying direction of a satellite should reward more than 27k and 1 prestige, i'd had to haul quite a large tank with engine into that orbit to be able to turn it around later.

The "Put a new Satellite into orbit" rewards are ok, even though still less than i would get for other contracts requiring a rocket of the same weight and complexity (especially with the many very-high-orbit contracts).

It would be nice if the rewards would be balanced with other contracts, to make the CleverSat contracts more attractive.

Also more contracts with lower orbits and more contracts with standard inclination and excentricity would be nice in the early game.

Link to comment
Share on other sites

I get those two types also. For the most part I typically just don't accept those missions. Usually my stats have plenty of fuel left over, and most would not be difficult to accomplish (the investigate a broke satellite, just needs a rendezvous, and can be another unmanned sat in orbit already. 

But ... As you point out the rewards are small, and I hate it when they start giving me missions to move satellites in my carefully placed CommNet KEO Relay Constellation.

I wonder if its possible to tweak the files to tell it to NOT assign Change Orbit Missions to Relay Satellites.

Link to comment
Share on other sites

19 minutes ago, BlackHat said:

I wonder if its possible to tweak the files to tell it to NOT assign Change Orbit Missions to Relay Satellites.

Try changing: https://github.com/severedsolo/CleverSat/blob/master/CleverSatRandomShift.cfg#L19

to something like...

	excludeTargets = $ConstellationList.Add(Target).Where(g => Vessel(g).IsOrbiting() && Vessel(g).Orbit().Inclination() < incThreshold && Vessel(g).VesselType(!Relay))

Also, @severedsolo is is correct that Line 19 in that config has an unecessary parenthesis at the end of the line?

Link to comment
Share on other sites

13 minutes ago, Poodmund said:

 is is correct that Line 19 in that config has an unecessary parenthesis at the end of the line?

Difficult to see without loading it up, but I think that's closing the Where statement

Link to comment
Share on other sites

3 hours ago, Poodmund said:

Try changing: https://github.com/severedsolo/CleverSat/blob/master/CleverSatRandomShift.cfg#L19

to something like...


	excludeTargets = $ConstellationList.Add(Target).Where(g => Vessel(g).IsOrbiting() && Vessel(g).Orbit().Inclination() < incThreshold && Vessel(g).VesselType(!Relay))

Also, @severedsolo is is correct that Line 19 in that config has an unecessary parenthesis at the end of the line?

Thanks I will try that.

And yes the original L19 (shown below) does have an extra parenthesis.

	excludeTargets = $ConstellationList.Add(Target).Where(g => Vessel(g).IsOrbiting() && Vessel(g).Orbit().Inclination() < incThreshold))

 

Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...
On 1/26/2019 at 7:54 PM, 4x4cheesecake said:

There is a way around non-uniquie names using the HAS directive and looking for unique keys instead and that's what I'm doing here.

It was just a minor issue, because I wrote 'any' in lower cases which is easy to fix but there is one more thing I want to add which is a bit more complicated: Kopernicus got a config to disable the kopernicus solar panels, so :NEED[Kopernicus] can be satisfied but this does not mean that the kopernicus solar panels are also enabled. It is a bit more tricky, but I've done something similar before, I just need a few more minutes ;)

edit: @Tonka Crash Well, I just realized that I try to find a solution for a problem, which actually is no problem at all :confused::confused:
So, here is the new patch:

<snip>

Come here to report a bug regarding probes, and found that there is already solution available for this. Thanks.

Link to comment
Share on other sites

  • 2 weeks later...
On 1/26/2019 at 7:54 PM, 4x4cheesecake said:

There is a way around non-uniquie names using the HAS directive and looking for unique keys instead and that's what I'm doing here.

It was just a minor issue, because I wrote 'any' in lower cases which is easy to fix but there is one more thing I want to add which is a bit more complicated: Kopernicus got a config to disable the kopernicus solar panels, so :NEED[Kopernicus] can be satisfied but this does not mean that the kopernicus solar panels are also enabled. It is a bit more tricky, but I've done something similar before, I just need a few more minutes ;)

edit: @Tonka Crash Well, I just realized that I try to find a solution for a problem, which actually is no problem at all :confused::confused:
So, here is the new patch:


//Add revamped probe core to the cleversat contract pack
//Add Kopernicus solarpanel if available
@CONTRACT_TYPE[CleverSatCore]:FINAL
{
	!REQUIREMENT[Probe] {}
	
	REQUIREMENT
	{
		name = Any
		type = Any
		
		REQUIREMENT
		{
			name = Probe
			type = PartUnlocked
			part = probeCoreSphere
		}
		
		REQUIREMENT
		{
			name = Probe_v2
			type = PartUnlocked
			part = probeCoreSphere_v2
		}
	}
	
	@REQUIREMENT[Any]:HAS[@REQUIREMENT[PartModuleUnlocked]]:HAS[#partModule[ModuleDeployableSolarPanel]]:NEEDS[Kopernicus]
	{
		REQUIREMENT
		{
			name = PartModuleUnlocked
			type = PartModuleUnlocked
			partModule = KopernicusSolarPanel
		}
	}
}

 


Just a heads-up, but

@REQUIREMENT[Any]:HAS[@REQUIREMENT[PartModuleUnlocked]]:HAS[#partModule[ModuleDeployableSolarPanel]]:NEEDS[Kopernicus]

should throw a warning.

It's an unnested HAS so MM is going to ignore the second one. I'm guessing you want to filter for requirements that have both? I think

@REQUIREMENT[Any]:HAS[@REQUIREMENT[PartModuleUnlocked]&#partModule[ModuleDeployableSolarPanel]]:NEEDS[Kopernicus]

is what you need there.

Other than that, have any of you encountered problems with the pack? I've stopped using them since they appeared unmaintained but am wondering since this thread received semi-recent attention.

Link to comment
Share on other sites

1 hour ago, Jognt said:

Just a heads-up, but

 


@REQUIREMENT[Any]:HAS[@REQUIREMENT[PartModuleUnlocked]]:HAS[#partModule[ModuleDeployableSolarPanel]]:NEEDS[Kopernicus]

 

should throw a warning.

It's an unnested HAS so MM is going to ignore the second one. I'm guessing you want to filter for requirements that have both? I think

 


@REQUIREMENT[Any]:HAS[@REQUIREMENT[PartModuleUnlocked]&#partModule[ModuleDeployableSolarPanel]]:NEEDS[Kopernicus]

 

is what you need there.

Thanks for the heads up :)

Regardless of what MM is supposed to do, when I run the patch with a nested HAS statement, it's actually not applied but my original version works perfectly fine. Just in case I made a stupid copy&paste mistake: have you tried your corrected version?

I probably did it this way for exactly this reason but I can't remember^^

1 hour ago, Jognt said:

Other than that, have any of you encountered problems with the pack? I've stopped using them since they appeared unmaintained but am wondering since this thread received semi-recent attention.

Haven't encountered any other issues in 1.6.1 but I can't remember if I actually accepted each of these contracts :) 

Link to comment
Share on other sites

6 minutes ago, 4x4cheesecake said:

Thanks for the heads up :)

Regardless of what MM is supposed to do, when I run the patch with a nested HAS statement, it's actually not applied but my original version works perfectly fine. Just in case I made a stupid copy&paste mistake: have you tried your corrected version?

I probably did it this way for exactly this reason but I can't remember^^

Haven't encountered any other issues in 1.6.1 but I can't remember if I actually accepted each of these contracts :) 

I don't run Kopernicus, so I haven't tested it. I just have recent experiences with HAS experimentation that made me notice it. ;)

I've only had OR statements fail in nested HAS statements. But that's because those apparently just aren't supported. AND statements should work without a problem.
Having said that. I'm sure the patch works fine because all that happens if it were to drop  the 2nd HAS is that it spams the KopernicusSolarPanel requirement on anything that fulfills the first HAS. You may even be able to fulfil any requirement with Kopernicus Solar Panels now. :D

Hmm.. Versatile panels..

Thanks for the description on 1.6.1. Maybe I'll give this one a run when I start my new career.

Edited by Jognt
Link to comment
Share on other sites

3 minutes ago, Jognt said:

I've only had OR statements fail in nested HAS statements. But that's because those apparently just aren't supported. AND statements should work without a problem.

Yep, I remember your issue ;) Tried quite a few things to get it working (like adding a temp. key which contains a list of all science IDs, used the first entry as a variable in the HAS statement and run a loop which removes the first entry of the list on each round but apparent, neither variables nor index are supported in the HAS block :D  ) or to find a workaround but like you said, it's just not supported and the only proper workaround seem to be the one, you already use.

14 minutes ago, Jognt said:

Having said that. I'm sure the patch works fine because all that happens if it were to drop  the 2nd HAS is that it spams the KopernicusSolarPanel requirement on anything that fulfills the first HAS. You may even be able to fulfil any requirement with Kopernicus Solar Panels now. :D

Just in case, I've checked this and funny thing though: There is actually just one contract with "PartModuleUnlocked" as requirement (the "core" contract), so maybe, MM actually drop the second HAS and there would be no difference....now we will never know :confused:

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 months later...

@severedsolo First of anything, a big thank you not just for this but all the mods, all the work you've done. I've been through ups and down in the last decades too (who hasn't), and, having Asperger's myself, I at least have a tiny guess how your daughter's life is not easy for her and the family. I can only send you my very best wishes and hope your family and you are doing well. Take care, please :) 

 

That said, you already did help me out not only once, @4x4cheesecake, if it is not asked too much, I'd like to hear your opinion again:

Slowly but surely my current career started in late 2017 comes to a close, so I'm checking out what mods to have on a new career. I'd have loved to have this mod back then, but after checking this thread, I saw it has been abandoned.
Browsing through this thread now, it seems that in particular you have found ways to make this mod compatible with the current KSP version, hence I'd like to have your opinion:

I added the MM patch you made, plus corrected that line 19 from CleverSatRandomShift.cfg (a closing bracket too much). Are those two changes enough to make this contract pact work properly with KSP 1.7.3?

Thanks in advance :) 

Edited by VoidSquid
Link to comment
Share on other sites

1 hour ago, VoidSquid said:

I added the MM patch you made, plus corrected that line 19 from CleverSatRandomShift.cfg (a closing bracket too much). Are those two changes enough to make this contract pact work properly with KSP 1.7.3?

I'm not aware of any other issues, should work perfectly fine with these fixes :)

Link to comment
Share on other sites

2 hours ago, flart said:

Looks like this


REQUIREMENT
{
    name = Probe
    type = PartUnlocked
    part = probeCoreSphere
}

doesn't met for the start node. (when any of ProbeBeforeCrew put the probe into the start node) 

Its because the revamped part is know known as 'probeCoreSphere_v2'.

Link to comment
Share on other sites

  • 6 months later...
12 minutes ago, Krzeszny said:

Is there a chance this mod still works with 1.9.1 or is it completely dead?

It should still work fine but you have to add the patch I've posted here earlier. Squad changed the name of the spherical probe core and my patch adjusts the contract pack for this. Just create a textfile somewhere in your GameData folder (I personally like to create a folder like "zzz_CustomPatches" and put all my custom patches there), call it however you want and change the file extension to ".cfg". Then copy&paste the linked patch into it, save and close it and you should be fine to go :)

 

Edited by 4x4cheesecake
Link to comment
Share on other sites

  • 4 weeks later...

These contracts have been fun until I realised after sending a few satellites that I get too many Clever Sats contracts, most of which pay very little and all of them, including the "move a satellite" ones (the worst) expire after 90 days. Why 90 days and not the default 1 or 2 days? I don't want to keep losing reputation to free up space for other contracts.

Link to comment
Share on other sites

  • 3 weeks later...
  • 5 months later...

Hi,  (I play stock, without copernicus)

I feel like the contract pack does not generat contract with ap/ep below Kerbin Geostationary Orbit ?

All "put new satellite in orbite of kerbin" type contract propose orbit over 2-3M meters, that really huge....

There is a settings some-where to modify the RNG ? 

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