UmbraSpaceIndustries / USI-LS

USI Life Support
Other
64 stars 46 forks source link

Hab timer change suggestions #199

Open Wyzard256 opened 7 years ago

Wyzard256 commented 7 years ago

Awhile back in the forum thread, I and a few others discussed some quirks of the habitation timers:

I'd like to suggest a possible change to the timer mechanics that should resolve those issues, with little compatibility impact and a very similar overall "feel":

The idea is that "hab" time supports long-term stays, and "cabin" time is what allows a kerbal to leave habitation for a relatively short time (e.g. for a landing). The two values are based on the existing BaseKerbalMonths attribute and number of crew seats, so part configs shouldn't need to change, and the total time a vessel can support a kerbal (hab plus cabin time) is the same as in the current system, so it should be compatible on an individual-ship basis. I think the only compatibility impact is that kerbals can no longer stay in space for a long time in poor habitation just because they've seen better habitation in the past, and that's by design.

I'd suggest that the default recovery rate for cabin time be one-to-one: that is, each day in hab removes one day from a kerbal's accrued cabin time. People may want to change this to adjust the difficulty. The idea is that a kerbal can leave habitation for awhile and come back just before he succumbs to cabin fever, but then he has to "cool off" for awhile before he's ready to do so again.


Here's an example of how the suggested mechanics would play out:

BobPalmer commented 7 years ago

Your first premise is very flawed. An EVA only resets the hab timer, not the home timer. There is a reason there are two timers. An example case being a lander or rover that departs a much larger mother ship. Yes, EVA resets the hab timer - but it does not reset the home timer, which is pretty huge. i.e. you're confusing hab->home with home->cabin in your example. You will want to re-do that proposal with that in mind please.

Wyzard256 commented 7 years ago

No, I understand the difference between the two timers. Note that I propose renaming the "home" timer to "hab" — not strictly necessary, but because it'd represent only time from hab modules. That may make it look like I'm mixing the two up, but I've actually been careful not to. When I refer to "hab time" in the example with Jeb, I'm talking about the timer that was formerly called "home" (but has been renamed and modified somewhat).

(I realize that renaming "home" to "hab" makes things a bit confusing when discussing the change — sorry about that. I can edit the proposal to take out that rename if you'd like.)

The specific issues I'm aiming to resolve are:

With the current mechanics, I think the purpose of the "best hab ever seen" rule is to allow a kerbal to leave his nice comfy ship for awhile and spend a limited time cooped up in a lander or small transfer vessel, but on its own, the "home" timer doesn't limit how long the kerbal can be away from the comfy ship. The current "hab" timer is meant to provide that limit, but it's not effective since it can be reset by EVA. What I'm proposing is basically a different way to handle the "short excursion away from the mothership" use-case that avoids those issues.

arbsoup commented 9 hours ago

Ancient request, I'm aware, but I like this a lot... though it'd need quite the code reorganization! There's one issue I see with this setup:

One day later, he leaves the station in the ship that he arrived in. By itself, the command pod provides about 7 days of cabin time, but he’s already been homesick for a day, so he can only last about 6 more.

What if he leaves after 8 days? He dies (or turns into a tourist or whatever) the instant the ship leaves the shared-vessel range, which is hugely jarring.

The way I might want to do cabin time is that it's a constant maximum of 0.25 months for any Kerbal, but it depletes slower if there are more seats than Kerbals (or if there's a hab multiplier?). In the case of this last station which is 1/5 occupied, you could maybe multiply the displayed cabin timer by 5 while depleting Jeb's internal cabin timer 1/5 as quickly. That way when his hab timer runs out in the station the cabin timer displays 7.5*5=37.5 days. When he leaves after 8 days, he's really lost an effective 1.6 days of cabin time, so once he's back in the ship his timer now shows 7.5 - 1.6 = 5.9 days to go.

I'll poke around and see if I can maybe do this on a fork sometime. This is getting me thinking too much to leave it alone.