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>
-Balding
-Stimulant - generates hyperzine.
Two more:
-Longevity : heals small amount of damage and some broken bones when activated. When healed deals same amount of damage.
-DNA degradation : deals tiny amount of clone damage
Also made retrovirus deal clone damage as well.
Fixed cure machine producing virus blood wrong.
Changes to existing syndromes:
-Cough : now has chance to infect people around mob.
-Telepathy : now should properly give powers to the mob.
New syndromes:
-Topographical Cretinism : confusing directions, much like drunk effect.
-Blackout : short-time blindness
That'll let 'greater' and 'lesser' viruses pick low-stage symptoms from same pool without duplicating them.
Also sorted effect datums by stage in effect.dm.