* Fix for randomized recipes not working (metalgen and secret sauce) (#67904)
* Fix for randomized recipes not working (metalgen and secret sauce)
Co-authored-by: antropod <antropod@gmail.com>
* Olives! + Custom sushi/Pierogi changes (#67239)
About The Pull Request
This is a continuation of #66946 since I have enough points to finally do so.
This PR will:
Expand upon my previous sushi PR, allowing people to use an ingredient on a sushi sheet to start creating custom sushi.
Add olives! A new type of fruit that can be grown in hydroponics. When ground, it becomes olive paste which when mixed with water in a 4-1 reaction turns into 2 units of quality oil.
Make pierogis require a dough slice to craft instead of a bun.
Make quality oil cost 50 credits to order instead of 120
Why It's Good For The Game
Since my sushi PR merged, many people have asked me to add custom sushi, so here it is. This will allow chefs to make more interesting menus with added customization.
Quality oil is an extremely expensive commodity (120 credits for one 50 unit bottle, 240 if you expedite it!!!) and can only be acquired from cargo. I feel because of this, many chefs do not make lizard or mothic foods because simply acquiring the ingredients to do so is either very time consuming, expensive, or both. This will encourage people to make those foods more often since one of the key ingredients in many lizard or mothic dishes can be made by them, too. Olives themselves can be eaten as a snack and open up opportunities for new foods in the future, and it makes sense for you to make your own oil since the process is simple yet highly inefficient in real life.
This PR originally had a way to craft cornmeal as well, but that idea was adopted yesterday in #67227 which they can keep.
Lastly, it seems more reasonable for pierogis to require a dough slice instead of a burger bun. Don't think that requires more explanation.
I believe my gbp score is at -3, but I have three PRs waiting to merge currently which will boost me way above that.
Changelog
cl
add: Botany can now grow olives, which can be ground into a paste and mixed with water to make quality oil.
add: You can now make custom sushi by using an ingredient on a seaweed sheet. The sushi will be named after the first ingredient you use.
balance: Pierogis now need a dough slice instead of a bun
balance: Quality oil costs 50 credits to order instead of 120
/cl
* Olives! + Custom sushi/Pierogi changes
Co-authored-by: MidoriWroth <kodyman@att.net>
* fixes medical gel transfer amount text (#67681)
* fixes medical gel transfer amount text
* fixes medical gel transfer amount text
Co-authored-by: robbertapir <102324362+robbertapir@users.noreply.github.com>
* Gets rid of the Druggy var on `/living`, "fixes" Earthsblood (#67668)
Kill the druggy var
* Gets rid of the Druggy var on `/living`, "fixes" Earthsblood
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* This tail refactor turned into an organ refactor. Funny how that works.
* Firstly, fixing all the conflicts.
* Fixes all our maps (hopefully)
* Actually, this should fix pod people hair :)
* Almost everything is working, just two major things to fix
* Fixed a certain kind of external organ
* Cleaning up some more stuff
* Turned tail_cat into tail because why the fuck are they separate?
* Moved all the tails into tails.dmi because that was just dumb to have like 3 in a different file
* Adds relevant_layers to organs to help with rendering
* Makes stored_feature_id also check mutant_bodyparts
* Fixes the icon_state names of ALL the tails (pain)
* Fixes wagging, gotta refactor most mutant bodyparts later on
* I Love Added Failures
* Fixed some organs that slipped through my searches
* This could possibly fix the CI for this?
* It doesn't look like it did fix it
* This will make it pass, even if it's ugly as sin.
* Fixed Felinids having a weird ghost tail
* Fixes instances of snouts and tails not being properly colored
Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Clothing (as food for Moths) now only give temporary nourishment. (#67537)
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Clothing (as food for Moths) now only give temporary nourishment.
Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* [NO GBP] Fixes zombie powder again (#67502)
```..()```
Was the fatal flaw. End metabolization is handled by on_mob_life's parent. The switch check runs after that, mucking you over after fakedeath has been cured.
* [NO GBP] Fixes zombie powder again
Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
* Spinward Smoothies Space Ruin (#67001)
Adds a space ruin called Spinward Smoothies. It's a nature-themed smoothie bar built into an asteroid. Also includes recipes for six smoothies to match the theme.
It's a cute little thing to find in space, enabling space explorers to grab a drink there and relax for a while. More things to explore.
* Spinward Smoothies Space Ruin
* add sugar to pink milk
Co-authored-by: Sylphet <58074918+Sylphet@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Cryo heals on crit, changes status effect check to trait. (#67076)
Old bug was caused by IsUnconscious and IsSleeping being status effect checks, these status effects are not applied on crit. This changes it to be trait checks instead, which are applied on crit
* Cryo heals on crit, changes status effect check to trait.
Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
* OpenDream Cleanup Pass (#67036)
OpenDream can detect BYONDisms that BYOND or SpacemanDMM miss. This PR fixes all of the issues it found in TG. Each change is explained in code comments below.
* OpenDream Cleanup Pass
Co-authored-by: ike709 <ike709@users.noreply.github.com>
* New drink sprites aka Drink Desouling (#66538)
- All drinks and bottles have been resprited
* New drink sprites aka Drink Desouling
Co-authored-by: ErdinyoBarboza <erdinyobarboza@gmail.com>
* Fixes "high blood pressure" status effect, and corrects the spelling of "opioid" (fixing another bug) (#66849)
Status effects that are intended to be added, are actually added.
Opioid is now spelled correctly, consistently.
This actually caused a bug: Opioid end_withdrawal was never called because it's path was spelled correctly and the others weren't.
* Fixes "high blood pressure" status effect, and corrects the spelling of "opioid" (fixing another bug)
* wew
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* changes name of trait "STUNRESISTANCE" to trait "BATON_RESISTANCE", changes some descriptions (#66788)
it will make a whole lot more sense when you look at the trait and see what it does, instead of assuming what it does based on its very clear name
* changes name of trait "STUNRESISTANCE" to trait "BATON_RESISTANCE", changes some descriptions
* Update cocaine.dm
Co-authored-by: private-tristan <54422837+private-tristan@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Converts drunkness and dizziness to status effects. Refactors status effect examine text (and, subsequently, stabilized black extracts). (#66340)
* Refactors dizziness into a status effect
* Refactors the dizziness setter to use the new kind
* Drunkness.
- Should drunk continue to work off of a magic value or be swapped to duration? I've not yet decided: For understandability it's preferabale for "drunk" to use a timer (they are drunk for 3 more minutes), but both adding drunk and decreasing drunk currently use weird calculations which would be difficult to carry over.
- Ballmer is a liver trait
* Dizzy was a setter, not an adjuster
* Does all the drunk effects over
- refactors examine text fully
- refactors stabilized blacks because of this
* Removed
* repaths, fixes some issues
* Minor fixes
* Some erroneous changes
* Fixes some dizziness errors
* Consistency thing
* Warning
* Undoes this change, I dont like its implementation
* max_duration
* Max amount
* Should be a negative
* max duration
* drunk doesn't tick on death
* Rework dizziness strength
* Erroneous dizzy change
* Fixes return type
* this should do it?
* well, one more
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Makes smoke and foam attempt to fill the available space.
* wew
* reset
* Revert "reset"
This reverts commit 75be4f934504793ceb5c9bf2f3774dc24517df5a.
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Refactors firestacks into status effects (#66573)
This PR refactors firestacks into two status effects: fire_stacks, which behave like normal firestacks you have right now, and wet_stacks, which are your negative fire stacks right now. This allows for custom fires with custom behaviors and icons to be made.
Some fire related is moved away from species(what the fuck was it even doing there) into these as well.
Oh and I fixed the bug where monkeys on fire had a human fire overlay, why wasn't this fixed already, it's like ancient.
Also changed some related proc names to be snake_case like everything should be.
This allows for custom fire types with custom behaviours, like freezing freon fire or radioactive tritium fire. Removing vars from living and moving them to status effects for modularity is also good.
Nothing to argue about since there's nothing player-facing
* Hud Image Culling By Z Level: Theft edition (#65189)
* makes hud images only apply by z level
* makes some of the atom_hud procs have better names
* fixes warning with the hud_user list and adds better documentation
* better docs for hud_images
* removes TODOs
* docs for hud_list
* adds support for linked z levels so mobs can see lower ones
* fixes merge conflict and shittily makes only shocked airlocks get added
* adds support for setting images in the hud as active and inactive
* gets rid of unatomic spatial grid change
* maybe i should actually try COMPILING my changes
* fixes merge skew and makes it compile again
* fixes huds refusing to remove from users who changed z level
* improves z level and registration logic
* fixes antag huds not appearing
* Fixes antag huds not properly setting. We now use hud_list in init, so it needs to be set before the new call, not after. Not sure why the use of appearance key was split like this, but none else knows either so none can stop me
* Ensures that hiding a basic appearance also hides the atom's active list too
* Fixes antag huds going poof
Ensures that remove_atom_from_hud will return false if the passed atom
isn't managed by it
This fixes antag huds disappearing randomly, since they assumed that if
the parent call of remove_atom_from_hud returned true, we should delete
ourselves. This is a safe assumption for them to make, since they should
only ever have one atom.
Does kinda bork if we call remove_atom_from_hud in a way that is unsure
if the passed atom is actually in that list. We were forced into doing
this by how atom huds use the qdeleting signal.
* makes basic alternate_appearance's only update themselves when setting their hud image to active and makes them not add themselves to the global huds_by_category list
* fixes mistake with hud_users list being set non associatively (bad)
* as anything in bot path loops
* Fixes merge skew problems
* Makes bot paths non global
This way they can show themselves to only the bot that "owns" them, ya
feel me?
* Fixes huds not showing up sometimes, cleans up some code
Post Kapu's limb refactor, we were calling prepare_huds twice in a human
init call chain. What was happening was this:
call prepare_huds() // Human
I gained a new hud image
I set active hud icons to mirror it
call prepare_huds() // Living
I overwrote the new hud image
I attempted to set active hud icons, which failed because it assumes
this can never happen
*cries*
* Renames add_hud_to_atom to show_to
My hope is this will make understanding hud code a bit easier, by tying
the behavior to a "verb" more closely. Also renamed a few vars
* remove_hud_from_mob -> hide_from
* Nitpicks a few comments
* Whoops/fuck/shit/damn it all/hhhhhhhhhhhh
* Moves check down, improves stack trace a bit
Co-authored-by: KylerAce <kylerlumpkin1@gmail.com>
* small touch-up
* this should do it
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: KylerAce <kylerlumpkin1@gmail.com>
This stuff is primarially used by the janitor borg.
It currently takes about 66% of a tile's wetness* per spray (5u)
This makes it feel really bad, so let's buff it.
* It appears that the first application of water to a tile will always
set it to 10 seconds of delay, no matter how much the wetness wants to
apply. Fixing this would cause a 6x increase in the drying time of
puddles, so I'm not gonna fix it here. Damn it all
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* updateDialog and updateUsrDialog cleanup (#66494)
This PR focuses on cleaning up two procs - updateDialog and updateUsrDialog. Both of which are/were used updating for old HTML UIs. As these UIs got converted to TGUI over time, these old code fragments started to pile up, often due to coders simply overlooking them. This resulted in them being dead code doing nothing when called, or randomly opening up windows when they shouldnt, for example when a vending machine is screwdrivered and UI cannot even be interacted with.
However, there were also some desirable uses - like opening a window when an ID is inserted into civilian bounty console, which you are then gonna obviously use to pick a bounty. I kept these uses and replaced them with proper ui_interact, so they now always work, instead of them working only when you had them set as a currently used machine on mob. The list of these changes is:
Civilian Bounty Console will now always bring up its UI when you insert the ID.
Air Alarm and APC will now always bring up its UI when you unlock their controls.
Portable Chem Mixer, Chem Dispenser, Chem Heater, Improvised Chem Heater, Chem Spectometer and Chem Master will now always bring up their UI when you add or replace beaker to them.
Two old /Topic calls were cleaned up as well, as they were no longer relevant.
Removes dead or outdated code, adds sensible UX when working with certain UIs.
* updateDialog and updateUsrDialog cleanup
Co-authored-by: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
* Fixes the krokodil zombie transformation (#66482)
Krokodil zombies now look like zombies again.
Transformation now correctly deals damage.
Ensures hair loss on transformation. (Goes with this spirit of skin falling off and it's how the transformation used to work.)
* Fixes the krokodil zombie transformation
Co-authored-by: lnGoror <103280043+lnGoror@users.noreply.github.com>
* Converts drugginess to status effect, striking another var processed on life() (#66331)
* Changes drugginess to an effect
* Missed some changes
* Removed
* Converts drugginess to status effect, striking another var processed on life()
* wew
* 0
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Moves more chem machine eject beaker shortcuts to right click, allows silicons to use shortcut (#65978)
* Moves more of the alt-click functionality for ejecting beakers from chem machines over to right click
* Allows silicons to use right-click to eject beakers
* Removes the range requirement for cyborgs to be next to the machine to right-click eject (They can eject the beaker regardless of range anyway through the UI, just makes it more convenient)
* Fixes a runtime I found while testing happening when right clicking anything while holding an empty beaker holder as a borg
* Moves more chem machine eject beaker shortcuts to right click, allows silicons to use shortcut
Co-authored-by: GoblinBackwards <22856555+GoblinBackwards@users.noreply.github.com>
* Refactors speech impeding effects (drunken slurring / suttering) into status effects. Adds heretic slurring in addition to the existing cult slurring. Removes 4 vars from /living in return, which slightly optimizes Life() (wink)
* fex
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Fixes Healium not updating health (#66098)
Healium called all the adjustXLoss procs with updating_health set to FALSE, which means they don't update health
This is fine, for reagents, as you're intended to return TRUE at the end of on_mob_life runs if they're meant to update the mobs health
Unfortunately, healium did not do this, so it never updated health, which is incorrect and a bug - your health state becomes unsynced with your hud state and it looks weird until someone smacks you or something.
Also updated some var names.
Healium looks like it's actually healing you now
* Fixes Healium not updating health
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* fixed spraytan not changing skin color of humans and nonhumans (#66169)
regenerate_icons() does not regenerate body parts as needed.
Calling update_body(is_creating = TRUE) instead so that body parts reflect new skin_tone/mcolor.
* Fixes spraytan not giving tans
Co-authored-by: UnderAGeode <37090242+UnderAGeode@users.noreply.github.com>
* adds a unique species id unit test + cleans up some golem mischief (#66050)
* adds a unique species id unit test + cleans up some golem mischief
Co-authored-by: capsaicin <84609863+capsaicinz@users.noreply.github.com>