* 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 Novaflowers not lighting people on fire, again. Unit tests it. Cleans up some unique plant genes stuff too. (#67597)
* Fixes Novaflowers not lighting people on fire, again. Unit tests it. Cleans up some unique plant genes stuff too.
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* The Great Species Food Rebalance, Part One: Nutriment, Chemical Recipes, Cargo Orders, Baking Times, Oh My! (#67227)
the great rebalance, part one
A comprehensive rebalance of food, including cooking times, nutriment values, crafting recipes, and cargo orders
* The Great Species Food Rebalance, Part One: Nutriment, Chemical Recipes, Cargo Orders, Baking Times, Oh My!
Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
* Removes log_cloning (#66912)
Right now there is only 1 source of cloning: pod cloning-- and pod cloning is exceedingly rare. I don't think this warrants its own file anymore with the death of regular cloning a few years back.
* Removes log_cloning
* Removes log_cloning
Co-authored-by: dragomagol <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@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>
Plants that use after_plant_attack() now take being in proximity into account when using durability.
Closes#66631 (Clicking on people out of attack range with Deathnettles cause durability loss)
Plants like Deathnettle will no longer use durability when clicking on someone from a distance.
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Botany Bean Expansion (#66472)
Adds two new plants to hydroponics: Green Beans and Jumping Beans. Green beans contain a small amount of vitamin and multiver, since they're so healthy. Jumping beans contain ants, seeing as how real life jumping beans contain insect larva. They also jump!
Adds two new traits to hydroponics:
Prosophobic Inclination. This trait is found in green beans and prevents plants with high instability from mutating species naturally. Wild mutation harvests and the floral somatoray can still grant access to mutations, however.
Symbiotic Resilience. This trait is found in jumping beans and prevents plants with high instability from mutating stats naturally.
Fixes a few very minor spelling errors.
* Botany Bean Expansion
Co-authored-by: the-orange-cow <76538214+the-orange-cow@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>
* falling on punji sticks now impales you (#66263)
* falling on punji sticks now impales you
* shore
* falling on punji sticks now impales you
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Refactor and improve antimagic to be more robust (#64124)
This refactors the antimagic component to use and have bitflags, documentation, defines, code comments, named arguments, and renames variable names for clarity.
- /obj/effect/proc_holder/spell/aoe_turf/conjure/creature/cult is not used anywhere and has been removed
- /obj/effect/proc_holder/spell/targeted/turf_teleport/blink/cult is not used anywhere and has been removed
- New sound effects are played when magic is blocked. Depending on the type of magic being used it will be either:
- Equipping antimagic now properly updates the magic buttons
- Any magic being blocked or restricting casting now displays a message
- MAGIC_RESISTANCE_MIND now properly blocks telepathy effects
- Removes blood splatter when fireball is blocked
- Magic projectiles for staff of locker no longer spawn lockers when blocked by antimagic
- Fire breath is no longer blocked by antimagic
- Spellcards are now blocked by antimagic
Any antimagic on a mob blocks that magic type from being casted. (certain spells such as mime abilities completely ignore antimagic)
- Foilhats prevent someone from casting mind magic (telepathy, mindswap, etc.)
- Bibles, ritual Totems, nullrods, holymelons, and TRAIT_HOLY prevent someone from casting unholy magic (cult spells, etc.)
- Nullrods, ritual totem, and holymelons prevent someone from casting wizard magic (fireball, magic missile, etc.)
- Immorality talismans, berserker suits, and TRAIT_ANTIMAGIC prevents all types of magic (except stuff like mime abilities)
- Touch of Madness and Mindswap is now blocked with MAGIC_RESISTANCE and MAGIC_RESISTANCE_MIND
- Voice of god is now blocked with MAGIC_RESISTANCE_HOLY and MAGIC_RESISTANCE_MIND
* Refactor and improve antimagic to be more robust
* Update tiedshoes.dm
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* You can now see plant health with the plant analyzer. (#65775)
* You can now see the plant's health with a plant analyzer.
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
* Podpeople inherit their blood chemical from the most abundant chemical trait in their seeds (#65215)
Makes podperson clones have their blood reagent set as the largest chemical gene present in the seeds (defaults to water).
* Podpeople inherit their blood chemical from the most abundant chemical trait in their seeds
Co-authored-by: Bond <58570888+TheBonded@users.noreply.github.com>
* Change hydroponics tray and chem dispenser AltClick behavior to be used by RMB (#64939)
* Change hydroponics tray and chem dispenser AltClick behavior to be used by RMB
Co-authored-by: Tim <timothymtorres@gmail.com>
* Adds some contextual screentips to botany related things (#64954)
* Adds some contextual screentips to botany related things
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Add's food processor function to spider eggs and carp filet. Yaki imo recipe change (#64704)
At the moment carp meat kind of has no use at all for the chef, the meat is poisonous which is just kind of a drag. The only practical use for carp at the moment is rezadone.
Also uh, we have ovens now so yaki imo should be made in the oven.
* Add's food processor function to spider eggs and carp filet. Yaki imo recipe change
Co-authored-by: carshalash <carshalash@gmail.com>
* Fixes issues found by new switch lints (#64766)
Very nice addition to sdmm.
* Fixes issues found by new switch lints
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
* Adds new food tag and felinid taste preference modification. (#64841)
I have chosen to give one of the fruits we have in-game to have its own unique food tag while still maintaining its current fruit tag, we can modify this later for things involving scurvy and such.
image
* Adds new food tag and felinid taste preference modification.
Co-authored-by: carshalash <carshalash@gmail.com>
* Da clownana update! Clownana rework, global hOnKeRbLaSt & monkey synergy. (#63899)
Since maintainer have expressed dissatisfaction with the state of clownanans, i've taken it upon myself to not only reduce their lag generation potential but to also make them more interesting.
All simplemob clowns now:
Are able to speak and understand the monkey language.
Are able to hit banana bunches to initiate the explosive ripening process.
The changes to clownananas speciecially are as follow;
Clownanas are able to rustle every 10 seconds to spawn 3 peels.
Clownanas have a speed of -1 rather than -10.
Clownanas gain the ability to spawn a banana bunch every minute.
Banana bunches are food items imbued with extra banana juice and monkey energy.
Hitting a banana bunch as a simplemob clown causes a honkerblast after a 3 seconds delay.
I've implemented a global honkerblast proc for future use, the honkerblast effects are similiar and inspired by the mech weapon, but less severe at light intensity and more severe at high intensity.
Maintainers are unhappy with the current state of the mob (It spawned enough bananas which never went away that when swept up into one place over 30 minutes, walking over the pile would cause minute long server freezes), and while the mob is popular and enjoyed by many players it is currently quite poorly designed and implemented by a novice coder.
These changes increase the strategic depth of playing this particular mob and rewards more active input from the player.
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* Da clownana update! Clownana rework, global hOnKeRbLaSt & monkey synergy.
Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* Actually fixes strange mob delays: BEEPSKY IS TOO FAST edition (#64351)
* Revert " Properly speeds up a lot of things, mostly mobs (#64270)"
This reverts commit a836574388.
THE BYOND REF WAS A LIE, THE PLAYERS ARE FOOLS, HELP, HELPPPPPPP
It turns out that despite what the byond ref says, the walk proc's delays were not in fact in ticks, but in deciseconds.
This means when I "fixed" mob movement by doubling all walk delays, what I actually did was double the speed of anything that used walk()
I have a feeling that the actual issue players were seeing was just move_to having fucked up distance logic, and the movement of slow mobs being smoothed out. I've changed that, so hopefully this puts a seal on the whole problem
I've had a request put in to make beepsky faster, but I think that's best done in a seperate pr
* Adds a flag to disable smooth moveloop movement
Applies it to hostile mob's Goto()
Backports the fixes to move_to and move_away from the previous pr
* Actually fixes strange mob delays: BEEPSKY IS TOO FAST edition
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Semkis and Pistachios! Come get your snacks + Snack Items Name Fixes (#64276)
Snack time
* Semkis and Pistachios! Come get your snacks + Snack Items Name Fixes
* Fix (#10960)
Co-authored-by: ErdinyoBarboza <erdinyobarboza@gmail.com>
* Properly speeds up a lot of things, mostly mobs (#64270)
When I made my move loop changes (815bb8a) 62567, I converted a few walk() procs to
the new system
What I didn't know when I did that conversion is that walk() operates on ticks, when move loops operate on
deciseconds
So when I converted say, mob movement over, I accidentially halved the attack movespeed of all of our mobs
This resolves that, alongside a few other misteps
Of note: There are old comments implying that walk()'s delay is not actually linear, or simply as the reference says "in ticks"
I don't have a good idea of how fast things actually should be though, which makes this tricky
In light of this, I've decreased the move speed of legion slightly, in hopes that it will feel more "normal"
I've also fixed a bug with move_to and move_away, they were treating their distance parameters as move to this and one more, rather then move to this. This lead to mobs attempting to overlap with your sprite. s cringe, and also fixed
* Properly speeds up a lot of things, mostly mobs
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Gives a bunch of table sized and/or shaped things (#63964)
You can't reach over/around/through a whole bunch of objects that look small enough/low enough to imply that you can. This grants people the ability to do so.
Hydroponics trays look roughly table sized and shaped and you can't reach past them, which is irritating. Now you can, which is not.
Ditto for crates, the cooking grill, and the chaplain's altar.
Plumbing input/output/dev/null machines and chemical heaters take up maybe 1/4 of the turf and block attempts to reach past them. Being able to is less irritating.
* Gives a bunch of table sized and/or shaped things `LETPASSTHROW`
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* (Finally) Fixes dirt piles being able to hold double expected capactity of reagents. (#63532)
* (Finally) Fixes dirt piles being able to hold double expected capactity of reagents.
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Fixes typos in span, other html elements (#63510)
Atomizes a much larger PR for another time...
There are typos in span and other html messages that causes them to not render correctly or at all.
Bug fixes
Converts those instances of span to use the macro
* Fixes typos in span, other html elements
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>