mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-02-06 22:39:04 +00:00
01620b9c46bbcdbb5a4b6abb60db87ca35cee44b
2327 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
d7460f97d7 |
Adds a new area flag, LOCAL_TELEPORT, given to virtual domains and deathmatch arenas. (#88756)
## About The Pull Request Adds a new area flag, LOCAL_TELEPORT. This flag allows teleports ONLY in the same area that the teleport is used. This allows for short range hijinks without enabling long range exploits, and thus it's given to DMs and domains. Changed almost all area_flags & NO_TELEPORT checks to use check_teleport() (as now areas may use local_teleport instead, and this lets them check for multiple things instead) Thus I re-added Void Phase to the heretic scribe in DM and shuffled some stuff around (realizing now i neglected to doublecheck if blade breaking tps you to station. need to check just in case) ## Why It's Good For The Game It sucks you can't use teleporting abilities in temporary areas, so this is a good way to allow this to still happen without opening the way for gamebreaking exploits. ## Changelog 🆑 code: Adds a new area flag, LOCAL_TELEPORT, given to virtual domains and deathmatch arenas. code: Re-added Void Phase to Heretic Scribes in Deathmatch's Ragnarok map. /🆑 |
||
|
|
3499727a6d |
Implements datumized embedding handlers in place of element-component-datum triad (#88511)
## About The Pull Request This PR completely rewrites our embedding system in favor of embedding datum handlers which acts as containers for all embedding-related data and logic. Currently embedding logic relies on an element-component-datum triad, where elements on the items handle embedding logic, singleton datums store embedding data and components (which get assigned to ***mobs*** in whom the item embedded) handle pain and the item being ripped out. How do we access all the procs? By using comsigs as procs, which is really bad. This code was written back in 2020 when DCS was hot stuff but in hindsight this implementation was a mistake, as it heavily restricts custom embedding behaviors unless you're willing to constantly run GetComponent (bad, ugly, incarnation of evil) This PR rewrites all that logic to be handled by lazyloaded ``/datum/embedding``, which is stored similarly to current ``/datum/embed_data``. Upon being requested, it is initialized and assigned to a parent from whom all the logic is handled, from being embedded to pain and having the item ripped out. On projectiles this only handles one proc, after which it copies itself down to the shrapnel item instead and runs the chain further from there. Ideally, most embedding-related logic now should be handled purely datum-side - in most cases items should not be hooking up to themselves like they did before (unless said logic is for when the item is made sticky or smth) and instead the code should be handled by the embedding datum (see sholean grapes implementation in this PR). This should allow us to do fancy stuff like syringe guns embedding syringes into targets and injecting them that way, and fix some bugs along the way. Closes #88115 Closes #87946 Also fixed a bug with scars not displaying when examined closely from #86506 because i was in the area anyways |
||
|
|
7d7b9e1f6e |
Ensures that mice don't spawn in unsafe atmos from garbage spawners (#88801)
## About The Pull Request Similarly to grime spawners, mice get removed from the "loot" pool when the trash spawner is placed in unsafe conditions. Closes #88769 ## Changelog 🆑 fix: Mice no longer can spawn in unsafe atmos from garbage spawners /🆑 |
||
|
|
8d48f8d4d2 |
Fixes an 8 year old bug which colored your HUDs with you (#88667)
## About The Pull Request Partially a port of https://github.com/DaedalusDock/daedalusdock/pull/1163 which is a port of my own code from bitbus Closes #88579 Instead of manually setting hud images and positioning we now can use set_hud_image_state which also updates their position to ensure that they scale with the owner atom. HUDs had RESET_COLOR and RESET_TRANSFORM but no KEEP_APART, so they were stuck with mobs all this time. I replaced RESET_TRANSFORM with PIXEL_SCALE (shouldn't be reserved to mob huds only to be honest) and added KEEP_APART, so that HUDs still scale/rotate with their owner but don't inherit their color. Also fixed the dragon issue, that's where this PR actually started. Closes https://github.com/tgstation/tgstation/issues/45411 ## Why It's Good For The Game I don't want my HUDs to be pretty pink when I make a barbie Clarke. ## Changelog 🆑 refactor: Rewrote some of HUD code so they're no longer colored in their owner's color fix: Space dragons no longer turn invisible when toggling seethrough mode /🆑 |
||
|
|
4b77c6f7c0 |
Decouples "Is this affected by a mop" from layer var (#88465)
## About The Pull Request Rather than checking for object layer if we can clean something, has a trait which accomplishes this This better allows us to pick and choose what objects we want to clean when mopping Note: I didn't apply the trait to everything it previously affected Currently, it cleans stuff like pipes and plumbing, which I deemed not necessary to carry over since they can't get dirty anyways I can re-add this if desired though Fixes #88445 Fixes #88150 ## Changelog 🆑 Melbert fix: Gibs get bulk cleaned if you clean the turf again refactor: Changed how things determine "I can be bulk cleaned if I clean the turf underneath me", let me know if you notice anything not getting bulk cleaned or weird things getting bulk cleaned /🆑 |
||
|
|
30179707ec | [NO GBP] Fixing a couple nits with hot spring turfs. (#88318) | ||
|
|
88d15354e1 |
Pressure Tanks no longer runtime when shuttleRotated, Remedies constant CI fails (#88413)
## About The Pull Request Fixes #71092 ## Why It's Good For The Game Flaky tests bad, fixman good... ## Changelog 🆑 fix: Pubby's whiteship no longer breaks when it tries to dock /🆑 |
||
|
|
ab7f1c12d6 |
Implements icon size caching to avoid unnecessary load in updatehealth (#88266)
## About The Pull Request Technically an improved port of https://github.com/DaedalusDock/daedalusdock/pull/651, instead of only storing height over 32 pixels for HUDs we store both pure height and width for the sake of cutting down on icon operation spam (which is pretty costly). Should save us a significant amount of time, cuts down update_health_hud times by 45% and total update_health by 30% which is pretty good for a somewhat hot proc. ## Why It's Good For The Game Our health HUDs constantly fetch icons ***twice*** every update_health, jesus. ## Changelog 🆑 SmArtKar, Kapu code: Implemented caching for icon sizes which should significantly improve mob health performance due to HUDs constantly fetching icons /🆑 |
||
|
|
a60ac1d855 |
Makes wild anomaly spawns more bearable (#87960)
<!-- 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 - Material anomaly will now self-delete after 1-4 relocations - Bioscrambler now has a countdown like all other anomalies - Increased anomaly lifetime from 99 seconds to 120 - Adds some more detonation effects where there were none (see: I abuse the circle effect jacq added (again)) ## Why It's Good For The Game <!-- Argue for the merits of your changes and how they benefit the game, especially if they are controversial and/or far reaching. If you can't actually explain WHY what you are doing will improve the game, then it probably isn't good for the game in the first place. --> Material anomalies can wreak insane havok throughout the station if it's not caught quickly. It's a cat and mouse game, which can get kinda frustrating (flashbacks to trying to get the anomaly but it constantly teleporting just before I get to it). I don't wanna kill the cat & mouse game, but putting a limit on it so the entire station doesn't suffer endlessly to pizza/snow/jungle toilets is a nice middle road. Bioscramblers are actually beyond frustrating. If someone doesn't immediately go for them, they'll start locking on and noclipping through the entire station and mutating every single person for the rest of the shift. This would probably be less bad if the bioscrambler couldn't give every single organ (par some blacklisted), causing a lot of irreversible damage, spontaneous combustions, glitches and creeping rare organs and limbs into a round "for the lulz". (This doesn't fix the absolute organ slop that they cause, but reworking bioscramblers not to be shit is for later.) I've also given anomalies 20 extra seconds of runtime. Anomalies take 99 seconds, take 30 to announce (for most), giving scientists 69 seconds to get anomaly catching gear and navigate to the area and defuse it. It's always felt like just barely too little time, often not getting the anomaly even when I am beelining. It was usually enough from when we just had meta, but we got bigger and bigger maps. It also gives them more time to wreak havoc for chaos lovers. ## 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. --> 🆑 balance: Bioscramblers are no longer immortal balance: Anomalies give 20 extra seconds to defuse! Or 20 extra seconds for them to reach havoc... balance: Material anomalies only teleport 1-4 times before detonating /🆑 <!-- 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. --> |
||
|
|
25c616e353 |
fixes the museum cafeteria puzzle and some other things related to the museum (#88287)
## About The Pull Request the dotted color board was missing a color for the 10th digit, and orange and brown were not valid byond colors (damn you ghommie) fake scrubbers and vents use the correct layer and plane you may no longer deconstruct indestructible windows you can no longer push indestructible grilles and robust windows if you have a strong move force step teleporters may not teleport abstract objects or mirage holders (due to init shenanigans this sometimes teleported a mirage holder messing the visuals up) ## Why It's Good For The Game bug bad also i didnt make these bugs ok ## Changelog 🆑 fix: fixed the museum password puzzle (to the cafeteria), and the scrubbers and vents there now look correctly (also fixed a rare visual bug) fix: it is now harder to bypass indestructible windows and grilles (those are placed there for a reason, you know!) /🆑 |
||
|
|
6585612413 | Fixes invisible atmos fires (#88155) | ||
|
|
f34bd3f5c0 |
Guncode Agony 4.2: Firing Effect Intervallo (#88072)
## About The Pull Request Firing effects now attach themselves to the firer, meaning you don't run over or back from your own muzzle flash if you fire while running. ## Why It's Good For The Game Look better, both when moving into and away from the effect. ## Changelog 🆑 image: Muzzle flash now is attached to your sprite, meaning you won't run over it if you fire while moving /🆑 |
||
|
|
bbb7a41743 |
Guncode Agony 4: The Great Projectile Purge (#87740)
## About The Pull Request ~~Kept you waitin huh!~~ The projectile refactor is finally here, 4 years later. This PR (almost) completely rewrites projectile logic to be more maintainable and performant. ### Key changes: * Instead of moving by a fixed amount of pixels, potentially skipping tile corners and being performance-heavy, projectiles now use raymarching in order to teleport through tiles and only visually animate themselves. This allows us to do custom per-projectile animations and makes the code much more reliable, sane and maintainable. You (did not) serve us well, pixel_move. * Speed variable now measures how many tiles (if SSprojectiles has default values) a projectile passes in a tick instead of being a magical Kevinz Unit™️ coefficient. pixel_speed_multiplier has been retired because it never had a right to exist in the first place. __This means that downstreams will need to set all of their custom projectiles' speed values to ``pixel_speed_multiplier / speed``__ in order to prevent projectiles from inverting their speed. * Hitscans no longer operate with spartial vectors and instead only store key points in which the projectile impacted something or changed its angle. This should similarly make the code much easier to work with, as well as fixing some visual jank due to incorrect calculations. * Projectiles only delete themselves the ***next*** tick after impacting something or reaching their maximum range. Doing so allows them to finish their impact animation and hide themselves between ticks via animation chains. This means that projectiles no longer disappear ~a tile before hitting their target, and that we can finally make impact markers be consistent with where the projectile actually landed instead of being entirely random. <details> <summary>Here is an example of how this affects our slowest-moving projectile: Magic Missiles.</summary> Before: https://github.com/user-attachments/assets/06b3a980-4701-4aeb-aa3e-e21cd056020e After: https://github.com/user-attachments/assets/abe8ed5c-4b81-4120-8d2f-cf16ff5be915 </details> <details> <summary>And here is a much faster, and currently jankier, disabler SMG.</summary> Before: https://github.com/user-attachments/assets/2d84aef1-0c83-44ef-a698-8ec716587348 After: https://github.com/user-attachments/assets/2e7c1336-f611-404f-b3ff-87433398d238 </details> ### But how will this affect the ~~trout population~~ gameplay? Beyond improved visuals, smoother movement and a few minor bugfixes, this should not have a major gameplay impact. If something changed its behavior in an unexpected way or started looking odd, please make an issue report. Projectile impacts should now be consistent with their visual position, so hitting and dodging shots should be slightly easier and more intuitive. This PR should be testmerged extensively due to the amount of changes it brings and considerable difficulty in reviewing them. Please contact me to ensure its good to merge. Closes #71822 Closes #78547 Closes #78871 Closes #83901 Closes #87802 Closes #88073 ## Why It's Good For The Game Our core projectile code is an ungodly abomination that nobody except me, Kapu and Potato dared to poke in the past months (potentially longer). It is laggy, overcomplicated and absolutely unmaintaineable - while a lot of decisions made sense 4 years ago when we were attempting to introduce pixel movement, nowadays they are only acting as major roadblocks for any contributor who is attempting to make projectile behavior that differs from normal in any way. Huge thanks to Kapu and Potato (Lemon) on the discord for providing insights, ideas and advice throughout the past months regarding potential improvements to projectile code, almost all of which made it in. ## Changelog 🆑 qol: Projectiles now visually impact their targets instead of disappearing about a tile short of it. fix: Fixed multiple minor issues with projectile behavior refactor: Completely rewrote almost all of our projectile code - if anything broke or started looking/behaving oddly, make an issue report! /🆑 |
||
|
|
1fe4f77dc5 | Shipping and Receiving: More Containers, Revamped Containers (#87995) | ||
|
|
742729fa0a |
Converts most common particle sources to use our new pooling system (#88048)
## About The Pull Request Closes #83370 Converted most cases where we could benefit from using shared particles (aka when there's probably more than 3 uses of that particle in a round) to use the new shared particle system. Should provide significant clientside performance in particle-heavy areas like botany (or sometimes kitchen) ## Changelog 🆑 refactor: Converted most common particle sources to use our new pooling system. /🆑 |
||
|
|
bcb5c47571 |
Implements shared particle holders, re-adds slimed status particles using the new system (#87892)
## About The Pull Request Partial revert of #86701 Implements a shared holder particle system, somewhat inspired by https://github.com/Baystation12/Baystation12/pull/34014 (thanks Kapu). Atoms can be assigned "shared" particles via add_shared_particles, with an optional "alternate" key passed as a second arg if you're planning to edit the returned particle holder (for example, color it like slimed status does). Removing is done via remove_shared_particles with an option to delete the shared holder if nothing is using it anymore (on by default). This system should be prioritized over normal particle holders when a lot of entities would be using a certain particle effect (like fires) as it conserves a lot of clientside performance. Burning, acid, decaying, firestacks and slimed status now use this system which should help with clientside performance and amount of atoms created/destroyed. ## Why It's Good For The Game Less clientside lag. ## Changelog 🆑 refactor: Firestacks, burning/acid/decaying effects and (brought back after being temporarily removed) slimed status effects now use a new "shared" particles system, which should considerably improve client performance when encountering a lot of burning/slimed entities. /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
97cd0ea5fb |
Guncode Agony 4.1: Portal Intermission (#87803)
## About The Pull Request Closes #75447 by allowing projectiles to pass through portals. This does not allow for infinite loops for sanity (including host's) reasons. Can safely be merged before #87740 ## Changelog 🆑 fix: Many years later, projectiles finally can pass through portals - this time without crashing the server. /🆑 |
||
|
|
9b40e13f8b |
Makes dust animation look less 2006 (#87435)
## About The Pull Request This was inspired by an effect I saw on Paradise but I sprited my own https://github.com/user-attachments/assets/2130053c-a6ea-48e6-8b62-4c08563fd154 (Todo, make the skeleton appearing less jank) ## Why It's Good For The Game 1. Looks less 2006. 2. The dust sprite will reflect the mob being dusted, since it's literally just Your Sprite. Your clothes, species, etc. 3. All species and all mob types now animate being dusted - from corgi to xenos, from borgs to lizards -, and we can even reuse this effect for items being dusted if we so desire ## Changelog 🆑 Melbert image: The animation for being dusted now takes into account your sprite, rather than being a normal nude spaceman /🆑 |
||
|
|
e5472d9be4 |
Fishing bluespace capsules (#87639)
## About The Pull Request With this PR, I'm introducing fishing bluespace capsules to the game. They can be found on the black market, but I'll get a couple more ways to get them before it's ready. Anyway, they're special bluespace capsules that spawn a fishing spot of your choice. The fishing spot can be changed by alt-clicking the capsule, and so far it has 5 choices, plus 2 locked behind emagging for obvious reasons: - Freshwater: pretty basic, you get freshwater fish from this. - Saltwater: mainly saltwater fish. - Tiziran: You get tiziran fish here, like the gunner jellyfish, armorfish, needlefish, dwarves moonfish and the new, bigger zagoskian moonfish. By the by, moonfish now periodically lay moonfish eggs, a staple of lizardfolk cuisine. - Ice fishing spot: A small ice turf with a hole dug in it; salmon, arctic char, arctic chrabs and the bonemass (skeleton fish). - Hot Spring: Somehow the new home to the ought-to-be-extinct sacabambaspis. It also doubles as a better shower overall, with mild healing on top of stamina recovery. Felinids still hate it though, and won't benefit from the healing. - Lava: A 2x2 square of pure lava. Requires an emag for obvious reasons. - Plasma: Ditto, but it's plasma instead of lava. As a sidenote, unlike standard shelter capsules, these require their area to be clear of pipes and cables on top of the other requirements, unless emagged. Obviously, I've done some changes to allow pipes and cables to not be hidden by water turfs, though I'm still keeping these reqs because I don't think these fishing spots would look great if riddled with cables and pipes. I may remove this extra req later if it proves to be a tad too tedious. Also they don't knock you back when expanding. Screenshot from a recent test (fixed the misplaced decal and tweaked a few things since then):  ## Why It's Good For The Game The idea stems from how not all fishing spots aren't designed to be accessible every round, which is fine, because we have the fish-porter for that. However, even the fish-porter should have its limits in terms of what it can provide by itself (linking is all fair and game), so I've thought having something of a middle point would been neat, also as a way to mess around with the station layout a bit, to empower the player with a little extra "terraforming". ## Changelog 🆑 add: Added fishing bluespace capsules to the game, which can be used to spawn a variety of fishing spots, from freshwater to tiziran sea to hot springs, and also lava and plasma if emagged. add: Added two new fish: the zagoskian moonfish and the sacabambaspis. Moonfish will now periodically lay moonfish eggs. map: The 'crashed pod' lavaland ruin now has a hot spring, and the cursed hotspring on icemoon now has a plastic chair and a fishing toolbox. /🆑 |
||
|
|
d5daa9c9b8 |
[NO GBP] Renames mob/camera to mob/eye and makes everything follow suit (#87684)
## Why It's Good For The Game Clarity and consistency regarding DM's systems. Internally, `eye` is used for anything that controls the client's view.  How `eye` is used in DM is consistent with how we use the term, so I figured this would add clarity. Being named mob/camera also makes it unclear exactly what it's doing. The name implies that it would function similar to how mob/camera/ai_eye does, but most of the time it's only used as... an eye. My ulterior reason for this PR is that I want to clean up mob/camera/ai_eye and it's subtypes after this. ## Changelog 🆑 server: mob/camera has been renamed to mob/eye, which may break downstreams /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
f5099185c8 |
Adds a new INHALE reagent transfer method and applies it to smoking and smoke inhalation. Nitrous oxide (the reagent version) inhalation causes brain damage. (#87306)
## About The Pull Request Adds the ``INHALE`` transfer method. Smoking and smoke exposure now uses this method. Makes a few sensible inhalation effects for current behaviours. Adds a unit test amongst the rest of the exposure method tests. Nitrous oxide does brain damage on inhalation based on volume inhaled. ## Why It's Good For The Game Smoke and smoking being based on ingestion rather than inhaling was always weird to me. It'd be nice to have a specific method for smoking instead of a method shared by drinking. Many of our smokables make sense as indigestibles, obviously, but maybe we'd like a chem you can ONLY smoke. ~~Also, I walked out of a job interview and up the street to see a guy throwing his empty nitrous canisters around and yelling at passerbys, so shout out to that fucking guy with this PR.~~ ## Changelog 🆑 code: Introduces a INHALE method for reagent transfer. Cigarettes and smoke reactions use this new method. balance: Nitrous oxide now brain damage if you inhale it. So don't do that. /🆑 --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
778ed9f1ab |
The death or internal/external organ pathing (ft. fixed fox ears and recoloring bodypart overlays with dye sprays) (#87434)
## About The Pull Request This PR kills the abstract internal and external typepaths for organs, now replaced by an EXTERNAL_ORGAN flag to distinguish the two kinds. This PR also fixes fox ears (from #87162, no tail is added) and mushpeople's caps (they should be red, the screenshot is a tad outdated). And yes, you can now use a hair dye spray to recolor body parts like most tails, podpeople hair, mushpeople caps and cat ears. The process can be reversed by using the spray again. ## Why It's Good For The Game Time-Green put some effort during the last few months to untie functions and mechanics from external/internal organ pathing. Now, all that this pathing is good for are a few typechecks, easily replaceable with bitflags. Also podpeople and mushpeople need a way to recolor their "hair". This kind of applies to fish tails from the fish infusion, which colors can't be selected right now. The rest is just there if you ever want to recolor your lizard tail for some reason. Proof of testing btw (screenshot taken before mushpeople cap fix, right side has dyed body parts, moth can't be dyed, they're already fabolous):  ## Changelog 🆑 code: Removed internal/external pathing from organs in favor of a bit flag. Hopefully this shouldn't break anything about organs. fix: Fixed invisible fox ears. fix: Fixed mushpeople caps not being colored red by default. add: You can now dye most tails, podpeople hair, mushpeople caps etc. with a hair dye spray. /🆑 |
||
|
|
692540a7b9 |
Singularity_pull() standartize (#87304)
## About The Pull Request Previous attempt - https://github.com/tgstation/tgstation/pull/87227 `/atom/proc/singularity_pull(obj/singularity/singularity, current_size)` has first arg typed, but other procs were just referencing it as a un-typed variable. Since args are not standartized AND `atom/proc/singularity_pull(obj/singularity/singularity, current_size)` is out-dated, since it can be called by things that has `/datum/component/singularity` - not just by `obj/singularity/singularity` - This PR just adds args to every `proc/singularity_pull()` as follows: `proc/singularity_pull(atom/singularity, current_size)` ## Why It's Good For The Game Standartization ## Changelog No changelog needed |
||
|
|
502165bb89 |
Adjusts the No ERP poster description to be more subtle and reference the lore. (#87153)
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> |
||
|
|
2b0485d0c8 |
Adds a flipping skillchip, the Chipped quirk, a chip connector implant, and a quirk to spawn with it. (#87082)
## About The Pull Request Added the FOSBURY skillchip, found in hacked toy vendors. This skillchip allows you to bypass the emote cooldown when flipping or spinning. However, if used too often, it will lower the chip's integrity. At first, this is harmless, emitting sparks only, but at a certain point, your head starts smoking, your brain begins short-circuiting, and once the chip has lost all integrity your head will explode in a shower of gore, giving you a cranial fissure! Added the Chipped quirk. It allows you to spawn with one skillchip. Of note here is that the only chips you can spawn with are the 'default' skillchips found in the toy vendor, you can NOT spawn in with the fosbury chip or with the musical one. Added the Chip Connector quirk. It contains a new implant, the chip connector, which allows you to install and take out skillchips at any time. Being EMPed will cause it to drop one random skillchip, and if you try using it while it's malfunctioning you'll take out a bit of your brain instead. It can also be made at the exosuit fabricator after basic research. Renamed the organ slots for brain implants and made the connector implant take the CNS slot. ## Why It's Good For The Game > Added the FOSBURY skillchip, found in hacked toy vendors. This skillchip allows you to bypass the emote cooldown when flipping or spinning. However, if used too often, it will lower the chip's integrity. At first, this is harmless, emitting sparks only, but at a certain point, your head starts smoking, your brain begins short-circuiting, and once the chip has lost all integrity your head will explode in a shower of gore, giving you a cranial fissure! During the time flipping was bugged to have no cooldown or delay, it was really funny seeing people flip at increasingly higher speeds. Many people miss it, and to be honest, so do I. But everything needs limits or it stops being funny and ends up being overdone. To this end this skillchip lets people relive those days of glory, until they go out in a beautiful explosion. The chip will last a very long while if well taken care of, and there are plenty of warning signs before it gets too risky to use, but we know what players are actually gonna do, and I am looking forward to it. > Added the Chipped quirk. It allows you to spawn with one skillchip. Of note here is that the only chips you can spawn with are the 'default' skillchips found in the toy vendor, you can NOT spawn in with the fosbury chip or with the musical one. Chips can be kind of neat sometimes, and I think always having one as part of your character can make for some fun things as the consistency of it makes it more likely to stick in your mind to do stuff with. > 'but can't you just go to the vendor at the start of every shift?' Sure. But we have loadouts. We have tagger, musician, and many other things that are 'roundstart bloat', and while that by itself is not an excuse, it's part of the design of character setup: Minimizing the time spent running around the station for things your character is supposed to have for their personality/roleplay/gimmick. They're paying the cost of quirk points for it, anyways. > Added the Chip Connector quirk. It contains a new implant, the chip connector, which allows you to install and take out skillchips at any time. Being EMPed will cause it to drop one random skillchip, and if you try using it while it's malfunctioning you'll take out a bit of your brain instead. It can also be made at the exosuit fabricator after basic research. I like the idea of having a gross usb drive on the back of your brain that you shove chips into and out of, especially if it drops pieces of your brain when malfunctioning. It also adds a little bit of extra relevance to skillchips now that you don't need to spend 15 (!!!) seconds inside a skillstation to add one. The cost is, as stated, quite literally losing your brain on EMP's and the moderately expensive sum of 4 points. > Renamed the organ slots for brain implants and made the connector implant take the CNS slot. It annoys me that there were organ slots for 'anti drop implant'. Now they're just slots for anything meant to connect to the cerebellum/central nervous system, making it less brute forcey and also adding the start of some fun exclusivity between brain implants. ## Changelog 🆑 add: Added the FOSBURY skillchip, found in hacked toy vendors. This skillchip allows you to bypass the emote cooldown when flipping or spinning. However, if used too often, it will lower the chip's integrity and cause malfunctions. add: Added the Chipped quirk. It allows you to spawn with one base skillchip. (not the one above) add: Added the Chip Connector quirk. It contains a new implant, the chip connector, which allows you to install and take out skillchips at any time. code: Renamed the organ slots for brain implants and made the connector implant take the CNS slot. --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
0dcbaa5ba5 |
removes a few varedits (#87046)
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> |
||
|
|
96c0c0b12c |
Fish infusion (#87030)
## About The Pull Request I'm adding a new infusion ~~(actually four, but two of them are just holders for specific organs tied to a couple fish traits)~~ to the game. As the title says, it's about fish. The infusion is composed of three primary organs, plus another few that can be gotten from fish with specific traits. The primary organs are: - Gills (lungs): Instead of breathing oxygen, you now need to stay wet or breathe water vapor. - fish-DNA infused stomach: Can safely eat raw fish. - fish tail: On its own, it only speeds you up on water turfs, but it has another effect once past the organ set threshold. It also makes you waddle and flop like a fish while crawling (I still gotta finish sprites on this one) Other organs are: - semi-aquatic lungs: A subtype of gills from fish with the 'amphibious' trait, falls back on oxygen if there's no water. Can also be gotten from frogs, axolotl and crabs. - fish-DNA infused liver: From fish with the 'toxic' trait. Uses tetrodotoxin as a healing chem instead of a toxin. Also better tolerance to alcohol if you want to drink like a fish (ba dum tsh). - inky tongue: From fish with the 'ink production' trait. Gives mobs the ability to spit ink on a cooldown, blinding and confusion foes temporarily. The main gimmick of this infusion revolves around being drenched in water to benefit from it, In the case you get the gills organ, this also becomes a necessity, to not suffocate to death (alternatively, you can breathe water vapor, without any benefit). To enable the bonus of the organs set, three organs need to be infused. They can be gills, stomach, tail and/or liver, while the inky tongue doesn't count towards it. Once the threshold is reached, the following bonus are enabled: - Wetness decays a lot slower and resists fire a bit more. - Ink spit becomes stronger, allowing it to very briefly knock down foes. - Fishing bonuses and experience - Resistance to high pressures - Slightly expanded FOV - drinking water and showers mildly heal you over time. - for felinids: You won't hate getting sprayed by water or taking a shower. - While wet: - - If the fish tail is implanted, crawling speed is boosted. - - You no longer slip on wet tiles. - - You also become slippery when lying on the floor. - - You get a very mild damage resistance and passive stamina regeneration, and cool down faster. - - You resist grabs better. - - get a very weak positive moodlet. - However, being dry will make you quite squisher, especially against fire damage, slower and give you a modest negative moodlet. While working on it, I've also noticed a few things that explained why tetrodotoxin (TTX) did jackshit at low doses, because livers have a set toxin tolerance value, below which, any amount of toxin does nothing. Also I've felt like reagents like multiver & co were a bit too strong against a reagent that's supposed to work at very low doses, with slow metabolization, so I've added a couple variables to buff TTX a bit, making it harder to purge and resistant to liver toxin tolerance (also added a bit of lungs damage). ## Why It's Good For The Game I wanted to take a shot at coding a DNA infusion and see how chock-full I could make it. DNA infusions are like a middle point between "aha, small visual trinket" and organs with generally ok effects. I seek to make something a bit more complex ~~(also tied to fishing ofc because that's more or less the recurrent gag of my recent features)~~ primaly focused around the unique theme of being strong when wet and weaker when dry. EDIT: The PR is now ready, have a set of screenshots of the (fairly mid) fish tails (and gills, barely visible) on randomly generated spessman and one consistent joe:  ## Changelog 🆑 add: Added a new infusion to the game: Fish. Its main gimmick revolves around being stronger and slippery when wet while weaker when dry. balance: Buffed tetrodotoxin a little against liver tolerance and purging reagents. /🆑 |
||
|
|
cdebe98a17 |
refactoring how materials effects are added to atoms (#86901)
## About The Pull Request I'm "cooking" the materials system a bit, specifically the code responsible for applying and removing effects. My goal is to move most of the code to the objects-side, split it in smaller procs that can be more easily overriden or called for object-specific modifiers and effects, while also revamping things all around to better support items made from multiple materials (the cleric mace will most likely be one in this PR, with the handle and tip made of different materials). PR NO LONGER WIP, TESTED AND ALL, CLERIC MACES CAN NOW BE MADE OF TWO MATERIALS. ## Why It's Good For The Game One of the nastiest flaws with the materials system is that it's just unfeasable to have items made of multiple mats (with effects enabled) right now, as they easily tend to override each other, where some of the modifiers and effects should only be applied the main material. Beside, the system's starting to show signs of its time, from the several type checks used to apply different effects, the one letter variables to the the material flags that are still being passed down as arguments when you can access them from the atom/source arg anyway. It would be disonhest of me if I went ahead and coded material fishing rods or whatever fish fuckery with materials without ensuring it won't further the technical debt the feature currently has. ## Changelog 🆑 refactor: Refactored materials code. report any issue. add: Cleric maces (The autolathe-printable weapon design from outer space) can now be made of two different materials. balance: Buffed cleric maces a little. fix: toolboxes' stats are now affected by materials again. /🆑 --------- Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> |
||
|
|
b3245078c8 |
Puts blood back on floor plane, puts runes on floor plane (removes shadows from blood and runes) (#87013)
## About The Pull Request Basically goes through and puts some flat objects onto the floor plane. Also puts blood back on the floor plane, since it seems like it used to be but may have been moved mistakenly questionmark. This means they will not be affected by Ambient Occlusion:  ## Why It's Good For The Game A lot of these "flat" things look really out of place because they're secretly "floating" due to being on the wrong plane ## Changelog 🆑 Melbert qol: Runes, crayons, and similar decals no longer have shadows fix: Blood and similar "mess" decals no longer have shadows (again) /🆑 |
||
|
|
3f0b4abb8d |
Replaces world.icon_size (and some magic numbers) with defines (#86819)
## About The Pull Request All usages of world.icon_size in code have been replaced with new `ICONSIZE_X`, `ICONSIZE_Y` and `ICONSIZE_ALL` defines depending on context Replaces some "32" magic numbers with the defines A few bits of code have been modified to split up x/y math as well ## Why It's Good For The Game Magic number bad, code more readable, code more flexible and I'm told there's an access cost to doing world.icon_size so minor performance gains ## Changelog 🆑 tonty code: made some code relating to the world's icon size more readable /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
ad111f4950 |
Spacemove refactor - Newtonian physics (#84869)
## About The Pull Request This PR significantly enhances how zero-g movement works. Its no longer locked to one of 8 directions, everything now has inertia and is affected by weight. This means that throwing a piece of wire will no longer completely reverse your movement direction, and that being thrown out of mass driver no longer will slow you down to a halt at some point. This leads to following gameplay changes: * Guns now accelerate you. Ballistics have higher acceleration than lasers, and higher calibers have higher acceleration than smaller ones. This means that firing full-auto weapons in zero-g will make you drift and accelerate significantly. While this can be a hilarious way to travel in space, it makes using them trickier. * Impacting a wall or an object while moving at high speeds will cause you to violently crash into it as if you were thrown. Careful when exploring! * Jetpacks now have inertia. Changes introduced in #84712 have been mostly reverted, although speed buff has been reduced to 0.3 instead of 0.5 (although this is compensated by new movement mechanics, so overall speed should be roughly equal). All MODsuit jetpacks now possess the speed boost. Advanced MODsuit jets (which has also been added back) and captain's jetpack instead have higher acceleration and stabilization power, providing much more precise control over your movement. * Firing guns while moving on a jetpack will partially negate your pack's acceleration, slowing you down. Non-advanced jetpacks' stabilization is not enough to compensate for heavy caliber weaponry as sniper rifles, shotguns or rocket launchers. * You no longer instantly decelerate upon sliding along a wall. Instead, it may take a few tiles if you are moving at extreme speeds. Passing over lattices still allows you to grab onto them! As space movement is angle-based instead of dir-based now, its much more smooth than before due to using new movement logic. Example of jetpack stabilization in action: https://github.com/tgstation/tgstation/assets/44720187/6761a4fd-b7de-4523-97ea-38144b8aab41 And, of course, you can do this now.  **This pull request requires extensive gameplay testing before merging**, as a large amount of numbers have been picked arbitrarily in an attempt to keep consistency with previous behavior (guns and normal-sized items applying 1 drift force, which is equal to what everything applied before this PR). Jetpacks and impacts may also require adjustments as to not be frustrating to use. Closes #85165 ## Why It's Good For The Game Zero-G refactor - currently our zero-g movement is rather ugly and can be uncomfortable to work with. A piece of cable being able to accelerate you the same as a duffelbag full of items when thrown makes no sense, and so does instantly changing directions. Inertia-based version is smoother and more intuitive. This also makes being thrown into space more of a hazard (possibly opening the door for explosive decompressions?) Jetpack inertia and gun changes - this is mostly a consequence of inertia-based movement. However, zero-g combat being preferred during modes like warops was an issue due to it negatively affecting everyone without jetpacks which are in limited supply onboard. This reverts the mobility changes which severely impacted space exploration, while making zero-g combat more dangerous and having it require more skill to be a viable option. ## What's left - [x] Refactor moth wings to use jetpack code - [x] Refactor functional wings to use jetpack code - [x] Locate and fix a recursion runtime that sometimes occurs upon splattering against a wall - [x] Add craftable tethers and modify engineering MOD tethers to use the same system ## Changelog 🆑 add: You can now craft tether anchors, which can be secured with a wrench and attached to with right click. They won't let you drift into space and you can adjust tether length/cut it via lmb/rmb/ctrl click on the wire. add: MOD tethers now remotely place and connect to tether anchors instead of throwing you at where they landed. balance: MOD tethers can now be used in gravity balance: Jetpacks are now inertia-based. balance: Guns can accelerate you significantly in zero-g. balance: All jetpacks now give you equal speed buff, however advanced MOD ion jets and captain's jetpack have higher acceleration/deceleration values. refactor: Refactored zero-g movement to be inertia-based and utilize angles instead of directions. /🆑 |
||
|
|
58501dce77 |
Reorganizes the sound folder (#86726)
## About The Pull Request <details> - renamed ai folder to announcer -- announcer -- - moved vox_fem to announcer - moved approachingTG to announcer - separated the ambience folder into ambience and instrumental -- ambience -- - created holy folder moved all related sounds there - created engineering folder and moved all related sounds there - created security folder and moved ambidet there - created general folder and moved ambigen there - created icemoon folder and moved all icebox-related ambience there - created medical folder and moved all medbay-related ambi there - created ruin folder and moves all ruins ambi there - created beach folder and moved seag and shore there - created lavaland folder and moved related ambi there - created aurora_caelus folder and placed its ambi there - created misc folder and moved the rest of the files that don't have a specific category into it -- instrumental -- - moved traitor folder here - created lobby_music folder and placed our songs there (title0 not used anywhere? - server-side modification?) -- items -- - moved secdeath to hailer - moved surgery to handling -- effects -- - moved chemistry into effects - moved hallucinations into effects - moved health into effects - moved magic into effects -- vehicles -- - moved mecha into vehicles created mobs folder -- mobs -- - moved creatures folder into mobs - moved voice into mobs renamed creatures to non-humanoids renamed voice to humanoids -- non-humanoids-- created cyborg folder created hiss folder moved harmalarm.ogg to cyborg -- humanoids -- -- misc -- moved ghostwhisper to misc moved insane_low_laugh to misc I give up trying to document this. </details> - [X] ambience - [x] announcer - [x] effects - [X] instrumental - [x] items - [x] machines - [x] misc - [X] mobs - [X] runtime - [X] vehicles - [ ] attributions ## Why It's Good For The Game This folder is so disorganized that it's vomit inducing, will make it easier to find and add new sounds, providng a minor structure to the sound folder. ## Changelog 🆑 grungussuss refactor: the sound folder in the source code has been reorganized, please report any oddities with sounds playing or not playing server: lobby music has been repathed to sound/music/lobby_music /🆑 |
||
|
|
7d9754b0c7 |
Moves Meta drone bay to the main cargo bay (#86581)
## About The Pull Request MetaStation's Drone Bay has been moved to be basically inside the normal cargo bay.  This bay starts slightly more prepared than others. You're still rewarded for going out of your way to set up exoscanners but now it's not literally obligatory, to reduce the effort entry cost. To make room for it, the security cargo post was moved to the east of the mailing room:  The drone bay spot in maintenance has been cleared out by a gang of rowdy assistants, and turned into a drug den.  It also has a nod to its prior room usage up north with some misc. drone bay stuff. This is my first real map PR and is likely to have dumb oversights. ## Why It's Good For The Game ## Changelog > MetaStation's Drone Bay has been moved to be basically inside the normal cargo bay. On all stations Drone Bay is shunted off into some ass corner where nobody even notices it exists. After using it a bunch I've realized it has some interesting cargo use cases, because it's a cooldown based activity you can often have it on in the background while doing other things. I wished to move it inside the bay to highlight its usefulness! > To make room for it, the security cargo post was moved to the east of the mailing room: The mail room is rather big for being such a non-used part of the station, so it won't be harmed by being trimmed down into the main five chutes. I've tried to keep everything important on the tables, but do let me know if I fucked up and missed something. I also think it's funny to symbolize how Security has a weak hold on Cargo by having its security office almost completely cut off from the main area, but that's a post-hoc rationalization if anything. > The drone bay spot in maintenance has been cleared out by a gang of rowdy assistants, and turned into a drug den. Had to make use of the empty space somehow. This is a little funny den that might kickstart some hijinks. Meta's maint is pretty bland and hasn't had any real shakeups in a very long time, so adding a new PoI might cause some fun events. 🆑 add: MetaStation's Drone Bay has been moved to be basically inside the normal cargo bay. add: To make room for it, the security cargo post was moved to the east of the mailing room: add: The drone bay spot in maintenance has been cleared out by a gang of rowdy assistants, and turned into a drug den. /🆑 |
||
|
|
5409570e01 |
Upgrades GODMODE from a flag to a trait. (#86596)
## About The Pull Request GODMODE has a lot of sources that toggle it. From admin-stuff to status effects, components, actions and mobs which are supposed to be invincible. It's better off as a trait than a flag, so we can manage these sources. ## Why It's Good For The Game See above. ## Changelog 🆑 admin: godmode is now a datum trait instead of a bitflag. This means the process for toggling it is a little different now. /🆑 |
||
|
|
06ba9d93eb |
Pun Pun Station Trait, But it's only active on Monkey Day (14 December, every round) (#86091)
## About The Pull Request This is a remake of https://github.com/tgstation/tgstation/pull/84501 with a few small changes to avoid mapping issues. This time it's restricted to a once-in-a-year event, mainly because neither Jacq and Lemon were ok with the possibility of Pun Pun being posibly playable all year, however Jacq said he's fine with it being available on the holiday, while Lemon isn't around on Discord atm so I don't know what he's to say. The trait makes pun pun playable and gives them the job of being a busser (waiter) in the cafeteria. They're clever and can use tools most other monkeys can't, but cannot be humanized, while also being unable to speak Galactic Common. Should they roll traitor, they'll be able to buy syndicate monkey reinforcements and equipment, which it can also use, being a monkey itself. ## Why It's Good For The Game This is a fairly unique job, like the Cargo Gorilla, due to the fact it's not a conventional humanoid crew member nor the AI or a cyborg. I thought this was a fun idea, though I met some obstacles and the original PR was DNM'ed and then closed. However, the trait perfectly fits the theme of the holiday, making a good compromise since Pun Pun will stay AI-controlled the rest of the year, as Jacquarel and Lemon want it to be. It can also be added by an admin through VV, whether they're planning some shenanigean or just want to add something more to the round. ## Changelog 🆑 add: Pun Pun is a playable crewmember during Monkey Day (14 December). /🆑 |
||
|
|
6faa37853b |
Void Heretic Rework: You Can (Not) Heat Up. (#85728)
## About The Pull Request Reworks most of the Void Heretic kit. All Void spells now apply a stacking debuff that makes you gradually colder. Void Blast has been replaced with a new spell "Void Conduit" and a new Side knowledge spell, "Void Prison" has been introduced. Waltz At The End Of Time has been completely overhauled. Lastly Void Blade has been resprited along with the overlay of Void Chill, check any of the linked videos to see the new look. All new sprites have been kindly made by OrcaCora. ## Why It's Good For The Game Void path is *Supposedly* themed around the cold of space but doesn't have any tools to live up to the fantasy of being an harbringer of the Void whose main goal is to freeze the station to an icicle. Then there's also the issue of Void being utterly underwhelming compared to his neighbors, Cold is way too easy to treat as a status effect, so much so, a simple cup of coffee can utterly shutdown the void storm, which is just unacceptable. # **Changes** - **Void Chill**: Is now a stacking debuff, each stack slows movement speed by a percentage while lowering body temperature, upon reaching the cap, which is 5 stacks, the victim cannot heat up anymore, all void Spells apply 1 stack of the debuff, with the exception of the grasp applying 5 (2 for the mark and 3 for the detonation) and the blade upgrade applying 2. **Reasoning**: Void chill currently suffers from being completely shutdown by sipping tea, coffee or having the COLD_RESIST trait,with this change you can still negate the damage and the slowdown you get from being cold but not the slowdown from the debuff itself. - **Aristocrat's Way**: Now grants no slip on ice and water tiles on cold or depressurized turfs **Reasoning:** Since the rework revolves around making Void heretic more involved in freezing the station, they should be able to move in their domain without getting punished for it. - **Void Cloak:** Can now be toggled on and off to make the cloak visible or invisible; when the cloak is visible it grants low pressure immunity trait. **Reasoning:** Not having pressure resistance as a Void Heretic just sucks, as you are clearly intended to somewhat go into space at some point; giving it to the cloak is a good compromise since you sacrifice better protection (***the armor values of the cloak are pitiful***) for utility. - **Replaces "Void Blast" with a new spell, "Void Conduit"**. **Void Conduit:** Opens a gate to the Void; it releases an intermittent pulse that damages windows and airlocks and applies a stack of void chill to non heretics, Heretics are granted the low pressure resistance trait. **Reasoning**: I like the idea behind Void Blast; unfortunately, the spell has limited uses if an area isn't already spaced, which is hard to do considering the current kit of Void Heretic doesn't provide anything to help in that regard. I wanted to give Void Heretic a tool to turn any area of their choosing into their ideal habitat. Not amazing for quick assassinations, good if you are anticipating a fight or want to simply expand your domain, the added Trait might seem redundant, but let's not forget that the void cloak is still a side knowledge, I don't want newbie heretics to space an area and accidentally killing themselves because of it. Video Demonstration: https://www.youtube.com/watch?v=nhPdj1hIgSI - **New side knowledge: "Void Prison."** **Void Prison:** It makes the target invulnerable and unable to do anything for 10 seconds , when the spell ends, it applies a few stacks of void chill, cannot be self-cast. It occupies the same slot of Blood Siphon (inbetween Raw Ritual and Void Phase.) Video Demonstration: https://www.youtube.com/watch?v=nKZd8aEcZFw **Reasoning**: Void is technically meant to be an assassination path and not really apt at tackling multiple opponents, this spell might come into clutch if you are outnumbered, or simply want some breathing room from your pursuers. - **Void Jaunt and Void Pull** Cooldown respectively reduced to 25 and 30 seconds, down from 30 and 40. **Reasoning:** I felt that the cooldown on these was a bit too high overall; as it stands, Void Phase cooldown is twice as long as Ashen passage, one of the best and arguably most sidepathed spells in the game. Granted phase is faster and has more range but I don't think it justifies its cooldown being this long. Void pull could also use slightly less cooldown, being the very last spell you unlock and offering a simple melee knockdown. - **Seeking Blade:** Now applies 2 stacks of void chill per hit. **Reasoning:** Seeking blade is a bit underwhelming for being the final blade upgrade, teleporting to a target you just stunned at melee range is incredibly niche, now that Void chill is a stacking debuff we can probably just slap it on the blade itself. - **Waltz At The End Of Time:** The Heretic becomes weightless and able to levitate around, (carp movement essentialy). The heavy storm is no longer bound to the room the heretic is in but is now an aura around them, this does a few things. 1) Releases a pulse that depressurizes areas, shatters windows, airlocks and firelocks, and applies a stack of void chill to non heretics, the passive burn and oxy damage effect has been removed. 2) Grants to the Heretic projectile deflection. **Reasoning:** Void Has the reputation of having the weakest ascension in the game, which it's hard to disagree on considering you can completely neutralize the effects of the storm by simply sipping tea and how generally little it does overall. It's also kind of strange that you have this massive Eldritch storm ravaging the station and for it to have no effects on its atmosphere, infrastructure, or projectiles whatsoever. Video Demonstration: https://www.youtube.com/watch?v=1_blr20-hgA ## Changelog 🆑 add: New Heretic Side Knowledge, Void Prison. add: New Void Spell Void Conduit has now replaced Void Blast. balance: Void Chill is now a stacking debuff, upon reaching the cap, makes the target unable to heat up. balance: Aristocrat's way now grants immunity to ice and water slips on cold turfs. balance: Void Cloak now grants low pressure resistance when visible. balance: Void Phase and Void pull have received a minor CD reduction. balance: Seeking Blade now applies a couple of stacks of void chill. balance: Void Heretic Ascension has been overhauled, it's now protects the heretic from projectiles, destroys windows and airlocks and applies void chills to non heretics. image: Void Blade and Void Chill have received some new sprites. /🆑 --------- Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com> Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> |
||
|
|
1dd4e37920 |
You can now bloodcrawl into/out of tomato smudges (#86565)
## About The Pull Request This makes tomato smudges on the floor valid for bloodcrawl. Pretty simple. ## Why It's Good For The Game Why not? It's funny, and ketchup = fake blood. ## Changelog 🆑 add: Tomato smudges on the floor are now considered valid to bloodcrawl into and out of. /🆑 |
||
|
|
4e1b14fd98 |
Hallucinatory Anomalies now produce hallucinatory decoys of itself, and hit a wider area (#86086)
## About The Pull Request This "buffs" the hallucinatory anomaly by giving it a bit more impact and flair. This affects both the detonate effect and what happens when one initially spawns. When a hallucinatory anomaly spawns, it will spawn surrounded by "decoy" hallucination anomalies -- Illusions meant to distract you from the real one. The idea is that these are not actually there, and that they are the result of reality getting muddy in proximity to the anomaly. Scanning one of these will provide a message, either of nothing happening or a minor hallucination as your character suffers from the real anomaly's effects. Using an anomaly neutralizer on a decoy will do nothing. There's nothing to neutralize, because nothing is there. You're losing your grip on reality. Now, the detonate effect will affect people at a wider radius, through walls. This is done with a second helper different from `visible_hallucination_pulse()`, which does affect the blind and ignores walls, `hallucination_pulse()`. ## Why It's Good For The Game Hallucinatory anomalies are easily the most underwhelming and understated anomaly in the group. They have the impact of a dry fart on a round, rarely affecting anyone and vanishing without anyone noticing or caring. It makes little sense for the detonate effect to impact only those who can see it. Anyone with a pulse can make the connection between the "hallucination anomaly" vanishing and Bubblegum bodyslamming them less than a second later. By affecting those out of sight, in a wider range, there's a higher chance the detonation will not only catch people off guard, but lead to more chaos on comms. As for the illusory decoy anomalies, it was just a neat idea I had to differentiate how people typically deal with them. It makes for a more trippy experience for whoever has to deal with them, and adds confusion (which is the whole shtick with hallucinations -- confusion). So, overall, more snazziness and personality, and more of an impact when left alone. ## Changelog 🆑 Rhials balance: Hallucinatory anomalies now have a wider range, and will spawn hallucinatory decoys of itself to mislead you. /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
10c2b7364e |
The fishening v3: Fishing lures. (#86007)
## About The Pull Request Over half of the line changes are merely from splitting the fish_types.dm into several files since it was over 1k lines already. One of the small issues with fishing right now is RNG. You want to get some specific fish, and you go through all the micromanaging with hooks, reels and baits only for the random number god to say "nope", and that's only going to get worse the more fish are in the game. However, I've a solution: (unconsumable/reusable) fishing lures, each of which attracts different fish based on different conditions. The only caveat is that they require to be spun at set intervals (usually 1 to 3 seconds, depending on the lure, with a second-long window). Worry not, there're visual cues in the form of a green/red light hovering the fishing float, so you won't get screwed up by the server slowing down or whatever. The whole box of lures (12 so far) can be from cargo for the fair price of 450 credits. I've also added 5 new fish: monkfish, plaice, pike, another punnier variant of the pike, perch and squid. The latter is quite special because of the ink production trait, which lets players use it to blind others at a close range and when butchered, it yields an ink sac, which can be processed into a can of squid ink (one less item exclusive to the produce console), or thrown at people in a sort-of-similar fashion of banana cream pies (except it's ink). <details> <summary>Images</summary> Fishing lures (forgot to take my cursor off the veggie one before the screenshot):  The five new fish:  </details> <details> <summary>A table of fish catchable wth each lure (excluding holodeck)</summary>  </details> A few more things in the CL, baitfish are a thing now. ## Why It's Good For The Game There should be ways to contrast some of the RNG fishing has. After all, it's only going to get more random the more fish are in the game. Furthermore, I find it disappointing that a lot of food stuff is exclusive to the ingredients console and there're no other ways to get it. ## Changelog 🆑 add: Added fishing lures to the game. They don't get used up like baits and let you catch specific kinds of fish, though they need to be spun every few seconds. The whole set can be ordered from cargo for 450 credits. balance: The magnet hook now removes dud chances. add: Added five new fish types: perch, two types of pike, monkfish, plaice and squid. Squids have a fairly special ink production trait, which lets you use them (unless dead) to ink people face at close range, and can be butchered for an ink sac, which can either be processed into canned squid ink, or thrown at someone. fix: Refactored throwing a little. Some items (specifically components/elements) won't be triggered when caught. no more plates shattering despite being caught for example. add: Goldfish, lavaloops, needlefish and armorfish can now be used as baits. /🆑 |
||
|
|
d2ab513332 |
Reintroducing my PRs that were lost in the wallening revert. (#86439)
## About The Pull Request This PR reintroduces #85759, #85892 and #85894. #85892 has post-wallening arrows, but it isn't a big deal because they fit the top-down or 3/4 style we've for a lot of things. ## Why It's Good For The Game Reintroducing lost features and improvements. Remember to remove the 'Lost in the wallening revert' label from those PRs when this is merged. ## Changelog N/A |
||
|
|
8263be1b73 |
All jaunts now kick you out if you are KO'd mid-jaunt (#86339)
## About The Pull Request Basically, this is https://github.com/tgstation/tgstation/pull/83241 extended to all jaunts, like bloodcrawl and such ## Why It's Good For The Game Kinda sucks getting RR'd if you die for some stupid reason mid-bloodcrawl (i.e accidentally suffocating while jaunting) ## Changelog 🆑 fix: You will now be ejected from any jaunt (i.e bloodcrawl or shadow walk) if you lose consciousness somehow during the jaunt. /🆑 |
||
|
|
9a9b428b61 |
Wallening Revert [MDB Ignore][IDB Ignore] (#86161)
This PR is reverting the wallening by reverting everything up to
|
||
|
|
45174ce0e3 |
New maintenance hazard: Smokey Remains (#86016)
## About The Pull Request  This implements a new rare maintenance spawn, smokey remains. Piles of bones that used to be Nanotrasen employees, still packed with whatever reagent finally did them in. Rarely replacing a crate spawn (7/1007 chance per crate spawn if I'm doing the math right), these act as landmines for uncareful travelers in maintenance. When you get too close, one will release a cloud of a randomly generated reagents into the air (the same reagent every time, unique to the instance of remains). You can (mostly) avoid this by walking instead of running. These will "re-arm" themselves after 4-6 minutes. They're decals, so you can just sweep them away if they're a problem. This also slightly tweaks the original iteration of this, which I used in my Smoking Room ruin. Don't worry about it. I'm open to adjusting the rarity, cooldown, and selection of reagents if need be. ## Why It's Good For The Game Makes maintenance a bit more spicy. Maybe dangerous, maybe beneficial, maybe it's baldium. Who knows! Better be careful just in case! There's plenty of boring chemicals that could roll, but an interesting one could be a nice injection of uniqueness into an otherwise dull round. It's an infinite supply, but can only be dispensed infrequently (at a fixed location) and would be extremely difficult to harvest. The rarity, combined with the variety of reagents that can be picked, make it unlikely that these will have any serious impact on a round (it's still possible, but rarely, which is good). ## Changelog 🆑 Rhials add: Smokey remains have appeared in maintenance. Make sure to walk when near them! /🆑 |
||
|
|
7917f3cbc3 |
Blackbox logging for remaining time on anomaly defusal (#86044)
## About The Pull Request Back in 2023 in PR #74666 Mothblocks said: `We really should collect data on how many people collect anomalies and how much time they had left.` Now here in 2024 it occurs to me that I don't think we actually log that information anywhere. So I added it. Please note: I don't remember how blackbox logging works so while I think this works it might not be the correct way to format the data. Please tell me if it isn't. ## Why It's Good For The Game `We really should collect data on how many people collect anomalies and how much time they had left.` ## Changelog Not player facing --------- Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> |
||
|
|
73081bcff0 |
Add messages (paper, photos, cash) in bottles. (#85703)
## About The Pull Request This PR adds a new persistent feature: message inside bottles. These are basically glass bottles with inside a piece of paper, a photo or space cash (no holocredits, and most bills rarely go over 1000 credits anyway) from a previous round, which can be fished at the beach, or from the relative fishing portals. Each piece of written paper or photo that isn't map-loaded has a roughly a 0.2% chance to be added to the message bottles database at the end of the round. However, you can also manually toss a glass bottle with inside a paper/photo/bill into the ocean (or a fishing portal generator with the ocean/beach module loaded) for guaranteed results. The bottles are removed from the database once fished up by the by, unless tossed back into the ocean. I've also offset a couple bottle sprites that weren't properly aligned (for the message overlays). TODO: - [x] add a couple (20 prob or less) message bottle spawners to the beach away mission or something. - [x] add a few sounds for adding and removing the message from the bottle. (pickup/drop sounds already handle that) - [x] test it properly. ## Why It's Good For The Game I think it'd be neat to have a way to send photos, snarky "seek grass" messages, as well as the occasional financial aid to future players, and furthermore, another thing to tie fishing to. ## Changelog 🆑 add: You can place papers, photos and cash bills (no holochips) inside bottles and then toss them into the ocean (or fishing portal gen with relative settings) with right-click, for others to fish them up on future rounds. /🆑 |
||
|
|
2f69fe6190 |
Adds three new deathmatch maps - Ragnarok, Lattice Battles, Species Showdown (#85319)
## About The Pull Request Adds three new deathmatch maps. ### Important nonDM Balance Changes Cult daggers fit on belts. Heretic blades fit on belts. Veil shifters fit on belts. I really don't know why these didn't, it makes inventory management rather annoying at times. It also screwed my loadouts over. Cursed Blades fit on cult robes. They're cult equipment after all. Bronze suits fit toy watches!! ### Ragnarok  A vicious battle in the jungle, between the three major religious sects: Prove your deity's might! And try not to upset any primates. Or fall into the chasm. Going clockwise: **Cultist Invoker**: Wielding a mirror shield, shielded robes, a sword, and some bolas, this cultist has a 'well-balanced' set of equipment to annihilate their opponents. **Cultist Artificer**: This set harnesses the blood magicks - with spells of stunning, blood rites, and ranged hallucinations, with a wicked Cursed Blade and Veil Shifter as implement, and Berserker Robes to finish the look. **Holy Crusader**: Nullifying most, but certainly not all, of the fearsome arsenal of the opponents with the null rod at their belt, the Crusader packs a dangerous claymore and armor to protect them from the demons. **Rat'var Apostate**: Hey, what's that guy doing there in the dark? They don't have any magic because their god is Fucking Dead, but they're still going to show up for a token effort. Good luck! **Heretic Scribe**: This mad soul wields an antique rifle and an assortment of other dangerous relics, with a set of magic geared towards staying far apart, picking enemies off from range and evading their attacks for the final blow. **Heretic Warrior**: With the deadliest of Mansus Magic at their disposal, this warrior is only limited by their ability to juggle all their spells at once - don't get overwhelmed sorting your spells while an Invoker runs at you with a sword and shield and makes you cry yourself to death. ### Lattice Battles  A fresh change of pace: In this pacifist map, the only way to kill your opponents is to snip the lattices and catwalks from under them. Watch your step. ### Species Warfare  Prove the might of your static by duking it out with every other kind of crewmember out there. Features a messy dorms, a ticking-timebomb atmos, a rather sterile robotics, a slippery closet, a fluffy medbay, and an energetic bridge. Mirror Shields now shatter on throw (which stuns and hurts) ## Code changes Added two new traits, TRAIT_ACT_AS_CULTIST and TRAIT_ACT_AS_HERETIC. Added these as an OR to respective IS_X checks. Added new GET_X checks for them, which do not check the trait. Tidied up the file those are in. Added belt_contents() to outfits, but it dosen't work.... Added a heretic rust sister-type to rust walls and floors. Fixed a typo in cult ascension. ## Why It's Good For The Game These maps all aim to do something interesting and unique with DM rather than the usual deathfest and hugging of random crates. Ragnarok allows players to practice unusual and rare magical mechanics, similar to Ragin' Mages. Lattice Battles adds SPLEEF to the game, which I think is awesome. Species Warfare is, I think, fun and funny. Each 'department' has incredibly chaotic and thematically-appropiate content for the species its meant to symbolize, and I look forward to the chaos that every round in it is inevitably going to have. > Mirror Shields now shatter on throw. I'm surprised they didn't! Since they aren't used anywhere I can do what I want with them. ## Code changes > Added two new traits, TRAIT_ACT_AS_CULTIST and TRAIT_ACT_AS_HERETIC. Added these as an OR to respective IS_X checks. Added new GET_X checks for them, which do not check the trait. I think this is a clever solution to the problem of 'what if I want someone who acts as the antag, but isn't?' Some procs do need the datum to modify it, so there's GET_X, but those aren't common and don't seem likely to be an issue. > Added belt_contents() to outfits, but it dosen't work.... Help would be very much appreciated, I don't know what I'm doing wrong here. It's only used for the heretic scribe's unfathomable curio. Some post-PR cleanup coming up. ## Changelog 🆑 add: Added three new DM maps - Ragnarok, Lattice Battles, Species Showdown. /🆑 |
||
|
|
e5761e0bfc | Porting and adapting food sprites from other repos (plus a couple original resprites) (#85759) | ||
|
|
b857200de9 |
Adds drawing chalk outlines on dead mobs, white crayons are now called sticks of chalk (#85918)
## About The Pull Request  *The Miami Mutilator is at large once again. Thank god we have such hardboiled detectives as Manny Pardo on the case.* This pull request allows for players to use white crayons, which have now been renamed to sticks of chalk, to generate outlines of dead or "dead" bodies found throughout the station in an attempt to let detectives actually set up crime scenes as opposed to, more typically, just causing them. Players will attempt to draw a chalk outline if the target is a mob and the mob is dead (or fake-dead), using a single charge of the crayon/chalk. Also, adds a quick macro so that we can get the proper left/right orientation of the dead mob for reference. ## Why It's Good For The Game Detective should have more thematic, simple ways to organize crime scenes in-round, and what better way to do that then through existing items and mechanics that we already have. Also, I was 100% shocked to learn that these have always been white crayons as opposed to sticks of chalk, which certainly seems odd. In essence, this change doesn't really let you do anything "new", but just makes it easier and simpler to do so in a regular round without nearly as much fiddling. This mechanic exists exclusively within the afterattack of sticks of chalk as opposed to all crayons for thematic reasons, but I'm not 100% sold on that and it would be simple to move over to all crayons if people feel strongly about that. ## Changelog 🆑 add: White crayons (Renamed to Sticks of Chalk) may now be used on dead bodies to draw a body outline onto the ground easily. /🆑 --------- Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> |
||
|
|
6f0dd84a3d |
Splits wall layer into three (#85901)
## About The Pull Request Turns `ON_WALL_LAYER` into `FLAT_ON_WALL_LAYER` `ON_WALL_LAYER` `HIGH_ON_WALL_LAYER` Where `FLAT_ON_WALL_LAYER` is meant for lower-priority wall mounts like signs and posters `ON_WALL_LAYER` is default and `HIGH_ON_WALL_LAYER` is for stuff that "hang over" the wall Also makes the incident display actually wall mounted ## Why It's Good For The Game I noticed this while doing mapping and I thought it was a really cool effect  Unfortunately this effect was a coinflip because all wall mounts were on the same layer. Sometimes it'd look like this  So this allows us to do this kinda stuff consistently. Also has the added effect of letting us "de-prioritize" stuff like posters, so we can hang stuff *over* posters and signs, which could be useful. ## Changelog 🆑 Melbert qol: Some wall mounts will now consistently layer over others (light switches and cameras, notably, should always layer above other mounts like signs and status displays) /🆑 |
||
|
|
3fc1503fbd |
portable gravity machine (#85694)
## About The Pull Request https://github.com/user-attachments/assets/98aa2177-ee0f-48d0-bbd4-83d01e688b54 it makes gravity in a radius you may order it from cargo may take power from wire instead ## Why It's Good For The Game good for like space bases and stuff ## Changelog 🆑 add: portable gravity unit, bought at cargo /🆑 |