* small changes
* Adds a use_tool helper and changes some tools to use it
* Ports most tool operations to use_tool
* Converts more tool operations to use_tool and tool_act
* Changes some things to default_unfasten_wrench
* Improves tool_behavior support in mech construction
* Code review memes
* Fixes all instant use_tool calls failing
* Code improvements
* merge fixes
* Very temp I want to see what people believe is a more suitable size because this is ridiculous
* Damn comments being my bane when I have to redo a local branch and mess up grr
* Does the request from the maintainer
This way you can add/remove traits without fear of other sources overriding them. Now you can add TRAIT_STUNIMMUNE to somebody without what if hulk
Notable changes:
Fakedeath now updates instantly, instead of waiting for the next life tick.
Fakedeath now sets time of death when acquired.
Removed extremely snowflake code in reagents that checked if you had morphine to remove slow immunity and so on.
Hulk no longer overrides status_flag changes, in case there are any.
* It works, but is it worth it?
* bitfield helpers take 1
* Would this work?
* remove dangling debug code
* rebase & fixes
* vv bitfield stuff, reading
* DNM oceans of shitcode DNM
* honk
* honk2
* plonk
* rebase & fix
* Replaces a bunch of manual OPENCONTAINER checks with helper procs
* Removes unnecessary vars
* Updates reagent bitflags, adds some new ones
* Replaces most of the is_open_container calls with more specific ones
* Puts new AMOUNT_VISIBLE flag to use
* Uses new helper procs in more objects
* Standardizes chemicals logging
* De-snowflakes two more checks
* Fixes
* Minor fixes and improvements
I had some time free, and noticed how awful the reagent grinder code was - it used huge static lists containing types and their associated reagents from grinding.
This is now split into two new vars on /obj/item - var/list/grind_results and var/list/juice_results, as well as two new helper procs, on_grind() and on_juice() to allow those to change based on conditions like plant potency. Such checks and the like have been moved to that. If any of these procs return -1, the operation is canceled.
I also fixed some of the recipes that didn't work. The reagent IDs for them didn't exist, leading me to believe that they weren't tested. I corrected that! (I've tested every single recipe in this PR, with the exception of a few juicing-related ones.)
* Revert "all this wrapping and it's not even christmas (#33035)"
This reverts commit faaf151580.
* Revert "fuck me for forgetting to graph this one"
This reverts commit 45d7acea2f.
* Revert "defines math"
This reverts commit 2817a1737b.
* wip
* wip2
* makes code actually compile on 511 + fixes
* versioning
* s
* adds python conversion script, schema change and removes 'force ' from item_used_for_combat
* fix to compile
* forgot to actually commit this
While I was messing with vitamins and nutrients, I decided to touch up on deep fryers as a separate project. A demo of sounds can be found here, using the looping sound framework added recently. Also, sound quality in the video is kind of terrible; it sounds much nicer in-game.
Fryers themselves now use the cooking oil reagent, which is new and can be obtained by grinding soybeans (for vegetable oil) or meat (for oil derived from fats.) This does include synthmeat, which you can also use for meat anyway! By default it takes about 1.2 units of oil to fry one object.
Also adds oil_use and fry_speed vars that determine how well the fryer does its job. These values start at ~0.04 and 1 respectively, and can be brought to 0.01 and 4 with max-tier parts (each fryer uses one micro laser.)
Cooking oil itself can be heated to 450 K to bring out its latent frying powers. When splashed on object, it will fry them instantly (albeit inefficiently)... and can also fry humans and other creatures rather painfully.