Commit Graph

3510 Commits

Author SHA1 Message Date
TemporalOroboros
305abeba22 Fixes infinite dispenser power (#59710)
Fixes an issue where update_total() could recurse and wind up double-counting a bunch of reagents.
Fixes an issue where reagent dispensers could withdraw negative power from their power cell. (Fixes #59663) (Pretty much just the two problems described here but in issue form)
2021-06-22 13:17:46 -07:00
coiax
e8d221dc6d Refactors mail and delivery code (#59730)
- Mail now uses weakreferences to minds, which means the presence of
  mail will not cause harddels, and persist between mindswaps or cloning
  or whatever horrible mob transfer things you've got going on.
- The code for creating a crate of mail has been refactored into a
  single proc, rather than having the same code twice.
- Instead of special casing reagents being delivered, instead
  reagent mail goodies are just regular bottle items like any other.
2021-06-21 19:26:57 +01:00
Emmett Gaines
5adb8df64a During unit tests, does extra verification on text based overlays (#59553)
This makes it so during unit tests, adding a text based overlay to something will runtime if the icon does not have an icon state matching that text. I would do this during normal compiles as well but getting the icon states from an icon is surprisingly expensive.

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-06-20 14:02:01 -07:00
Y0SH1M4S73R
63e33bd709 Makes mutant bodyparts and mutcolors into editable genetic traits (plus a whole shitload of otherwise out of scope code improvements because I just HAD to touch old code) (#59636)
I noticed that various nonhuman body features can't be changed using genetics. I corrected this by adding a block to character genomes allowing you to edit features in the DNA console.
2021-06-20 16:20:09 -03:00
RandomGamer123
b98e6b2de5 Fix amanitin dealing less damage than before (#59562)
Co-authored-by: coiax <yellowbounder@gmail.com>
2021-06-16 19:48:09 +01:00
Time-Green
22ea80e630 Removes redundant holywater proc (#59660) 2021-06-15 09:36:49 -07:00
Watermelon914
375a20e49b Refactors most spans into span procs (#59645)
Converts most spans into span procs. Mostly used regex for this and sorted out any compile time errors afterwards so there could be some bugs.
Was initially going to do defines, but ninja said to make it into a proc, and if there's any overhead, they can easily be changed to defines.

Makes it easier to control the formatting and prevents typos when creating spans as it'll runtime if you misspell instead of silently failing.
Reduces the code you need to write when writing spans, as you don't need to close the span as that's automatically handled by the proc.

(Note from Lemon: This should be converted to defines once we update the minimum version to 514. Didn't do it now because byond pain and such)
2021-06-14 13:03:53 -07:00
Timberpoes
ec2938c72c Refactors quirk code. (#59618)
Adds new signal - COMSIG_MOB_EQUIPPED_ITEM. Signal sent at the same time COMSIG_ITEM_EQUIPPED is and allows something to Register for every time a mob equips an item. Replaced a process() in /datum/quirk/badback with signals relating to this. Holds a weakref to any backpack it has registered signals with for use in its own remove() proc.

Removes snowflake code in /datum/quirk/light_step - This quirk no longer uses GetComponent to directly modify a component. Instead, the same code has been shifted into the component itself, which now checks for TRAIT_LIGHT_STEP and mods the volume and range accordingly.

Refactors quirk code in general - Quirks no longer do major logic in New() and no longer qdel themselves in New(). You now fully instantiate a quirk assigned to a var, then call /datum/quirk/proc/add_to_holder(). Various scenarios that shouldn't happen now get handled in this proc and calling code can cleanup properly. Quirks "support" having no quirk_holder - Since their default state is no quirk_holder until the quirk is added to a holder, and similarly quirks can be removed from a holder as well. Destroying a quirk with a quirk_holder will remove it from the quirk_holder properly. qdeling a quirk_holder will clean up any quirks attached to them.

Rethinks processing quirks - Quirks no longer all process automatically. The new logic changes mean their previous need to process() just to check if their quirk_holder had been QDELETED so they didn't become runtime factories has been removed by the refactored code. The few quirks that still process require processing_quirk = TRUE which will start them processing when added to a quirk_holder and stop processing on removal. This means there should be some many hundred fewer quirks process()ing 24/7 every shift.

Subtypes item quirks - A number of quirks are designed to give items to the player. There's code duplication and varying implementation issues, so item quirks have their own subtype with a proc and some vars to handle this. Quirks will no longer fail to give items at all (some quirks actually explictly qdel'd the items they give if the user had no free hands or slots) and will drop items on the floor in the worst-case scenario. Players will always get the opportunity to see messages related to item quirks as these are in a code path that, when the quirk is first added to a new mob, will either output immediately if the mob has a client, or wait for the mob to have a client otherwise.

"Roundstart quirks" paradigm removed - Quirks now have a path to add unique effects that aren't replicated if the quirk is transferred from one mob to another - add_unique(). Item spawning and other similar one-shot logic is done here. This means that adding a quirk to a mob will trigger the one-time effects. Transferring it between mobs (for example, slimepeople changing bodies or swapping a golem shell) will not. roundstart_quirks var renamed to just quirks since it genuinely is just a list of quirks the mob has from any source - Whether roundstart, admin or transferred.

Family Heirloom quirk - Heirloom is now a weakref.

Nyctophobia quirk - No longer process()es, now Registers COMSIG_MOVABLE_MOVED. Every footstep in the dark will slow you back to walking.

Reality Dissociation Syndrome quirk - No longer snowflakes behaviour for mindbreaker toxin on process. Now mindbreaker toxin has the anti-hallucination functionality built into its already existing HAS_TRAIT(M, TRAIT_INSANITY) check in on_mob_life.

Tongue Tied quirk - Now uses .getorganslot(ORGAN_SLOT_TONGUE) to find the tongue instead of locate() in internal_organs

Obsessed antag - Thanks to the Family Heirloom quirk now holding a weakref to the heirloom item itself, this antag type will no longer get the steal heirloom objective if the heirloom doesn't exist (ie. the weakref is null or fails to resolve, meaning the item has been destroyed)

Various quirks that were impossible to remove before are now removable - Examples being light step (which no longer directly modifies the footstep component) and bad back.

In addition, adds some extra documentation overall and improves compliance with code requirements in a number of procs (but certainly not all).

Probably various other little changes here and there to make the above all mesh together.
2021-06-13 15:47:15 -03:00
TemporalOroboros
daec5002fc Adds Neon Carpet (#59140)
Adds a couple varieties of neon carpet.
Makes decals care about their plane in addition to their layer.
2021-06-13 15:40:53 -03:00
RandomGamer123
a62444b84e Blindness-related bug fix and code improvements (#59616)
TRAIT_BLIND caused by the hypnochair or by being unconscious (eg. sleeping) will no longer prevent you from being flashed.
Moves all raw text strings used in become_blind and cure_blind calls (as well as nanites in general with ADD_TRAIT) into defines.
Code changes not in changelog due to not being even the slightest bit of player facing.
2021-06-13 03:03:26 -03:00
EOBGames
b05af8b31d Add Lizard Food: a Taste of the Homeworld (#59412)
The aims of this commit are threefold:

 - To introduce lizard culture (based upon Common Core) in a tangible way.
 - Give some more variety of techniques and recipes to the chef and bartender.
 - To give some flavour (metaphorically and literally).

🆑 Inept, Coiax, AdipemDragon, YakumoChen
add: The release of the new cookbook, "Tiziran Cooking: a Taste of the Homeworld" has brought Lizard food to the masses! Try out some new treats, like Moonfish, Nectar Larvae, and perhaps even Headcheese at the kitchen today!
add: To coincide with the new popularity of Lizard cuisine, Nanotrasen now stocks seeds for Korta Nuts, a common ingredient in lizard cooking, in the Megaseed vendors. Botanists, you know what to do.
add: A few Tiziran fish are also available for you aquaculture lovers out there. They all like saltwater!
add: A few new snacks are also now available at the station's snack vendors, for those of you too lazy to visit the kitchen.
/🆑

Co-authored-by: coiax <yellowbounder@gmail.com>
2021-06-12 20:01:44 +01:00
LemonInTheDark
f90e8cf7a3 Fixes a bunch of harddels that are sourced from player action (#59371)
Sourced from #59118 and a cursed project I'll pr later, This pr contains a lot of harddel fixes for stuff that pops up after a player interacts with something. I'm not gonna list them all here because there's something like 60 130, check the commit log if you're curious

Oh and I moved ref tracking screaming to a separate define, and made some optimizations to the thing in general. I think that's it, this pr is a bit of a frankenstine
2021-06-10 21:44:23 -03:00
Rohesie
d990b71da2 set_anchored() (#59532) 2021-06-08 12:07:34 -07:00
cacogen
7e6c89faa4 Right-clicking on reagent containers picks previous reagent transfer amount (#59508)
Right-clicking a reagent container in your active hand will pick the previous transfer amount instead of the next one
Adds an attack_self_secondary proc which allows for different interactions when right-clicking things in your active hand
2021-06-08 15:01:14 -03:00
SmArtKar
bf5650ac15 Fixes Coniine making you suffocate forever (#59455)
* Fixes Coniine making you suffocate forever

* Fixed
2021-06-04 15:38:08 -04:00
rasepretep
5dde7088cb Stops carpotoxin from removing temporal scars. (#59382)
# About The Pull Request

Hopefully simply removes the feature of carpotoxin where it deletes temporal scars.

# Why It's Good For The Game

We already have a "Clear Slots" button in the character setup window that lets you delete temporal scars for the given character. This is just meant to prevent accidental scar removals so people don't lose them by, for example, accidentally drinking a spiked drink.
2021-05-31 21:10:19 +01:00
RaveRadbury
fb7c5e3c72 makes invisible powder white (#59356)
messing with alpha made you invisible and it didn't wash off
2021-05-28 20:59:40 -07:00
skoglol
28ea1f720b Stops giving you organ damage messages if you arent conscious (#59311) 2021-05-27 04:34:20 -07:00
Kylerace
e13fe75590 use SIGNAL_HANDLER REEEEEE (#59242)
makes as many procs as i can find use the SIGNAL_HANDLER define which i assumed they all already did
2021-05-24 15:28:02 -04:00
Mothblocks
70957c1623 Fix invisible powder breaking color blending (#59188)
Fixes a bug where egg glands (eggs with a random reagent) would runtime if they combined with invisible powder.

Invisible powder was setting their color to null, which broke everything. This doesn't change any behavior as invisible powder hardly works anyway.
2021-05-20 22:45:08 +12:00
Mothblocks
a0ad3c7c03 Balloon alerts - Text for minor actions w/o other feedback (#59130)
Currently only applies to beakers changing amounts as a proof of concept of an action that we can't really provide any non-text feedback on, as opposed to something you could have different sounds for.

Inspired by SS14.
Why It's Good For The Game

In the right place, balloon alerts will let you keep your eyes on the game itself, rather than constantly looking at the chat. This is especially important when chat messages will collapse into each other. This is in most cases warranted, but can make other cases (such as changing beaker amounts) confusing.
Changelog

cl
qol: Changing a reagent container's transfer amount will now give you feedback in the form of text on the container itself.
/cl
2021-05-20 22:44:38 +12:00
Celotajs
190d0a0384 Replace alert usage with tgui_alert (#58419)
Pretty much every alert() call is replaced with tgui_alert, except one I replaced with tgalert as a fallback. If tgui_alert exists, why not use it?
2021-05-20 22:43:27 +12:00
ATH1909
8a7284bde4 bruh moment (#58819) 2021-05-14 17:14:52 -04:00
tralezab
ea57e3f960 Kills BOTH /poison paths by turning poisonous into an element. (+fantasty prefix, sanity on attackingtarget signal, and more) (#58882) 2021-05-09 16:49:59 -07:00
dragomagol
c86aff9a82 The Wallening Approacheth: Adds directional variants to most wall mounts (#58809) 2021-05-08 02:57:36 -07:00
Celotajs
cbc750d581 Add code improvements from BeeStation-Hornet by ike709 (#58922)
Co-authored-by: celotajstg <celotajstg@users.noreply.github.com>
2021-05-08 01:16:18 -07:00
Beatrice
f73b89987a Lighter Grammar Fix (#58813)
* Sing -> Singe Replacement

Self explanatory. Replaces sing with singe

* Removes Scorch, Just In Case
2021-05-03 14:55:55 +02:00
Omega_DarkPotato
bff9854356 Heavily nerfs corazargh to a 1u/cycle metabolization rate (#58771)
Currently, corazargh's the best-in-class weapon for chemical syringes. 0.01u metabolization rate, kills in 6 seconds, easily manufactured.
4u of it with any chem really designed to knock out or stun an enemy leads to them dying of extreme bloodloss. It's hilariously overtuned, and while thalpy/fermi/bramble works on a more permanent solution, this thing's definitely worth pushing out a temporary fix to.

https://cdn.discordapp.com/attachments/625471067900608512/836730021090557973/unknown.png <- the conversation with thalpy about making this change while he works on a unique solution for corazargh.
2021-04-28 22:49:55 -04:00
Twaticus
a856296eef funny beaker but real this time (#58760)
Adds opacity to bottles, beakers, large beakers, and reagent fills so theyre no longer extremely dark. Adds @maxymax13 's resprites of the x-large(plastic) and metamaterial(gold) beakers to match the new beakers. Adds a 1u sprite for reagent fills of all bottles/beakers. Removes unnused vials and melted beaker icons.

fixes #58624 (Metamaterial not having the proper icon)

Consistent beakers good.
2021-04-28 16:45:58 -07:00
Seth Scherer
7c931b7c8d Prevents lithium from glitching you out of a mech, while leaving your camera on the mech (#58762)
Fixes #57757 (being high on lithium while in a mech causes weird shit, like the camera being stuck to the mech while the player moves)

Lithium used step() without regard for the thing you were in

Prevents lithium from glitching in and out of things, (especially useful for objects that take control of your camera).
2021-04-28 16:43:01 -07:00
tralezab
0938052cac reagent transferring now logs purity (#58694)
fixes #58571 (Combat logs do not show chemical impurity's or inverse regents and just lists it as the base chem)
2021-04-28 15:20:09 -07:00
TemporalOroboros
9f598a9662 Makes the explosive compressor and blastcannon actually use the TTVs they're given + the explosion changes to support that. (#58015)
* Adds explosion SFX to the blastcannon and explosive compressor

- Extracts the explosion SFX and screenshake proc from the SSexplosions explosion handling proc and lets the explosive compressor and blastcannon use it.

* Miscellaneous changes

- Adds defines for the internal explosion arglist keys
- Reverses the values of the explosion severity defines
- Changes almost everything that uses `/proc/explosion` to use named arguments

- Removes a whole bunch of argname = 0 in explosion calls.

* Removes named callback arguments.

* Changes the explosion signals to just use the arguments list

Adds a simple framework to let objects respond to explosions occurring inside of them.

Changes a whole bunch of explosions to use the object being exploded as the origin of the explosion rather than the turf the object is on.

Makes the explosive compressor and blastcannon actually use the TTVs they are given.

Adds support for things responding to internal explosions.
Less snowflake code for the explosive compressor and blastcannon calculating bomb range.*
Less confusing explosion severity defines.
Less opaque explosion arguments

*does not guarantee that the solution to letting them actually use the TTV is any less snowflake.
2021-04-26 17:31:25 -07:00
Urumasi
5b73f8fcae Make mindbreaker cure RDS (#58671)
Currently, mindbreaker toxin is supposed to suppress hallucinations, but the reagent itself still applies hallucination to the user which is counted towards handling hallucinations before it gets purged by the quirk.

It's annoying that the one thing advertised that should fix hallucinations with RDS doesn't work.
2021-04-26 01:04:10 -07:00
UnokiAs
a7ff221c20 Add new syringe sprites. (#58619)
imageadd: Added new syringe sprites (Normal,Piercing and BlueSpace.)
2021-04-25 08:14:36 -04:00
Mothblocks
7e4de07506 Remove all gamemodes except Dynamic (#58470)
Removes all /datum/game_mode except dynamic. Eventually, all of mode and game_mode will be removed, and Dynamic will become an ingrained system. Every single other gamemode was unmaintained at best and poisoned other code at worst. Currently all tg servers run 24/7 Dynamic, so the time to act is now.

* Remove gamemode references from age checks

* Monkey

* Remove heretics

* Remove BBs

* Refactor uplinks and remove clown ops

* Remove nuke ops

* Removes and refactors cult

* Remove extended

* Remove and move out meteors

* Removes wizard

* Remove sandbox

* Remove changelings

* Remove traitors

* Remove revs

* Remove gangs

* Remove changing mode and voting for new gamemodes

* get_candidates signature fix

* Summon ERT and NERD in their own panel

* Remove some old unneeded age_check stuff

* Fix old signatures of get_uplink_items

* Use Extended like config for dynamic.json

* Fix discounted gear
2021-04-25 01:55:10 -07:00
manofpepsi
5f8c253b6f nitrile gloves buff (#58594) 2021-04-22 14:48:47 -07:00
SpookyTheFox
d10bf56145 Fixes borg shaker constantly melting ice (#58437) 2021-04-17 21:06:00 -07:00
Iamgoofball
7ae5126783 Resprites beakers by CeUvi (#58433)
imageadd: Resprited beakers and bottles.
2021-04-17 10:21:57 -04:00
Funce
15a7a83e21 Adjust parameters for bone gel on_reaction (#58466) 2021-04-16 21:12:02 -07:00
Time-Green
50a18a0b5e Nerfs addiction withdrawal time (#58172)
Currently takes 1 second before withdrawal starts, which is enough to start withdrawal while still using the drug. I changed it to 1 minute before you need your fix again (old addiction was 30 seconds but could be microdosed).

Also buffed junkie pills to 3u and nerfed addiction requirement to 1u, from 2u (effctively still 2u since addiction tends to check after the 2u has already been metabolized).

Also clears disgust from opiods after quenching your addiction, because otherwise you're gonna spent the next 20 minutes being vomitlocked in place
2021-04-14 22:44:31 -04:00
Qustinnus
686e5a7d5b Removes Ethereal blood's shocking properties (#58408)
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
2021-04-14 15:25:56 -07:00
Thalpy
6a344d6cb9 Fixes mannitoil runtime (#58321)
* Fixes runtimes in metabolism

* Activate doesn't work as I expected

* Removes bonus false

* One last just in case check

* Why did I even think while was a good idea
2021-04-13 23:10:06 +02:00
NightRed
316b808f56 Fix for reagents on_mob_life (#58359)
An update stopped reagent on_mob_life from triggering unless the reagent can be overdosed.
This fixes this issue and allows items like milk to be metabolized again.

This also buffs milk healing in bone stomachs as it was really weak, the total milk and the amount you heal have both been increased.

Fixes #58293
2021-04-12 11:53:20 -04:00
LemonInTheDark
54f0b0ceb9 Some more harddel fixes (#58305) 2021-04-11 19:37:20 -07:00
tralezab
09ab61ae05 Four New Sects, small rethemes to first 3 (#57820)
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2021-04-11 22:57:43 +03:00
Thalpy
560597896c Fermichem 2.5 - Organ(kinda) related medicines adjustments! (#57806)
* Initial dump

* Getting there

* Update impure_medicine_reagents.dm

* Update impure_medicine_reagents.dm

* Adds the reaction mechanics

* Compiling fixes

* Update medicine_reagents.dm

* Updates the debug machine to allow for live recipe edits and tweaks the rest of the stuff

* Few fixes and things I missed

* linters

* Feedback changes

* Apply suggestions from code review. Thanks ATH1909!

Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>

* More changes

* Few more tweaks before component and eyes

* Update chem_recipe_debug.dm

* Fixes loop I think

* I guess I'll just have to hope qdel does it's job

* It really doesn't like nullspace

* Fixes bug in oculine and misspelling

* No obsessed traumas to avoid forced antaging

Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2021-04-11 01:29:41 +03:00
Thalpy
1f2158fed3 Tweaks converoli's threshold to not overlap with it's failure threshold (#58279) 2021-04-10 15:07:44 -07:00
Time-Green
6a3d8f19ee Fixes smoker stacking unremovable negative moodlets (#58170) 2021-04-06 05:36:01 -07:00
Thalpy
b61fe856bf Fixes toxin parent reagent purity affecting unintentional reagents (#58107) 2021-04-02 23:27:39 -07:00
Thalpy
2510866edb Fixes oversight with eigenstasium which teleports you before saving your location (when purity is greater than 90% and ingested) (#57986)
* Fixes oversight

* Why is this so convoluted

* Final fix and test

* Expose is strange

* exposure to reagents may result in confusion, bafflement and hunger. If you feel any of these effects, consult with your doctor.

* lil cleanup
2021-04-03 00:35:57 -04:00