Fixes#5746Fixes#6017Fixes#3915Fixes#5987Fixes#2151
When using the mech teleporter now, if you attempt to teleport into a wall or dense object, the mech will create a large emission at the area before being sent elsewear, causing hallos damage.
Absolute pathed virus2/effect.dm
Fixed a absurd range for cell drain
Fix's Minor mapping issues
This PR makes it so that random lethal viruses can only occur if there is a virologist to cure them. This PR also makes it so the viruses themselfs don't have completely random effects, but effects that make sense together by adding a new system.
* Changes effect names to be more 'medically-correct'
Hopefully part of a larger rework, at some point.
* Updates disease splicer code to use ternaries.
Removes an extraneous if statement. It helps with my readability, I guess.
* Fixes discrepancy with growth checks.
* Add changelog.
Overview
Adds thirst mechanics. Thirst mechanics work exactly like hunger mechanics where if you don't drink enough liquid, you become thirsty and move slower. Several other mechanics involving drinks were also changed.
For organic races, you gain hydration by consuming beverages and water. Water is the most effective way of hydrating yourself. IPCs are not affected by hydration and do not have to worry about it. If you overeat or overdrink, your nutrition decreases faster until you are of normal hunger and thirst levels.
Penalties for not eating or drinking are now more severe. If you refuse to drink or eat all shift, you will be up to 33% slower and take twice as much pain damage. The amount scales based on your hunger or thirst levels. If you are considered hungry or thirsty, it starts scaling until you're starving or seriously dehydrated. If you overeat and overdrink as well, you get a ~5% reduced movement and pain tolerance with each mechanic.
The icons for hunger have been updated to be more specific, and they match the new thirst indicators as well. https://i.imgur.com/QQbWxYI.png
You can now also inject beverages into your blood for x4 effectiveness. Before, IV dripping yourself with vodka did nothing but give you a small amount of toxins, but now it should be a hell of a party.
Dionaea can now be affected by beverages with respect to nutrition gains and temperature changes. Dionaea cannot be affected by some effects, such as stuttering and intoxication, still.
Healing effects for certain beverages (tea, milk) were removed. This a HRP server, milk shouldn't heal you.
changes:
The reagent and recipe lists have been moved fully into SSchemistry instead of a weird ref-shared global.
The reagent list is now sorted alphabetically, which should make dialogs that involve selecting reagents much nicer to use (such as Spawn-Chemical-Cartridge).
Butanol and Ethanol now share a parent: /datum/reagent/alcohol. Alcohol is an abstract type that won't be listed in any global reagent lists, and exists purely to pool code common to both butanol and ethanol.
Butanol-based drinks can now cause hallucinations, body temperature changes, and stimulation similar to ethanol-based drinks.
Reagent init is now in SSchemistry, both code-wise and init-stage wise.
Ports Baystation12/Baystation12#12658
Changing how the calculation of armor works , instead of just being a check if it is protected fully, half or nothing. Making armor more reliable and less rng dependant.
Also, uranium meteors will irradiate nearby people when they explode.
Removes:
sleep in floorbot/Life() (Fixes#2578)
sleep in medbot/Life()
sleep in farmbot/Life()
a sleep in Diona specific proc chains, which sneaked into human/Life()
a sleep in coldingtons/activate, which sneaked into human/Life()
sleep in bear/misc_command (uncertain if this was ever called in Life(), but hey!)
sleep in corgi/*/Life
This covers all debug references I could find on graylog from the past 30 days.
Refactors:
Removes Nanako-style comments from diona_base.dm which break formatting in VSCode and Github
Swaps diona_base.dm to use to_chat over <<
-fix #1217
-fix being unable to put the tactical pistol into belts/holsters, also remove needless code from it
-fix the scout rifle not accepting other magazines
-fix the hardsuit nutriment being useless and just dealing minor toxin damage
-fix missing tactical masks and tapes from unathi and tajaran sprites
-fix tapes cuffs, blinders and etc not updating when equiped to said mob
-some extra tweaks to the hud code
The Vampire gamemode, as ported right now. The gamemode is in, as well
as creating a vampire through the traitor panel. All abilities seem to
function, unable to test enthrall however (though I have a feeling it
will have to be redone). Enthralling someone without a CKey will give
you the correct response, however.
Any abilities having to do with lums will need to be redone. Vamphud as
well.
If looking over this and pointing out errors/fixing is faster than
simply porting it yourself, then feel free to do so!
- Effects can now appear and be spliced in at higher stages than their set stages (e.g. Waiting Syndrome can now occur in any block)
- Gibbingtons changed to not instantly gib infected on activation, instead either dealing massive brute damage or making humanoids' limbs fall off; this avoids three copies of Waiting Syndrome then Gibbingtons going undetected until it instagibs the entire station one after the other.
- New effect: chemical synthesis. Picks one reagent from its list, and keeps infected at 5-7u of that reagent. Infecting others, splicing the gene, etc does not change the reagent, only generating an entirely new chemical synthesis effect does that.
- Admin panel for spawning viruses
- Virus dish examine() now doesn't print 15+ lines to output, instead printing one line and a link to open a window with the rest (and it calls ..() now)
- Lowercased most virology machinery's names
- Renamed/reordered antigens, there are now 16 antigens rather than 11, and they don't use the blood markers' names despite not being affected by blood type at all
- Generating random effects does not rely so much on the GC
Restricts Gibbingtons, Suicide, and Monkism syndromes from even greater
diseases. Admins can still generate diseases with these syndromes
through secrets.
Fixes virus events potentially having people share the same virus datum.
DNA now stores blocks internally as numbers and only makes the uni_identity and struc_enzymes strings when something has changed. This is vastly more efficient.
In addition, the API for using it has been simplified. Common tasks, such as setting a sub-block, or getting a value from the block, are handled entirely by the DNA datum with simple, easy-to-use procs.
Tested on local server, but may need balancing and additional look-over since the code is from our server (/vg/) and I likely broke or forgot something.
Infection chance now calculated differently for airborne and contact ones.
Contact viruses spread on: infected people touching others, people touching naked infected people (clothed parts do not spread it).
Airborne viruses spread on: breathing (20% chance, then chance depending on worn clothing), coughing (now 2 tiles instead of 1)
Both types spread from mucous and blood puddles because lazy.
Fixes:
Blood and mucus now spread viruses correctly.
Lowered output of hyperzine generation syndrome, since it caused dedly ODs.
Hair styles that aren't designed to have color shifts will no longer be affected.
Balding virus symptom now only applies to humans.
Signed-off-by: Mloc <colmohici@gmail.com>