mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-11 08:06:33 +01:00
docker-container
338 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
f601a6ddaf | Merge remote-tracking branch 'tgstation/master' into upstream-6-2-2026 | ||
|
|
b952f0ac4d | Fixes spilled flour not containing any flour (#96265) | ||
|
|
21b4095dfd |
[MDB IGNORE] [IDB IGNORE] Upstream Sync - 04/17/2026 (#5453)
Upstream 04/17/2026 fixes https://github.com/Bubberstation/Bubberstation/issues/5549 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com> Co-authored-by: rageguy505 <54517726+rageguy505@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com> Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Co-authored-by: Maxipat <108554989+Maxipat112@users.noreply.github.com> Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com> Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com> Co-authored-by: loganuk <fakeemail123@aol.com> Co-authored-by: Leland Kemble <70413276+lelandkemble@users.noreply.github.com> Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com> Co-authored-by: Lucy <lucy@absolucy.moe> Co-authored-by: siliconOpossum <138069572+siliconOpossum@users.noreply.github.com> Co-authored-by: Isratosh <Isratosh@hotmail.com> Co-authored-by: TheRyeGuyWhoWillNowDie <70169560+TheRyeGuyWhoWillNowDie@users.noreply.github.com> Co-authored-by: Neocloudy <88008002+Neocloudy@users.noreply.github.com> Co-authored-by: Alexander V. <volas@ya.ru> Co-authored-by: ElGitificador <168473461+ElGitificador@users.noreply.github.com> Co-authored-by: Twaticus <46540570+Twaticus@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: Cameron Lennox <killer65311@gmail.com> Co-authored-by: Tim <timothymtorres@gmail.com> Co-authored-by: Iamgoofball <iamgoofball@gmail.com> Co-authored-by: Layzu666 <121319428+Layzu666@users.noreply.github.com> Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com> Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com> Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: John F. Kennedy <54908920+MacaroniCritter@users.noreply.github.com> Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com> Co-authored-by: Josh <josh.adam.powell@gmail.com> Co-authored-by: Josh Powell <josh.powell@softwire.com> Co-authored-by: Yobrocharlie <Charliemiller5617@gmail.com> Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com> Co-authored-by: shayoki <96078776+shayoki@users.noreply.github.com> Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com> |
||
|
|
5511bda793 |
Carnivorous Blood : A new DNA-targeting traitor chemical that eats away at your bloodstream (#95915)
## About The Pull Request Adds a new chemical: Carnivorous Blood. This chemical is acquirable via traitor uplinks, at the cost of 3 telecrystals for a 30 unit bottle. This chemical's purpose is to eat blood. When it enters its victim's bloodstream, it begins consuming their blood at a base rate of 2 units per second, consuming itself at a rate of 0.3 units per second. This means that a dose of 15 units of it will consume roughly 14% of its victim's bloodstream over the course of roughly a minute. That isn't anything to call home over, obviously. This is because you are supposed to pair it first. To pair it, you acquire a blood sample from your chosen victim, in any form that retains their intact DNA. You mix this with the carnivorous blood, and the blood is now three times as effective inside that specific person(or anyone sharing their DNA). The paired version, assuming a dose of a full 15 units that is allowed to fully metabolize, will take the paired victim's blood down to roughly 55% over the course of roughly a minute(assuming nothing is impairing or improving the person's natural blood regeneration). This is just slightly less than is required to knock out a victim from just blood loss, but is certainly enough to significantly impair them. (Up to three sets of DNA can be paired with a single set of carnivorous blood. It cannot be de-paired in any useful way.) Additionally, the chemical is twice as effective in the dead, allowing one fifteen unit dose to fully drain a paired person of their blood. The chemical can be duplicated using protein. As a necessity in order to let the thing be used how I want it to be used, this also makes it so that blood taken off the ground out of bloodstains has DNA(unique enzymes) in with it. As it'd be absurd to track how much of each specific DNA was in each specific bloodstain for just this purpose, and because blood(the reagent) can only have one set of DNA within it, it's been made such that the DNA you get from blood taken from bloodstains is a random pick of the DNA present within the bloodstain. If you don't get pure blood, you might not get what you want. ## Why It's Good For The Game A reasonably powerful traitor item that requires not just preparation on your part, but INVOLVED preparation. The chemical itself is fairly cheap(and could probably be cheaper but I'm being safe), but to get your benefit you have to actually involve yourself with your target. Hurt them a little bit, telegraphing yourself, or lurk around them until a carp bites them and they leave their blood on the floor. Get them in a rage cage, run a blood drive, whatever. There's a lot of ways to get someone's blood, but all of them require active involvement, and I think that that, on its own, will lead to interesting situations. Also, side benefit that isn't really material but is worth mentioning anyway, finding a body with no blood is currently absolute 100% no holds barred completely airtight proof of bloodworms unless some psychopath manually took a million years to slowly drain their blood manually. As one dose completely drains a dead person, this provides an alternate theory and reasonable means of faking. Balance-wise, I say this every feature PR I make, but I don't think this will be a problem. The chemical basically necessitates putting yourself at risk in order to set it up, and is not a one-hit-kill. That is more than can be said for several other crew-obtainable chemicals, BUT the benefit of this chemical is that it takes a very long time to recover from naturally. If someone succeeds the lexorin knowledge check and survives, the oxygen damage goes away in a flash. Losing half your blood takes an extremely long time to recover from naturally(and specific items to recover from quickly), and leaves you quite vulnerable in the meantime. ## Changelog 🆑 add: Added a new traitor item, Carnivorous Blood. It is purchasable in uplinks. Carnivorous Blood is a reagent that eats away at a victim's blood once in their bloodstream, doing so significantly faster if it has been mixed with the victim's blood beforehand. /🆑 |
||
|
|
0c91535120 | Arcmining: Chemical Boosting (#95530) | ||
|
|
7403600454 |
Lavaland relics from boulders now have more appropriate effects (#95261)
## About The Pull Request ### Main changes Lavaland relics from boulders have a (mostly) unique suite of random effects, differentiating them from normal station relics <Details> <Summary>Spoiler Effect list</Summary> - Dimensional shift (same as normal) - Summon monsters (Summon animals, but Lavaland/Cult creatures, has a high chance of deleting itself.) - Explode (same as normal) - Low potency shield (When holding the relic, you get a shield that blocks three normal attacks.) - High potency shield (When holding the relic, you get a shield that blocks one normal or overpowering attack.) - Random teleport (same as normal) - Random AOE teleport (Cult themed version of normal teleport that affects all nearby objects/mobs. Blocked by antimagic, has a low chance of deleting itself) - Recharge (same as normal) - Rockfall (Places rock turfs over nearby open turfs. These are weak, ie they can be hand-mined. Stuns anyone caught in it, has a chance of deleting itself) - Blood spray (Consumes a chunk of the user's blood and sprays blood around. Has a chance of swapping to Blood suck) - Blood suck (Consumes a chuck of all nearby mob's blood and transfers it to the user. Blocked by antimagic. Has a chance of swapping to Blood spray) - Cleaning foam (same as normal) - Acid cleaning foam (spawn an ez-clean grenade, has a high chance of deleting itself.) </Details> ### Other changes Relics spawned from gifts (ie Christmas) auto-reveal themselves Blood sprays won't merge with each other Better documentation, and relics now uses `deconstruct` when terminating itself ## Why It's Good For The Game - The flavor behind these cursed and cultish relics doing the same thing as the cobbled together electronics found in maint is kinda weak. 90% of the time I see them abandoned in a pile in mining. More flavorful and potent effects may make people decide to investigate them more. - The gift thing was just a fun random idea I had. Allows people to play with their new toy immediately. ## Changelog 🆑 Melbert add: Relics found from cracking boulders now have a (mostly) unique set of mining and cultish related effects. add: Relics found in gift boxes no longer need to be discovered first in science. /🆑 |
||
|
|
b42ebeb4c2 |
Adjusts all get_temperature() accesses to compare it to a value (#95236)
## About The Pull Request ``get_temperature()`` returns a value in kelvins, not a boolean. Trying to treat it as such will result in ***any*** item with a thermal value, like condensers, being treated as a lighter. ## Why It's Good For The Game Consistency, allows us to have actually functioning cooling items that don't act like lighters all the time. ## Changelog 🆑 fix: Condensers can no longer be used to ignite things /🆑 |
||
|
|
00ccf0c6b5 |
Merge remote-tracking branch 'tgstation/master' into upstream-feb12-2026
# Conflicts: # .github/CODEOWNERS # .github/workflows/compile_changelogs.yml # .github/workflows/stale.yml # SQL/database_changelog.md # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # code/__DEFINES/atom_hud.dm # code/__DEFINES/inventory.dm # code/__DEFINES/mobs.dm # code/__DEFINES/species_clothing_paths.dm # code/__DEFINES/subsystems.dm # code/__DEFINES/surgery.dm # code/__HELPERS/global_lists.dm # code/_globalvars/lists/maintenance_loot.dm # code/_globalvars/traits/_traits.dm # code/controllers/subsystem/minor_mapping.dm # code/controllers/subsystem/processing/quirks.dm # code/controllers/subsystem/shuttle.dm # code/datums/components/palette.dm # code/datums/components/surgery_initiator.dm # code/datums/diseases/advance/advance.dm # code/datums/hud.dm # code/datums/mood.dm # code/datums/mutations/chameleon.dm # code/datums/quirks/negative_quirks/nyctophobia.dm # code/datums/status_effects/debuffs/debuffs.dm # code/datums/status_effects/debuffs/drunk.dm # code/datums/status_effects/debuffs/slime/slime_leech.dm # code/datums/weather/weather.dm # code/game/data_huds.dm # code/game/objects/items.dm # code/game/objects/items/devices/scanners/health_analyzer.dm # code/game/objects/items/frog_statue.dm # code/game/objects/items/rcd/RLD.dm # code/game/objects/items/robot/items/hypo.dm # code/game/objects/items/stacks/medical.dm # code/game/objects/items/stacks/wrap.dm # code/game/objects/items/storage/garment.dm # code/game/objects/items/tools/medical/defib.dm # code/game/objects/items/weaponry.dm # code/game/objects/items/weaponry/melee/misc.dm # code/game/objects/structures/crates_lockers/closets/secure/security.dm # code/game/objects/structures/curtains.dm # code/game/objects/structures/dresser.dm # code/game/objects/structures/girders.dm # code/game/objects/structures/maintenance.dm # code/game/objects/structures/mirror.dm # code/modules/admin/greyscale_modify_menu.dm # code/modules/admin/verbs/light_debug.dm # code/modules/antagonists/ashwalker/ashwalker.dm # code/modules/antagonists/heretic/knowledge/starting_lore.dm # code/modules/antagonists/ninja/ninjaDrainAct.dm # code/modules/art/paintings.dm # code/modules/client/preferences.dm # code/modules/client/verbs/ooc.dm # code/modules/clothing/head/wig.dm # code/modules/events/disease_outbreak.dm # code/modules/holodeck/holo_effect.dm # code/modules/jobs/job_types/head_of_security.dm # code/modules/jobs/job_types/security_officer.dm # code/modules/library/skill_learning/generic_skillchips/point.dm # code/modules/mining/lavaland/ash_flora.dm # code/modules/mining/lavaland/mining_loot/megafauna/ash_drake.dm # code/modules/mob/dead/new_player/new_player.dm # code/modules/mob/living/basic/guardian/guardian.dm # code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm # code/modules/mob/living/carbon/carbon.dm # code/modules/mob/living/carbon/human/human.dm # code/modules/mob/living/carbon/human/human_defines.dm # code/modules/mob/living/carbon/life.dm # code/modules/mob/living/living.dm # code/modules/mob/living/living_defines.dm # code/modules/mob/mob.dm # code/modules/mob_spawn/ghost_roles/mining_roles.dm # code/modules/mod/mod_control.dm # code/modules/mod/modules/modules_general.dm # code/modules/modular_computers/computers/item/computer_ui.dm # code/modules/paperwork/paper.dm # code/modules/paperwork/paperbin.dm # code/modules/power/lighting/light.dm # code/modules/projectiles/guns/energy/kinetic_accelerator.dm # code/modules/projectiles/projectile.dm # code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm # code/modules/reagents/chemistry/reagents/food_reagents.dm # code/modules/reagents/chemistry/reagents/other_reagents.dm # code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm # code/modules/research/xenobiology/crossbreeding/_clothing.dm # code/modules/research/xenobiology/crossbreeding/prismatic.dm # code/modules/surgery/advanced/brainwashing.dm # code/modules/surgery/advanced/lobotomy.dm # code/modules/surgery/amputation.dm # code/modules/surgery/blood_filter.dm # code/modules/surgery/bodyparts/_bodyparts.dm # code/modules/surgery/brain_surgery.dm # code/modules/surgery/cavity_implant.dm # code/modules/surgery/coronary_bypass.dm # code/modules/surgery/gastrectomy.dm # code/modules/surgery/healing.dm # code/modules/surgery/limb_augmentation.dm # code/modules/surgery/organ_manipulation.dm # code/modules/surgery/revival.dm # code/modules/surgery/sleeper_protocol.dm # code/modules/surgery/surgery_helpers.dm # code/modules/surgery/surgery_step.dm # code/modules/unit_tests/_unit_tests.dm # code/modules/unit_tests/designs.dm # code/modules/unit_tests/icon_state_worn.dm # code/modules/unit_tests/screenshots/screenshot_antag_icons_cultist.png # code/modules/unit_tests/screenshots/screenshot_antag_icons_headrevolutionary.png # code/modules/unit_tests/screenshots/screenshot_antag_icons_provocateur.png # code/modules/unit_tests/screenshots/screenshot_husk_body.png # code/modules/unit_tests/screenshots/screenshot_husk_body_missing_limbs.png # icons/map_icons/clothing/head/_head.dmi # icons/map_icons/clothing/shoes.dmi # icons/map_icons/items/_item.dmi # icons/mob/huds/hud.dmi # icons/mob/inhands/64x64_lefthand.dmi # icons/mob/inhands/64x64_righthand.dmi # icons/obj/machines/computer.dmi # tgui/packages/tgui/interfaces/OperatingComputer.jsx # tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/MainPage.tsx # tgui/packages/tgui/interfaces/PreferencesMenu/types.ts # tgui/packages/tgui/interfaces/SurgeryInitiator.tsx # tools/icon_cutter/check.py |
||
|
|
f58b8511f0 |
Refactors effect_system (#94999)
## About The Pull Request This PR refactors ``effect_system``s to be a bit easier to use by getting rid of ``set_up``, allowing ``attach()`` to be chained into ``start()`` and refactoring most direct system usages in our code to use helper procs. ``set_up`` was unnecessary and only existed to allow ``New``'s behavior to be fully overriden, which is not required if we split sparks/lightning/steam into a new ``/datum/effect_system/basic`` subtype which houses the effect spreading behavior. This allows us to roll all logic from ``set_up`` into ``New`` and cut down on code complexity. Chaining setup as ``system.attach(src).start()`` also helps a bit in case no helper method exists I've added ``do_chem_smoke`` and ``do_foam`` helpers, which respectively allow chemical smoke or foam to be spawned easily without having to manually create effect datums and reagent holders. Also turns out we've had some nonfunctional effect systems which either never set themselves up, or never started, so I fixed those while I was at it (mostly by moving them to aforementioned helper procs) ## Why It's Good For The Game Cleaner code, makes it significantly easier for users to work with. Also most of our effect system usage was copypasta which was passing booleans as numbers, while perfectly fine helper procs existed in our code. ## Changelog 🆑 refactor: Refactored sparks, foam, smoke, and other miscellaneous effect systems. refactor: Vapes now have consistent rigging with cigs using the new system. fix: Fixed some effects never working. /🆑 |
||
|
|
baf3837ae8 |
Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts: # _maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm # _maps/RandomRuins/SpaceRuins/garbagetruck2.dmm # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # _maps/map_files/tramstation/tramstation.dmm # code/_onclick/hud/new_player.dm # code/datums/components/squashable.dm # code/datums/diseases/advance/symptoms/heal.dm # code/datums/diseases/chronic_illness.dm # code/datums/status_effects/buffs.dm # code/datums/status_effects/debuffs/drunk.dm # code/datums/status_effects/debuffs/stamcrit.dm # code/game/machinery/computer/crew.dm # code/game/objects/items/devices/scanners/health_analyzer.dm # code/game/objects/items/wall_mounted.dm # code/game/turfs/closed/indestructible.dm # code/modules/admin/view_variables/filterrific.dm # code/modules/antagonists/heretic/influences.dm # code/modules/cargo/orderconsole.dm # code/modules/client/preferences.dm # code/modules/events/space_vines/vine_mutations.dm # code/modules/mob/dead/new_player/new_player.dm # code/modules/mob/living/carbon/human/death.dm # code/modules/mob/living/carbon/human/species_types/jellypeople.dm # code/modules/mob/living/damage_procs.dm # code/modules/mob/living/living.dm # code/modules/mob_spawn/ghost_roles/mining_roles.dm # code/modules/mob_spawn/mob_spawn.dm # code/modules/projectiles/ammunition/energy/laser.dm # code/modules/projectiles/guns/ballistic/launchers.dm # code/modules/projectiles/guns/energy/laser.dm # code/modules/reagents/chemistry/machinery/chem_dispenser.dm # code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm # code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm # code/modules/reagents/chemistry/reagents/medicine_reagents.dm # code/modules/surgery/healing.dm # code/modules/unit_tests/designs.dm # icons/mob/inhands/items_lefthand.dmi # icons/mob/inhands/items_righthand.dmi # tgui/packages/tgui/interfaces/ChemDispenser.tsx |
||
|
|
73153cafe4 |
Welding fuel is no longer ignited by kisses. (#94009)
Achieves this by requiring the projectile to do damage to ignite. ## About The Pull Request Achieves this by requiring the projectile to do damage to ignite. ## Why It's Good For The Game Closes #93990 ## Changelog 🆑 fix: Fixes welding fuel being ignited by kisses. /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com> |
||
|
|
1d5e34274c |
Fix footprint emissives (#94001)
## About The Pull Request I don't really know why you can't set the dir of a MA after it's created but copying the appearance to an image fixes it ## Changelog 🆑 Melbert fix: Glowing bloody footprints looks less weird /🆑 |
||
|
|
71faa643bf | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-12 | ||
|
|
c36bcabe8b |
Non-tiled floor dont have tiled water overlays (#93853)
## About The Pull Request changes tiled_dirt to just tiled_turf and expands its use slightly to be the "i have a 2x2 tile sprite" <img width="864" height="691" alt="image" src="https://github.com/user-attachments/assets/78a7ba96-fffe-42e1-9eef-35b96b22481b" /> https://github.com/user-attachments/assets/7a273302-a331-48b2-a06f-d65bddf13bfd ## Why It's Good For The Game its silly for things that arent visually tiled to use the tiled water sprite ## Changelog 🆑 fix: stuff like carpet and wood tiles dont use the 2x2 tiled sprite fix: similarly, floors that dont use the tiled sprite now can have permafrost sprites (as they are not tiled) /🆑 |
||
|
|
d0ca474789 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-05 | ||
|
|
9df1ff28ef |
Makes soda cans explode when exposed at low pressure. (#93571)
## About The Pull Request Fun idea discussed on the discord. At low pressure, cans of soda will burst at 67.458 kPa, which is WAY higher than I would have expected, but that may just say something about the construction of the average can of soda. ## Why It's Good For The Game Fun little realism feature, which I found amusing enough for a quick 15 minute project. Only applies to cans that are actually exposed to atmos, so a held can while in space or in the bag won't trigger this reaction. ## Changelog 🆑 add: Leaving a can of soda exposed to the elements at low pressure will now burst. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
e28e9fbdba | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-23-10-2025 | ||
|
|
3183f532c7 |
Changez vomit drinking from checking for flyperzon to checking for fly mouth (#93554)
## About The Pull Request Changes the vomit drinking check to check the mob's mouth instead of species. (You still need a flyperson stomach to turn food into vomit) ## Why It's Good For The Game Being a dizzzguzzzting freak of tele-zzzcience doezzzn't only mean being a buzzing eyezore of a menaze to the ztation. One azzpect of thizzz izz the way one feedz. You uzze your teeth to chew your food, a fly should thuzz use their probozziz to zuck up their food, not their ztatuz as a flyperzzon to do it (even when they are mizzing a fly mouth!). Thiz also makez the interaction fit better with the action dezzcription for it. ## Changelog 🆑 balance: Vomit drinking now checks for fly mouth instead of fly species /🆑 --------- Co-authored-by: tonty <39193182+tontyGH@users.noreply.github.com> |
||
|
|
5e629dff04 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync | ||
|
|
3ea7b03369 |
Accentuate the positive with **Personality**: A (soft) mood rework (#92941)
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> |
||
|
|
6618c9d694 |
Misc File Purge: The Return (#92438)
## About The Pull Request Purged several files inthe theme of misc.dm and broken the contents out into better organised files. Incidentally done some minor cleanup by removing an unused global list referring to a string file that no-longer exists, and removing a useless proc that replicated the behaviour of file2list(). ## Why It's Good For The Game See #60358 and all its successors ## Changelog 🆑 code: Reduced the number of files named misc.dm or similar by 14%. /🆑 # Conflicts: # code/_globalvars/lists/flavor_misc.dm |
||
|
|
7c6e6422cc |
Misc File Purge: The Return (#92438)
## About The Pull Request Purged several files inthe theme of misc.dm and broken the contents out into better organised files. Incidentally done some minor cleanup by removing an unused global list referring to a string file that no-longer exists, and removing a useless proc that replicated the behaviour of file2list(). ## Why It's Good For The Game See #60358 and all its successors ## Changelog 🆑 code: Reduced the number of files named misc.dm or similar by 14%. /🆑 |
||
|
|
53f198a61d |
Implements (a poor imitation of) speculars, improves/fixes unrestricted access overlay lights (#92272)
## About The Pull Request
Implements a poor imitation of specular surfaces by encoding "shinyness"
into blue channel of emissive overlays, which allows some pixels to be
more illuminated than others (by applying lighting multiplied by
specular mask onto them a second time)
This means that hazard vests, engineering coats, security jackets and
firefighter suits no longer outright glow in the dark, but instead
amplify light so even the tiniest amounts make them highly visible. I
made a pass through all of our emissive overlays and converted ones that
made sense into bloom-less/specular ones.
https://github.com/user-attachments/assets/2167e26e-f8b8-42d7-a67c-dfc643e1df29
I've also converted unrestricted access airlock overlays into overlay
lights instead of ABOVE_LIGHTING overlays, so they should no longer look
jank or catch people's clicks.
<img width="297" height="262" alt="dreamseeker_LovPHZ7xHQ"
src="https://github.com/user-attachments/assets/1bf4d7b8-219a-41ed-aee9-6cdc41803e21"
/>
Turns out that windoors had incorrect icon states assigned to theirs, so
I fixed that too - they should show up again after god knows how many
years.
## Why It's Good For The Game
~~Shiny lights make my moth brain go happy~~
Neat visual effects that look more believable than neon glowing stripes,
and airlocks no longer have inflated hitboxes with extremely weird
visuals.
## Changelog
🆑
add: Added specular overlays - some items like hazard vests or
firefighter suits no longer outright glow in the dark, but instead
amplify existing light to shine brighter than their surroundings.
add: Redid unrestricted access airlock overlays to look less bad
fix: Fixed unrestricted access overlays not showing up on windoors.
/🆑
(cherry picked from commit
|
||
|
|
1db39e2a64 |
Fixes topdown emissives/emissive blockers and blood trail rendering (#92430)
## About The Pull Request
Fixes this
<img width="983" height="591" alt="zen_Mhqh2OqiU4"
src="https://github.com/user-attachments/assets/b3275052-1b24-404b-82bc-a4c8e88bdbcf"
/>
This code is mildly bad, but this is the best way we can fix FLOAT_LAYER
topdown emissives/blockers rendering ontop of everything else.
Also added logging/unit testing for blood trails spawned outside of
holders, mappers can use holders to spawn trails (which is the right way
to add them to your maps)
## Changelog
🆑
fix: Fixed blood/glass floor glow going over objects
/🆑
(cherry picked from commit
|
||
|
|
3d730689f4 |
Implements (a poor imitation of) speculars, improves/fixes unrestricted access overlay lights (#92272)
## About The Pull Request Implements a poor imitation of specular surfaces by encoding "shinyness" into blue channel of emissive overlays, which allows some pixels to be more illuminated than others (by applying lighting multiplied by specular mask onto them a second time) This means that hazard vests, engineering coats, security jackets and firefighter suits no longer outright glow in the dark, but instead amplify light so even the tiniest amounts make them highly visible. I made a pass through all of our emissive overlays and converted ones that made sense into bloom-less/specular ones. https://github.com/user-attachments/assets/2167e26e-f8b8-42d7-a67c-dfc643e1df29 I've also converted unrestricted access airlock overlays into overlay lights instead of ABOVE_LIGHTING overlays, so they should no longer look jank or catch people's clicks. <img width="297" height="262" alt="dreamseeker_LovPHZ7xHQ" src="https://github.com/user-attachments/assets/1bf4d7b8-219a-41ed-aee9-6cdc41803e21" /> Turns out that windoors had incorrect icon states assigned to theirs, so I fixed that too - they should show up again after god knows how many years. ## Why It's Good For The Game ~~Shiny lights make my moth brain go happy~~ Neat visual effects that look more believable than neon glowing stripes, and airlocks no longer have inflated hitboxes with extremely weird visuals. ## Changelog 🆑 add: Added specular overlays - some items like hazard vests or firefighter suits no longer outright glow in the dark, but instead amplify existing light to shine brighter than their surroundings. add: Redid unrestricted access airlock overlays to look less bad fix: Fixed unrestricted access overlays not showing up on windoors. /🆑 |
||
|
|
ea0fa299c4 |
Fixes topdown emissives/emissive blockers and blood trail rendering (#92430)
## About The Pull Request Fixes this <img width="983" height="591" alt="zen_Mhqh2OqiU4" src="https://github.com/user-attachments/assets/b3275052-1b24-404b-82bc-a4c8e88bdbcf" /> This code is mildly bad, but this is the best way we can fix FLOAT_LAYER topdown emissives/blockers rendering ontop of everything else. Also added logging/unit testing for blood trails spawned outside of holders, mappers can use holders to spawn trails (which is the right way to add them to your maps) ## Changelog 🆑 fix: Fixed blood/glass floor glow going over objects /🆑 |
||
|
|
e7c25d4c40 |
The Glitterening (#92226)
## About The Pull Request Adds a number of new capabilities to glitter. - It can be any colour. <img width="657" height="398" alt="image" src="https://github.com/user-attachments/assets/60e80c04-8eee-470c-8953-47f6eda9f83e" /> - It can be made in chemistry and dyed by combining it with acetone and other reagents to give it the average colour of the non-glitter, not-acetone reagents. - Multiple colours can be mixed into one reagent datum, randomly depositing a colour from those in the datum on the floor. <img width="554" height="507" alt="image" src="https://github.com/user-attachments/assets/9cc7d1d5-9bec-4b28-af06-310ffb24de49" /> - Anyone with glitter reagent in them will cough glitter onto the floor - Glittery crates will leave a trail of appropriately coloured glitter when moved <img width="960" height="259" alt="image" src="https://github.com/user-attachments/assets/71cc1176-23f9-4ae7-b500-1744b752c014" /> Resprited glitter to support these changes and make it not look like gas (or ass). ## Why It's Good For The Game It looks cool and raises the bar for chemists maximally pissing off the janitor as they fill a room with multicoloured glitter and all the occupants run off to cough more up all over the surrounding area. ## Changelog 🆑 add: Glitter can now be made from plastic polymers and aluminium. add: Plastic polymer can be made at any temperature, and then heated to produce sheets. add: Glitter can now be made any colour, mix 10 units each of glitter and acetone to change its colour to that of the other reagents in the beaker. add: Mixing different colours of glitter will cause a random selection of those colours to appear on the floor when released. add: Being exposed to glitter in reagent form causes you to cough up more glitter onto the floor add: Dragging glittery crates will now spread a trail of glitter and angry janitors behind them. image: Added new glitter sprites (that don't look like gasses) /🆑 |
||
|
|
d97c57b263 |
The Glitterening (#92226)
## About The Pull Request Adds a number of new capabilities to glitter. - It can be any colour. <img width="657" height="398" alt="image" src="https://github.com/user-attachments/assets/60e80c04-8eee-470c-8953-47f6eda9f83e" /> - It can be made in chemistry and dyed by combining it with acetone and other reagents to give it the average colour of the non-glitter, not-acetone reagents. - Multiple colours can be mixed into one reagent datum, randomly depositing a colour from those in the datum on the floor. <img width="554" height="507" alt="image" src="https://github.com/user-attachments/assets/9cc7d1d5-9bec-4b28-af06-310ffb24de49" /> - Anyone with glitter reagent in them will cough glitter onto the floor - Glittery crates will leave a trail of appropriately coloured glitter when moved <img width="960" height="259" alt="image" src="https://github.com/user-attachments/assets/71cc1176-23f9-4ae7-b500-1744b752c014" /> Resprited glitter to support these changes and make it not look like gas (or ass). ## Why It's Good For The Game It looks cool and raises the bar for chemists maximally pissing off the janitor as they fill a room with multicoloured glitter and all the occupants run off to cough more up all over the surrounding area. ## Changelog 🆑 add: Glitter can now be made from plastic polymers and aluminium. add: Plastic polymer can be made at any temperature, and then heated to produce sheets. add: Glitter can now be made any colour, mix 10 units each of glitter and acetone to change its colour to that of the other reagents in the beaker. add: Mixing different colours of glitter will cause a random selection of those colours to appear on the floor when released. add: Being exposed to glitter in reagent form causes you to cough up more glitter onto the floor add: Dragging glittery crates will now spread a trail of glitter and angry janitors behind them. image: Added new glitter sprites (that don't look like gasses) /🆑 |
||
|
|
624093cd02 |
Fixes gibs not containing any actual gibs in them (#92110)
## About The Pull Request Also fixes the issue where some empty decals (like dry gibs) claim that the beaker is full when you try picking them up. Closes #91831 Closes #91486 ## Changelog 🆑 fix: Fixed gibs not containing any actual gibs in them /🆑 --------- Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> |
||
|
|
a09fe2765e |
Fixes gibs not containing any actual gibs in them (#92110)
## About The Pull Request Also fixes the issue where some empty decals (like dry gibs) claim that the beaker is full when you try picking them up. Closes #91831 Closes #91486 ## Changelog 🆑 fix: Fixed gibs not containing any actual gibs in them /🆑 --------- Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> |
||
|
|
2dbbe4f41d |
Voidwalker Rework | Basic Mob Edition + Bonus Antag (#91646)
Reworks the Voidwalker into a basic mob, including a lot of the balance and mechanics! Old (left), new (right)  https://github.com/user-attachments/assets/22d6138f-11aa-4f7a-8600-2565e6578bcf (little outdated) https://youtu.be/cp1E3qPJGX4 (high res mirror) **🟨Voidwalker mob changes🟨** No longer a human species and no more void eater. Instead deals damage by simple unarmed attacks. Instead of dealing brute, the voidwalker does oxygen damage (4-5 hits to knock out) with left-click, and slight brute on right click. Non-human mobs automatically take brute damage instead of oxygen damage. 150 HP 33% burn armor Yes it has hands, but it can only pick up and drop stuff **🟨Window phase🟨**  Instead of needing to smash a window with the void eater, moving through windows simply leaves them passable for 5 seconds. Makes kidnapping a lot easier, but also makes it easier for people to chase you People who used the voided skull also leave windows passable for a short bit. **🟩Cosmic Charge🟩** Standard charge ability, but only lets you charge towards space and works while dragging people **🟩The Vomitwalker🟩** People you kidnapped now occasionally do the nebula vomit, which voidwalkers can use to dive from and into  Diving into it is very fast but also removes the nebula vomit. You can also kidnap people into the vomit (this doesn't remove the vomit). There is also a little UI for tracking this. Clicking it while in space dive teleports you to the next nebula vomit, if there are any.  **🟨Voided people changes🟨** Kidnapped people and people that used the cosmic skull are no longer muted, but take 10% extra brute and occasionally leave behind glass shards when taking a lot of damage. Are no longer obliterated on a second encounter with voidwalkers. Voidwalkers can't hurt people they've already voided (unless they really want to), but instead just knock them out for 30s Also the kidnapped do space vomit as I said earlier. **🟩Sunwalker🟩** Voidwalker variant made for pure murderbone. Has no camo and kindap mechanics, but has a fiery charge, loads of damage and area igniting and people ignition. It's admin, but I might change this later once I've had some more time to think about it.  Other changes: - Voidwindows no longer need to be space adjacent - Unsettle works faster but can't be used in combat anymore - Space camo now grants complete space invisibility - Makes a lot of aspects easily moddable, so we can easily mod it into a moistwalker in-game - Taking a cosmic skull when you already used one gives you the old voidwalker void eater arm. Additional uses just gives you more void eater arms until you run out of hands - I definitely forgot a lot more - I made a cool voidwalker hud! It even has a unique space camo toggle <details> <summary>Lot of text</summary> Voidwalker was basically a snowflaked toghether human species because I didn't know how to sprite, but I was able to work with species and visual effects. Then I realized I can just commission sprites! This also let me just cut out a lot of the snowflake code, because it's no longer a human so half the things I didn't want them to be able to do, they just literally cannot do. Voidwalkers were in a bit of strange spot with kidnapping? There was essentially no incentive, other than "smash spaceman = funny". They also had issues doing, anything? There's surprisingly little space on a space station, especially maps such as tram. Making the voided victims have nebula vomit gives the voidwalker a reason to WANT to kidnap, by giving them a way to appear basically anywhere on the station. I don't think it's too overpowered. Voided people don't vomit that much, it's easily cleanable and diving into it removes them, so they're limited usability. Replacing the brute damage with oxygen damage also kinda... just makes sense? I seriously contemplated letting them do stamina damage for the first iteration, but opted not to do it because stamina damage has so many hooks attached. Oxygen damage doesn't! It's also just incredibly thematic, let's them bypass most armor and makes them more suited to non-letha kidnappings. Space camo making them completely invisible was also long overdue. It was literally just urging people to turn up their gamma and turn down their parallax settings. I thought it was an interesting mechanic, but it's just straight up unfair and doesn't belong in a multiplayer game. They now more frequently leave behind little glass shards, leave particles from nebula vomit they leave from and have more unique sound effects, so attentive (and lucky) people can still deduce if an area is safe-ish. I removed being able to shatter voided people because the mechanic was deeply misunderstood. It was intended to give them a means of removing people if they kept incessently bothering the voidwalker, but people went out of their way to use this to roundremove people they had already voided. The 30s sleep conveys my intention a lot better, and fits better now that the voidwalker benefits from having as many voided people vomitting all over the place. The cosmic charge gives them some much needed survivability. My experiences (in observing voidwalkers, I can never get the roll ;_;) is that they're constantly one mistake away from complete obliteration. The cosmic charge let's them get out quick despite their slow movement speed in gravity. It also makes them stronger when fighting in space. They got 33% burn armor so it's a tiny bit harder to wipe them away in a single laser salvo, while still giving people ample opportunity to fight them off . Also they're like glass or something so it fits thematically. I gave them hands because I thought it was cool, might be a mistake idk </details> 🆑 Time-Green, INFRARED_BACON add: Voidwalker has been throughly reworked! Now you are even less safe! admin: Adds admin-only Sunwalker mob fix: Unsettle doesnt work on yourself anymore fix: Space camo doesnt stop bobbing anymore fix: Voidwalker windows now recharge on kidnap runtime: Fixes healthanalyzers runtiming when scanning mobs without reagent holders /🆑 |
||
|
|
39a2434c06 |
Voidwalker Rework | Basic Mob Edition + Bonus Antag (#91646)
## About The Pull Request Reworks the Voidwalker into a basic mob, including a lot of the balance and mechanics! Old (left), new (right)  https://github.com/user-attachments/assets/22d6138f-11aa-4f7a-8600-2565e6578bcf (little outdated) https://youtu.be/cp1E3qPJGX4 (high res mirror) **🟨Voidwalker mob changes🟨** No longer a human species and no more void eater. Instead deals damage by simple unarmed attacks. Instead of dealing brute, the voidwalker does oxygen damage (4-5 hits to knock out) with left-click, and slight brute on right click. Non-human mobs automatically take brute damage instead of oxygen damage. 150 HP 33% burn armor Yes it has hands, but it can only pick up and drop stuff **🟨Window phase🟨**  Instead of needing to smash a window with the void eater, moving through windows simply leaves them passable for 5 seconds. Makes kidnapping a lot easier, but also makes it easier for people to chase you People who used the voided skull also leave windows passable for a short bit. **🟩Cosmic Charge🟩** Standard charge ability, but only lets you charge towards space and works while dragging people **🟩The Vomitwalker🟩** People you kidnapped now occasionally do the nebula vomit, which voidwalkers can use to dive from and into  Diving into it is very fast but also removes the nebula vomit. You can also kidnap people into the vomit (this doesn't remove the vomit). There is also a little UI for tracking this. Clicking it while in space dive teleports you to the next nebula vomit, if there are any.  **🟨Voided people changes🟨** Kidnapped people and people that used the cosmic skull are no longer muted, but take 10% extra brute and occasionally leave behind glass shards when taking a lot of damage. Are no longer obliterated on a second encounter with voidwalkers. Voidwalkers can't hurt people they've already voided (unless they really want to), but instead just knock them out for 30s Also the kidnapped do space vomit as I said earlier. **🟩Sunwalker🟩** Voidwalker variant made for pure murderbone. Has no camo and kindap mechanics, but has a fiery charge, loads of damage and area igniting and people ignition. It's admin, but I might change this later once I've had some more time to think about it.  Other changes: - Voidwindows no longer need to be space adjacent - Unsettle works faster but can't be used in combat anymore - Space camo now grants complete space invisibility - Makes a lot of aspects easily moddable, so we can easily mod it into a moistwalker in-game - Taking a cosmic skull when you already used one gives you the old voidwalker void eater arm. Additional uses just gives you more void eater arms until you run out of hands - I definitely forgot a lot more - I made a cool voidwalker hud! It even has a unique space camo toggle ## Why It's Good For The Game <details> <summary>Lot of text</summary> Voidwalker was basically a snowflaked toghether human species because I didn't know how to sprite, but I was able to work with species and visual effects. Then I realized I can just commission sprites! This also let me just cut out a lot of the snowflake code, because it's no longer a human so half the things I didn't want them to be able to do, they just literally cannot do. Voidwalkers were in a bit of strange spot with kidnapping? There was essentially no incentive, other than "smash spaceman = funny". They also had issues doing, anything? There's surprisingly little space on a space station, especially maps such as tram. Making the voided victims have nebula vomit gives the voidwalker a reason to WANT to kidnap, by giving them a way to appear basically anywhere on the station. I don't think it's too overpowered. Voided people don't vomit that much, it's easily cleanable and diving into it removes them, so they're limited usability. Replacing the brute damage with oxygen damage also kinda... just makes sense? I seriously contemplated letting them do stamina damage for the first iteration, but opted not to do it because stamina damage has so many hooks attached. Oxygen damage doesn't! It's also just incredibly thematic, let's them bypass most armor and makes them more suited to non-letha kidnappings. Space camo making them completely invisible was also long overdue. It was literally just urging people to turn up their gamma and turn down their parallax settings. I thought it was an interesting mechanic, but it's just straight up unfair and doesn't belong in a multiplayer game. They now more frequently leave behind little glass shards, leave particles from nebula vomit they leave from and have more unique sound effects, so attentive (and lucky) people can still deduce if an area is safe-ish. I removed being able to shatter voided people because the mechanic was deeply misunderstood. It was intended to give them a means of removing people if they kept incessently bothering the voidwalker, but people went out of their way to use this to roundremove people they had already voided. The 30s sleep conveys my intention a lot better, and fits better now that the voidwalker benefits from having as many voided people vomitting all over the place. The cosmic charge gives them some much needed survivability. My experiences (in observing voidwalkers, I can never get the roll ;_;) is that they're constantly one mistake away from complete obliteration. The cosmic charge let's them get out quick despite their slow movement speed in gravity. It also makes them stronger when fighting in space. They got 33% burn armor so it's a tiny bit harder to wipe them away in a single laser salvo, while still giving people ample opportunity to fight them off . Also they're like glass or something so it fits thematically. I gave them hands because I thought it was cool, might be a mistake idk </details> ## Changelog 🆑 Time-Green, INFRARED_BACON add: Voidwalker has been throughly reworked! Now you are even less safe! admin: Adds admin-only Sunwalker mob fix: Unsettle doesnt work on yourself anymore fix: Space camo doesnt stop bobbing anymore fix: Voidwalker windows now recharge on kidnap runtime: Fixes healthanalyzers runtiming when scanning mobs without reagent holders /🆑 |
||
|
|
137d7c6d68 |
[NO GBP] Fixes cleanable decal merging not working and flypeople not being able to drink vomit (#91640)
## About The Pull Request Flypeople vomit drinking didn't lazy init the reagents which caused it to runtime, and reagent init did not return anything on successful init which means that init code would be required to be ran twice to work - but as this was overriden by blood, it wasn't spotted in testing (or by anyone so far, most likely) Also fixed wrong typepaths for trail proc overrides which caused all blood to have trails' description Closes #91568 ## Changelog 🆑 fix: Fixed flypeople not being able to drink vomit fix: Random blood decals no longer claim to be trails, only actual trails do. /🆑 |
||
|
|
56b750c552 |
[NO GBP] Fixes cleanable decal merging not working and flypeople not being able to drink vomit (#91640)
## About The Pull Request Flypeople vomit drinking didn't lazy init the reagents which caused it to runtime, and reagent init did not return anything on successful init which means that init code would be required to be ran twice to work - but as this was overriden by blood, it wasn't spotted in testing (or by anyone so far, most likely) Also fixed wrong typepaths for trail proc overrides which caused all blood to have trails' description Closes #91568 ## Changelog 🆑 fix: Fixed flypeople not being able to drink vomit fix: Random blood decals no longer claim to be trails, only actual trails do. /🆑 |
||
|
|
1f3894e793 |
Crafting refactor, implementing materials (#89465)
My original plan was to just implement materials into crafting so that items would inherit the materials of their components, allowing for some interesting stuff if the material flags of the item allow it. However to my dismay crafting is a pile of old tech debt, starting from the old `del_reqs` and `CheckParts` which still contain lines about old janky bandaids that are no longer in use nor reachable, up to the `customizable_reagent_holder` component which has some harddel issues when your custom food is sliced, and items used in food recipes not being deleted and instead stored inside the result with no purpose as well as other inconsistencies like stack recipes that transfer materials having counterparts in the UI that don't do that. EDIT: Several things have come up while working on this, so I apologise that it ended up changing over 100+ files. I managed to atomize some of the changes, but it's a bit tedious. EDIT: TLDR because I was told this section is too vague and there's too much going on. This PR: - Improves the dated crafting code (not the UI). - replaced `atom/CheckParts` and `crafting_recipe/on_craft_completion` with `atom/on_craft_completion`. - Reqs used in food recipes are now deleted by default and not stored inside the result (they did nothing). - Renames the customizable_reagent_holder comp and improves it (No harddels/ref issues). - Adds a unit test that tries to craft all recipes to see what's wrong (it skips some of the much more specific reqs for now). - In the unit test is also the code to make sure materials of the crafted item and a non-crafted item of the same type are roughly the same, so far only applied to food. - Some mild material/food refactoring around the fact that food item code has been changed to support materials. Improving the backbone of the crafting system. Also materials and food code. 🆑 refactor: Refactored crafting backend. Report possible pesky bugs. balance: the MEAT backpack (from the MEAT cargo pack) may be a smidge different because of code standardization. /🆑 |
||
|
|
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.   |
||
|
|
4f6727024d |
Crafting refactor, implementing materials (#89465)
## About The Pull Request My original plan was to just implement materials into crafting so that items would inherit the materials of their components, allowing for some interesting stuff if the material flags of the item allow it. However to my dismay crafting is a pile of old tech debt, starting from the old `del_reqs` and `CheckParts` which still contain lines about old janky bandaids that are no longer in use nor reachable, up to the `customizable_reagent_holder` component which has some harddel issues when your custom food is sliced, and items used in food recipes not being deleted and instead stored inside the result with no purpose as well as other inconsistencies like stack recipes that transfer materials having counterparts in the UI that don't do that. EDIT: Several things have come up while working on this, so I apologise that it ended up changing over 100+ files. I managed to atomize some of the changes, but it's a bit tedious. EDIT: TLDR because I was told this section is too vague and there's too much going on. This PR: - Improves the dated crafting code (not the UI). - replaced `atom/CheckParts` and `crafting_recipe/on_craft_completion` with `atom/on_craft_completion`. - Reqs used in food recipes are now deleted by default and not stored inside the result (they did nothing). - Renames the customizable_reagent_holder comp and improves it (No harddels/ref issues). - Adds a unit test that tries to craft all recipes to see what's wrong (it skips some of the much more specific reqs for now). - In the unit test is also the code to make sure materials of the crafted item and a non-crafted item of the same type are roughly the same, so far only applied to food. - Some mild material/food refactoring around the fact that food item code has been changed to support materials. ## Why It's Good For The Game Improving the backbone of the crafting system. Also materials and food code. ## Changelog 🆑 refactor: Refactored crafting backend. Report possible pesky bugs. balance: the MEAT backpack (from the MEAT cargo pack) may be a smidge different because of code standardization. /🆑 |
||
|
|
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.   |
||
|
|
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) /🆑 |
||
|
|
c42e1e9440 |
Fix map_export admin verb not saving objects properly (#90998)
## About The Pull Request When using the `map_export` admin verb the following things are fixed: - All objects density, anchored, opacity, atom_integrity, and resistance_flags vars are saved - Multi-tile objects being spammed on all tiles the sprite reaches - Dirt decals error icon - Airlocks error icon and to save welded state - Dark Wizard Simple Mobs error icon - Closets to save welded, open, and locked states - Air alarms to save name - Air scrubbers/vents to save name and welded states - APCs to save name, charge, cell, lighting, equipment, and environmental states - APCs spawning a duplicated terminal underneath it when one already exists - SMES to save charge, input, and output states - Holodecks to revert any holodeck turfs to the empty turf and skip saving any hologram items - Photos and Paintings error icons - Bloody Footprints error icons - False Walls error icons - Docking Ports runtimes because the map template var would change - Effects (lasers, portals, beams, sparks, etc.) saving when they should be omitted I would have loved to get `component_parts` to save for machines and turf decals, but perhaps that is for another day since it requires complicated solutions. Here are some before and after pictures:     ## Why It's Good For The Game Better map saving code. ## Changelog 🆑 fix: Fix `map_export` admin verb not properly saving a massive amount of objects. /🆑 |
||
|
|
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) /🆑 |
||
|
|
e698c965b3 |
Fix map_export admin verb not saving objects properly (#90998)
## About The Pull Request When using the `map_export` admin verb the following things are fixed: - All objects density, anchored, opacity, atom_integrity, and resistance_flags vars are saved - Multi-tile objects being spammed on all tiles the sprite reaches - Dirt decals error icon - Airlocks error icon and to save welded state - Dark Wizard Simple Mobs error icon - Closets to save welded, open, and locked states - Air alarms to save name - Air scrubbers/vents to save name and welded states - APCs to save name, charge, cell, lighting, equipment, and environmental states - APCs spawning a duplicated terminal underneath it when one already exists - SMES to save charge, input, and output states - Holodecks to revert any holodeck turfs to the empty turf and skip saving any hologram items - Photos and Paintings error icons - Bloody Footprints error icons - False Walls error icons - Docking Ports runtimes because the map template var would change - Effects (lasers, portals, beams, sparks, etc.) saving when they should be omitted I would have loved to get `component_parts` to save for machines and turf decals, but perhaps that is for another day since it requires complicated solutions. Here are some before and after pictures:     ## Why It's Good For The Game Better map saving code. ## Changelog 🆑 fix: Fix `map_export` admin verb not properly saving a massive amount of objects. /🆑 |
||
|
|
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. /🆑 |
||
|
|
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 | ||
|
|
bc8e949cb3 |
Logs fuel pools being ignited deliberately. (#90232)
## About The Pull Request Fuel pools now log their igniter. ## Why It's Good For The Game We log when motor oil spills and similar ignitable items are burned. This is no different. ## Changelog 🆑 admin: Added logging to fuel pools being ignited by someone deliberately. /🆑 |
||
|
|
b59132ad60 |
Removes Corner Smoothing (Mild Bitmask Improvements) (#90002)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may not be viewable. --> <!-- You can view Contributing.MD for a detailed description of the pull request process. --> ## About The Pull Request [Removes all remaining users of SMOOTH_CORNER + dirt automation](https://github.com/tgstation/tgstation/commit/71d120511a372501ac546b2571ef570eb4426a56) Removes all remaining instances of overlay smoothing (the deprecated system that stitches corners together IN ENGINE) from the game. This amounts to: The test smoothing wall, which I converted to just bitmask + diagonals Stationary canisters, which I've done the same to (alongside adding all the states to gags, which around doubled their gags count). These autocut now. I've also given dirt icons autocutting, for spriter convieneince (I would have done this before but I didn't know they smoothed) [Removes corner smoothing from the codebase](https://github.com/tgstation/tgstation/commit/98ebe5815223a3078c2e591fd277b9418ed03278) This code is OLD, and has been functionally deprecated for as long as I've been here. It basically does what bitmask smoothing does, but instead of prebaking connections they're formed in engine with overlays. This is... fine, and does TECHNICALLY allow for unique effects, but none's gonna use it because the details are so niche, so it just becomes a risk factor for someone fucking up and using overlays for some reason. What it does do then is clutter up our smoothing code with 2 different async systems, one of which functions SLIGHTLY differently from its brother. IMO it just works to confuse people trying to read smoothing code (already quite confusing). I've removed it, alongside its bespoke code/variables, excluding area_limited_icon_smoothing, a var on areas that prevents smoothing out of network, which I have instead integrated into bitmask smoothing. I've updated snowflake's documentation to be more up to date with modern systems, and earmarked where explanations/automation for the more... underdeveloped bits of smoothing should go in the future. ## Why It's Good For The Game I relapsed and needed something to put that energy towards. We don't really want people to use this, and none knows enough about it to take advantage of its theoretical uses. Really its only purpose right now is making understanding diagonal smoothing easier, and that's not all that hard of a task. Better to remove and integrate then to let rot and confuse. ## Changelog <!-- If your PR modifies aspects of the game that can be concretely observed by players or admins you should add a changelog. If your change does NOT meet this description, remove this section. Be sure to properly mark your PRs to prevent unnecessary GBP loss. You can read up on GBP and its effects on PRs in the tgstation guides for contributors. Please note that maintainers freely reserve the right to remove and add tags should they deem it appropriate. You can attempt to finagle the system all you want, but it's best to shoot for clear communication right off the bat. --> 🆑 add: Smoothed objects on shuttles now will only smooth with other shuttles (added support for extensions of this system) refactor: I've funked around with our smoothing system, cutting out some older code. Lemme know if anything is weird PLEASE /🆑 <!-- Both 🆑's are required for the changelog to work! You can put your name to the right of the first 🆑 if you want to overwrite your GitHub username as author ingame. --> <!-- You can use multiple of the same prefix (they're only used for the icon ingame) and delete the unneeded ones. Despite some of the tags, changelogs should generally represent how a player might be affected by the changes rather than a summary of the PR's contents. --> |
||
|
|
9017479787 |
Fixes dust effect overlay (#89983)
## About The Pull Request code credit to @MrMelbert many years ago someone broke the dust decal from appearing on 99% of our tiles this fixes the issue :) ## Why It's Good For The Game unknowingly unusable decal is weird ## Changelog 🆑 fix: the station may appear dusty again! /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |