Try   HackMD

Design Guidelines for Microbiology Effects

1. Effects primarily concern objects, turfs, and reagents.

A microbiologist is not interested in enhancing the crew themselves: geneticists do that!
In general, microbial cultures should focus on enhancing or supplementing the equipment, machines, and structures of the station. Microbes also may act as a production agent for chemicals and gases.

Do not overlap mob effects with genetics.
Avoid effects that would be well-suited as a genetic mutation.

3. A conspicuous, nonharmful effect that acts on mobs is a 'tell'.

Infected players use tells to know that they are infected.
Tells should be unique and discernable from other systems.

4. Only effects under the 'malevolent' datum may cause harm.

Malevolent effects are reserved for nuclear operatives only.
Antag microbiologists cannot, by any means, obtain harmful effects to create a deathplague.
Mass disease only works in fast-paced nukeop rounds.

Balance your effect so that infected players have ample time to recognize their illness and receive help.
Use this scenario: an injured player (50% to crit) receives an infection.
Balance effects such that this injured player has at least 2-3 minutes before they are crit.

Effects that directly harm playability are forbidden.
Effects that disrupt player inputs or create false inputs (like a hellban) are not fun.

Effects with the sole purpose of harming player interaction are forbidden.
Effects that interfere significantly with speech or force players to isolate are bad design.

5. Transmission-enabling effects must include infect messages.

Players must be alerted if they have been exposed.
Communicating to players that transmission occurred is proper design.
Transmission should not be obscured to players.


6. Avoid stacking ifs as much as possible.

Use early returns to filter out unwanted conditions.

7. Use established string defines when applicable.

Repeated use of text is intentional, as it prevents direct memorization.
A microbiologist should not be able to identify effects by the may_react_to text alone.
Effect identification should involve testimony, visual cues, and reagent tests.

8. Create new string defines when convenient.

String defines should be general enough to apply to different effects.

9. Use the microbe's variables efficiently.

Duration and Probability should be the two main variables used in controlling the effect.

if (src.probability >= 3)                  //conceptually equivalent to Stage 3+
if (src.duration < src.durationtotal/2)    //During the first half of illness...
if (prob(src.probability/2))               //Half the chance to act
var/add_reagent_amount = src.probability   //Reagent production varies with progression

and so on.

10. Write adequate documentation for your effect.

Provide a short description of how your act function works.
If auxillary functions are needed for your effect, provide documentation there.