Fixes various runtime bugs caused due to not testing the requested changes, such as the inhalers not playing sounds or the breath analyzer not analyzing breath.
Also improves some things due to feedback, such as the breath analyzer doing too much damage when thrown, and the garden being weird.
The less controversial tweaks
Tweaked the metabolism rate of mental medication to reflect their intended values. Reduced the dosage threshold to suppress traumas to reflect their intended values.
Syringe (drugs) now contains truth serum.
Cardox is now slightly poisonous, and can directly remove phoron from blood when consumed. Cardox can now remove phoron in the air when applied to turfs.
A secure box of loyalty implants, hextrasenil pills, and cardox grenades are now located in the vault.
The vault now contains some misc emergency gear that a head of staff can access in case of a dire situation. Current gear are loyalty implants, expensive cardox grenades, and Hextrasenil pills.
This PR adds new item - oxycandles.
The idea is based of this thread.
chemical bases oxygen candles that when activated can provide enough oxygen to make tiny-small vented spaces with oxygen.
Oxycandles properties:
When activated the chemical reaction cannot be stopped - emergency use only.
Small size, can fit anywhere.
Can restore air in very tiny-small vented place.
-rewrites a bit of the code, to make it less terrible
-fixes #4657 by making sure that the pda properly explodes now
-removes relative pathing from the pda box
Converts the news network into a subsystem
Loads news from a database at the start of the round
No longer ties the PDAs to the tcoms system to access the news (which was broken anyway)
Removes the trivial news event
Adds the already existing virology / xenobiology containment events to the rotation
This PR removes brain surgery's ability to instantly cure all traumas. Now traumas have been roughly divided into four categories of treatment:
1: Chakra therapy cures traumas that directly affect physical behavior, such as tourettes or paralysis. It is accomplished via the crystal therapy pod available to the psychiatrist.
2: Hypnotic therapy cures traumas that directly affect mental behavior, such as phobias or confusions. It is accomplished via the mesmetron pocketwatch available to the psychiatrist.
3: Isolation therapy cures traumas that cause hallucinations. It is accomplished via the metronome and facilitated by the isolation room available to the psychiatrist.
4: Surgical therapy cures traumas that do not fit into the above categories. It is accomplished via brain surgery.
Using the crystal therapy pod's neural scan function will provide the psychiatrist the brain damage the patient suffers from in numerical form. It falls upon the psychiatrist to determine how much of this brain damage is being caused by mental traumas the crystal therapy pod is equipped to deal with. Excessive cycles will cause increasing amounts of radiation damage.
The mesmetron pocketwatch requires the patient to believe in hypnosis. It then puts the patient into a slumber, where the psychiatrist can hypnotically suggest new behavior, provided the patient continues to believe in hypnosis. Each suggestion cures a single hypnotic trauma.
The isolation room is equipped with a metronome. When active, the metronome will have a chance every ticktock of the metronome to cure an isolation trauma, provided the patient is totally alone.
The psychiatry office has been expanded into a complete mental health ward. The only thing it is lacking is beds, as I believe recovering mental health patients still belong in the recovery ward.
The chaplain can also cure isolation and chakra traumas by dispelling the demons within with his null rod. Staring at the supermatter unprotected has been known to hypnotize. Electricity applied by any source directly to the head is also known to sometimes cure electroshock trauma.
Overview
With the new implementation of Brain Trauma, I find it would be best for the antidepressants to include some relation to it. Obviously, Lord Fowl was away ahead of me and implemented them in the update already, but not the way that I would like it to be implemented.
Antidepressants
Currently, taking antidepressants suppress brain trauma conditions, however the suppression of brain trauma is not relative to the strength and dosage of the medication much like actual antidepressants. This proof-of-concept update now introduces a framework that factors in the dosage of the medication when it comes to applying or removing brain trauma effects, as well as adds harsher penalties for missing dosages which are relative to your regular dose.
Additional antidepressants are added to the update. Antidepressants are no longer a "one pill cures all" but many pills that cures 1-4 things. There are also two additional medications that act as some sort of loyalty pill, and a pill that acts as a disloyalty pill. The messages for the disloyalty pill only express rebellious nature, and isn't meant as a pill that gives an excuse to antagonize.
The following brain traumas are no longer cured by pills:
Dumbness
Gerstmann Syndrome
Cerebral Near-Blindness
Mutism
Cerebral Blindness
Paralysis
Narcolepsy
Discoordination
Aphasia
Smoking Cigarettes and Cigars
All cigarettes and cigars have a tobacco and nicotine reagent. These reagents slowly deals minor organ damage to certain organs while acting as a very mild painkiller, antidepressant, and stimulant. Like before, cigarettes can be injected with additional medicine, however the medicine is applied over time while you're smoking it, instead of all at once. Custom cigarettes can be made in the biogenerator, our found elsewhere, and can hold up to 15 units of reagents.
Breathing
Breathing emotes are played every second. Before, being in a smoke cloud would force you to "eat" the smoke. This update fixes it so that the smoke is breathed in instead. Currently, there isn't really any change, but it adds potential for new reagent effects such as inhalers or gassing people properly. If you have a mask with internals on, you're immune to the effects.
Additional Changes
Most reagents had no effect if they had less than 0.01 metabolism. This update fixes that so that most reagents can metabolize at less than 0.01. Painkillers and other special reagents still have a similar cap.
Discussion thread: https://forums.aurorastation.org/viewtopic.php?f=18&t=10261
-opening a cyborg's cover now should take some time
-cyborg's stun batons should drain less power
-removed the wide sprite
-overclocked cyborgs can't be stunned by flashs
-fixes #4248
* Repaths eyes, observers, dview, and new_players to /mob/abstract subtypes.
* Adds /mob/abstract, a base type for 'abstract' mobs that aren't meant to be directly affected by the game world.
This PR adds 2 subtypes of industrial and two subtypes of baseline, one for each cybernetics manufacturer. Sprites by BRAINOS.
other changes:
IPCs can now be flashed or flashbanged.
Admin spawn paths have been added for subspecies that did not have them.
IPCs are no longer slowed by being cold.
This changes the ninja suit to start off with only essential modules. The Ninja now gets telecrystals and access to a restricted uplink category filled with hardsuit modules. Also adds the EMAG hand module, EMP dissipation module, and emergency power generation module. Other changes include a buff across the board for ninja including an increase in their armor values, a buff towards their ninja modules (which they now have to buy), and changing their suit to say "stealth" instead of ominous. This should make the Ninja have a better chance against security while also ensuring it maintains its stealth antag title.
👍 5
changes:
Light tubes now make a noise when turning on.
If a light loses power, it will switch to "emergency mode": the light will glow a dim red, drawing power from a small integrated cell that should last approximately 10 minutes. If the light has power, it will charge its cell.
Light flickers now play the flicker sound for each blink instead of once.
Split lighting.dm into three files: fixtures.dm, construction.dm, and bulbs.dm.
Light fixtures now use stat to represent on-state (as they can be off for multiple reasons): the on var has thus been removed.
Lightswitches now glow in the dark and make sounds when toggled.
Some code/idea for emergency lighting from TG, light sound from Interbay, lightswitch sounds from Bay.
Depends on #3948.
changes:
Maps are no longer compiled in, instead loaded directly from the DMMs at runtime.
Z level defines have been moved from the config to map datums.
Unit tests now use typecaches.
DMMS now actually works.
DMMS has been updated slightly.
DMMS is now capable of loading simple lists of non-text types.
DMMS is now faster when loading many types without mapped in attributes and when loading area instances.
Asteroid generation is now defined on the map datum instead of being hard-coded in SSasteroid.
Holodeck presets are now defined on the map datum.
Atmos machinery now uses Initialize().
Makes all light tubes & bulbs have colour according to the light they emit. There are 6 preset colours: RGB CMY. Any other color is possible by simply changing the already present brightness_color variable. This PR makes it so it actually changes the color of the item and wall object too.
Added two new colour defines used only along with preset coloured lights.
Coloured lights are only obtainable by random maintenace loot, cargo spawn or trader.
Added box of randomly mixed light colours and box for every preset light colour.
Removed two sets of redundant defines.
Converted light item New() to Initialize() (hopefully correctly).
Made couple tiny tweaks to the lights code.
EDIT, 7. Oct 2017:
When you hit light machinery or item with paint, it will change it's brightness_color var, instead of the color var.
Paint buckets can now paint items and people again.
You can now wash paint off by spraying yourself with fire extinguisher or otherwise covering yourself in water.
EDIT, 8. Oct 2017:
Removed one apparently unused global list.
Converted pain bucket New to Initialize and changed it's pathing style.
Shower can now wash paint too.
Fixed paint bucket sprites to be bit more dynamic and fixed the in hand sprite. Also added bucket lid.
Adds new sounds effects to the following;
-nar'sie summoning
-turning on and off a welder
-using a megaphone
-new flashbang and being hit by a flashbang sounds
-cutting wood
-chain of command attack sound
-opening/closing curtains
-rocket launcher sound
-opening/closing a light submachine gun
Changes cargo to be based on credits instead of items
The following is still ToDo:
Test SQL Loading + Add flyway migration
Add changelog
Restore the PDA Application
changes:
use_check() will now show failure messages to the affected mob by default. It still returns the failure reason & permits disabling of messages via. the show_messages parameter.
Lockers now take 2 seconds to weld or disassemble.
A progress bar is now shown to mobs with the progress bars pref enabled while attempting to break out of welded lockers.
Mostly synthetic code cleanup, some tweaks to human examine and ID cards too.
changes:
Synthetic sprint procs have been compressed down to one proc for all machine subspecies vs. one per subspecies.
Synthetic sprint now only stuns synthetics with empty cells for 30 seconds for all types.
Refactored synthetic limb roboticization.
Changed how a lot of synthetic/industrial checks work.
ID portraits are now 128x128, and scaled without blurring.
Species can now specify an examine text color (for their species name) that differs from their flesh color.
Fixed some eye checks not respecting species.vision_organ.
Examine pulse-checking now uses do_mob & has a progress bar.
changes:
Fixed#3203.
Tajara or Unathi CEs now get gloves that actually fit them.
OOs now respect direction changes from their mimicked object.
Replaced all references to trange() with RANGE_TURFS().
Replaced all references to is_type_in_oview() with locate() in oview().
Fixed a runtime caused by recursive explosions falling off the edges of the map.
Carp despawn now works properly with the new asteroid turfs.
Carp despawn now uses WEAKREF instead of SOFTREF.
Added tick-checks to the carp migration event.
Vaurca now have the IS_VAURCA reagent_tag.
Cleaned up butanol alien handling a bit.
-fixes #3218
-fixes #3213
Fixes a messed up table at telescience
Fixes a wrong cable at engineering
Fixes a broken uplink item
Fixes a wrong named camera
Changes the location of the heister and merc shuttles in the under station z level to be near the engine pipe area
Port of the merchant mechanics from baystation12.
All of the trader, prices and most essential system are done, as well the job datum and the like. Mapping the shuttle, the base and a new dock will be done in a later pr.
Also adds phazon construction and several other items used in this pr.
The chance of the merchant slow being open at round start can be changed via the config, it is 20% by default.
Removes a whole bunch of in world loops.
Reworks SSmachinery to hold two lists: all_machines and processing_machines. all_machines contains all machines 5ever. All of them. Literally. Forever. And ever. processing_machines only contains machines that process with the SSmachinery controller.
I checked most types at runtime on the live server to see whether they're in processing_machines or in all_machines, and did debug to ensure that most machinery ends up and stays in all_machines.
Includes a basic UT to make sure all mapped in machinery types remain within the all_machines list post-init.
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.