About The Pull Request
This PR adds several (terrible) unique sprites for all the combat hypos and medipens that just used the default instead, and tweaks some minor stuff like making descriptions more truthful and moving the one-use gorilla pen and combat holy water injector where they should be.
The new medipens are just recolors of the epipen, since that's the template used for the leporazine pen too (whose icon i deleted since the pen doesn't exist anymore). For example:
image
Why It's Good For The Game
These changes are intended to make each hypo stand out, so they don't all share the same sprite. It also adds a lot of inhand sprites (equally as bad in quality), so a knowledgeable player can, for example, notice they just got stabbed with a gorilla pen, or just know that they got injected with something healthy and not poison.
Changelog
cl
imageadd: added some icons and images for hyposprays and medipens so they stand out
tweak: tweaked a few descriptions on said hypos so they better describe the contents
/cl
these sprites are kind of terrible, but i think they're better than every single pen and combat hypo using the same icon. any new sprites would be highly appreciated, especially for these two
* adds "you" to some combat visible_messages.
* more you-messages and attack verbs to present tense.
* small fixes
* more additions and small fixes
* few message tweaks
* Fixes a typo and few other wordings.
About The Pull Request
This removes chem dispenser text macros and replaces them with a recording function. This allows you to still use macros, but you must record them yourself. You are no longer able to paste in a pre-written macro.
When the dispenser is recording, trying to dispense chems will record to the in-progress macro instead and won't dispense like normal. You can then save this macro when you're done recording and use it like you would before.
Using an existing macro while recording a new one will record the macro contents to the in-progress macro, and can be done multiple times.
It looks like this:
image
Why It's Good For The Game
It forces chemists and bartenders to learn the recipes for themselves first if they want to get the macros going quickly.
Changelog
cl JJRcop
del: Removed text macros from the chem dispenser.
add: Replaced with dispenser input recording macros.
/cl
* Brain damage works on organ damage procs, some defib reworks
* Heart and Lung damaging effects and failure, liver damage and failure moved to its organ again
* Cleans up reused global
* Organ damage procs on living and living/carbon
* Changes brain damage procs again
* SR heals all organs on revive, no decay for cybernetic implants, stomach damage and fail effects.
* Damage and failure effects for the appendix, ears, and some touchups on the stomach
* Committing changes so I don't lose them
* Organs now cease decaying in the proper containers
* Organ Fridges
* Reverts map changes
* Adds coronary bypass, lobectomy, trying to deal with organ_stat runtime
* Actually fixes merge conflict
* Smartfridge tweaks
* Think I figured out map merger
* Evidently not
* Still runtiming with glass shards even after I remove the map changes?
* Fixes runtime error with brain_item
* Runtime fix on living/carbon/life
* Cleaning up old PR code
* Brain damage fix, moves defines to actually be in _DEFINES, under DNA since that's where organ slots were
* Wrong math operation used
* Brains in MMIs no longer decay
* Removes redundant variable, and defibs no longer work on heart attacks caused by failing hearts
* Removes misleading comment
* init freezes organs in case organ crates are added, morgue corpses are frozen, removes adjustLiverLoss
* Removes random spaces, scanners check brain damage severity now
* Swaps numbers for defines, fixes brain surgery, rebalances coronary bypass bleed since that was insane last I tested it
* List change
* Runs off of an index instead of using cut
* Brains can be put into organ fridges
* Fixes minor type, hotfix for cloning problem
* Removes pointless check
* Demon hearts no longer decay
* Nightmare hearts no longer decay
* Removes istype() check on process, sets can_decompose instead
* Condenses organ damage report
* Removes organ failure messages
* Less organ damage spam, implements organ threshold messages instead
* Brain damage messages go to owner, not source
* Self-examine shows damaged organs
* Minor code cleanup, adds autodoc comments to the new procs
* Inverts standard organ vars to prevent random organs decaying, adds a few more autodoc comments.
* Merged the booleans into a set of flags
* Healthy living improves organ healing rates
* dunno why this didn't update
* my actions have consequences
* Sets ORGAN_SYNTHETIC for overlooked robotics organs
* Doubles heart decay time
* 3 minute heart decay
* Lobectomy/Coronary_Bypass heal more
* removes hivemind spells from the changes
* Finishes pump and fixes visual bug with disconnecting plumbing objects
* More bugfixes, finishes liquid pump
* Chemical synthesizer, wrench signal to handle unwrenching
* adds input and output pipes and changes ob into obj
* dmdocs all of plumbing through proper means
* adds sprites by meyhaza
also added wrenching interaction and fixed a dumb dumb with me fucking up an object path
* brightens the sprites a little by me
* removes big select from synthesizer ui
* update tgui.js thing
* unfuck pump color
apparently the replace all of spriting has downsides
* chemical acclimator
only heats and cools but i gotta commit and do other stuff
* finishes chemical acclimators
* uodates .dme
* updates .dme again
forgot plumbing component
* Replaces vitiligo, revitiligo with polyvitiligo (adds colorful reagent) and disfiguration symptoms.
* honk
* makes requested changes and changes colorful reagent to crayon powder
* blacklists the crayonpowders that make you invisible or do nothing
* adds message to disfiguration apply
* Reworked electrocute_act
This still isn't perfect, ideally this would use flags and stuff but I don't have the energy for a change of that size.
* Removes spec_electrocute_act and makes the species siemens_coeff actually work.
* Readds the secondary shock
Removes dumb visual bugs.
Put the copy pasted wrench stuff for disabling and enabling the component, in the component using a new signal from default_unfasten_wrench.
Add a general plumbing machinery subtype. Right now it's mainly for cataloging.
Adds the chemical synthesizer. You can select a single chemical and an amount between 0 and 5. It will produce it every tick. Should be combined with other synthesizers to create meth factories.
Makes the liquid pump a fully functioning machine.
cl
add: The station comes one step closer to plumbing with the introduction of the chemical synthesizer.
sprite: sprites for the synthesizer, input and output commissioned by @Meyhazah
/cl
I wanted to do all the plumbing basic equipment at once, but stuff like plumbing heaters is gonna be ugly if I don't rework them completely and I don't wanna scare the maintainers away.
There is slight copypasting from the chem_dispenser and with the chem synthesizer, but having it be inhereted would be a worse clusterfuck IMO.
* Aheals now fix addictions and mood.
* Does it properly. Now uses a signal to detect the aheal.
* Removes a getComponent in living and puts that shit into the mood component.
* Fixes a small oversight with where I placed the moodie purge.
About The Pull Request
This pull requests lets the ice cream vat dispense custom ice creams flavoured with a reagent of your choice from an internal beaker. The ice cream takes the name and reagent colour of the master reagent.
You can also easily refill the ice cream vats ingredient storage by inserting a beaker and clicking the refill from beaker button.
I also plan on adjusting the colour of a few reagent that i think deserve good looking ice creams but do not have the colour for it.
Why It's Good For The Game
The ice cream vat is currently really lame, the fun comes from making strange and interesting flavours, a feature that is absent from /tg/. No more!
The ice creams in this screenshot are flavoured with earthsblood, crank, romerol, krokodil, turbo and happiness, but the possibilities are endless, you can be bold and incorporate some mayonnaise or just play it safe with caramel.
Changelog
cl
add: NT has made breakthroughs in ice cream science, ice creams can now be flavoured with any reagent!
tweak: The ice cream vat now accepts beakers.
/cl
* Medipen and regen cores can now be activated in hand.
* Autodoc
* Old regen core description.
* Cyborg proc begone
* cleanup, no tk shenanigans.
* Removed unusable pen.
* better return.
About The Pull Request
Added two new traits, TRAIT_NOMETABOLISM and TRAIT_TOXIMMUNE. Does what it says on the tin, making livers not process reagents at all (except liverless reagents) and gives immunity to toxin damage. Species with NOMETABOLISM spawn with no liver (NOLIVER is now redundant and has been removed). This trait also prevents liver failure damage, for obvious reasons.
These traits have been given by default to androids (artificial, they were already immune to chemical healing anyway), zombies (who have their own regeneration) and skeletons (milk still works).
Other changes:
Species' handle_reagents proc now fires before checking for metabolization, so species can process chems even when liverless.
Removed the calcium healer trait, making it into a species handle_reagents check for each affected species (skeletons, plasmamen, bone golems). Skeletons now also heal burn damage from milk, since it's one of the few forms of healing they have available.
Note:
These traits should logically be applied to plasmamen and golems, but i intentionally left them out for now since it would be a significant balance shift, and there should be a proper alternative way of healing them first.
Why It's Good For The Game
Balances the significant benefits of being undead with a significant negative: being immune to chemical healing. Since zombies don't really rely on it and androids were already heal-immune, this mostly affects liches, and i believe it should be fine: considering that the main point of the spell is the resurrection mechanism, the space, gas, pierce, and heat/cold immunity they also gain should be counterbalanced by having a harder time recovering from injuries.
There is also a silver lining to having this trait: poison immunity. Effectively this is a buff to androids and zombies, the latter especially because they can no longer process mutation toxins. While this tactic is creative, it also trivializes a very expensive investment of TC. I might still add a liverless way to apply mutation toxins later on, but zombies shouldn't be effectively one-shot by a syringe gun.
Changelog
cl
add: Androids, skeletons and zombies no longer metabolize reagents. As such they no longer benefit from healing reagents, nor are affected by poisons and toxins.
add: These species are now also immune to any other form of toxin damage.
tweak: Milk now also heals burn damage for skeletons.
/cl
cl Time-Green
add: Adds plumbing pipes and some hidden plumbing related machines. They're not available in-game yet.
sprites: Geyser and geyser pump sprites created by Mey-Ha-Zah!
/cl
Adds the following objects:
Fluid ducts . Like atmos pipe, but for reagents. They're smart and can be seperated by layer and color
Geysers. They spawn on lavaland and can be harvested with liquid pumps or just beakers.
Liquid pumps. For pumping geysers. They need to be on a wire node and connected to a duct network.
Plumbable reagent dispenser subtype.
New plumbing RPD specific RPD.
Plungers. The reinforced plunger can be used for plunging geysers to activate them. They currently serve no other function and can't be worn as a hat yet.
They're all disabled and admin only.
Adds the following systems:
Ductnet datum. They pretty much say "hey, we're connected"
Plumbing component. You can turn any movable atom into a plumbable thing. Comes with overlays and everything. They're essential for everything that has input and outputs, except pipes. That means you can have machines connected to both atmospheric pipes and fluid ducts. They only connect with layer 3 ducts.
Fluid subsystem that handles the processing on the plumbing machinery and other plumbing related stuff.
Basically atmospherics but with reagents. Reagents are pressurized and thus transferred instantly, to avoid those stupid leftovers in pipes no one likes. I am PRing it now because if I were to add a dozen or so associated machines, it would be too much of a pain to manage/review in one PR. It would also be a massive waste if people didn't even want it in the first place.
Also yes all of this works (as far as I know)
Things I plan to add in later PR's
Layers / colors (maybe) done
Machinery (Stuff like chemical processors, filters, special mixing chambers and factories)
Make geysers more interesting, so chemists/atmostechs/cargotechs/assistants can go to lavaland and get some exotic stuff.
Pipe fractures. Damaged pipes could do the cartooney water soaker beam coming out to shoot at people cause why the fuck not.
Code concerns:
Connecting is handled through pipes only. Not sure if this is the best approach. This means plumbing devices cant directly connect to each other without pipes. I could add some exceptions to handle it. I could also take connecting away from pipes and make it a global proc, with alot of exceptions since it'd be handling both plumbing machinery and the ducts.
Reagent transferring. Basically the transfer is instantaneous from A to B. I did this because stuff getting stuck in pipes could pose some serious mixing problems with chemistry, since it's alot more delicate than atmos. I could understand if people would want it to be like atmos. It wouldn't be difficult to change.
Also for testing I suggest you set the pipe_dispenser to category 3 to print fluid ducts. My tests were done with
/obj/structure/geyser
/obj/structure/reagent_dispensers/plumbed/storage
/obj/item/plunger/reinforced
/obj/machinery/power/liquid_pump
/obj/item/pipe_dispenser/plumbing
that and standard tools for setting things up
* Adds narcotic moodies
Krokodil, fentanyl and morphine now trigger moodies.
* Makes the duration comparable to similar moodies
+Morphine now uses the correct moodie.
* Adds moodies to crank, meth and bathsalts.
* Remove comma splice
* Adds adjustLiverLoss & getLiverLoss procs to carbon
* Adds trophazole
Adds trophazole, a brute healer that makes doctors take a more holistic approach to heal, It is highly reagent efficient by converting nutriment to healing peptides. Creates an avenue for cooperation between kitchen and medbay.
* Adds rhigoxane
Rhigoxane is a chilly burn healer that works best in a spray bottle and is capable of extinguishing fires.
* Adds thializid
This tox healer has great potential and mixability, balanced by requiring the doctor to take note of the patients liver health as well as using proper dilution and an iv pole; that wont fit in a powergamers pocket.
* Charcoal + trans_to changes
Makes charcoal only work when ingested, and adds a new proc in reagent holder, lets trans_to react the transferred reagents if a method is chosen.
* Medical + Syndicate spray bottles
Medical spray bottles have been added to techweb under the biotech node for medical vapor application, alt click to change their skin.
Two suspicious spray bottles have been added as expensive contraband items in the chemdrobe. They have one extra spray range and a random suspicious skin from a pool of 8.
The large spray bottle and the space cleaner bottle also have new icons.
In addition trophazole and MMF have new colors.
* Adds chempacks
the IV medicine bag, or chem pack is the blood pack analogue for chems, it is easy to fill like a beaker but can also be permanently sealed to prevent spillage and mitigate tampering. It can be renamed with a pen. Both the new chem pack and the old blood pack have been added to the medical lathe and biotech node.
* Adds recipes to thializid and trophazole
Also fixes the rhigoxane recipe
* Medsprays are now medigels + fixes
chem packs can now be stored in the smartfridge and chem bag.
Medsprays were renamed medigels to reduce confusion. Calling them medical sprays made no sense since they apply chems through the patch method.
The lore for the new medigels is that they spray a thick gel onto the skin that dries into a film.
* minor fixes + mint frosting
I have tried to fix the problems people have pointed out. And the peptides now taste like mint frosting.
* Readds my cleaner sprites
* Adds liver damage to thializid + adds on_transfer proc
Thializid has a liver cost, the cost is worse if you have already sustained liver damage. Fixes weirdness by moving the reagent conversion effects from reaction_mob to on_transfer
* Fixes chem bag examine
The chem bag examine now werks, also fixed a typo in the description.
* Adds a clumsy check to sealing the chem pack
* Makes kelo, bicard and anti-tox unmixable.
I have retained the tricord recipe for now in case someone manages to collect all 3 through non-dispenser means. Think of it like collecting all the dragon balls but lame.
* Makes damp rag apply on_transfer effects
* glass and food now work with trophazole
glasses and food now call the on_transfer proc via trans_to
* Another round of fixes
Replaces 0/1 values with TRUE/FALSE where appropriate. Removes the debug printout from the spray bottle reskin. Replaces one instance of L.damage with C.GetLiverLoss().
* Rhigoxane recipe is now COOLER
200k was too warm since cryostylane cools down so much by itself upon mixing.
Now the chemist has to choose between adding oxygen for instant cooling or using the heater/cooler to conserve energy.
* Removes the seal() proc and moves its guts into AltClick
* Item_state switching moved to reskin_obj
* Fixes missing medical sprayer left inhand
the sprayer_med_yellow inhand sprite now has the correct name.
* Fixes inhand updating
* Update code/modules/mob/living/carbon/damage_procs.dm
Co-Authored-By: moo <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
* Update code/modules/mob/living/carbon/damage_procs.dm
Co-Authored-By: moo <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
* Tries to add typecache
* Moves the typecache and makes it static
About The Pull Request
So organ damage is a thing now associated with general object of organ, meaning all organs inherit a damage variable, failing boolean, healing variable, and maxHealth variable. The proc applyOrganDamage takes in the damage and organ path, applying damage/healing to said organ. While an organ is in use, it heals a small amount over time (granted the organ is not failing), with this fraction being set by the healing variable.
This also reworks preexisting organ damage systems to function more so on the universal organ damage system, the liver specifically. So much code exists in regards to eyes/blindness and ears/deafness that I'll need to go ahead and take a longer time combing through the code to get everything that can reasonably be tied to those two organs and their level of damage reworked to function off of the organ damage system, as opposed to just a trait add/remove system.
Lastly, this slightly reworks scanners, since now you need to check for every organ in the body. Since organs are stored as "the [organ]" with the method I used to get them, the phrasing on the medical scanner was changed to make more sense given it now has to say something along the lines of "severe/minor damage detected within [the organ]". I'll likely add another proc if I cannot find a way to get the organ's max health during this operation, since a static number determining minor/severe damage does not work when an organ's max health is less than the typical 100 points (as is the case with eyes).
Why It's Good For The Game
Every organ can be damaged, though not every damaged organ does anything right now. Damaged livers do the same thing as they did previously, and damaged eyes develop varying levels of vision impairments. The benefits to this PR are more for future coding projects than it is for the game currently, with no foreseeable changes to the way it's played currently.
Changelog
cl
code: Universal Organ Damage variables and procs
/cl
About The Pull Request
Adds an abductor chem dispenser, buyable for 2 points from the abductor rewards console.
Buying it spawns a beacon, which can be activated in hand to drop it and spawn the dispenser after 3 seconds if the tile is free of obstructions.
The dispenser contains all the reagents of a fully upgraded, emagged dispenser plus plasma and uranium.
Why It's Good For The Game
More tools for abductors means more possible abductor shenanigans, and personally i'm all for making the no-murderbone antag as fun as possible.
Changelog
cl XDTM
add: Abductors can now buy a special chem dispenser for 2 points. The machine is delivered as a beacon which can be used when standing on any free tile to spawn it.
/cl
In advance of eventually adding SpacemanDMM's linter to Travis, fix everything it can currently detect.
Some lists, including global lists, are given types so that L[i].foo expressions can be checked.
Some procs are given a new form of return type annotation so that DuplicateObject(O).forceMove()-type invocations can be checked.
Open to syntax suggestions on the return type annotations, and on whether the preprocessor strategy makes sense.
Return type syntax is currently roughly:
<typepath> | <paramname>([_])*(.type)?