mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-28 10:01:58 +00:00
bbb94de16671337f8baef40119e341b68995b02b
549 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
b306c28675 |
General maintenance for RPD (#88047)
## About The Pull Request **1. Code Improvement** - Moved global pipe crafting recipe list into `code/__DEFINES/globalvars/list` folder because its a global list & it should belong there. Reduces size of RPD file - Moved `datum/pipe_info` into `code/__DEFINES/globalvars` folder because it's used by both RPD & crafting recipe so its a global var. Reduces size of RPD file - Replaced a bunch of `usr` with the proper user variable when available - Autodoc for procs & vars **2. Refactor** - Attack chain for RPD has been refactored to `interact_with_atom()` & `interact_with_atom_secondary()` ## Changelog 🆑 refactor: improved attack chain code for rapid pipe dispenser code: organized lists & global vars for rapid pipe dispenser into their own respective files & improved a bunch of code /🆑 |
||
|
|
d8450b4933 |
Camera eyes have been lightly refactored (among other things...) (#87805)
## About The Pull Request * A generic /mob/eye/camera type has been made, containing everything needed to interface with a cameranet * /mob/eye/ai_eye has been refactored into a generic /mob/eye/camera instance * Advanced cameras no longer inherit from AI eyes, splitting off behaviour * Camera code has been somewhat cleaned up * Probably some more stuff I'm forgetting right now ## Big man Southport:  ## Changelog 🆑 code: made /proc/getviewsize() pure refactor: mob/eye/ai_eye has been restructured, now inheriting from a generic mob/eye/camera type refactor: advanced cameras and their subtypes are now mob/eye/camera/remote subtypes code: the cameranet no longer expects the user to be an AI eye code: remote camera eyes have had their initialization streamlined code: remote cameras handle assigning and unassigning users by themselves now code: remote cameras now use weakrefs instead of hard referencing owners and origins code: also the sentient disease is_define was removed (we don't have those anymore) fix: AI eyes no longer assign real names to themselves, fixing their orbit name /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
6272b3680c |
You can use a fishing rod to snatch organs during organ manipulation surgery (feat organs sanity fix) (#87774)
## About The Pull Request This allows you to use a fishing rod during the "manipulate organs" step of the aforementioned surgery to snatch organs from a target. Unlike other fish sources, this one has a negative fishing difficulty of -20, which when summed with the default minigame difficulty should still result in a negative difficulty. In layman terms, this means the minigame is skipped here (unless you're wearing some clunky stuff like insulated or boxing gloves). It also has a wait time of 8 to 13 seconds versus the more random standard 3 to 25 seconds. A small side-effect of this is that explosions during the "manipulate organs" step will basically disembowel you, but it kinda fits anyway. By the by, because of this, there is a tiny chance bluespace fishing rods can yield you random organs. Worry not, they're newly generated, so you won't be snatching it from another player by accident (at least for now). ## Why It's Good For The Game It adds more possible weird and rare shenanigans involving surgery. ## Changelog 🆑 Add: You can use a fishing rod to snatch organs during organ manipulation surgery /🆑 |
||
|
|
ae35a773f1 |
[no gbp] renmoves bartender skillchip from chipped quuirk (#87918)
## About The Pull Request job skillchip, combat skilchip, bad skilchip ## Why It's Good For The Game combat is bad job is bad no quirk no good no no no, no quirk get combat no quirk get job contant, ver ybad not good ## Changelog 🆑 fix: [no gbp] renmoves bartender skillchip from chipped quirk /🆑 |
||
|
|
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. /🆑 |
||
|
|
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. /🆑 |
||
|
|
7f5d9d7e09 |
Tick checks unplanned controllers (#87506)
Shakes fist at random overtime |
||
|
|
ef6ea67348 |
[NO GBP] adds big pointer to chipped quirk (#87486)
## About The Pull Request adds the big pointer chip that lets you recolor your large pointer to the chipped quirk ## Why It's Good For The Game i forgot to add this, whoops if you are worried about spam. the 2 cost chip that literally makes every message you say be spoken like a musical has really shocked me in how little it has been used so far. so that is not a concern ## Changelog 🆑 add: adds big pointer to chipped quirk /🆑 |
||
|
|
57cc38c789 |
GPSes now show the general direction of crosslinked z-levels (#87437)
## About The Pull Request This makes the GPS UI give the general direction of a GPS on a different linked z-level. https://github.com/user-attachments/assets/98c6dfd8-5ced-4145-b14a-3813821ef30c ## Why It's Good For The Game Makes navigating through space less of a chore, as previously, I believe the only way was to manually write down or memorize what direction was linked to what z-level. ## Changelog 🆑 add: GPSes now show the general direction of cross-linked z-levels. /🆑 |
||
|
|
d170a410d4 |
Recovered Crew | Medical+Cargo Respawns (#87072)
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> |
||
|
|
7aa9f1a096 |
Removes the unused GLOB.alcohol_containers (#87371)
## About The Pull Request This PR removes the unused GLOB.alcohol_containers. It used to be used by the alcoholic quirk, before it was changed to use a much more sensible dictionary. The PR also updates the warning given when the selected alcoholic container is null, to make it refer to the new dictionary. ## Why It's Good For The Game Its initialization code was unused, and also, spawned every single alcoholic container in nullspace. This was done so originally because `initial()` could not retrieve lists. With the new dictionary, this is not needed anymore. ## Changelog Nothing player facing |
||
|
|
df00d85356 |
Eye wounds, scars and a new ~Pirate~ RP quirk (#87209)
## About The Pull Request Upon getting stabbed in your eyes or having a bullet fly through your head there's a chance (minor for stabbing, extremely low for headshots) you'll receive a new "Eye Puncture" wound which causes profuse bleeding out of your now-empty eye hole. Once healed you'll have to deal with a scar on your eye which cannot be cured and requires surgical replacement. Eye scarring will reduce your eyes' max health by 15, give you a minor screen tint and a fancy visual on your character sprite. Getting scarring on both eyes will turn you completely blind.  This PR also introduces a new quirk which gives you eye scarring on the eye of your choice and an eyepatch to go alongside it, just make sure that it sits on the right eye. Also added medical(white) subtype of eyepatches to loadout for those who want that version instead. Credits to AnturK on discord for the idea. ## Why It's Good For The Game Its a neat lil' feature that makes the game more immersive, and unlocks more roleplay opportunities for players. New quirk gives access to this feature for players who want to make it a part of their character's backstory (or maybe as a part of permanent scar roleplaying). ## Changelog 🆑 add: Getting stabbed or shot in the eyes has a chance of giving you a new wound and a semi-permanent scar, blinding you on one side add: Added new "Scarred Eye" quirk which blinds you on one eye but gives you a fancy eyepatch add: Medical eyepatches have been added to loadout /🆑 --------- Co-authored-by: Time-Green <7501474+Time-Green@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> |
||
|
|
11187a2a6d |
some more ai optimizations (#86975)
## About The Pull Request ai controllers that have exhausted all their current behaviors now stop processing until the next cycle, so we no longer need to do these checks on every process fire. idle behaviors are now instead handled by a new low priority subsystem. these are the costs before/after roughly 25 minutes into the round  ## Why It's Good For The Game improves ai performance ## Changelog 🆑 /🆑 |
||
|
|
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 /🆑 |
||
|
|
9a9b428b61 |
Wallening Revert [MDB Ignore][IDB Ignore] (#86161)
This PR is reverting the wallening by reverting everything up to
|
||
|
|
e1bf793264 |
Spelling and Grammar Fixes (#86022)
## About The Pull Request Fixes several errors to spelling, grammar, and punctuation. ## Why It's Good For The Game ## Changelog 🆑 spellcheck: fixed a few typos /🆑 |
||
|
|
7fcfc9dc1c |
Fishing toolboxes (and maint) now come with a paper slip containing fishing-related tips. (#85279)
## About The Pull Request Fishing is full of stuff that goes under the radar with little visibility and the [wiki page](https://tgstation13.org/wiki/Fishing) is outdated as fuck (look at all those ugly old codersprites oh my goodness). I don't want to shove tip of the rounds for something so niche but a few tips inside the fishing toolboxes people get sometimes, as well as maintenance shouldn't hurt. This PR is for currently a draft until the other PRs are in. Many of the tips refer to stuff that hasn't been merged yet. ## Why It's Good For The Game I cannot trust the wiki contributors to do a good job at it nor keep up with the continuous changes I do. Also these might help players sometimes. ## Changelog 🆑 add: Fishing toolboxes (and occasionally maintenance) now come with a paper slip containing fishing-related tips. /🆑 --------- Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> |
||
|
|
34aa2bc50e |
Paraplegics can choose to not have legs. (#85716)
## About The Pull Request This is a bounty that was made by ophaq, and claimed by me. Gives paraplegic the option to be an amputee, and appear on station without their legs. They are still paralyzed, so no amount of mechanical legs is gonna let them walk again. ## Why It's Good For The Game Character customization is a good thing and lets people make their little characters suffer in new ways, this one in specific *actively lowers your max HP*, which is gonna certainly be fun. ## Changelog 🆑 qol: Paraplegics can now opt into appearing on the shift without their legs. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
4273fc9dd9 |
idle basic mobs can plan again (#85348)
## About The Pull Request idled basic mobs now instead of completely shutting off, will be delegated to a much lower priority subsystem to do their planning. ## Why It's Good For The Game Mobs can now perform their functions without needing players to be nearby in a way that doesnt starve other subsystems. this allows animals such as goldgrubs to eat ores, lobstrosities to fish, seedlings to tend plants (and many others) without needing any players nearby ## Changelog 🆑 fix: idle basic mobs will now plan behaviors rather than completely shut down /🆑 |
||
|
|
4b4e9dff1d |
Wallening [IDB IGNORE] [MDB IGNORE] (#85491)
## What's going on here Kept you waitin huh! This pr resprites most all walls, windows and other "wall adjacent" things to a 3/4th perspective, technical term is "tall" walls (we are very smart). If you're trying to understand the technical details here, much of the "rendering tech" is built off the idea of split-vis. Basically, split a sprite up and render it on adjacent turfs, to prevent seeing "through" walls/doors, and to support seeing "edges" without actually seeing the atom itself. Most of the rest of it is pipelining done to accommodate how icons are cut. ## Path To Merge Almost* all sprites and code is done at this point. There are some things missing both on and off the bounty list, but that will be the case forever unless we force upstream (you guys) to stop adding new shit that doesn't fit the style. I plan on accepting and integrating prs to the current working repo <https://github.com/wall-nerds/wallening> up until a merge, to make contribution simpler and allow things like bounties to close out more easily This pr is quite bulky, even stripping away map changes it's maybe 7000 LOC (We have a few maps that were modified with UpdatePaths, I am also tentatively pring our test map, for future use.) This may inhibit proper review, although that is part of why I am willing to make it despite my perfectionism. Apologies in advance. Due to the perspective shift, a lot of mapping work is going to need to be done at some point. This comes in varying levels of priority. Many wallmounts are offset by hand, some are stuck in the wall/basically cannot be placed on the east/west/north edges of walls (posters), some just don't look great good in their current position. Tests are currently a minor bit yorked, I thought it was more important to get this up then to clean them fully. ## What does it look like?       ## Credits <details> <summary>Historical Mumbojumbo</summary> I am gonna do my best to document how this project came to be. I am operating off third party info and half remembered details, so if I'm wrong please yell at me. This project started sometime in late 2020, as a product of Rohesie trying to integrate and make easier work from Mojave Sun (A recently defunct fallout server) with /tg/. Mojave Sun (Apparently this was LITERALLY JUST infrared baron, that man is insane) was working with tall walls, IE walls that are 48px tall instead of the normal 32. This was I THINK done based off a technical prototype from aao7 proving A it was possible and B it didn't look like dogwater. This alongside oranges begging the art team for 3/4th walls (he meant TGMC style) lead to Rohesie bringing on contributors from general /tg/, including actionninja who would eventually take over as technical lead and Kryson, who would define /tg/'s version of the artstyle. Much of the formative aspects of this project are their work. The project was coming along pretty well for a few months, but ran into serious technical issues with `SIDE_MAP`, a byond map_format that allows for simpler 3/4th rendering. Due to BULLSHIT I will not detail here, the map format caused issues both at random with flickering and heavily with multiz. Concurrent with this, action stepped down after hacking out the rendering tech and starting work on an icon cutter that would allow for simpler icon generation, leaving ninjanomnom to manage the project. Some time passed, and the project stalled out due to the technical issues. Eventually I built a test case for the issues we had with `SIDE_MAP` and convinced lummox jr (byond's developer) to explain how the fuckin thing actually worked. This understanding made the project theoretically possible, but did not resolve the problems with multi-z. Resolving those required a full rework of how rendering like, worked. I (alongside tattle) took over project development from ninjanomnom at this time, and started work on Plane Cube (#69115), which when finished would finally make the project technically feasible. The time between then and now has been slow, progressive work. Many many artists and technical folks have dumped their time into this (as you can see from the credits). I will get into this more below but I would like to explicitly thank (in no particular order) tattle, draco, arcanemusic, actionninja, imaginos, viro and kylerace for keeping the project alive in this time period. I would have curled up into a ball and died if I had to do this all myself, your help has been indispensable. </details> <details> <summary>Detailed Credits</summary> Deep apologies if I have forgotten someone (I am sure I have, if someone is you please contact me). I've done my best to collate from the git log/my memory. Thanks to (In no particular order): Raccoff: Being funny to bully, creating threshold decals for airlocks aa07: (I think) inspiring the project ActionNinja: Laying the technical rock we build off, supporting me despite byond trying to kill him, building the icon cutter that makes this possible ArcaneMusic: Artistic and technical work spanning from the project's start to literally today, being a constant of motivation and positivity. I can't list all the stuff he's done Armhulen: Key rendering work (he's the reason thindows render right), an upbeat personality and a kick in the ass. Love you arm Azlan: Damn cool sprites, consistently Ben10Omintrix: You know ben showed up just to make basic mobs work, he's just fuckin like that man BigBimmer: A large amount of bounty work, alongside just like, throwing shit around. An absolute joy to work with Capsandi: Plaques, blastdoors, artistic work early on CapybaraExtravagante: Rendering work on wall frames Draco: SO MUCH STUFF. Much of the spritework done over the past two years is his, constantly engaged and will take on anything. I would have given up if not for you Floyd: Early rendering work, so early I don't even know the details. Enjoy freedom brother Imaginos16: A guiding hand through the middle years, handled much of the sprite review and contribution for a good bit there Iamgoofball: A dedication to detail and aesthetic goals, spends a lot of effort dissecting feedback with a focus on making things as good as they can be at the jump Infrared: Part of the impetus for the project, made all the xenomorph stuff in the MS style Jacquerel: A bunch of little upkeep/technical things, has done so much sprite gruntwork (WHY ARE THERE SO MANY PAINTING TYPES) Justice12354: Solved a bunch of error sprites (and worked out how to actually make prs to the project) Thanks bro! Kryson: Built the artstyle of the project, carrying on for years even when it was technically dying, only stopping to casually beat cancer. So much of our style and art is Kryson KylerAce: Handled annoying technical stuff for me, built window frame logic and fully got rid of grilles. LemonInTheDark: Rendering dirtywork, project management and just so much fucking time in dreammaker editing sprites Meyhazah: Table buttons, brass windows and alll the old style doors Mothblocks: Has provided constant support, gave me a deadline and motivation, erased worries about "it not being done", gave just SO much money to fill in the critical holes in sprites. Thanks moth MTandi: Contributed art despite his own blackjack and hookers club opening right down the road, I'm sorry I rolled over some of your sprites man I wish we had finished earlier Ninjanomnomnom: Consulted on gags issues, kept things alive through some truly shit times oranges: This is his fault Rohesie: Organized the effort, did much of the initial like, proof of concept stuff. I hope you're doin well whatever you're up to. san7890: Consulting on mapper UX/design problems, being my pet mapper Senefi: Offsetting items with a focus on detail/the more unused canidates SimplyLogan: Detailed map work and mapper feedback, personally very kind even if we end up talking past each other sometimes. Thank you! SpaceSmithers: Just like, random mapping support out of nowhere, and bein a straight up cool dude Tattle: A bunch of misc project management stuff, organizing the discord, managing the test server, dealing with all the mapping bullshit for me, being my backup in case of bus. I know you think you didn't do much but your presence and work have been a great help Thunder12345: Came out of nowhere and just so much of the random bounties, I'm kind of upset about how much we paid him Time-Green: I hooked him in by fucking with stuff he made and now he's just doin shit, thanks for helping out man! Twaticus: Provided artistic feedback and authority for my poor feeble coder brain, believed in the project for YEARS, was a constant source of ❤️ and affirmation unit0016: I have no god damn idea who she is, popped out of nowhere on the github one day and dealt with a bunch of annoying rendering/refactoring. Godspeed random furry thank you for all your effort and issue reports Viro: A bunch of detailed spriting moving towards 3/4ths, both on and off the wallening fork. If anyone believed this project would be done, it was viro Wallem: Artistic review and consultation, was my go-to guy for a long time when the other two spritetainers were inactive Waltermeldon: Cracked out a bunch of rendering work, he's the reason windows look like not dogwater. Alongside floyd and action spent a TON of time speaking to lummox/unearthing how byond rendering worked trying to make this thing happen ZephyrTFA: Added directional airlock helpers, dealt with a big fuckin bugaboo that was living in my brain like it was nothing. Love you brother And finally: The Mojave Sun development team. They provided a testbed for the idea, committed hundreds and hundreds of hours to the artstyle, and were a large reason we caught issues early enough to meaningfully deal with them. Your work is a testament to what longterm effort and deep detailed care produce. I hope you're doing well whatever you're up to. Go out with a bang! </details> ## Changelog 🆑 Raccoff, aa07, ActionNinja, ArcaneMusic, Armhulen, Azlan, Ben10Omintrix, BigBimmer, Capsandi, CapybaraExtravagante, Draco, Floyd, Iamgoofball, Imaginos16, Infrared, Jacquerel, Justice12354, Kryson, KylerAce, LemonInTheDark, Meyhazah, Mothblocks, MTandi, Ninjanomnom, oranges, Rohesie, Runi-c, san7890, Senefi, SimplyLogan, SomeAngryMiner, SpaceSmithers, Tattle, Thunder12345, Time-Green, Twaticus, unit0016, Viro, Waltermeldon, ZephyrTFA with thanks to the Mojave Sun team! add: Resprites or offsets almost all "tall" objects in the game to match a 3/4ths perspective add: Bunch of rendering mumbo jumbo to make said 3/4ths perspective work /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: = <stewartareid@outlook.com> Co-authored-by: Capsandi <dansullycc@gmail.com> Co-authored-by: ArcaneMusic <hero12290@aol.com> Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com> Co-authored-by: SomeAngryMiner <53237389+SomeAngryMiner@users.noreply.github.com> Co-authored-by: KylerAce <kylerlumpkin1@gmail.com> Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: Runi-c <5150427+Runi-c@users.noreply.github.com> Co-authored-by: Roryl-c <5150427+Roryl-c@users.noreply.github.com> Co-authored-by: tattle <article.disaster@gmail.com> Co-authored-by: Senefi <20830349+Peliex@users.noreply.github.com> Co-authored-by: Justice <42555530+Justice12354@users.noreply.github.com> Co-authored-by: BluBerry016 <50649185+unit0016@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com> Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com> Co-authored-by: Rob Bailey <github@criticalaction.net> Co-authored-by: MMMiracles <lolaccount1@hotmail.com> |
||
|
|
71c35b60ff |
Maintenance ambience (#85256)
## About The Pull Request Sounds: https://github.com/user-attachments/assets/8e384d9f-44b0-4f67-9dd0-ef2c037c6d69 https://github.com/user-attachments/assets/2334136c-aada-483f-a0c1-d129bd536d3a https://github.com/user-attachments/assets/1c103424-5dc7-4aa0-bd26-c6d7bde335de https://github.com/user-attachments/assets/6809903b-6714-4249-ad64-86dd6c7142e7 https://github.com/user-attachments/assets/753062a7-0292-41ec-a335-4ac065969b22 https://github.com/user-attachments/assets/c186aa8f-4dc3-4dab-be38-72b0079eae0c ## Why It's Good For The Game Soundwork contributes to horror greatly and maints are the horror part of space station 13, these sounds should make them a bit more creepy. ## Changelog 🆑 grungussuss and Kayozz sound: more maintenance ambience has been added /🆑 |
||
|
|
c04af38744 |
Dehydrator, machine version of drying rack (#85141)
## About The Pull Request  Added dehydrator, a machine version of drying rack. Replaced the second fryer with this rack on some maps to be available roundstart. Also changed the colors of Smart Fridge to be more in line with other kitchen appliances. ## Why It's Good For The Game We have plenty of recipes requiring dried items, and it's silly that the chef has to break down a cafeteria table to build a rack for regular recipes. ## Changelog 🆑 add: Dehydrator, a machine version of drying rack, with a circuit board and available on some kitchens roundstart. image: Updated the color palette of Smart Fridge /🆑 |
||
|
|
2c0f5d181a |
Datumizes pod types (#85033)
## About The Pull Request Changes supply pods to use datums instead of a massive nested list to store data and index defines as styles. Complete feature parity. ## Why It's Good For The Game this is nightmare fuel to work with  and this is a sin against nature and god   ends up as  which is ??? Using a nested list to store pod data is a very bad idea, it has horrible formatting, is unreadable without having index defines open in a second tab and is not extendable. And as you can see above, if someone added another pod type before 14th everything would break because other pod type lists **__only have 8 elements__** instead of 10 like the seethrough one does. ## Changelog 🆑 refactor: Pod code now uses datums instead of being a huge nested list /🆑 |
||
|
|
a378fea3e0 |
Split security gloves from black gloves, gave sprites to those and tackling gloves, moves tackling to right-click (#84909)
## About The Pull Request Added security gloves, which have the fast cuff trait. Normal black gloves no longer have them. Adds sprites for security and tackling gloves, moves tackling to right-click! Also added blue security gloves for the blue sec PR. Whoever merges it first will, assumedly, add it then. Sprites here:  Moved tackling to right click. ## Why It's Good For The Game > Added security gloves, which have the fast cuff trait. Normal black gloves no longer have them. Didn't make any sense that normie gloves had these. It was an undocumented feature! Why can jannies fast cuff! > Adds sprites for security and tackling gloves, moves tackling to right-click! Really smells that these don't have sprites so I quickly slapped some up, edited from tackler and CE insuls. > Also added blue security gloves for the blue sec PR. Whoever merges it first will, assumedly, add it then. We can't have blue sec with red gloves!!! > Moved tackling to right click. It's so fuckin annoying to accidentally tackle when you're trying to throw something. It's the biggest thing that prevents me from putting on gloves. Now it'll rarely, if ever, be a problem: Pressing right click while thowing mode is on is unlikely to ever happen accidentally. ## Changelog 🆑 add: Added security gloves, which have the fast cuff trait. Normal black gloves no longer have them. imageadd: Adds sprites for security and tackling gloves, moves tackling to right-click! imageadd: Also added blue security gloves for the blue sec PR. Whoever merges it first will, assumedly, add it then. qol: Moved tackling to right click. /🆑 |
||
|
|
89cf4c7787 |
The Voidwalker | New Midround Antagonist (#84674)
## The Voidwalker Adds a new antagonist, the Voidwalker! It's a rare antag that spawns in space when there's at least 40 people Design doc is here: https://hackmd.io/jE4YScP8RPykXo37rTBV2Q (there's some deviations) No biddle ## Summary Spooky space antag that moves around space, ambushing people either in space or near space. They can move through glass, have an ability to stamina drain you if they remain in your vision for 8 seconds, can temporarily remove glass windows to drag you through them and deal ~~stamina damage~~ incredibly violence. Upon being taken, they can be kidnapped and cursed, muting and pacifying the person and sending them to the void. ## Passive   Passive abilities: - Permanent space flight and indoor flight - Space regen - Slowdown when in gravity - Space camo (very low alpha when in space - Can freely move through unshocked glass - Mute, but can hear all station frequencies (excluding binary) - Will quickly die when on planets or moons (obviously can't roll on icebox) - 10 brute armor and 20 burn armor. They can't wear any form of armor and don't have any get out of jail free cards, so I think it'll help with their survivability a slight bit ## Abilities **Void eater:** Literally just a light-eater but instead of eating light it instantly shatters windows, but restores them after a few seconds **Space Dive:** New ability that lets you move under the station with a 2 second do_after, so they can still get to closed of space spots without being as annoying as heretic space shift **Unsettle:** Remain in view of the target for 8 seconds to give them a short stun, slurring and 80 stamina damage, but announce your presence and location to them. Both you and your target can move, as long as you remain in their view. **Space Kidnap:** When your target is incapacitated and in space, you can drag them into the cosmic void. They'll be returned cursed after undergoing a sort of reverse heretic sacrifice (more on that in the next section). [Showcase of all the above abilities!](https://youtu.be/NJ01H28PV9w) ## Voided Crew A brain trauma received when you get kidnapped. While under it's influence, you are muted and pacified. You will die in planetary gravity and cannot enter space.  It can be cured with a lobotomy or by dying in planetary gravity. You get warned to avoid the Voidwalker. The voidwalker now does extra damage and gets the option to glass gib you if you die, leaving just a brain ## Loot On death, the Voidwalker shatters into glass and drops a cosmic skull. Looking into the skull gives you a stable version of the Voided brain trauma. It doesn't give you pacifism and doesn't ban you from space. It also makes you space immune and gives you the ability to walk through unshocked glass after 2 seconds do_after. Sprites for the cosmic skull by Justice12354 and Rex9001! I'll throw up a video showcasing death and their sprites on Sunday ## Why It's Good For The Game We don't have any space centered antagonists. The closest we have are Space Dragons, but they have to go deep into the station anyway. I'm also quite fond of simpler antagonists, like revenant and nightmare. Give people the tools, and they'll make the fun themselves. I've been comparing the Voidwalker with the Nightmare. Both are goalles, simple antagonists, but where the Nightmare's gimmick is darkness, the Voidwalker's gimmick is space. They also get a dark tentacle arm so they can murderize people, but it only gets them to crit. After that they can drag people into the "void" to kidnap them. This is mostly to encourage the Voidwalker not to just space them cause that's kinda lame. They still can though, just in-case it would be very funny ## Changelog 🆑 Time-Green, Justice12354, Rex9001 add: Adds the Voidwalker, a new rare space based midround antagonist! code: Adds the ability to texture limbs and bodypart_overlays Sprite: Cosmic skull sprites by Justice12354 and Rex9001 /🆑 - [x] Add a better kidnapping mechanic, instead of just teleporting someone to a station turf - [x] Add an armblade or weapon or something, unarmed combat is kinda ass for this - [x] Fix the antag preview not rendering textures - [x] Prevent them from space phasing when in combat so they can actually be killed in space combat, even if really fucking hard - [x] Nerf visibility for people with space parallax disabled, probably also something to improve camo with colored parallax - [x] Replace the stamina damage stuff - [x] Cool rework of space phase idea I have - [x] Update/implement vidual effects - [x] Implement names ## Considerations There's a few things that I might change or implement later, depending on how it actually plays. It's a space focused antag, but there might not be enough people near space in a given round. An ability to let them "capture" area's or let them turn into a meteor or something might be needed later if they turn out to be too passive. They might also be _too_ oppressive in space. I designed them for near-space combat, but may've made them insanely overpowered in in raw space combat. Probably wont do biddle, but might add more powers that you can reroll every few minutes or something (like blob). Either wat it wont be this PR --------- Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
0d05492e73 |
Fixed quirk conflict between transhumanist and prosthetic limb (#84325)
## About The Pull Request Transhumanist and prosthetic limb no longer conflict. If you pick the same limb for both it uses the weaker prosthetic (dumbass) Made the name for prosthetic limb global list more intelligible ## Why It's Good For The Game > Transhumanist and prosthetic limb no longer conflict. If you pick the same limb for both it uses the weaker prosthetic (dumbass) I wanted to RP a guy with a robotic voicebox and prosthetic limb but the game didn't let me, which I thought was pretty lame! Since the root issue is likely that both can have the same limb which ends up as Free Points as transhuman takes priority, I just added a check to ensure that can't happen and is overridden by the negative instead. Any transhumanist mood point benefits are made up for by the bad limb. > Made the name for prosthetic limb global list more intelligible It was bad ## Changelog 🆑 qol: Transhumanist and prosthetic limb no longer conflict. If you pick the same limb for both it uses the weaker prosthetic (dumbass) code: Made the name for prosthetic limb global list more intelligible /🆑 |
||
|
|
796e8c7a97 |
New shove sound (#84555)
## About The Pull Request New more meaty shove sound effects to give better feedback. Made using sound effects already in-game files (pillowhit and thudwoosh) https://github.com/tgstation/tgstation/assets/42353186/7f5d516e-36e5-4d7d-8272-a24c842e962c Used in: - Random scary maints sounds - Ling tentacle hitting someone - Wrestling off slimes - Shoving (duh) ## Why It's Good For The Game Shoving shares the same sound with two other intents - Grabbing and Hugging. This makes it more different from those two and gives better feedback. Shoving someone wouldn't just make a "woosh" as you apply hefty kinetic force to their body, so slight punchiness to it is good. After brawlening has been merged shoves have become even more dangerous, even if not against the wall. Fights should sound more violent. ## Changelog 🆑 DrDiasyl aka DrTuxedo sound: Shoves now produce more meaty sound! /🆑 |
||
|
|
8aa569505f |
removes a few (hopefully) unused globals (#84473)
## About The Pull Request removes a few (hopefully) unused globals ## Why It's Good For The Game these are just clutter ## Changelog N/A |
||
|
|
9ab7d8f2e8 |
Bitrunning: Avatars get silly hacker names (#84279)
## About The Pull Request Bit avatars now get corny names while spawning in to the virtual domain. You can change your alias in prefs or have it randomized for s0meth1ng 1337. Added sechud icons (and thereby orbit ui icons) for bit avatars since "Cyb3rHaxx0r" might be confusing to find in the living players section. ## Why It's Good For The Game This was done as a request and after discussion in the code channel. A little bit of character persistence across simulations. ## Changelog 🆑 add: Bitrunning: You can now choose your hacker alias in prefs. add: Bit avatars get orbit icons. /🆑 |
||
|
|
0db2a23faf |
Adds a new power storage type: The Megacell. Drastically reduces power cell consumption/storage. [MDB Ignore] (#84079)
## About The Pull Request As the title says. A standard power cell now only stores 10 KJ and drains power similar to how it did before the refactor to all power appliances. The new standard megacell stock part stores 1 MJ (what cells store right now). APCs and SMESs have had their power cells replaced with these megacell stock parts instead. Megacells can only be used in APCs and SMESs. It shouldn't be possible to use megacells in any typical appliance. This shouldn't change anything about how much 'use' you can get out of a power cell in regular practice. Most should operate the same and you should still get the same amount of shots out of a laser gun, and we can look at expanding what can be switched over to megacells, e.g. if we want mechs to require significantly more power than a typical appliance. Thanks to Meyhazah for the megacell icon sprites. ## Why It's Good For The Game Power cell consumption is way too high ever since the power appliance refactor that converted most things to be in joules. It's a bit ridiculous for most of our machinery to drain the station's power supply this early on. The reason it's like this is because regular appliances (laser guns, borgs, lights) all have a cell type that is identical to the APC/SMES cell type. And it means that if we want to provide an easy way to charge these appliances without making it easy to charge APCs/SMESs through a power bug exploit, we need to introduce a new cell type to differentiate between what supplies power and regular appliances that use power. This is primarily what the megacell stock part does. This moves us back to what it was originally like before the power refactor, where recharging power cells wouldn't drain an exorbitant amount of energy. However, it maintains the goal of the original refactor which was to prevent people from cheesing power generation to produce an infinite amount of power, as the power that APCs and SMESs operate at is drastically different from the power that a regular appliance uses. ## Changelog 🆑 Watermelon, Mayhazah balance: Drastically reduces the power consumption and max charge of power cells balance: Added a new stock part called the battery, used primarily in the construction of APCs and SMESs. add: Suiciding with a cell/battery will shock you and potentially dust you/shock the people around you if the charge is great enough. /🆑 --------- Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com> Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> |
||
|
|
2589b63e35 |
Flatpacker (#83836)
## About The Pull Request adds the flatpacker, it flatpacks machines  it is unlocked at industrial engineering the default print time is 4.5 seconds, reduced by the servo tier divided by 2 matter bins increase material capacity better servos decrease material cost, and the flatpacker cannot print a machine if it contains parts that are of a tier larger than the servos tier explained in this vid https://github.com/tgstation/tgstation/assets/70376633/c26e4379-f49b-4b1d-a70c-61f1ba96a9e0 ## Why It's Good For The Game machine construction sucks, this should be more convenient, this does not replace machine construction at all compared to machine frames while this is faster and more convenient, it is significantly more costly in materials, and a better servo is needed to use higher tier parts, and the printed machines are always the lowest required tier ## Changelog 🆑 add: the flatpacker, a machine unlocked at industrial engineering /🆑 --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> |
||
|
|
8442124bcd |
Gondolas are now basic mobs (#83451)
## About The Pull Request This PR turns gondolas into basic mobs and does some fiddling with gondola pods Their verbs are now action buttons which they lose upon delivering. If set to stay, they won't have their abilities afterwards (or wont get them in the first place if the delivery is already done). Lets them survive without a pod requirement in case admins want to spawn one for their own stuff, so I also removed it from the snowflake checks to exclude them from stuff. Also replaced the hardcoded "cant speak" with simply giving the mute trait, so admins can make gondolas speak if they want to for any reason. ## Why It's Good For The Game The pet level of simple animals can finally be killed off, also gives admins more control over gondola-related stuff if they so wish. ## Changelog 🆑 refactor: Gondolas (including gondola pods) are now basic mobs. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
e5a3a6bb81 |
Fix smoker quirk preferences (#83378)
## About The Pull Request So the smoker quirk would always reset back to "Random" whichever preferences you selected, just in the menu. Looking into why this was happening, it seemed to be failing at the point where it deserializes and sanitizes your selected value, specifically at the point where it'd compare it to the list of possible preferences. This seemed to be because the value it got back from tgui had removed the `\improper` text macro, while the value in the list was saved with that text macro. It's not actually useful here, so we remove it using `format_text(...)` when setting up the list, and this makes it work again. We also split it off from the previous used proc used for setting up the list: ```dm /proc/setup_junkie_addictions(list/possible_addictions) . = possible_addictions for(var/datum/reagent/addiction as anything in .) . -= addiction .[addiction::name] = addiction ``` Because the smoker list doesn't actually use reagents. I'm surprised this successfully got the name values for the non-reagents in the first place. ## Why It's Good For The Game Fixes #83277. Fixes #82538. ## Changelog 🆑 fix: Smoker quirk users can select a favourite brand again. /🆑 |
||
|
|
0cc5cfb178 |
Random Name Generation refactor, generate random names based on languages (for species without name lists, like Felinids and Podpeople) (#83021)
## About The Pull Request This PR moves random name generation for species onto their languages. What does this mean? - For species with a predefined name list, such as Lizards and Moths, nothing. - For species without predefined name lists, such as Felinids, their names will now be randomly generated from their language's syllables.   (In the prefs menu:)  Why? - Well, we actually had some dead code that did this. All I did was fix it up and re-enable it. - Generates some pretty believable in-universe names for various languages that are lacking name lists. Obviously defined lists would be preferred, but until they are added, at least. - Moves some stuff off of species, which is always nice. - Also hopefully makes it a tad easier to work with name generation. There's now a standard framework for getting a random name for a mob, and for getting a random name based on a species. Misc: - Adds a generic `species_prototype` global, uses it in a lot of places in prefs code. - Makes `GLOB.species_list` init via the global defines - Deletes Language SS - Alphabetizes some instances of admin tooling using the list of all species IDs - Docs language stuff - Deletes random_skin_tone, it does pretty much nothin ## Changelog 🆑 Melbert refactor: Random Name Generation has been refactored. Report any instances of people having weird (or "Unknown") names. qol: Felinids, Slimepeople, Podpeople, and some other species without defined namelists now automatically generate names based on their primary language(s). qol: More non-human names can be generated in codewords (and other misc. areas) than just lizard names. /🆑 |
||
|
|
5f44545da8 |
Moves "sprite accessories" (e.g. Hair, Undergarments, Mutant Bits) from GLOB to a datasystem (#82847)
This is just a revitalization of #80275. ## About The Pull Request On the tin, basically demotes everything related to setting up and storing these bulky lists generated from reading `/datum/sprite_accessory` subtypes from living in a global space that will instead be in a compartmentalized subsystem for accesses. Also a lot of code modernization and micro-improvements (unquantifiable) ## Why It's Good For The Game Same exact expected results, just accessed in a different way.  There's a few reasons why I want this to happen. * The `GLOB` space is too clogged. There are at least a thousand variables on `GLOB`, and it's extremely painful to access stuff on production/local through view variables when you're debugging stuff like this. It's also painful when there is stuff that _should_ live on `GLOB` that you might want to see in VV/Debugger but are forced to either have to scroll a mile to find what you want or wait a long while for it to load. The less bulky lists we have of stored initialized datums, the better. * `make_datum_reference_lists()` is a consequence of wack stuff like this where we're reliant on certain things being initialized in the `GLOB` portion of world initialization _before_ subsystems/static variables load - most of these datum lists in the aforementioned proc doesn't _really_ need to be ready to go before `world.New()` for example. We'll sadly have to abuse `PreInit()` for now, but it really is something that has to be ready to go due the critical dependence that stuff like Preferences has on it. * We don't have to have the procs live in a global namespace either. Instead of passing in `GLOB.XList` or `DSstorage.XList` every single time, we can instead just move the proc setup on the subsystem and use `XList` in a more native fashion. * It's easier to find what you need. To me, it's a lot nicer to ctrl+click the DS and go to the variables to find something I'm looking for instead of having to scavenge around for any footprint/trace of the global I want to look for. This is more trivial than the other two, but that's something I like to think about when I go to bed. I also had to refactor a bit of the code to accommodate the limitations of the new DS system, but it should be a lot cleaner anyways. ## Changelog Not relevant --- Also nothing should have broken but it's a good thing we have screenshot unit tests to prove me wrong. |
||
|
|
da3294d896 |
adds preferences to transhumanist (#82435)
## About The Pull Request You may remember this, that's because I accidentally deleted it before while trying to change things. Anyways! Adds drop-down selections and new options to transhumanist. also fixes a minor typo Previously, you could choose your replaced limb by taking prosthetic limb, setting what you want changed, and then switching to transhumanist, since they used the same preference previously. ## Why It's Good For The Game Transhumanist felt strange because it was hypothetically a voluntary operation, but the augmentation clinic just spun the wheel on what you got replaced. From a role-playing perspective, being unable to choose is uninteresting and confusing. Also it always says your limb being was being replaced with a robotic arm and that annoyed me. Now that you are able to select your replacement part, I've added two new options, the robotic voice box, good for a more prominent change then a limb that will be hidden for most of a round, and flashlight eyes, for when you are truly committed to being rushed directly to robotics seeing the bright future ahead of humanity! ## Changelog 🆑 add: Transhumanist now allows you to select your augmentation add: Transhumanist can now provide a robotic voice box, or flashlight eyes spellcheck: Transhumanist's roundstart text has been re-written to not be wrong /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
a15a1b88ed |
Basic mobs now use z-level turnoff instead of simple (#82469)
## About The Pull Request On one compile of MetaStation, I saw that there's 45 basic mobs on the station, 256 on lavaland (the number growing from tendrils), and 59 in all other z levels combined. While we do expect Lavaland to be visited every round, at least it won't be running during the times when no one is there, but even more importantly, space exploration is something not done every round, so we don't have any reason to waste our resources on AIs that will never be interacted with. Simple animals had an easy solution to this: If no one is on the Z level, their AI turns off If someone is on the Z level, they are idle unless needed. The last simple animals that exists right now are bots, megafauna, geese, gondolas, and some minor ones like mimic, zombie, dark wizard, soulscythe, etc. Point is, we're very much nearly done going through all simple animals, so this code is being wasted just to ensure things like cleanbots won't work if no one is on the z level, something I doubt happens often, so I took their code and made it work for basic mobs instead. I could've done both but I thought it would look very bad, and maybe this is a good incentivize to get more basic mob conversions. There's one major change here and it's that we're missing the "Idle" mode, some basic mobs like the Lavaland village seems to be made with intent that they'll be running even if players aren't around, so this sets up a future PR that makes idle AI easier to add, and I want to make sure those cases are taken into account. ## Why It's Good For The Game We don't need to always be processing these basic mobs, and sets us in the future to hopefully also implement idle AIs. ## Changelog 🆑 balance: Basic mob AIs with no mobs on the Z level now stop. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
980ef98e04 |
New operative reinforcement option: Intelligence Overwatch Agent (#82307)
## About The Pull Request Introducing a new Nuclear Operative reinforcement option: The Overwatch Intelligence Agent. Equipped with multi-hudglasses, they have an advanced camera console, station alerts, and bodycams of every operative! If something can be known, they will know about it. They can also remotely pilot your ship. Finally, everyone can ride in the Steel Rain without getting stuck on the station! This role spawns in the formerly unused outpost just north of the nukie base. With a few shelves of supplies and some tools in the back room, they can set up their workplace however they like. This also gives them something to work on while they wait for the operatives to gear up.  As you can see, it's rather cramped and the lights are quite dim in the backroom. Set it up however you like, this is how I did mine:  Total price? 12 TC per agent. It might get a bit cramped, but you could buy a second to make sure the first guy doesn't get lonely! This turned into a 30-commit ugly because the bodycams were originally meant to be accomplished via a refactoring of the spyglass kit. Big mistake that made me shelve the project -- until Melbert's simple bodycam component conveniently did exactly what I needed in a much simpler way. ## Why It's Good For The Game Having a "guy in the chair" for your kickass murder operator squad enables more brainy strategizing, and is thematically sound. Also, nukies have the opportunity to bring in another player to participate in the fun! ## Changelog 🆑 Rhials add: Nuclear Operatives now purchase an Intelligence Agent, who can watch cameras and bodycams, move the shuttle, and provide radio support. Only 12 Telecrystals! /🆑 |
||
|
|
a02dc8221c |
[NO GBP] Fixes Alcoholic quirk selection and addiction in general not being forever. (#82403)
## About The Pull Request Fixes #82346 Also fixes a bug where Junkie, Smoker, and Alcoholic would not give you more addiction once yours ran out. ## Changelog 🆑 fix: Fixes Alcoholic quirk selection fix: Fixes Junkie, Smoker, and Alcoholic not giving you more addiction when you come clean. /🆑 |
||
|
|
a155c23d2e |
[THE QUIRKENING] Adds customization options to Organ Prosthetic, Junkie, Smoker, and Alcoholic! (#82051)
## About The Pull Request Lets people pick: - The shitty organ they spawn with (still has the restrictions of not being possible to get heart when you are a plasmamen, for example) - Their favorite alcohol to blackout with - Their favorite brand of cigs - Their favorite brand of drugs! A lot of the code was taken from a downstream, made by @Floofies, i already had my own implementation but it was buggy and not nearly as clean, then i was made aware of theirs. ## Why It's Good For The Game Character Customization is good and fun and lets people have more choice in their roleplay. ## Changelog 🆑 add: Prosthetic organ users are now allowed to pick what they want to start with. add: Junkie of all kinds, including smokers and alcoholics, are also able to pick their favorite type. /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
bbbeb9b20e |
Allow hemiplegic users to pick which side is disabled (#81992)
## About The Pull Request Broadly this code is copied over from the preference code used for picking prosthetic limbs, with a few changes to make it fit. It also changes how the quirk displays in the medical records, now mentioning which side is disabled instead of just half their body. ## Why It's Good For The Game So of course, first and foremost, I want it personally. I'm now running a hemiplegic character on Manuel, and I want to able to pick which side is hemiplegic to match me using heterochromatic eyes to make it look like they're missing an eye. It's minor, but I think it'd be nice. Then, because of that, I think it'd be nice to have for posterity. If I want it, and I can code it, then the next person who wants it doesn't have to, y'know? Lastly, gameplay-wise, it doesn't really matter which side is hemiplegic, you're permanently missing an arm and a leg either way. So I feel there's practically no 'powergaming concerns' to be had when it's this utter shitass to use regardless and the benefits to be gained would be infinitesimally small in comparison. ## Changelog 🆑 add: Hemiplegic now lets you pick which side is disabled. add: The medical records text for hemiplegics now shows which side is disabled. /🆑 |
||
|
|
9802508ab9 |
Adds logging to SSore_generation on subsystem initialize (#81488)
This PR adds a new logging category and a logging message specific to
SSore_generation's initialize, logging the number of vents of each size,
as well as the number of random and proximity based ore spawns due to
cave generation and map generation.
Currently drafted as I could use some feedback as to why I'm not seeing
the logger.log() messages not appearing on any of the current in-game
log files 👍
Useful for data logging to determine how many of each type of ore is
spawned on the map, for the purposes of determining how much ore is
being spawned manually over the automatic amounts based on the vents,
with the quantity of ores spawning being a product of the ore vent sizes
being logged as well.
|
||
|
|
159561437b |
New Shields and Sprites for them (#81615)
## About The Pull Request Updates shield sprites to new more polished and 3/4 perspective ones. <details>  </details> Adds 2 new shield types: - **Improvised Shield.** Made out of 10 iron sheets and 2 sticky tape pieces. Weaker then buckler shield and breaks after 2 gunshots or 4 baton hits, but has a 50% (BASE FOR ALL OTHER SHIELDS) blocking chance instead of 30% that buckler has. Bulky - **Ballistic Shield.** Printed at Security Techfab for a lot of titanium after getting weapon research. Strong against projectiles, but weaker than riot shield against melee. Bulky Both of these shields break, and both of them are their own subtype. As such you can still only craft strobe shield with a riot shield. ## Why It's Good For The Game The sprites of shields were very ancient and extremely flat, this gives them a more refreshed look. Ballistic Shield is added because Riot Shield was weakened against projectiles, Ballistic Shield gives the crew a way to get access to protection against projectiles at some point in the round. Improvised Shield adds a second improvised shield in the game (after Buckler Shield). It's balanced by being weaker than Buckler, but higher block chance, this adds an interesting choice for players on which shield to craft. ## Changelog 🆑 add: Adds 2 new shields to the game! Ballistic Shield - researched by Science, and Improvised Shield - made out of iron and sticky tape image: Riot, Strobe, Telescopic, Energy shields got new less flat sprites! /🆑 |
||
|
|
cf092b555b |
remove unused animated tail spines code (#81492)
isn't used anymore since tails were refactored ## Changelog 🆑 code: Removed unused global lists and sprite accessories related to tail spines /🆑 |
||
|
|
ed31397cc4 |
Fixes ore vents spawning without ores on icebox, sets up map specific ore configurations (#81103)
## About The Pull Request In short, we used a static list previously within the ore_generation subsystem that held the amount of each ore that we expected a single map to uniformly need. We held this number constant, since we were spawning 15 vents per map. **Pros:** This worked flawlessly for Lavaland since 15 vents on a single Z level makes it pretty densely packed map with a good amount of map-based ore spawns, and it worked consistently. **Cons:** 15 vents did not work well on Icebox however, even when split so that the majority of the ores were spawning on the lower levels, players did not feel like icebox spawned nearly enough ores and reported the map spawning empty. **Result:** As a result, we adjusted the ratio, so that we spawned vastly more ores on the lower levels, now up to 4 vents on the upper level, and 21 vents on the lower level. However, as we were still using the ore distribution list based on lavaland, icebox vents were quickly running out of ores to distribute between them, resulting in empty vents -> which produced empty boulders -> which not only don't really let you process them properly, but also just result in a metric ton of runtimes. Icebox now has it's own list of ore distributions. These distributions are now moved to a set of global lists as opposed to being saved on the subsystem as a static list, which will make going and setting up new ore distribution lists very very easy. Additionally, we've moved the setting and getting of those ore_distributions over to the seedRuins proc, so that we're actually setting the list of ores right before we actually place them to make sure that the order that it's set is roughly as it's needed, while still setting the list at the same time the map-appropriate ruin placements are dropped in. **Plus some misc cleanup fixes:** `var/list/ore_vent_sizes` in SSore_generation wasn't being treated as a similar budget list as `ore_vent_minerals`, since it `pick()`s off it's own static size list. Which is honestly fine for this five seconds, I can handle that later while we make sure the rest of the code code is stable. In the meantime, I've just tweak it so that it's easy to see at a glance how many of each random vent has spawned into the map. Tweaked the description to not include anything about chemical processing, as I'm planning on hitting on that in a part 2 PR that I'll be picking back up after the freeze. ## Why It's Good For The Game Cleans up the code a bit, but primarily fixes ores not spawning on icebox as they should. Should fix #81058. Improves description to not mention mechanics that aren't in game. Also, cleans up a piece of code that currently isn't serving much of a purpose. ## Changelog 🆑 fix: Icebox should have it's ore distribution and it's ore vents fixed, so that vents should now produce ore. spellcheck: Boulder processing machines now don't mention things they don't do. /🆑 |
||
|
|
9141bfb95b |
General maintainence for Ore Silo (#81016)
## About The Pull Request
1. **Qol**(Hopefully not an issue for feature freeze)
- Adds Screen tips & examines for screwdriver, crowbar & multitool acts
- Examining ore silo will now display its stored materials
- Location name is attached to the machine name and it greys out when
pausing the machine to make it more noticable that it is paused
- Made window wider
2. **Code Improvements**
- Auto docs procs & vars for ore silo log entry
- Fixed return values of all tool acts i.e. no more returning
`TRUE/FALSE` but the actual item interaction flags
- UI no longer computes `REF` for each machine which is expensive but
instead uses the index value in the list
- Moved global variables to their corresponding files
- Ore silo no longer starts processing round start. That proc just ended
itself anyway so why even bother registering
3. **Fixes**
- If a machine was disconnected via the ore silo UI, attempting to
reconnect that machine would cause a runtime at `RegisterSignal` in
`multitool_act` because it was already registered in `Initialize`. It
now unregisters the signal when disconnecting so that's fixed
- Each machine element in the UI does not have a unique key because it
used `key={machine.name}`. This meant after disconnecting a machine the
UI buttons would get grouped together and the pause & disconnect buttons
would not function properly. Now it uses `index` which is unique thus
fixing that problem
## Changelog
🆑
qol: added more screen tips & examines for ore silo, made UI wider,
attach location name to each machine & grey out paused machines to make
it more noticeable.
code: auto docs proc & vars for silo log entry. Fixed return values of
all tool acts
fix: ore silo UI now functions correctly after removing an entry from
the UI
fix: no runtimes when connecting a machine to silo that was previously
disconnected via the ore silo UI
/🆑
|
||
|
|
fec7ccc6fd |
The Coupon Master PDA app (#80240)
## About The Pull Request This PR adds a new PDA program to the supply category, which allows users to redeems coupons for various cargo packs (mostly goodies), like the ones also found at the bottom of cig packs. How it works is fairly simple: - Once installed, the modular computer subsystem will periodically, at a 3-5 minutes interval, generate a coupon code datum associated to a plain text code, which is sent out to everyone with the program installed. - The user can then open the program and insert the text into an input box to redeem the coupon code, which is then associated with their bank account. - He will then have to find a photocopier, and tap it with the PDA to print the coupon. Only one coupon can be printed. Photocopier fees apply, so it'd cost 5 creds to the average assistant to print the coupon. - He can then insert the coupon in a cargo console and order/reuest the associated pack (same deal as cig coupons). - Some coupon codes however, especially those with juicer discounts, will expire after a while if not printed. Albeit mostly innocuous, the program provides negative Detomatix resistance, slowly fills the computer file storage with trash files with each redeemed coupon, and halves the download speed of new apps. Not really the cleanest ware out there. This PR also extends coupons to several non-goody packs, since they have been privately buyable for over the last couple years now. Some packs get discounts less frequently however, with those in the uncommon category being roughly 1 in a 12 chance and the rare being 1 in 50. Here's a screenshot of the UI (outdated, I've reduced the height from 500 to 400 and the notice box tip to specify the right click):  Fun fact: Right now, the odds of a 75% discount coming from the Coupon Master for the 1.000.000 credits bycycle pack are roughly 0.0012%, while that of a 50% for the same pack, from a cig pack coupon are 0.0042%. ## Why It's Good For The Game These last couple days I've been wanting to test myself at making simple UIs, as well as contributing to the modular computers feature, which has started to become pretty neat ever since PDAs were reworked into a subtype of it. Beside, coupons are a very small feature limited to the bottom of cigarette packs (also possibly cursed) in the current state of affairs. Cargo is filled with packs that are niche or fluff. Modular computers also has those little things that, while interesting, do not contribute a whole lot. Maybe this is one of them, but I guess free* coupons are always a big W. ## Changelog 🆑 add: Added the 'Coupon Master' program for the PDA. Install it to receive periodical, redeemable coupons for several cargo packs. Requires NTnet connection and the messenger enabled to work. add: Coupons are no longer only limited to goodies, but may also apply discount to some other packs as well. /🆑 <sup>*minus the photocopier fee</sup> --------- Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> |
||
|
|
5814371023 |
Replaces cyborg lover with transhumanist (#80509)
<!-- 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 <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> This reworks cyborg lover to be more interesting. Taking this quirk will start the user off with a robotic limb. The user gains mood buffs by being around silicon based lifeforms and loses mood by being around organic based lifeforms. Additionally, they can gain mood buffs by replacing all of their limbs to their silicon counterparts but can also gain a massive mood debuff if they lose or replace their starting robotic limb with an organic one. The idea being here that they hate organics and seek to become robotic Also, transhumanists won't be scared of people who have two or more augments. ## 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. --> Cyborg lover isn't really all that interesting since it's just a basic mood buff upon clicking on a silicon. This makes it more interesting by making it a dynamic between silicons and organics and may adapt the playstyle of anyone choosing to take this perk as they will need to stay away from organics to avoid mood debuffs. ## 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 it's 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: Cyborg lover has been replaced with Transhumanist. Transhumanists start with a robotic limb and get mood buffs by being near to silicon-based lifeforms. However, they get mood debuffs by being near organics, so there is a tradeoff to taking this quirk. The cost for this quirk has been reduced from 2 to 0. /🆑 <!-- 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. --> --------- Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
c340a60506 |
Lizard spines no longer "float" on characters without lizard tails. (#80456)
## About The Pull Request Fixes #69658. As the title says, this PR resolves the issue where lizard spines always have a "tail" portion even if there isn't actually a tail for them to be on. This has been done via two steps: 1. Spine icons have been separated into "spine" and "tailspine" icon states, for those on the back and those on the tail, respectively. 2. Tailspines now have their own, separate bodypart overlay, which is added by the tail if the owner has spines. This bodypart overlay appears if both a tail and spines are present, and is removed if this ceases to be true.  This image displays the results of this change. From left to right, it shows: 1. A lizard with both a tail and spines. 2. A lizard with spines but not a tail (specifically, one where the tail was removed). 3. A lizard with a tail but not spines (specifically, one where the spines were removed). 4. A lizard with the "short" tail style, which does not fit the shape of tail spines and thus doesn't have them. 5. A lizard with a felinid tail surgically attached, which also does not receiver tail spines. Which tails will successfully render tail spines is now handled by a "spine_key" define in the tail sprite datum. Currently, such a key only exists for the standard lizard tail shape, but should anyone wish to sprite spines for other sorts of tails, it is now a simple matter to do so. Relatedly, handling for tail spines has been moved to the base tail object, rather than lizard tails in particular. This functionally changes nothing, but may make life easier for downstreams that want to add spines to tails that are not explicitly _lizard_ tails. Finally, this PR also fixes a bug introduced in #79687, which made bodypart overlays not update at the right time when external organs are inserted or removed. Specifically, bodyparts were redrawn _before_ the overlays were added or removed, meaning they would not update until something else forced a redraw. This is no longer the case. ## Why It's Good For The Game "Floating" lizard spines are incredibly ugly visually, and a major obstacle to adding lizard tails that are not of the "standard" shape. In addition to cases where a lizard loses their tail mid-round, this also allows tailless or short-tailed lizards to actually use one of lizards' main customization options without looking like a total buffoon. The extensibility, as stated before, may be nice for downstreams that wish to place spines on more tails, and may even be useful here if someone wishes to sprite spines for the "short" tail style. Also makes the code nicer, as the tail/spine wagging interaction previously relied on a very ugly two-way link between the two organs that has been rendered unnecessary by the tail handling everything. Finally, it's good to fix a bug that completely destroyed the usability of feature manipulation surgery. ## Changelog 🆑 fix: Feature manipulation surgery will now properly update the patient's appearance. refactor: The tail portion of lizard spines will no longer draw on people who do not have a tail. /🆑 |