Starwaster

[1.2.2] Ioncross Crew Support v1.26.0 (Starwaster's branch) - Jul 7, 2016

Recommended Posts

New test version: IoncrossCrewSupport.1.15.0.zip

This shouldn't break craft; previous issue I saw was probably unrelated. However, craft in existing save files will not be fixed by this. If you're brave, you could edit your save files and manually remove air vent generator modules. That should be safe but back up your save files anyway just to be sure.

So, with this update, I reverted a lot of the old code that I had changed regarding how persistence was handled. Air vents now work again. They open and close automatically; there is no GUI button for them. Wasn't supposed to be one, that's how broken it was.

There is also the possibility that the air scrubber problem might come back, but it's also possible that that was never really an Ioncross issue. Instead, it's probable that it was always a Module Manager save file fixer issue, and as of MM 2.2.0, that functionality has been removed because KSP 0.24 supposedly has rendered it unnecessary and obsolete.

(meaning, apparently, that KSP now will handle PartModule order changes and format changes better than it did before)

(which is to say, not at all, before)

Also, because I'm such a nice guy, this post was not made in Comic Sans

Share this post


Link to post
Share on other sites

Also, because I'm such a nice guy, this post was not made in Comic Sans

hahaha, thanks for the update, i will look into that after work :D

Share this post


Link to post
Share on other sites

Oops important note, it's generally best to remove existing mod folders from GameData, but it's really important here because it gets rid of the config file that was manually adding in atmospheric vents (and scrubbers. mostly scrubbers, but vents too)

Even if all you do is try to manually replace the dll, it's important that that config file goes away, because the Ioncross code as written really revolves around certain Ioncross modules being added through code, and apparently it really didnt take to me trying to add in the vents that way. (even though it worked fine for the scrubbers)

Edit: And, StainX, what the HECK is that green skinned woman with the opal eyes in your signature space???

Share this post


Link to post
Share on other sites

Remove old version before install....check!

Oh, also a question... why are there like 20 configs for MM in the mod folder? is there a reason not to just use the generic one?

That sigi... yeah its my interpretation of a female Kerbal, of course :P

Share this post


Link to post
Share on other sites
Remove old version before install....check!

Oh, also a question... why are there like 20 configs for MM in the mod folder? is there a reason not to just use the generic one?

Some of them are are custom or non-standard. (standard being 20 O2 units per crew capacity)

Edited by Starwaster

Share this post


Link to post
Share on other sites

Official download updated with the fixes for Kerbal EVA issues.

Fixes:

Kerbals not returning EVA resources to ship when boarding.

Kerbals breathing EVA oxygen instead of Kerbin air.

Kerbals returning TOO much EVA resources.

Reversion of some code to 1.11 version.

Share this post


Link to post
Share on other sites

Good job, no bugs so far... at least none dat i would have noticed! :P

Oh and i have made my own "more realistic" config (recyclers not tested with that):

@PART[*]:HAS[@MODULE[LifeSupportModule]]
{
-MODULE[LifeSupportModule]{}
}

@PART[*]:HAS[#CrewCapacity[1],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 0.2
maxAmount = 0.2
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 0.2
}
}
@PART[*]:HAS[#CrewCapacity[2],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 0.4
maxAmount = 0.4
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 0.4
}
}
@PART[*]:HAS[#CrewCapacity[3],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 0.6
maxAmount = 0.6
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 0.6
}
}
@PART[*]:HAS[#CrewCapacity[4],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 0.8
maxAmount = 0.8
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 0.8
}
}
@PART[*]:HAS[#CrewCapacity[5],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 1
maxAmount = 1
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 1
}
}
@PART[*]:HAS[#CrewCapacity[6],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 1.2
maxAmount = 1.2
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 1.2
}
}
@PART[*]:HAS[#CrewCapacity[7],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 1.4
maxAmount = 1.4
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 1.4
}
}
@PART[*]:HAS[#CrewCapacity[8],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 1.6
maxAmount = 1.6
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 1.6
}
}
@PART[*]:HAS[#CrewCapacity[9],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 1.8
maxAmount = 1.8
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 1.8
}
}
@PART[*]:HAS[#CrewCapacity[10],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 2
maxAmount = 2
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 2
}
}

@PART[crewSupportTank]:FINAL
{
@RESOURCE[Oxygen]{
@amount = 15
@maxAmount = 15
}
}

@PART[crewSupportTank_Large]:FINAL
{
@RESOURCE[Oxygen]{
@amount = 120
@maxAmount = 120
}
}

@PART[crewSupportTank_Radial]:FINAL
{
@RESOURCE[Oxygen]{
@amount = 1.2
@maxAmount = 1.2
}
}

@PART[crewSupportTank_RadialLong]:FINAL
{
@RESOURCE[Oxygen]{
@amount = 5
@maxAmount = 5
}
}

@PART[crewSupportRecycler]:FINAL
{
@RESOURCE[Oxygen]{
@amount = 5
@maxAmount = 5
}
}

@PART[crewSupportRecycler_Large]:FINAL
{
@RESOURCE[Oxygen]{
@amount = 40
@maxAmount = 40
}
}

Share this post


Link to post
Share on other sites
Good job, no bugs so far... at least none dat i would have noticed! :P

Oh and i have made my own "more realistic" config (recyclers not tested with that):

@PART
[*]:HAS[@MODULE[LifeSupportModule]]
{
-MODULE[LifeSupportModule]{}
}

@PART
[*]:HAS[#CrewCapacity[1],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 0.2
maxAmount = 0.2
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 0.2
}
}
@PART
[*]:HAS[#CrewCapacity[2],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 0.4
maxAmount = 0.4
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 0.4
}
}
@PART
[*]:HAS[#CrewCapacity[3],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 0.6
maxAmount = 0.6
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 0.6
}
}
@PART
[*]:HAS[#CrewCapacity[4],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 0.8
maxAmount = 0.8
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 0.8
}
}
@PART
[*]:HAS[#CrewCapacity[5],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 1
maxAmount = 1
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 1
}
}
@PART
[*]:HAS[#CrewCapacity[6],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 1.2
maxAmount = 1.2
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 1.2
}
}
@PART
[*]:HAS[#CrewCapacity[7],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 1.4
maxAmount = 1.4
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 1.4
}
}
@PART
[*]:HAS[#CrewCapacity[8],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 1.6
maxAmount = 1.6
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 1.6
}
}
@PART
[*]:HAS[#CrewCapacity[9],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 1.8
maxAmount = 1.8
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 1.8
}
}
@PART
[*]:HAS[#CrewCapacity[10],!MODULE[IonModuleCrewSupport]]:FINAL
{
MODULE
{
name = IonModuleCrewSupport
}

RESOURCE
{
name = Oxygen
amount = 2
maxAmount = 2
}

RESOURCE
{
name = CarbonDioxide
amount = 0
maxAmount = 2
}
}

@PART[crewSupportTank]:FINAL
{
@RESOURCE[Oxygen]{
@amount = 15
@maxAmount = 15
}
}

@PART[crewSupportTank_Large]:FINAL
{
@RESOURCE[Oxygen]{
@amount = 120
@maxAmount = 120
}
}

@PART[crewSupportTank_Radial]:FINAL
{
@RESOURCE[Oxygen]{
@amount = 1.2
@maxAmount = 1.2
}
}

@PART[crewSupportTank_RadialLong]:FINAL
{
@RESOURCE[Oxygen]{
@amount = 5
@maxAmount = 5
}
}

@PART[crewSupportRecycler]:FINAL
{
@RESOURCE[Oxygen]{
@amount = 5
@maxAmount = 5
}
}

@PART[crewSupportRecycler_Large]:FINAL
{
@RESOURCE[Oxygen]{
@amount = 40
@maxAmount = 40
}
}

why did you peg O2 levels so low? Does that represent cabin volume?

If so, you really should lower CO2 even lower. CO2 concentrations in the atmosphere of 10 perecent or greater are lethal.

Share this post


Link to post
Share on other sites
why did you peg O2 levels so low? Does that represent cabin volume?

If so, you really should lower CO2 even lower. CO2 concentrations in the atmosphere of 10 perecent or greater are lethal.

Don't know depends on the cabin i guess... but its now one day of life support per crew capacity (pretending those capsules have a small O² tank included)... also i tweaked down the thousands of days that those O² tanks carried.

You're right... need to adjust max. CO² to something like 10% of that oxygen levels...

Share this post


Link to post
Share on other sites
Don't know depends on the cabin i guess... but its now one day of life support per crew capacity (pretending those capsules have a small O² tank included)... also i tweaked down the thousands of days that those O² tanks carried.

You're right... need to adjust max. CO² to something like 10% of that oxygen levels...

I had a thought though, I'm not sure if that 10% is by volume or density.... that needs to be researched.

Share this post


Link to post
Share on other sites
I had a thought though, I'm not sure if that 10% is by volume or density.... that needs to be researched.

Does that matter? Also you should consider that 10% is not a static variable, maybe there should be a roll chance for a kerbal to die from 7% on..?

Share this post


Link to post
Share on other sites
Does that matter? Also you should consider that 10% is not a static variable, maybe there should be a roll chance for a kerbal to die from 7% on..?

Technically you can survive up to 20% CO2 for short periods of time. At 5-7%, your coordination is impaired enough to be comparable to being drunk. It's unhealthy/dangerous to breath more then 10% but not immediately fatal. From 10% on, you start feeling the effects of hypoxia which will eventually lead to you passing out and effectively suffocating. The more CO2 in the air, the quicker you succumb.

Share this post


Link to post
Share on other sites
Technically you can survive up to 20% CO2 for short periods of time. At 5-7%, your coordination is impaired enough to be comparable to being drunk. It's unhealthy/dangerous to breath more then 10% but not immediately fatal. From 10% on, you start feeling the effects of hypoxia which will eventually lead to you passing out and effectively suffocating. The more CO2 in the air, the quicker you succumb.

The problem with implementing that is that the system is really generic as far as the code goes. It only knows that it can successfully request or successfully add a resource and if it is unsuccessful, can Kerbals die from it. So what's happening behind the scenes is that CO2 reaches capacity, Ioncross tries to add more CO2 and is not successful. So it looks at the CO2 definition which says 'Kerbals can die' so it rolls its virtual dice to kill them.

I don't think it's really threshold aware. I'll have to look at it and see what can be done to it.

Share this post


Link to post
Share on other sites

I don't see anything to suggest this, but thought it worth asking: Does this ioncross branch track resources on inactive ships, or is it still only loaded vessels?

Share this post


Link to post
Share on other sites
I don't see anything to suggest this, but thought it worth asking: Does this ioncross branch track resources on inactive ships, or is it still only loaded vessels?

Ioncross specific resource usage is tracked. I'm not sure kill checks are run against inactive ships though... I thought they were but they might not be. I'm going to be checking on that.

Share this post


Link to post
Share on other sites
The problem with implementing that is that the system is really generic as far as the code goes. It only knows that it can successfully request or successfully add a resource and if it is unsuccessful, can Kerbals die from it. So what's happening behind the scenes is that CO2 reaches capacity, Ioncross tries to add more CO2 and is not successful. So it looks at the CO2 definition which says 'Kerbals can die' so it rolls its virtual dice to kill them.

I don't think it's really threshold aware. I'll have to look at it and see what can be done to it.

Well, you could probably work around the issue by adding several hidden resources. Example: when CO2 maxes out, roll for Kerbal death with a very low chance. If kerbal survives, add the CO2 to "hiddenresource1". When that maxes out, you make an additional death roll. As each new hidden resource fills up, an additional death roll is made. That would simulate the chance increasing as CO2 got higher. Of course, that's a pretty complicated setup that probably wouldn't add a whole lot to the mod. An easier, more game efficient option would simply be to make the CO2 capacity a bit higher (say 15%) but increase the death chance (25%?) when you hit that limit.

Share this post


Link to post
Share on other sites
Well, you could probably work around the issue by adding several hidden resources. Example: when CO2 maxes out, roll for Kerbal death with a very low chance. If kerbal survives, add the CO2 to "hiddenresource1". When that maxes out, you make an additional death roll. As each new hidden resource fills up, an additional death roll is made. That would simulate the chance increasing as CO2 got higher. Of course, that's a pretty complicated setup that probably wouldn't add a whole lot to the mod. An easier, more game efficient option would simply be to make the CO2 capacity a bit higher (say 15%) but increase the death chance (25%?) when you hit that limit.

I think the way I'll go about it is to basically keep it as it is now but have a weighting variable.

So the configuration can stay at 10%, the system will start making kill checks but weighted by a delta of how long it's actually been since since CO2 saturated. It already tracks the information needed. It's not perfect because it resets when the resource is no longer depleted or saturated. I think that's ok though.

Also, maybe it would just be best to bump it to 20% unless we actually want to impose some kind of penalty for the area between 10%-20%, but the stock game doesnt currently lend itself to effects like that and It's probably outside of the mod's scope anyway.

Also, I'll have the 0.24.1 update up soon. The codings been done for hours. Now I'm trying to tweak air vent performance because sometimes they just dont feed enough air to keep Kerbals from dipping into O2 stores.

Edited by Starwaster

Share this post


Link to post
Share on other sites

Update for 0.24.1 pending approval on Curse

Temporary alternate download link here: IoncrossCrewSupport-1.16.1.zip

Mainly just a compatibility update

However, air vents have been tweaked to increase airflow. They also now use electricity to power their fans. If they run out of power they will still provide airflow but at a reduced volume. (still enough to keep the crew alive however)

Share this post


Link to post
Share on other sites
brosef, its 24.2 :P

Of course it is, I just got done updating for 0.24.1!

Well, off I go to download.... if anyone gets a chance before I do, please try this out in 0.24.2 and tell me if it broke again :(

Edit: Ok, it's downloaded, but I have to go slap some hamburgers on the grill.....

Edited by Starwaster

Share this post


Link to post
Share on other sites
I think the way I'll go about it is to basically keep it as it is now but have a weighting variable.

So the configuration can stay at 10%, the system will start making kill checks but weighted by a delta of how long it's actually been since since CO2 saturated. It already tracks the information needed. It's not perfect because it resets when the resource is no longer depleted or saturated. I think that's ok though.

Also, maybe it would just be best to bump it to 20% unless we actually want to impose some kind of penalty for the area between 10%-20%, but the stock game doesnt currently lend itself to effects like that and It's probably outside of the mod's scope anyway.

Also, I'll have the 0.24.1 update up soon. The codings been done for hours. Now I'm trying to tweak air vent performance because sometimes they just dont feed enough air to keep Kerbals from dipping into O2 stores.

Unless you're going to have a very high death chance, I'd say 10% is fine. 20% would be too high. Especially considering you have to intentionally fly around without power for a few days to build up 10%.

EDIT: Wow. Yet another update.

Edited by chrisl

Share this post


Link to post
Share on other sites

So far as I can tell, nothing really changed that will affect Ioncross in this last update, 0.24.2.

So I'm going to hold off on another update for now but I'll do a recompiling against the 0.24.2 binaries later.

EDIT:

New update. Nothing big, just recompiled against 0.24.2. So far not seeing any problems requiring other fixes. In fact, even the one compiled for 0.24.1 probably would run just fine under 0.24.2 but better safe than sorry.

Edited by Starwaster

Share this post


Link to post
Share on other sites

I'm glad you decided to take this over, I was trying to keep things updated with MM. I don't know if MM is around anymore, since I have been absent for a while.

Share this post


Link to post
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.