mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-18 03:26:31 +01:00
mayfools
737 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
6e9f2ccfc0 |
Merge remote-tracking branch 'tgstation/master' into upstream-12-15
# Conflicts: # .github/workflows/compile_all_maps.yml # .github/workflows/run_integration_tests.yml # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # code/_onclick/hud/credits.dm # code/controllers/subsystem/networks/id_access.dm # code/datums/diseases/advance/advance.dm # code/datums/diseases/advance/symptoms/heal.dm # code/game/machinery/doors/door.dm # code/game/objects/structures/crates_lockers/closets/secure/medical.dm # code/game/objects/structures/crates_lockers/closets/secure/security.dm # code/modules/antagonists/malf_ai/malf_ai_modules.dm # code/modules/jobs/job_types/_job.dm # code/modules/loadout/categories/accessories.dm # code/modules/loadout/loadout_helpers.dm # code/modules/loadout/loadout_items.dm # code/modules/loadout/loadout_preference.dm # code/modules/mob/living/silicon/robot/robot_defense.dm # code/modules/mod/mod_theme.dm # code/modules/projectiles/ammunition/energy/laser.dm # code/modules/reagents/reagent_containers/cups/drinks.dm # code/modules/shuttle/mobile_port/variants/supply.dm # code/modules/surgery/organs/internal/eyes/_eyes.dm # code/modules/unit_tests/screenshots/screenshot_antag_icons_heretic.png # icons/hud/screen_full.dmi |
||
|
|
0b0c5ea91e |
Unit test material checks are now performed on all crafting recipes by default. All stack recipes now transfer mats to the results (#92620)
## About The Pull Request Extends the part of the crafting unit test that ensures consistency between the total mats of the components of a recipe (or rather, the result of said recipe) and a generic instance of the same type as its result, previously only implemented on food recipes. ## Why It's Good For The Game This ensures a degree of consistency with the material composition of various objects in the game. I couldn't do it in the original PR as that one was too big already and it took months to get it merged, and have the relative bugs fixed. Currently a WIP as I slowly deal with the unit test reports. ## Changelog 🆑 refactor: Follow-up to the crafting/material refactor from months ago. All objects crafted with stacks now inherit their mat composition (not necessarily the effects and color) by default, while previously only a few things like chair, sinks and toilets did. Report any object looking or behaving weirdly as a result. fix: The material composition of ammo boxes is no longer a 1/10 of what it's supposed to be. It was a shitty hack to make it harder to recycle empty ammo boxes. Instead, they lose materials as they're emptied now. /🆑 |
||
|
|
d0ca474789 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-05 | ||
|
|
585b02c325 |
Reduces species feature boilerplate (#93570)
## About The Pull Request Rather than having 100 separate list variables on `SSaccessories`, have 1 list for all feature keys that are associated with sprite accessories This way you can get a feature by doing `SSaccessories.feature_list[key]`, instead of necessitating `SSaccessories.ears_list`, `SSaccessories.tail_list`, etc. This lets us cut back on a lot of boilerplate in prefs, dna, and organs ## Why It's Good For The Game We can see the benefit in this example: This is all the code for horn DNA, bodypart overlay, and preference ```dm /datum/dna_block/feature/accessory/horn feature_key = FEATURE_HORNS ``` ```dm /datum/bodypart_overlay/mutant/horns layers = EXTERNAL_ADJACENT feature_key = FEATURE_HORNS dyable = TRUE /datum/bodypart_overlay/mutant/horns/can_draw_on_bodypart(obj/item/bodypart/bodypart_owner) return !(bodypart_owner.owner?.obscured_slots & HIDEHAIR) ``` ```dm /datum/preference/choiced/species_feature/lizard_horns savefile_key = "feature_lizard_horns" savefile_identifier = PREFERENCE_CHARACTER category = PREFERENCE_CATEGORY_FEATURES main_feature_name = "Horns" should_generate_icons = TRUE relevant_organ = /obj/item/organ/horns /datum/preference/choiced/species_feature/lizard_horns/icon_for(value) return generate_lizard_side_shot(get_accessory_for_value(value), "horns") ``` ## Changelog 🆑 Melbert refactor: Refactored species unique organs slightly, particularly how they are set up at game start. Report any oddities, like invisible tails or wings /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
e28e9fbdba | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-23-10-2025 | ||
|
|
bb91185a3a |
Kitchen soundpack (#93495)
## About The Pull Request https://github.com/user-attachments/assets/f35be993-66b2-448f-953b-4b2ec9a7b8f6 ## Changelog 🆑 sound: added more sounds for knives sound: added more sounds for pots sound: added more sounds for trays sound: added more sounds for cutlery sound: added more sounds for rolling pins /🆑 |
||
|
|
8aa39b75f0 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync | ||
|
|
def17fd90a |
Rare Earths! Advanced soils for botany. (#92513)
## About The Pull Request This PR adds 4 new types of soil and a holder item; the soil sack, to contain and transport said soils. <img width="496" height="378" alt="bild" src="https://github.com/user-attachments/assets/57f42a9c-c731-4195-91df-b4456ec45e7b" /> Two of the new soils + the regular old soil are available in the premium section of the nutrimax. All 5 soil types are available from cargo. It also adds two new plant traits; soil lover and semiaquatic, that allows coders to confer maluses to plants growing in trays or soil respectively. Potatoes, sweet potatoes, carrots, parsnips, cahn'roots, white and red beets currently have soil lover, reducing their produced yield by 30% and their potency randomly between 20-80% if grown hydroponically. Rice has semiaquatic which increases the amount of weeds gained by 50% if grown in soil rather than hydroponically. ## Advanced soil types ### Vermaculite #### Stats Max Nutrients: 20u Max Water: 150u #### Special Effects Multigraft: Up to 3 grafts can be cut from a plant planted in vermaculite. Graft Medium: Graft cuttiongs can be directly placed into vermaculite to create a new plant vegetatively. ### Hydrogel Beads #### Stats Max Nutrients: 15u Max Water: 300u #### Special Effects Hydroponic + Soil: Both water loving and soil loving plants can grow without maluses. Super Water: Water consumption rate is decreased by 50% ### Korta Coir #### Stats Max Nutrients: 20u Max Water: 100u #### Special Effects Fast Mushrooms: Mushrooms mature(and age) 40% faster if planted in this soil. ### Worm Castings #### Stats Max Nutrients = 35u Max Water = 200u #### Special Effects Slow Release: If the nutrients run out, 1u nitrogen will be automatically added to the nutient pool. Worm Habitat: Composting veggies in this soil has a chance to produce an extra slimy worm. ### Soil Sacks Use them on the floor to place a soil at that location. You can reverse this process by right clicking a soil with a shovel. The sacks are huge items that deals stamina damage, but have slowdown when carried. They can be wielded to remove slowdown, double the damage output and gain 25% block chance. They have unique normal and wielded inhands for each sack type. #### Price List **Soil** Nutrimax: 50 cr Cargo: 400 cr / 5 sacks **Vermaculite** Nutrimax: 100 cr Cargo: 400 cr / 3 sacks **Hydrogel** Nutrimax: 100 cr Cargo: 400 cr / 3 sacks **Coir** Nutrimax: N/A Cargo: 600 cr / 3 sacks **Worm Castings** Nutrimax: N/A Cargo: 800 cr / 3 sacks #### Misc Soil Changes Soil now have a new armour type and are generally much harder to destroy by shooting or bashing them. Fixed a bug where weeds would instantly reduce yield to 3 instead of lowering it by 1-2 per cycle. ## Why It's Good For The Game I have long been a fan of using soils in botany, they are the cheapest and easiest way to make new trays and enable many interesting strategies. The default soil is fine for what is but it kinda sucks, not only having low stats but also missing autogrow, a feature botanist have grown completely addicted and dependent on. When self sustaining trays were removed and autogrow added, it was intended as a way to keep a couple of plants alive while you ran out to do errands or grab a drink. However, the feature has devolved into basically a shift start self sustaining for all your trays and standard practice is using it on every single tray that currently is not trying to mutate. This has resulted in certain core botany mechanics like water and pests being made totally irrelevant, shrinking design space a lot. Rather than just reaching for the stick, I thought it would be fun to instead offer them a carrot in the form of an expanded toolset of soils with unique effects that cannot be replicated by trays. These new soils offer niche benefits that enable advanced botany gameplay and provides a framwork for deepening plant / tray interactions in the furture. ## Changelog 🆑 add: Added 4 new types of soil add: Added soils sacks to the nutrimax add: Added soil sack crates to cargo. balance: Soil now has higher armor values. balance: Rice now gets more weeds if grown in soil. balance: Carrots, potatoes, beets and their mutations now get reduced yield and potency if grown hydroponically. fix: Weed overgrowth no longer instantly sets yield to 3. /🆑 |
||
|
|
9b282a850e | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync | ||
|
|
2bcafecefb |
Fix poppy plant interaction breaking spades (#92960)
## About The Pull Request This unassuming line was added in the middle of tray attackby to allow for sharp objects to extract poppy sap https://github.com/tgstation/tgstation/blob/71c49cb4d1024515c98fe6de531620010cdf4334/code/modules/hydroponics/hydroponics.dm#L941-L945 Unfortunately, spades are sharp, and the shovel interaction followed lower in the chain. This also isn't proper use of `interact_with_atom` so we can fix two birds with one stone here. Now, poppy seeds hook the `COMSIG_ATOM_ITEM_INTERACTION` signal on the tray when planted, so we can run snowflake checks on the seed itself. ## Changelog 🆑 Melbert fix: Spades work on trays again qol: Poppy seeds now give better feedback when unable to harvest qol: Poppy seeds now have an immutable gene indicating they can be sliced for sap del: Lilys and Geraniums can no longer be tapped for sap /🆑 |
||
|
|
4ac0fa1fa8 |
Buffs non-hydroponics tree logs (#92957)
## About The Pull Request In https://github.com/tgstation/tgstation/pull/92884, someone pointed out that logs from tree flora only yielded **one** plank when cut, which isn't enough to make a bonfire, and also is ridiculously low. This PR ups that amount from 1 to 10, just enough to craft a bonfire. I'd also make tree chopping not so instantaneous and slightly more realistic, however that's outside the scope of this PR. ## Why It's Good For The Game Trees are weak af source of wood compared to hydroponics. ## Changelog 🆑 balance: Tree logs (not hydroponics towercaps) give more planks when cut. From 1 -> 10. /🆑 |
||
|
|
d2f34e33be |
moves abstract_type up to datum, spawners wont spawn them (#92909)
## About The Pull Request moves all implementations (im aware of) for "Im a parent type dont spawn me please" to the datum layer to standardized behavior adds a standerized proc for filtering out "bad" items that we dont want spawning. applies to it the subtype vendor, gifts, and a new spawner and mystery box for a random gun (neither playerfacing) "port" of https://github.com/shiptest-ss13/Shiptest/pull/4621 https://github.com/user-attachments/assets/22f6f0b2-b44e-411a-b3dc-6b97dc0287aa small warning: I dont have EVERY abstract type defined right now but, ive done a good enough job for now. Im tired of data entry rn ## Why It's Good For The Game standardizing behavior. Might be a micro hit to performance however having this lets us not rely on icon state to determine whether something is a parent type and makes it much easier to tell something is a parent type (could be applied further to things like admin spawning menus and things like that). need feedback on if this is actually good for the game. ## Changelog 🆑 add: Soda cans show up in the silver slime drink table. add: Examine tag for items that are not mean to show up ingame. refactor: Standardizes how gifts rule out abstract types. fix: gifts no longer check if something has an inhand, massively expanding the list of potential items. /🆑 |
||
|
|
939f2fc9ac | Merge branch 'master' of https://github.com/tgstation/tgstation into xpokee-test-upstream-sync | ||
|
|
50499dba9a |
Adds opium and meth rocks! (#92699)
## About The Pull Request <img width="612" height="185" alt="dreamseeker_SNMvxqCRiR" src="https://github.com/user-attachments/assets/1d3103e9-edc1-4e50-8793-c8c2ace53aea" /> This is a small expansion to narcotics, their production, and presence in the game! For my esteemed Terry and Manuel/Sybil sector colleagues I've added: - 2 new solid drug items: **crystal meth and opium**! - A **precipitation reaction** for meth after it's been cooled, producing a solid crystal form, 2u sulfuric acid, 10u meth. **Above 90% purity, the meth will gain an increasingly blue tint!** - A production method for opium! Slice a well developed poppy pod with any sharp item, **before it's fully mature and flowered** to extract a small amount of opium to enjoy! It's a small container for morphine. Can be pressed together to combine the concentrations up to 10u, as each extraction contains trace amounts. Scales off poppy's potency. - Populated narcotics/contraband spawners with new items, and items that really should have been on there. - Added a brand new smoking apparatus, the glass pipe! Can be crafted. Fixed the transparent pixel. - **Fixed methsplosions so that now spacemen can finally smoke meth without exploding!!!** Omegaweed too. Normal methsplosions are untouched! - **Expanded the ability for players to insert all drug items into pipes**, so now players can smoke moon rocks, SaturnX, and my new items! Previously, only 'dried' items were. - Fentanyl patch box for narcotics spawner, also for a new ruin I've made. - **Expanded these changes to the black market uplink.** <img width="640" height="256" alt="demo" src="https://github.com/user-attachments/assets/c8a0eb2c-b0fa-4e70-b6c1-2e741cd170a2" /> Now, players can precipitate meth into a solid form, and produce opium. I added a lot of these substances and the ones that didn't exist into spawners that they were partially in, or could reasonably be in. The opium poppy extraction required a new variable that can be used for similar interactions too. Crystal sprites are transparent, smoked sprite has a nice little animation and glow. These items are now on the black market uplink, in both expensive dealer shipments of varying rarities for different narcotics, as well as personal use quantities on a different rotation, at a steeper price. Expanded randomized spawners to give the black market and ruins more teeth and edge, without adding another weapon. Credit to the moon rock guy, I'm just happy I made your stuff smokable!! <img width="219" height="201" alt="dreamseeker_N8x9bsN3kS" src="https://github.com/user-attachments/assets/64d23c27-92b9-423b-91ac-903b8476d0b4" /> tl;dr added opium and meth ## Why It's Good For The Game For **too long**, narcotics, chems and stims have been mere integers or buffs/debuffs in pills or syringes, so I introduced two new methods for making them and populated niche, criminal vectors with them. These are real items now, with more interactions. Allowing these to be smoked also allowed moon rocks and SaturnX to be smoked too, including them into this and enticing players to have another reason to make them as well. Buffs with drawbacks, addictions and problems are actually great. It's a new venue for flavor. I've put thought into the balance for addition and quantity. It'll add a criminal, or exotic tone to a round, provide new business opportunities, and new access to stims and chems without going over the top. Perhaps something peaceful antagonists can do. More proverbial floor pills give security or command something to selectively enforce, and absolutely provide novel opportunities for medical staff! Also, methsplosions now don't happen in cigarette items! You can smoke omegaweed without fucking dying! ## Changelog 🆑 add: Added meth, opium, and their production! Also added to black market uplink. add: Added a craftable glass pipe. add: Added to contraband spawners. qol: Can now insert any drug item into a pipe. fix: Spacemen can now smoke meth without exploding!! /🆑 --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com> |
||
|
|
b348b617a3 |
Merge branch 'master' of https://github.com/tgstation/tgstation into pupstream-2025-09-07
# Conflicts: # README.md # code/__DEFINES/admin.dm # code/__DEFINES/melee.dm # code/_globalvars/traits/_traits.dm # code/controllers/subsystem/economy.dm # code/datums/components/crafting/crafting.dm # code/datums/elements/crusher_loot.dm # code/modules/antagonists/pirate/pirate_shuttle_equipment.dm # code/modules/clothing/suits/_suits.dm # code/modules/escape_menu/leave_body.dm # code/modules/jobs/job_types/_job.dm # code/modules/mining/equipment/mineral_scanner.dm # code/modules/mob/living/living.dm # code/modules/plumbing/plumbers/pill_press.dm # tgui/packages/tgui/interfaces/Vending.tsx |
||
|
|
d2b92afe55 |
Plant Analyzer UX Revamp (#92667)
## About The Pull Request <img width="1300" height="706" alt="image" src="https://github.com/user-attachments/assets/c7971eab-6af3-4fea-94f5-b76104696b73" /> 1. Chems are no longer hidden in an icon's tooltip. There is a separate tab for chems. Right clicking to do a chem scan will pull up the chem tab, but you can also just use the two buttons at the top - Closes #91172 2. You no longer need to repeatedly scan a tray to update the UI. Standing adjacent to a scanned tray will update it regularly. 3. Units have been redefined from pure seconds to minutes/seconds where applicable. 4. The report has been swapped around, with tray on top and plant on bottom. 5. The nutrient bar is now colored based on contents of the tray. It no longer has a tooltip listing the tray's contents, that's now in the chemicals tab. 6. Auto-grow, pollinating, and yield modifier icons have been brought center below the tray, instead of in the top right section. They now change color to make it more apparent at a glance. 7. Traits have been moved from icons to a collapsible list at the bottom of the UI, and are now printed entirely. They still have tooltips explaining what they do. 8. Grafted gene was moved center below the plant, and is now printed entirely. 9. Mutations have been moved to a collapsible list center below the plant. 10. Plants now indicate if they are dead in the UI. 11. Scanning produce now lists all the chemicals inside it on top of all the chemicals it produces. - Closes #89443, Closes #90793 12. Restores lost behavior of seed unique data - Closes #90706 Also 13. Added Hydroponics to Runtime station 14. Added screentip for dumping reagents from hydro-trays ## Why It's Good For The Game While I was initially supportive of the move to a plant analyzer UI it was undeniable it was a huge UX stepdown from printing results to chat. This PR aims to bring back some of those lost UX features by making more information visible at a glance (instead of requiring memorization of mystery meat icons or hovering over many elements to find information hidden in tooltips) I know it's a little bit of a mess with the colors and layout, I planned on doing a whole custom css and layout and such but I kinda just wanted to get it out. ## Changelog 🆑 Melbert qol: Plant analyzer: Scanning a tray will regularly update the UI with the tray's information while you stand adjacent to it, no longer requiring you re-scan the tray to update it. qol: Plant analyzer: UI is now split between chems and stats - RMB will open directly to the chem tab. qol: Plant analyzer: UI received several UX changes - listing out more information at a glance, rather than behind tooltips or icons fix: Plant analyzer: Chem scanning plants now shows the plant's current chemical contents once again (on top of their genes) fix: Plant analyzer: Unique seed data (kudzu mutation, replica pod dna) is shown again qol: Added hydroponics to runtime station qol: Added screentip to hydroponic trays for clearing reagents /🆑 |
||
|
|
55504da79d |
Datumizes DNA blocks, makes DNA cleaner in general (#92061)
Moves all the dna block handling onto singleton datums initialized inside global lists, to make the handling dna less of a copy-paste mess and make adding new blocks significantly easier. There is still some work to be done in the copypaste department but ultimately that falls under its own PR scope after the core refactor goes through. (Ill probably do those but it will also be easier for everyone else as the code is now significantly less of an eyesore) Both features and identities have been tested through and through, and seem to be working fine. Also removed the reliance on weird hardcoded lookup tables for length, and other similar things that just didn't make sense when I was passing through DNA code. There's a lot more that fall out of scope for this exact PR's goal however I've been told the maintainers will love me for doing this 🆑 code: feature keys are no longer magical strings floating around the codebase and use proper defines refactor: DNA blocks are now handled with singleton datums. /🆑 |
||
|
|
b01756b97c |
Datumizes DNA blocks, makes DNA cleaner in general (#92061)
## About The Pull Request Moves all the dna block handling onto singleton datums initialized inside global lists, to make the handling dna less of a copy-paste mess and make adding new blocks significantly easier. There is still some work to be done in the copypaste department but ultimately that falls under its own PR scope after the core refactor goes through. (Ill probably do those but it will also be easier for everyone else as the code is now significantly less of an eyesore) Both features and identities have been tested through and through, and seem to be working fine. Also removed the reliance on weird hardcoded lookup tables for length, and other similar things that just didn't make sense when I was passing through DNA code. There's a lot more that fall out of scope for this exact PR's goal however ## Why It's Good For The Game I've been told the maintainers will love me for doing this ## Changelog 🆑 code: feature keys are no longer magical strings floating around the codebase and use proper defines refactor: DNA blocks are now handled with singleton datums. /🆑 |
||
|
|
12ae914efc |
Adds Anti-Weed (#92043)
## About The Pull Request Adds Anti-Cannabis, or "Anti-Weed", a mutation of Cannabis which contains Naloxone, Antihol, and Diphen-Synaptizine These three chemicals will purge like 90% of all addictive substances and their side effects (at the cost of negative mood and some tox damage)  ## Why It's Good For The Game I thought it'd be really funny if a botanist offers you a smoke, you get super high, and then to help they offer you another smoke ## Changelog 🆑 Melbert add: Anti-cannabis mutation /🆑 |
||
|
|
750ee12f3c |
Adds Anti-Weed (#92043)
## About The Pull Request Adds Anti-Cannabis, or "Anti-Weed", a mutation of Cannabis which contains Naloxone, Antihol, and Diphen-Synaptizine These three chemicals will purge like 90% of all addictive substances and their side effects (at the cost of negative mood and some tox damage)  ## Why It's Good For The Game I thought it'd be really funny if a botanist offers you a smoke, you get super high, and then to help they offer you another smoke ## Changelog 🆑 Melbert add: Anti-cannabis mutation /🆑 |
||
|
|
d841c9df40 |
[MDB IGNORE] Blood Refactor Chapter 2: Collector's Edition (#91054)
Refactors most of blood handling code untouched by #90593 and completely rewrites all blood decals, components and reagents. - Blood types now have behavioral flags which allow them to control where they leave decals/DNA/viruses. Oil no longer transfers DNA and viruses with it, while podpeople water-blood doesn't leave visible decals on turfs and items, but still can be picked up by DNA scanners. - Multiple blood types have received unique handling - liquid electricity blood now glows in the dark, oil trails are flammable and lube ones are slippery. Oil blood can be restored with fuel, lube with silicon and slime with stable plasma (as normal plasma already passively regenerates their blood), instead of everything using iron. Saline solution only supplements on iron-based blood and won't do anything to help with bloodloss for species who rely on different blood types. (Roundstart this applies only to Ethereals) - All blood logic has been moved away from the blood reagent itself into a blood element that is assigned to the blood reagent by default, and to any reagent that's drawn from a mob as their "blood" (in ``transfer_blood_to``). This means that blood you draw from lizards will be green and have lizard's blood description instead of mentioning red blood cells, Ethereal "blood" will actually contain their DNA and genes, etc. - Refactored all blood decals. Blood states are no more, everything is now handled via blood DNA. Credits to MrMelbert and Maplestation, as a significant amount of code has been taken from https://github.com/MrMelbert/MapleStationCode/pull/436 and many of his followup PRs. Oil and xenomorph splatters are now subtypes of blood, blood drying is now animated, blood trails now curve and can be diagonal. - Rewrote bloodysoles and bloody_spreader components, credits to Melbert again for the former, while latter now makes more sense with its interactions. Bloody soles no longer share blood DNA with your hands. - Ported Melbert's bloody footprint sprites and bot-blood-spreading functionality. - Removed all species-side reagent interactions, instead they're handled by said species' livers. (This previously included exotic blood handling, thus the removal) - Slightly optimized human rendering by removing inbetween overlay holders for clothing when they're not needed. - Blood-transmitted diseases will now get added to many more decals than before. - Cleaned up and partially refactored replica pods, fixed an issue where monkeys/manipulators were unable to harvest mindless pods. - Exotic bloodtype on species now automatically assigns their blood reagent, without the need to assign them separately. - Clown mobs now bleed (with colorful reagent instead of blood during april fools), and so do vatbeasts (lizard blood) - Implemented generic procs for handling bleeding checks, all sorts of scanners now also correctly call your blood for what it is. - Podpeople's guts are now lime-green like their organs, instead of being weirdly greyish like their water-blood. (Their bleeding overlays are still grey, as they're bleeding water) - Slimepeople now can bleed. Their jelly is pale purple in color, but their wound overlays copy their body color. - Injecting/spraying/splashing/etc mob with a reagent preserves its data, so you could theoretically recycle fine wines from someone's bloodstream - Fixed burdened chaplain's sect never actually giving a blessing when applying effects, and giving a blessing when nothing can be healed. Inverted check strikes again. - Closes #91039 A lot of blood here has dried, visually the blood colors are almost exactly the same as before either of the blood refactors.   |
||
|
|
b4061f1800 |
[MDB IGNORE] Blood Refactor Chapter 2: Collector's Edition (#91054)
## About The Pull Request Refactors most of blood handling code untouched by #90593 and completely rewrites all blood decals, components and reagents. - Blood types now have behavioral flags which allow them to control where they leave decals/DNA/viruses. Oil no longer transfers DNA and viruses with it, while podpeople water-blood doesn't leave visible decals on turfs and items, but still can be picked up by DNA scanners. - Multiple blood types have received unique handling - liquid electricity blood now glows in the dark, oil trails are flammable and lube ones are slippery. Oil blood can be restored with fuel, lube with silicon and slime with stable plasma (as normal plasma already passively regenerates their blood), instead of everything using iron. Saline solution only supplements on iron-based blood and won't do anything to help with bloodloss for species who rely on different blood types. (Roundstart this applies only to Ethereals) - All blood logic has been moved away from the blood reagent itself into a blood element that is assigned to the blood reagent by default, and to any reagent that's drawn from a mob as their "blood" (in ``transfer_blood_to``). This means that blood you draw from lizards will be green and have lizard's blood description instead of mentioning red blood cells, Ethereal "blood" will actually contain their DNA and genes, etc. - Refactored all blood decals. Blood states are no more, everything is now handled via blood DNA. Credits to MrMelbert and Maplestation, as a significant amount of code has been taken from https://github.com/MrMelbert/MapleStationCode/pull/436 and many of his followup PRs. Oil and xenomorph splatters are now subtypes of blood, blood drying is now animated, blood trails now curve and can be diagonal. - Rewrote bloodysoles and bloody_spreader components, credits to Melbert again for the former, while latter now makes more sense with its interactions. Bloody soles no longer share blood DNA with your hands. - Ported Melbert's bloody footprint sprites and bot-blood-spreading functionality. - Removed all species-side reagent interactions, instead they're handled by said species' livers. (This previously included exotic blood handling, thus the removal) - Slightly optimized human rendering by removing inbetween overlay holders for clothing when they're not needed. - Blood-transmitted diseases will now get added to many more decals than before. - Cleaned up and partially refactored replica pods, fixed an issue where monkeys/manipulators were unable to harvest mindless pods. - Exotic bloodtype on species now automatically assigns their blood reagent, without the need to assign them separately. - Clown mobs now bleed (with colorful reagent instead of blood during april fools), and so do vatbeasts (lizard blood) - Implemented generic procs for handling bleeding checks, all sorts of scanners now also correctly call your blood for what it is. - Podpeople's guts are now lime-green like their organs, instead of being weirdly greyish like their water-blood. (Their bleeding overlays are still grey, as they're bleeding water) - Slimepeople now can bleed. Their jelly is pale purple in color, but their wound overlays copy their body color. - Injecting/spraying/splashing/etc mob with a reagent preserves its data, so you could theoretically recycle fine wines from someone's bloodstream - Fixed burdened chaplain's sect never actually giving a blessing when applying effects, and giving a blessing when nothing can be healed. Inverted check strikes again. - Closes #91039 #### Examples A lot of blood here has dried, visually the blood colors are almost exactly the same as before either of the blood refactors.   |
||
|
|
655b66bdd0 |
Adds automatic GAGS icon generation for mapping and the loadout menu (#90940)
Revival of https://github.com/tgstation/tgstation/pull/86482, which is even more doable now that we have rustg iconforge generation. What this PR does: - Sets up every single GAGS icon in the game to have their own preview icon autogenerated during compile. This is configurable to not run during live. The icons are created in `icons/map_icons/..` - This also has the side effect of providing accurate GAGS icons for things like the loadout menu. No more having to create your own previews.  <details><summary>Mappers rejoice!</summary>   </details> <details><summary>Uses iconforge so it does not take up much time during init</summary>  </details> --- this still applies: Note for Spriters: After you've assigned the correct values to vars, you must run the game through init on your local machine and commit the changes to the map icon dmi files. Unit tests should catch all cases of forgetting to assign the correct vars, or not running through init. Note for Server Operators: In order to not generate these icons on live I've added a new config entry which should be disabled on live called GENERATE_ASSETS_IN_INIT in the config.txt No more error icons in SDMM and loadout. 🆑 refactor: preview icons for greyscale items are now automatically generated, meaning you can see GAGS as they actually appear ingame while mapping or viewing the loadout menu. /🆑 --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
cb51a652a9 |
Adds automatic GAGS icon generation for mapping and the loadout menu (#90940)
## About The Pull Request Revival of https://github.com/tgstation/tgstation/pull/86482, which is even more doable now that we have rustg iconforge generation. What this PR does: - Sets up every single GAGS icon in the game to have their own preview icon autogenerated during compile. This is configurable to not run during live. The icons are created in `icons/map_icons/..` - This also has the side effect of providing accurate GAGS icons for things like the loadout menu. No more having to create your own previews.  <details><summary>Mappers rejoice!</summary>   </details> <details><summary>Uses iconforge so it does not take up much time during init</summary>  </details> --- ### Copied from https://github.com/tgstation/tgstation/pull/86482 as this still applies: Note for Spriters: After you've assigned the correct values to vars, you must run the game through init on your local machine and commit the changes to the map icon dmi files. Unit tests should catch all cases of forgetting to assign the correct vars, or not running through init. Note for Server Operators: In order to not generate these icons on live I've added a new config entry which should be disabled on live called GENERATE_ASSETS_IN_INIT in the config.txt ## Why It's Good For The Game No more error icons in SDMM and loadout. ## Changelog 🆑 refactor: preview icons for greyscale items are now automatically generated, meaning you can see GAGS as they actually appear ingame while mapping or viewing the loadout menu. /🆑 --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
bc2215667f |
Re-refactors batons / Refactors attack chain force modifiers (#90809)
Melee attack chain now has a list passed along with it, `attack_modifiers`, which you can stick force modifiers to change the resulting attack This is basically a soft implementation of damage packets until a more definitive pr, but one that only applies to item attack chain, and not unarmed attacks. This change was done to facilitate a baton refactor - batons no longer hack together their own attack chain, and are now integrated straight into the real attack chain. This refactor itself was done because batons don't send any attack signals, which has been annoying in the past (for swing combat). 🆑 Melbert refactor: Batons have been refactored again. Baton stuns now properly count as an attack, when before it was a nothing. Report any oddities, particularly in regards to harmbatonning vs normal batonning. refactor: The method of adjusting item damage mid-attack has been refactored - some affected items include the Nullblade and knives. Report any strange happenings with damage numbers. refactor: A few objects have been moved to the new interaction chain - records consoles, mawed crucible, alien weeds and space vines, hedges, restaurant portals, and some mobs - to name a few. fix: Spears only deal bonus damage against secure lockers, not all closet types (including crates) /🆑 |
||
|
|
878041f587 |
Clown Abomination Rebalance! #Cytology2025 (#91000)
## About The Pull Request This PR includes a number of fixes, buffs and improvements to the clown mobs to make them more playable and worthwhile. ### Atmos tolerance buffs This PR removes the insane unsuitable atmos and temperature damage clown mobs used to take and bring it in line with other mobs. In addition, clownanas can tolerate lower oxygen levels and are immune to carbon dioxide due to their half plant biology. ### Movement speed changes A lot of these mobs were previously unviable due to their slow speed, one of the most important stats. This problem will only get worse for basic mobs if the proposed basic mob stamina changes get implemented. Most of them are still slower than humans but now have some chance to corner a human in some circumstances. (I plan to add more ways to modify basic mob run speed in the future to help with this.) The flesh clown and honkling are now fast again, I remember the original speed nerf of fleshclown upset the very few fleshclown enjoyers once i PR'd in the initial balance pass years back. ### Glutton buffs The banana glutton is now given a mechanical incentive to eat lots of foods to nudge them into good RP. They heal for every item and gain max health every 5 items eaten! The banana glutton can now smash doors. They can now prank the crew with ink sacs should they find them. ### Biotype update Clownana has gained the plant biotype. Living lube has gained the slime biotype. ### cell lines & samples clownana and longface; the two other clown cell lines now have samples associated with them and can be biopsied to create pure samples of each cell line. The clownana banana bunch can also be swabbed for the pure clownana cell line! ### death drop changes The death drop element now spreads the items out slightly instead of stacking lots of drops in the center of the tile. Clown mobs now drop less soap and more peels, with some of the rarer ones dropping mimana, bluespace or gros michel peels. The clownana now has a chance to drop full bananas or even a full banana bunch. The banana glutton has a chance to drop a heart of freedom. The flesh clown now drops a meatclown instead of soap, and a piece of human skin instead of a bloated human suit. ### other stat changes living lube is now highly resistant to brute damage longface can now acutally fight a little bit, still kinda terrible though. ## Why It's Good For The Game These mobs are quite beloved but their level of playability is low due to poor balance. The main problem is atmos. Even a whiff of bad atmos would gib these mobs before they could get to safety. Many of them had their speed set way too high or way too low when they were first added, even after i adjusted their speeds years ago I was being too conservative. Their loot tables were too similar, this helps with that a little bit. A couple of them might even be worthwhile farming for their drops in certain niche situations! The banana glutton has such a cool sprite but has been neglected mechanically, this helps make him a little more worthwhile and the extra obj damage helps him not be in that sucky place where he is too large to vent crawl and not powerful enough to break down doors. Ideally in the future we should probably be more restrictive with allowing mobs to smash airlocks and give them another way of opening doors via armblade -like prying or ID implants. ## Changelog 🆑 add: banana gluttons gain max health and heal by eating foods! And they can smash doors. balance: clown mobs no longer get nuked by bad atmos. balance: blown mobs have new death drops. balance: most clown more are now faster! balance: clownanas are now plants and are immune to carbon dioxide. balance: living lube is now a slime and highly brute resistant. balance: longfaces now hit decently hard. fix: clownanas and longfaces can now be biopsied. /🆑 --------- Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
5261efb67f |
Re-refactors batons / Refactors attack chain force modifiers (#90809)
## About The Pull Request Melee attack chain now has a list passed along with it, `attack_modifiers`, which you can stick force modifiers to change the resulting attack This is basically a soft implementation of damage packets until a more definitive pr, but one that only applies to item attack chain, and not unarmed attacks. This change was done to facilitate a baton refactor - batons no longer hack together their own attack chain, and are now integrated straight into the real attack chain. This refactor itself was done because batons don't send any attack signals, which has been annoying in the past (for swing combat). ## Changelog 🆑 Melbert refactor: Batons have been refactored again. Baton stuns now properly count as an attack, when before it was a nothing. Report any oddities, particularly in regards to harmbatonning vs normal batonning. refactor: The method of adjusting item damage mid-attack has been refactored - some affected items include the Nullblade and knives. Report any strange happenings with damage numbers. refactor: A few objects have been moved to the new interaction chain - records consoles, mawed crucible, alien weeds and space vines, hedges, restaurant portals, and some mobs - to name a few. fix: Spears only deal bonus damage against secure lockers, not all closet types (including crates) /🆑 |
||
|
|
b3580b8a8d |
Clown Abomination Rebalance! #Cytology2025 (#91000)
## About The Pull Request This PR includes a number of fixes, buffs and improvements to the clown mobs to make them more playable and worthwhile. ### Atmos tolerance buffs This PR removes the insane unsuitable atmos and temperature damage clown mobs used to take and bring it in line with other mobs. In addition, clownanas can tolerate lower oxygen levels and are immune to carbon dioxide due to their half plant biology. ### Movement speed changes A lot of these mobs were previously unviable due to their slow speed, one of the most important stats. This problem will only get worse for basic mobs if the proposed basic mob stamina changes get implemented. Most of them are still slower than humans but now have some chance to corner a human in some circumstances. (I plan to add more ways to modify basic mob run speed in the future to help with this.) The flesh clown and honkling are now fast again, I remember the original speed nerf of fleshclown upset the very few fleshclown enjoyers once i PR'd in the initial balance pass years back. ### Glutton buffs The banana glutton is now given a mechanical incentive to eat lots of foods to nudge them into good RP. They heal for every item and gain max health every 5 items eaten! The banana glutton can now smash doors. They can now prank the crew with ink sacs should they find them. ### Biotype update Clownana has gained the plant biotype. Living lube has gained the slime biotype. ### cell lines & samples clownana and longface; the two other clown cell lines now have samples associated with them and can be biopsied to create pure samples of each cell line. The clownana banana bunch can also be swabbed for the pure clownana cell line! ### death drop changes The death drop element now spreads the items out slightly instead of stacking lots of drops in the center of the tile. Clown mobs now drop less soap and more peels, with some of the rarer ones dropping mimana, bluespace or gros michel peels. The clownana now has a chance to drop full bananas or even a full banana bunch. The banana glutton has a chance to drop a heart of freedom. The flesh clown now drops a meatclown instead of soap, and a piece of human skin instead of a bloated human suit. ### other stat changes living lube is now highly resistant to brute damage longface can now acutally fight a little bit, still kinda terrible though. ## Why It's Good For The Game These mobs are quite beloved but their level of playability is low due to poor balance. The main problem is atmos. Even a whiff of bad atmos would gib these mobs before they could get to safety. Many of them had their speed set way too high or way too low when they were first added, even after i adjusted their speeds years ago I was being too conservative. Their loot tables were too similar, this helps with that a little bit. A couple of them might even be worthwhile farming for their drops in certain niche situations! The banana glutton has such a cool sprite but has been neglected mechanically, this helps make him a little more worthwhile and the extra obj damage helps him not be in that sucky place where he is too large to vent crawl and not powerful enough to break down doors. Ideally in the future we should probably be more restrictive with allowing mobs to smash airlocks and give them another way of opening doors via armblade -like prying or ID implants. ## Changelog 🆑 add: banana gluttons gain max health and heal by eating foods! And they can smash doors. balance: clown mobs no longer get nuked by bad atmos. balance: blown mobs have new death drops. balance: most clown more are now faster! balance: clownanas are now plants and are immune to carbon dioxide. balance: living lube is now a slime and highly brute resistant. balance: longfaces now hit decently hard. fix: clownanas and longfaces can now be biopsied. /🆑 --------- Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
4ba1520df8 |
There will be (colorful) blood: datumizes bloodtypes, greyscales blood sprites, and fixes a lot of inconsistencies with gibs and forensic data (#90593)
## About The Pull Request This PR: - Converts all of the blood types into their own datums, which can be set up to have their own colors, descriptions, and other fun unique properties. For example, the clown blood that is constantly randomizing itself. - Converts all the blood decals into greyscale, which in turn eliminates the need for separate xeno sprites. They both use the same ones now. - Audit of blood splatters/gibs/bodyparts/organs to make sure that they are getting the correct forensic data applied to them. - For the admins: Adds a clown blood smite. My primary goal with was to make the appearance of the new sprites look almost indistinguishable to the original ones. I consider this a "first pass", as in there are still some further refactors I would like to do on the backend side, but am satisfied with it enough to push it forward as a first step towards a better blood system! I didn't want to do too much at once because of A) fatigue and B) easier to test things to make sure I'm not breaking something important this way. This has been test-merged on Nova for over a week now and has been going great, so I finally got around to upstreaming the bones to TG. Although I did test it a bit you may want to TM it just in case I missed some things when copying it over. |
||
|
|
11d82b7995 |
You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
People can now pet held mothroaches and pugs if they want to, or use items on them, hopefully without causing many issues. After all, it only took about a couple dozen lines of code to make... ...Oh, did the 527 files changed or the 850~ lines added/removed perhaps catch your eye? Made you wonder if I accidentally pushed the wrong branch? or skewed something up big time? Well, nuh uh. I just happen to be fed up with the melee attack chain still using stringized params instead of an array/list. It was frankly revolting to see how I'd have had to otherwise call `list2params` for what I'm trying to accomplish here, and make this PR another tessera to the immense stupidity of our attack chain procs calling `params2list` over and over and over instead of just using that one call instance from `ClickOn` as an argument. It's 2025, honey, wake up! I also tried to replace some of those single letter vars/args but there are just way too many of them. Improving old code. And I want to be able to pet mobroaches while holding them too. 🆑 qol: You can now interact with held mobs in more ways beside wearing them. /🆑 |
||
|
|
d20a1dac71 |
Adds a holiday-exclusive mail pool (#90437)
## About The Pull Request Holidays with mail allowed are now able to have a pool of mail goodies associated with them. (If anyone has any ideas I missed please do tell me them. Ones I really wanted to add are things for Ramadan and Hanukkah but I both don't know enough about them and also don't know any traditional Islamic/Jewish foods/trinkets we have in our codebase) ## Why It's Good For The Game Adds more flavor to the game's various holidays. ## Changelog 🆑 Wallem add: Some holidays have been given their own pool of mail goodies. /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com> |
||
|
|
4a6e67b9c5 |
Fixes Soybean Grinding/Juicing (#90455)
## About The Pull Request Noticed on downstream. You can't grind soybeans into veggie oil despite it being in the seed reagents as the `grind_results` overwrites it. Swaps that to `juice_typepath`. ## Why It's Good For The Game Lets you grind soybeans down for vegetable oil, and juice them for soy milk. ## Changelog 🆑 fix: soybeans now grind into the proper reagents and juice into soymilk. /🆑 |
||
|
|
8a94c8f464 |
Punishable by death in 7 sectors! Kronkaine buff package. (#90192)
## About The Pull Request  ### Kronkus vine buffs: Kronkus seeds are now three times as common. The Kronkus vine has a greatly increased endurance stat(10->40) so it does not die on you while you run around gathering ingredients and matures quicker (8->6) ### Kronkaine buffs: * The instant stamina boost restores **double stamina**(12 per u) when injected or smoked. * Now also restores stamina over time based on volume: **0.08 stamina per unit each cycle**. * Heart damage from kronkaine is now also dose dependant, overdose damage has been adjusted to account for this. * Reaction requires less ammonia(5->3u) and welding fuel(10->5u). * Added an alternate reaction that uses lye instead of ammonia, also takes 3u. * Added some new drug messages for when using these optimized methods of administration. * Reworked how the anti-purging mechanic works, now it only punishes you with adrenal fatigue while you take >30 stamina damage while trying to purge. This makes life saving OD treatment less annoying, but still prevents abuse mid combat in a more elegant way. The amount of heart damage inflicted is much lower if used at low doses, the same as before at 20u and greater if more than 20u is administered. The heart damage formula is : **0.1 + 0.04 * volume (+0.5 if overdosed) damage per cycle**. It should work out to something like a 27.5u lethal dose with a pristine heart. ### Kronkus extract buffs: Lasts twice as long. More heart damage per cycle 0.1 -> 0.2. This value is still pretty modest. UPDATE: I had previously buffed the stamina regen of this reagent, but now kronkaine itself has stamina regen per cycle. #### Technical changes: proc/copy_to can now trigger on_transfer and pass exposure methoid if the new copy_method parameter is set. This enables sources that use copy_to like smoke clouds to trigger INHALE dependent effects like the new kronkaine enhancement. Infinite hyposprays now also have the inject method like normal hyposprays. These two were the only two cases where reagents where reagents were added to a mob using copy_to. #### Fixes: kronkus extracts heart damage now uses seconds_per_tick. ## Why It's Good For The Game After surveying the available discussion on the subject, the kronkaine drug itself seems to be generally well received. However the rarity of the seed and the arcane preparation method has limited player engagement with the mechanic. There is confusion regarding both the preparation and, especially regarding how the stamina restoring effect works. This PR seeks to make things a little smoother and more pleasant without making a rare thing into a trivial thing,. Players seems to mostly use the action speed part of kronkaine so I have massively buffed the stamina restoration part in a flavourful way to encourage more types of players to plant the seeds should they find them. Over time more and more stuff have been added to the maintenance loot spawn lists which have diluted the spawn chance of the seed packet which contributes to the problem. This PR increases the weight from 1 -> 3. ## Changelog 🆑 balance: kronkaine now restores double stamina when smoked or injected. balance: kronkaine now restores stamina each cycle, the effect is dose dependant. balance: kronkaine now causes heart damage in a dose dependant manner, instead of a flat value. balance: kronkus seed packs are now three times as common. balance: the kronkaine anti-purging disease now only triggers if you take stamina damage while using purging chems. balance: the kronkaine reaction uses less ammonia and welding fuel. add: added an alternative kronkaine reaction that uses lye instead of ammonia. balance: kronkus extract now lasts twice as long but deals a bit more heart damage(0.1->0.2) balance: the kronkus vine plant is now a lot hardier(endurance: 10 -> 40) and matures a bit quicker. tweak: kronkaine now warns the user more if it is about to kill your heart. fix: kronkus extract now inflicts heart damage correctly. /🆑 |
||
|
|
3d01e86e29 |
There will be (colorful) blood: datumizes bloodtypes, greyscales blood sprites, and fixes a lot of inconsistencies with gibs and forensic data (#90593)
## About The Pull Request This PR: - Converts all of the blood types into their own datums, which can be set up to have their own colors, descriptions, and other fun unique properties. For example, the clown blood that is constantly randomizing itself. - Converts all the blood decals into greyscale, which in turn eliminates the need for separate xeno sprites. They both use the same ones now. - Audit of blood splatters/gibs/bodyparts/organs to make sure that they are getting the correct forensic data applied to them. - For the admins: Adds a clown blood smite. My primary goal with was to make the appearance of the new sprites look almost indistinguishable to the original ones. I consider this a "first pass", as in there are still some further refactors I would like to do on the backend side, but am satisfied with it enough to push it forward as a first step towards a better blood system! I didn't want to do too much at once because of A) fatigue and B) easier to test things to make sure I'm not breaking something important this way. This has been test-merged on Nova for over a week now and has been going great, so I finally got around to upstreaming the bones to TG. Although I did test it a bit you may want to TM it just in case I missed some things when copying it over. |
||
|
|
339616ae78 |
You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
## About The Pull Request People can now pet held mothroaches and pugs if they want to, or use items on them, hopefully without causing many issues. After all, it only took about a couple dozen lines of code to make... ...Oh, did the 527 files changed or the 850~ lines added/removed perhaps catch your eye? Made you wonder if I accidentally pushed the wrong branch? or skewed something up big time? Well, nuh uh. I just happen to be fed up with the melee attack chain still using stringized params instead of an array/list. It was frankly revolting to see how I'd have had to otherwise call `list2params` for what I'm trying to accomplish here, and make this PR another tessera to the immense stupidity of our attack chain procs calling `params2list` over and over and over instead of just using that one call instance from `ClickOn` as an argument. It's 2025, honey, wake up! I also tried to replace some of those single letter vars/args but there are just way too many of them. ## Why It's Good For The Game Improving old code. And I want to be able to pet mobroaches while holding them too. ## Changelog 🆑 qol: You can now interact with held mobs in more ways beside wearing them. /🆑 |
||
|
|
753d8e5ba4 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-04a | ||
|
|
5348dbed7f |
Adds a holiday-exclusive mail pool (#90437)
## About The Pull Request Holidays with mail allowed are now able to have a pool of mail goodies associated with them. (If anyone has any ideas I missed please do tell me them. Ones I really wanted to add are things for Ramadan and Hanukkah but I both don't know enough about them and also don't know any traditional Islamic/Jewish foods/trinkets we have in our codebase) ## Why It's Good For The Game Adds more flavor to the game's various holidays. ## Changelog 🆑 Wallem add: Some holidays have been given their own pool of mail goodies. /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com> |
||
|
|
8f92950534 |
Fixes Soybean Grinding/Juicing (#90455)
## About The Pull Request Noticed on downstream. You can't grind soybeans into veggie oil despite it being in the seed reagents as the `grind_results` overwrites it. Swaps that to `juice_typepath`. ## Why It's Good For The Game Lets you grind soybeans down for vegetable oil, and juice them for soy milk. ## Changelog 🆑 fix: soybeans now grind into the proper reagents and juice into soymilk. /🆑 |
||
|
|
5e8dad9618 |
Punishable by death in 7 sectors! Kronkaine buff package. (#90192)
## About The Pull Request  ### Kronkus vine buffs: Kronkus seeds are now three times as common. The Kronkus vine has a greatly increased endurance stat(10->40) so it does not die on you while you run around gathering ingredients and matures quicker (8->6) ### Kronkaine buffs: * The instant stamina boost restores **double stamina**(12 per u) when injected or smoked. * Now also restores stamina over time based on volume: **0.08 stamina per unit each cycle**. * Heart damage from kronkaine is now also dose dependant, overdose damage has been adjusted to account for this. * Reaction requires less ammonia(5->3u) and welding fuel(10->5u). * Added an alternate reaction that uses lye instead of ammonia, also takes 3u. * Added some new drug messages for when using these optimized methods of administration. * Reworked how the anti-purging mechanic works, now it only punishes you with adrenal fatigue while you take >30 stamina damage while trying to purge. This makes life saving OD treatment less annoying, but still prevents abuse mid combat in a more elegant way. The amount of heart damage inflicted is much lower if used at low doses, the same as before at 20u and greater if more than 20u is administered. The heart damage formula is : **0.1 + 0.04 * volume (+0.5 if overdosed) damage per cycle**. It should work out to something like a 27.5u lethal dose with a pristine heart. ### Kronkus extract buffs: Lasts twice as long. More heart damage per cycle 0.1 -> 0.2. This value is still pretty modest. UPDATE: I had previously buffed the stamina regen of this reagent, but now kronkaine itself has stamina regen per cycle. #### Technical changes: proc/copy_to can now trigger on_transfer and pass exposure methoid if the new copy_method parameter is set. This enables sources that use copy_to like smoke clouds to trigger INHALE dependent effects like the new kronkaine enhancement. Infinite hyposprays now also have the inject method like normal hyposprays. These two were the only two cases where reagents where reagents were added to a mob using copy_to. #### Fixes: kronkus extracts heart damage now uses seconds_per_tick. ## Why It's Good For The Game After surveying the available discussion on the subject, the kronkaine drug itself seems to be generally well received. However the rarity of the seed and the arcane preparation method has limited player engagement with the mechanic. There is confusion regarding both the preparation and, especially regarding how the stamina restoring effect works. This PR seeks to make things a little smoother and more pleasant without making a rare thing into a trivial thing,. Players seems to mostly use the action speed part of kronkaine so I have massively buffed the stamina restoration part in a flavourful way to encourage more types of players to plant the seeds should they find them. Over time more and more stuff have been added to the maintenance loot spawn lists which have diluted the spawn chance of the seed packet which contributes to the problem. This PR increases the weight from 1 -> 3. ## Changelog 🆑 balance: kronkaine now restores double stamina when smoked or injected. balance: kronkaine now restores stamina each cycle, the effect is dose dependant. balance: kronkaine now causes heart damage in a dose dependant manner, instead of a flat value. balance: kronkus seed packs are now three times as common. balance: the kronkaine anti-purging disease now only triggers if you take stamina damage while using purging chems. balance: the kronkaine reaction uses less ammonia and welding fuel. add: added an alternative kronkaine reaction that uses lye instead of ammonia. balance: kronkus extract now lasts twice as long but deals a bit more heart damage(0.1->0.2) balance: the kronkus vine plant is now a lot hardier(endurance: 10 -> 40) and matures a bit quicker. tweak: kronkaine now warns the user more if it is about to kill your heart. fix: kronkus extract now inflicts heart damage correctly. /🆑 |
||
|
|
7c703fc712 |
Food types are now passed down when cooking from recipes. (#89706)
## About The Pull Request ~~I have some beef with the cooking system.~~ Cooking recipes are coded in a way that disregard the possibility for their components to have different foodtype flags than the ones you would find normally find. For example, if I wanted to make corned beef, but instead of a standard steak, I used a killer tomato "steak", the result would still have the meat food type, even if none of the components has it. I've had to resort to a few hacky lines of code to manipulate the food types from the edible component, but that can be easily fixed if #89687 is merged. ## Why It's Good For The Game This also makes cooking recipes less strict about their food types and can help us spot inconsistencies with recipes. ## Changelog 🆑 qol: Food types are now passed down when cooking from recipes. For example, a plate of corned "beef" made from giant killer tomato slabs no longer counts as meat but only vegetables now. fix: Fixed a metric ton of inconsistencies with food types and recipes. fix: Dank-pockets (the weed variant) can now be microwaved. /🆑 |
||
|
|
5139e4efde |
unblacklists botany fruits and vegetables from unit tests. (#89683)
## About The Pull Request subtypes of `/obj/item/food/grown` have no reason to not be spawned by the `create_and_destroy` unit test, which prevents us from knowing if a type fruit or veggie doesn't have a set seed in the tests. The only path that needs to be blacklisted is the common `/obj/item/food/grown` path itself, since its seed variable needs to remain null so that we can be warned about any subtype that hasn't overriden that value. This PR also removes the `/obj/item/food/grown/shell` path which serves no purpose anymore. ## Why It's Good For The Game Backend improvements. Atomizing changes from my refactor. ## Changelog N/A |
||
|
|
80955ef8ac |
Adds missing apple interactions with jobs (#89715)
## About The Pull Request If you throw an apple at a doctor they will take 2 damage, successfully repelling them for another day. If you throw an apple at a scientist and hit them in the head, there is a small chance that they will suddenly have an impressive scientific insight. This chance is significantly higher if it falls on them from a higher z level, because that's going to happen in about 3 rounds ever. ## Why It's Good For The Game It's how apples work in real life and thus adds to our deep and complex simulation. ## Changelog 🆑 add: Apples now react appropriately if they impact doctors or scientists under the expected circumstances. /🆑 |
||
|
|
87ce43bb8f |
The edible component now uses DUPE_SOURCE mode (#89687)
## About The Pull Request The edible component now uses DUPE_SOURCE mode, which is needed to avoid conflicts between sources. This includes some other tidbits from my refactor like renaming dcs/flags.dm to ds/declarations.dm (in virtue of the fact it doesn't only contain flags anymore even before this PR), meat materials giving protein and fat reagents to affected atoms instead of generic nutriment and oil, and the pizza material no longer containing meat, because margherita pizza, which the material is extracted from, doesn't contain meat either. The pepperonis were magically conjured space bs. ## Why It's Good For The Game There are multiple sources of the edible component and we don't want issues with that. Also atomizing stuff from my refactor. ## Changelog 🆑 balance: objects made out of meat are no longer classified as gross food on top of being raw and meaty, and actually contain protein and fat instead of standard nutriment and oil. balance: the pizza material stacks, crafted with margherita pizza and rollig pin mind you, no longer magically contain pepperoni. /🆑 |
||
|
|
b9c803a9d8 |
Base implementation of /datum/persistent_client (#89449)
Converts `/datum/player_details` into `/datum/persistent_client`. Persistent Clients persist across connections. The only time a mob's persistent client will change is if the ckey it's bound to logs into a different mob, or the mob is deleted (duh). Also adds PossessByPlayer() so that transfering mob control is cleaner and makes more immediate sense if you don't know byond-fu. Clients are an abstract representation of a connection that can be dropped at almost any moment so putting things that should be stable to access at any time onto an undying object is ideal. This allows for future expansions like abstracting away client.screen and managing everything cleanly. |
||
|
|
97a4e1af84 |
Usable hay tiles (#89570)
Dry grass. Collect hay tile. Get floor like in the raptor barn.  If anyone has a better idea for in-game tile & turf descriptions, don't be shy. Coded in Dream Maker 💅 ## About The Pull Request I wanted hay tiles for a while. The closest thing within my grasp was heat-damaged grass tiles.  Tedious and not satisfactory. Then goofball and ben10omnitrix made the raptor PR. Cool! And it has a nice hay turf...  But not usable by the player. I made it usable. ## Why It's Good For The Game Nice decor option. I need this for something sinister. ## Changelog 🆑 add: Grown grass can be dryed (rack/dehumidifier) to make hay tiles. /🆑 |
||
|
|
52d2250fa2 |
The Organ Tree | New Exotic Seed (#89310)
## About The Pull Request 99% of all code was stolen completely from @MrMelbert, like I spent more time waiting for the plant to grow for the video than actually contributing to this Adds a new tree mutation to the shrub (from exo crate) It has a High Complexity Gene, which halves the harvest and blocks pollination benefits. It produces podperson organs and limbs. Limbs are twice as likely to drop as organs (because there's a lot more organs). It can also drop plant meat. https://github.com/user-attachments/assets/88bb89dd-4cd7-4bc9-ac2f-f4c67a5ea9ff (Yes the sprite is mine please don't bully Melbert for it) Podpeople now also have their own set of organs, which are mostly just standard organs but colored green. ## Why It's Good For The Game Gives us another source of organs and limbs besides the limb grower, exosuit fab and medical protolathe. Those only produce organic and robotic organs and limbs, but now we can also produce plant organ and limbs! (Without committing horrible crimes). This also synergizes well with #89306 , which makes it so plant bodyparts have actual unique benefits (more than just a fashion statement). ## Changelog 🆑 MrMelbert, Time-Green add: Adds an organ tree as a mutation of shrubs (from the exotic seeds crate)! Spare organs have never been so green! /🆑 --------- Co-authored-by: MrMelbert <kmelbert4@gmail.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
9154e28668 |
unblacklists botany fruits and vegetables from unit tests. (#89683)
## About The Pull Request subtypes of `/obj/item/food/grown` have no reason to not be spawned by the `create_and_destroy` unit test, which prevents us from knowing if a type fruit or veggie doesn't have a set seed in the tests. The only path that needs to be blacklisted is the common `/obj/item/food/grown` path itself, since its seed variable needs to remain null so that we can be warned about any subtype that hasn't overriden that value. This PR also removes the `/obj/item/food/grown/shell` path which serves no purpose anymore. ## Why It's Good For The Game Backend improvements. Atomizing changes from my refactor. ## Changelog N/A |
||
|
|
85e010145c |
Adds missing apple interactions with jobs (#89715)
## About The Pull Request If you throw an apple at a doctor they will take 2 damage, successfully repelling them for another day. If you throw an apple at a scientist and hit them in the head, there is a small chance that they will suddenly have an impressive scientific insight. This chance is significantly higher if it falls on them from a higher z level, because that's going to happen in about 3 rounds ever. ## Why It's Good For The Game It's how apples work in real life and thus adds to our deep and complex simulation. ## Changelog 🆑 add: Apples now react appropriately if they impact doctors or scientists under the expected circumstances. /🆑 |
||
|
|
da31ea158c |
The edible component now uses DUPE_SOURCE mode (#89687)
## About The Pull Request The edible component now uses DUPE_SOURCE mode, which is needed to avoid conflicts between sources. This includes some other tidbits from my refactor like renaming dcs/flags.dm to ds/declarations.dm (in virtue of the fact it doesn't only contain flags anymore even before this PR), meat materials giving protein and fat reagents to affected atoms instead of generic nutriment and oil, and the pizza material no longer containing meat, because margherita pizza, which the material is extracted from, doesn't contain meat either. The pepperonis were magically conjured space bs. ## Why It's Good For The Game There are multiple sources of the edible component and we don't want issues with that. Also atomizing stuff from my refactor. ## Changelog 🆑 balance: objects made out of meat are no longer classified as gross food on top of being raw and meaty, and actually contain protein and fat instead of standard nutriment and oil. balance: the pizza material stacks, crafted with margherita pizza and rollig pin mind you, no longer magically contain pepperoni. /🆑 |
||
|
|
a0e862d575 |
Base implementation of /datum/persistent_client (#89449)
## About The Pull Request Converts `/datum/player_details` into `/datum/persistent_client`. Persistent Clients persist across connections. The only time a mob's persistent client will change is if the ckey it's bound to logs into a different mob, or the mob is deleted (duh). Also adds PossessByPlayer() so that transfering mob control is cleaner and makes more immediate sense if you don't know byond-fu. ## Why It's Good For The Game Clients are an abstract representation of a connection that can be dropped at almost any moment so putting things that should be stable to access at any time onto an undying object is ideal. This allows for future expansions like abstracting away client.screen and managing everything cleanly. |