Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature expansion and new mod proposals #1

Open
FluffyLogic opened this issue Oct 19, 2020 · 0 comments
Open

Feature expansion and new mod proposals #1

FluffyLogic opened this issue Oct 19, 2020 · 0 comments

Comments

@FluffyLogic
Copy link

FluffyLogic commented Oct 19, 2020

To enhance and make this mod more feature complete, i propose the following :

A new additional KerbalHealth mod is tasked with handling of health issues that affect Kerbal's interests, fertility and basic disease tracking.

Generally, KerbalHealth should allow dependant mods to track and affect health of Kerbals.
Each mod would have a Disease and one or more Medicine components to keep it balanced.
Disease component would track and affect Kerbal's performance, time elapsed since it started , affected traits, disease source, transmission and persistence time, persistence condition and needed conditions to progress (either as decline or as improvement - look for examples few paragraphs below).

Performance shows how good a Kerbal is at assigned duty.
It may be a pilot but if performance is poor, it either can loose abilities to control a craft (like inability to keep vessel in radial in/out, unable to execute craft staging, unable to pilot craft under water ie a submarine), or outright disable all piloting capabilities, turning it into a passenger.
For Engineer it could mean a loss of ability to repair wheels or manually extend solar panels on unpowered craft etc.
Similar for Scientist for example being unable to reset experiments or collect/move raw science data.

Elapsed time of disease is used to track disease progression in single Kerbal to allow player plan for rescues, medical transports, mission aborts or ignoring a disease since Kerbal could return to KSC or station with medical care before performance drops below minimum.

Traits are affected by Disease in floating point 0-1 range to allow for fine tuning and disease can change effects on traits over time (either decline or improvement).

Disease source determines if disease needs a source to continue and how effective it is with source present. Source can be environmental, material or biological.
Environmental sources can be for example loneliness, cramped spaces, bad life support, atmosphere of celestial body incompatible with Kerbal physiology, radiation from distant sources outside of living/working space (gamma radiation bursts from stars, planetary radiation belts), low gravity / micro-gravity for long periods of time.
Material source can be exposure to chemicals, bad food, radiation from nearby sources (ore rich in radioactive materials, fission reactors, nuclear engines, high-energy particles escaping from plasma reactions).
Biological sources can be other Kerbals that contracted transmissible disease, animals on Kerbin homeworld or other celestial bodies, contaminated air or water.

Disease persistence time determines how long a disease source can retain its transmittance to Kerbal from surface or volume of non-living material before it is extinguished and no longer can cause a disease in Kerbal. Disease persistence condition describes a set of conditions and their range of values that it needs to persist for that given time.
Example is viral source surviving in air of a craft for a limited time if craft temperature remains acceptable. For bacterial source good places are food or water or surface of inside of craft is with acceptable temperature. Sources with zero persistence time and with non-zero transmittance factor can only be effective from other animal or Kerbal, for example simple viral infections.
For sources with zero persistence time and zero transmittance examples are loneliness, radiation exposure or high acceleration.

The Medicine component should let player combat health issue caused by Disease component. It defines environmental conditions, required materials , required facilities, wether it is consumed personally or administered by other Kerbal, needed skills or class of Kerbal that will execute treatment, time of treatment and how much it degrades a disease per unit of time.

Environmental conditions determine temperature, g-force and other factors.
Required materials are resources consumed by Kerbal.
Required facilities can help effectivness of treatment against a disease shortening time spent on treatment, and they can be made to not be mandatory.
Personal consumption of medicine or reception from other Kerbal determines who can execute treatment.
Needed skills describe minimum set of skills that Kerbal needs to perform treatment (even if self-treating).
Time of treatment tracks for how long treatment is running until it removes the disease from Kerbal. [NOTE: not sure it is needed, full treatment runs until disease effectivness drops to zero ?]
Disease degradation determines by how much effects of disease drop per unit of time spent during treatment.
Examples of medicine component are if Kerbal wears a biohazard suit in environment full of biological sources of disease, which prevents transmission of disease or if Kerbal is occupying medical facility receiving treatment by other suitably qualified Kerbal giving required resources (medicines) in craft with adequate temperature. Another example is Disease/Medicine pair where Kerbal can contract a disease from animal source but medicine part has all required "built-in" components that can be considered Kerbal's natural immunity so Kerbal wil suffer negative effects, but with good environmental conditions, it will eventually be healthy again without receiving any additional treatment.

Special example case of Medical component that can alter Kerbal's conditions to temporarily stop all disease progression (with its own negative side effects that disable Kerbal into immobilized passenger) is use of CryogenicMedicine.

Figure 1. Organizational chart of mods and their communication and control

diagram_mod_structure

Figure 2. Kerbal conditions vs health vs medicine

performance_vs_time_graph

The condition-performance-medicine triplet is addressed in KerbalHealth modlet and describes how disease starts, how it progresses and how affected Kerbal responds to treatment.

Figure 3. Idea about previewing crew performance in a given craft before launching

editor_performance_preview

Figure 4. Small preview of crew member performance in flight. Specific health stats are available to player only if the HealthMonitor embedded in suit has a network connection to Physician/Scientist Kerbal or KSC (see below for more detail).

crew_portrait_stat_overlay

Kerbal icon is from
https://www.reddit.com/r/KerbalSpaceProgram/comments/3xozxt/highres_kerbal_head_icon_2048x2048_svg_and_png/

[MORE TO BE ADDED]
[NOTES]
-save crew for procreation
-life support interaction with colony
-new quality and effects from interacting mods

  • clinical death / resuscitation or hibernation for "suspended" flag
    -prevent moving kerbals from facility if sick (stock game or connected living spaces mod)
    -encourage player to move kerbal to specific facility to redeive treatment (field medicine vs specialized facility)
    -introduction of KerbalHealth-aware Medic and Psychologist professions
  • update kerbal health git issue w/ type registering to avoid multiples of same disease in diff KerbalDisease mods. Also, a disease cause sholud be added that has properties of:
    disease source, disease vector (bacterial, viral), distribution.
    Also make sure that each Disease has a Medicine with corresponding disease ID tag. Also, KerbalHealth can have master control panel in game difficulty setup, listing all sub-mods that use this system with warning about unpaired Disease and Medicine components.
    Also in-game there should be a graph showing kerbal state decline/improvement in vab/sph editor to let player plan ahead for a constructed craft and in flight as well to continue tracking due to changes.
    All kerbals have health monitors that display data that player reads and determines cource of action (if needed). They are primarily visible at kerbonaut portraits though they are visible also in flight KerbalHealth master control window.
    They are visible as simple graph lines with single arrow showing overall decline or improvement in health. Player can click on
    portrait to display full graph. All health monitors require network connections. short connections for EVA kerbals (no self-diagnosis even if Kerbal is has medical training) or long distance for Kerbals occuppying crafts. Sufficient conditions for reading Kerbal vitals is connection to KSC or any craft in network that has Kerbal with medical training (which could mean that 2 medics can diagnose/monitor each other in same or separate crafts). If there is no connection, then no vitals / diagnostics are visible to player, and it Kerbal has lost ability to perform actions, player won't know why until connection to medic or KSC is re-established.

there has to be C# intefrace from disease/medicine modlet back up to main control to make it possible to simulate them

the disease/medicine can also simulate life support. just setup "disease" with name "hunger" and there has to be medicine present named "food" (that never satisfies "disease" factor and makes it disappear).

how long you crew has before some known condition drops below tolerated value this does not include heating or acceleration.
if you consider those, you'll have to allow player to define and draw custom curves and then "playback" the passage of time and all that before craft even leaves the hangar

use instant disease dispersal to simplify modeling

the disease/medicine combo could implement kerbal biohazard suits / medical ships to let player execute medical missions

KerbalStats should also include flags or values that make some Kerbals resistant or impervious to some conditions (disease start in organism) or diseases (infection from others), like what BadAss flag for Jeb does in high-gees

generational ships are possible and must have colony module(s).

the pregnancy/birth problem : it should happen on colony ships, else you wind up with kids halfway to jupiter

this can be stopped/controlled either under "orders", by physical separation or by induced hibernation/cryptobiosis/stasis

though there can be an issue with high-frequency events like food, sleep and air (if consumed aboard) - there has to be some kind of automatic implementation so players can warp w/o manually doing 10000 sleep/awake cycles. this could be solved by adding a KerbalOrders mod that lets player set "orders" to Kerbal prior to launch, which give instructions on what to do when certain conditions are met for recurring events.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant