mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-06-06 14:51:17 +01:00
ed94de4ddf7edad8694badefc577392e0f762bf5
78 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
3cbbefa742 |
Mini Fridges now have a grimy subtype, can go over tables, and start off anchored. (#76517)
## About The Pull Request /obj/structure/closet/mini_fridge is now a clean nice one, which only spawns beverages and does not have that cockroach reference in the description, and starts off anchored. now /obj/structure/closet/mini_fridge/grimy works like the old mini-fridge, with syndicake, moldy bread, and now the chance of an ACTUAL cockroach. I've replaced them on maps according to each one's needs, So, as an example, Northstar gets a regular one (it var edited it before) while tram maints get the grimy subtype. mini-fridges now can properly go over tables, so you don't have to deconstruct said table to put it on top again. ## Why It's Good For The Game I've found the need for a nice subtype while doing a ruin, and so has a few other mappers apparently, as northstar had a var edited variant. The fact that it couldn't go over tables and started off unanchored was annoying on tram and icebox, where it is present on the kitchen and you could easily push it to the ground and suffer. ## Changelog 🆑 qol: It has been issued brand new mini-fridges for our active stations, Featuring more booze and less moldy pizza! /🆑 |
||
|
|
b6d48e12d7 |
Converts sec armories to using the (not) random mapping spawners (#76392)
## About The Pull Request Title. ## Why It's Good For The Game Armories aren't really a dense area mapping wise, just a few guns there, armor there, and some fluff security stuff (like HUDs or whatever). This PR just converts most of the heavy stuff (armor, helmets, guns) into spawning helpers with the aim to make mapping armories just a tad bit quicker and easier. The only thing this does kinda nuke is the neatly stacked stuff, which the mapping helpers kinda suck at doing, but its not totally woeful. ## Changelog 🆑 Jolly, timothymtorres code: Jolly: Armories across all maps have been tweaked slightly. Report to a Nanotrasen security advisor for any missing guns, armor, helmets or anything else that was there previously (that means, post an issue on Github if theres an issue!!) code: timothymtorres: Random item spawners now support better control of their X/Y pixel offset. /🆑 --------- Co-authored-by: Tim <timothymtorres@gmail.com> |
||
|
|
4d1e34322f |
Macros multi-z code, removes the false premise of manual offsets (#76248)
## About The Pull Request [Removes the pretense of relative multiz levels](https://github.com/tgstation/tgstation/pull/76248/commits/0293fdc2bd8c8af7a0d18da33265e060789c71f7) Our multiz system does not support having a z level that is only connected one way, or which goes down backwards or anything like that. That's a fiction of the trait system, the actual backend has never really supported this. This pr removes the assumptions we were making backend around this, and uses that to save cpu time. I am also converting multiz_levels from an assoc list to a pure one, which saves significantly on access times and cleans up the code somewhat. Also I'm making the get_below/get_above procs into macros, for the sake of cpu time. [Converts the starlight disease to use BYOND's directional defines instead of our own](https://github.com/tgstation/tgstation/commit/7d698f02d991eb4e1bde56314c657cf6e48ceb5d) To some extent spurred on by https://github.com/DaedalusDock/daedalusdock/pull/298, tho it was known before ## Why It's Good For The Game Faster multiz code, faster init, etc etc etc |
||
|
|
9940fb62e6 |
Destroys /obj/vehicle/sealed/mecha/working with a W80 nuclear warhead (#76296)
## About The Pull Request Title. Also, fixes https://github.com/tgstation/tgstation/issues/75568 at the request of @TheVekter ## Why It's Good For The Game This subtype only exists to append ore box behavior and is clearly a relic of pre-2020 mechcode. Keeping it around will only make it harder in the future to add new mechs with ore box support. ## Changelog 🆑 fix: Clarke ore box now has a less confusing dump contents button. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
3396d13ed5 |
Adds shark plushie, removes pickle Rick plushie (#76206)
## About The Pull Request Come on, look at it. It's adorable.   Sprites courtesy of INFRARED_BARON Available for purchase from Cargo as a goodie. Acts as a replacement for the pickle Rick plush which is going to Brazil where it belongs  ## Why It's Good For The Game Everyone needs a shark plushie. Happy pride! ## Changelog 🆑 add: Adds a shark plush, obtainable from Cargo for a nominal fee. del: Removed plush cucumber by popular request. Cucumber has been replaced by the shark plushie in arcade machines. /🆑 |
||
|
|
b5975bd915 |
Unit tests now catch decals in walls/space (#75189)
## About The Pull Request Unit tests will now fail if there's a decal in a wall or open space turf. Open space turf could be limiting to mappers but I don't think it makes sense for decals (like dirt, glass shards, etc) to be floating around in space in the exact same spot. If there's a decal you want to put in space, decals have a ``turf_loc_check`` var that will bypass this. **Important note: This is not changing existing behavior. Decals already delete themselves when they spawn in these incorrect locations, we're just avoiding them from spawning in the first place.** ### Changes I made - Ash flora are now lava immune, rivers spawn after flora does, so I decided that it would be easiest (and more flavorful) to have them be lava-immune rather than to not have them spawn at all. - Decals can now be spawned in non-turf locations. This is currently done by mail, which can give you bones as part of the mail. Currently it will just delete itself instead. - Trading Card button is now on the same tile as their display, which now uses an offset. Before it would spawn it on the tile next to it, which could be a wall in some instances. - Mirrors now have floating movement type. They ARE floating since they're attached to the wall, and it prevents them from burning up due to lava in the Pride ruin. - I also added a broken mirror subtype because I thought the icon_state check was terrible. - Bubblegum called ``DestroySurroundings`` several times on the same thing, I hopefully fixed some of that. Their charge ability also registered ``COMSIG_MOB_STATCHANGE`` despite ``/datum/action`` doing it by default, so I fixed that too. ## Why It's Good For The Game Decals in walls is already a bad idea, but currently all it does is delete it on Initialize. It would be better if we ensured they wouldn't spawn in the first place. ## Changelog 🆑 fix: Lava will no longer burn 6 of the mirrors in pride ruin fix: Lava will no longer burn plants that spawn in them. /🆑 |
||
|
|
2bb4dfe76c |
Expanding the Experimental MODsuit Bepis Node with three new modules. (#75801)
## About The Pull Request So, I've had this idea to make a contribution to the Bepis feature with some modsuit stuff. The gimmicky stuff is ok and a good way to even out the better content since it has game of chance design it has (you can find those disks in space anyway so...). However, the Experimental MODsuit node feels very underwhelming right now, compared to how big that feature is. This PR adds three MOD modules to the Experimental MODsuit node, plus two more: - Magneto Charger: While the Modsuit is activated, each step the user takes will charge the installed power cell by a tiny bit, enough to sustain a standard modsuit of generic slow speed with only a few, easy modules installed. It won't work in zero G, while flying, pulled by someone else, on a conveyor belt, riding a vehicle or crawling on the floor, though. - Recycler: It collects (most) garbage and casings off the ground and recycles them into material sheets that can be dispensed on an adjacent location or storage with with Middle Mouse Button. Doesn't clean debris, and scuffed because most trash doesn't yield material anyway. - - It also has two subtypes, unbound from the node: one that dispenses riot foam darts and can be found on the black market, and another that dispenses the more innocuous foam darts, rarely found in maints. - Shooting Assistant: A configurable module. On Stormtrooper mode, it will give the user a faster fire rate (the double tap trait) at the cost of accuracy. On Sharpshooter mode, it will improve the user accuracy and make their shots ricochet against walls at least once (if the hit atom allows that, that is, e.g. lasers don't ricochet against iron walls), at the cost of movement speed. Both modes also prevent the user from dual wielding guns. To make the Stormtrooper mode stackable with the poor aim quirk and refrain from making a new trait for the sharpshooter mode, the gun spread code in gun.dm has also received a little refactor and cleanup. Also, it's been tested. ## Why It's Good For The Game The Experimental MODsuit node is quite shabby and could use something extra to make it more appealing to MODsuit enjoyers. Also doubles down as a small addition to the black market and maint loot, and code cleanup, since gun code gives off some garbled vibes. ## Changelog 🆑 add: Expanded the Experimental MODsuit Bepis node with three new modules: Magneto Charger, Recycler and Shooting Assistant. add: Added a Riot Foam Recycler module to the black market, as well a more innocuous version as maint loot. /🆑 |
||
|
|
1c60848edb |
Removes poseur tag graffiti (it's been dead for ~6 years Edition) (#75689)
## About The Pull Request The _poseur tag_ graffiti option was not removed in the gang gamemode removal back in #30056. Back then it would have chosen one of the gangs' tags to mimic. Now, if selected, it will create an empty graffiti. This will also apply to any mapped/generated graffiti. This sucks and this derailed me from my other thing I was doing in the crayons.dm vicinity. ## Why It's Good For The Game Removes a 6-year-old non-functioning graffiti option. ## Changelog 🆑 fix: exorcised a ghost of the gang gamemode from graffiti /🆑 |
||
|
|
b7fb33ab00 |
Adds Ethereal Drinks (#75487)
## About The Pull Request Adds 3 new electric-themed drinks for ethereals. They count as food for etherials, (not much, one glass is about equivelant to a plasma burger), but humans can drink them as well, among other effects. ## Why It's Good For The Game As an ethereal player, I do feel while our food is convenient, that we miss out on the RP other species get from going to the bar. This allows for etherials to order drinks from the bartender. All effects work on all races, with the hunger satiation as the exception. ## Changelog 🆑 add: Voltaic Yellow Wine - New "base" drink, found in booze-o-mat. No special effects besides acting as a weak ethereal food. Not very potent in terms of alcohol. add: Telepole - New mixed drink themed after thunderstorms, gives the same shock-resist grey bull does. Made from 1 part Voltaic Wine, 1 Part Sake, and 2 parts Dark & Stormy. Moderately potent. add: Pod Tesla - New mixed drink, themed after the old removed tesla engine (the singulo gets a cocktail, it should too!) Grants a brave - bull phobia resist, and a stronger grey bull shock resist allowing you to (temporarily) resist tesla arcs from reactive armor and the SM's tesla coils. Gives a pleasant thought to whoever drank it, because this thing is a pain to make. Made from 5 parts admiralty, 5 parts telepole, and 3 parts brave bull. Highly potent. qol: Unsure if this counts as QOL or balance, but the fact sol dry is in 3 different cocktails but the bartender has to buy 30u cans of it made me feel it deserved being added to the soda dispenser. image: Added graphics for the above drinks, shown below, from left to right: Pod tesla, Voltaic Yellow wine, Telepole, Voltaic Wine (bottle) <img width="171" alt="image" src="https://github.com/tgstation/tgstation/assets/69398298/901b2f64-1723-44b6-8f78-ef21bd477d96"> /🆑 --------- Co-authored-by: Aki Ito <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com> |
||
|
|
75537b97a5 |
GAGSifies Plushies (#75442)
image: Space lizard, carp, slime and snake plushies have been resprited and set up to support GAGS. |
||
|
|
bf880f553a |
Makes industrial gold and regenerative gold spawn random coins. Also adds chococoin to coin spawner. (#75199)
<!-- 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 So they just had list from 6 coins and not random picking of coins, so now its random. It will also spawn chococoin because it's a coin too. But won't spawn `coin/gold/debug` because it's debug and eldritch coin because comxy asked about it. Added chococoin to `/obj/effect/spawner/random/entertainment/coin` and holdables list of wallet. <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> ## Why It's Good For The Game Random is funny. <!-- 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. --> ## 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. --> 🆑 add: Indusrial Gold and Regenerative Gold extracts now spawn random coins and not just list of 6 coins. But no mythril as it has miserable chance to have summoning effect which have even more miserable chance to spawn something dangerous and not just mice. add: Chococoin now has a chance to spawn wherever the coins are used to spawn (wallets, greed ruins, deltastation bar) /🆑 <!-- 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: Fikou <23585223+Fikou@users.noreply.github.com> |
||
|
|
2068ea9ab5 |
Crate, Closet Refactors & Access Secured Stuff (#74754)
## About The Pull Request This PR is actually 2 parts, one that fixes runtimes with crates & the other that allows secured closets to be crafted along with a secured suit storage unit **Crate Fixes** Fixes #74708 The problem starts here https://github.com/tgstation/tgstation/blob/f1178342084bf89897a46f6ce9dc849233bed21b/code/game/objects/structures/crates_lockers/crates.dm#L31-L34 Not only does this if condition look ugly but it's highly error prone because one single call to `update_appearance()` can cause this to fail, and sure enough if you look at the parent `Initialize()` proc it calls just that https://github.com/tgstation/tgstation/blob/f1178342084bf89897a46f6ce9dc849233bed21b/code/game/objects/structures/crates_lockers/closets.dm#L81-L88 Since we know the appearance is guaranteed to be changed in some way before the if condition gets executed let's check what the final state of the crate would be before this if check https://github.com/tgstation/tgstation/blob/f1178342084bf89897a46f6ce9dc849233bed21b/code/game/objects/structures/crates_lockers/crates.dm#L54-L56 We see that the final icon state depends on the variable `opened` so if we want to place/spawn a crate that is opened at round start we have to ensure that `opened = TRUE` so the `if(icon_state == "[initial(icon_state)]open")` succeeds and does its job correctly. Sadly we did dum shit like this ``` /obj/structure/closet/crate{ icon_state = "crateopen" } ``` throughout the entire code base, we thought backwards and were only concerned in making the closet look open rather than setting its correct variables to actually say that it is opened. because none of these crates actually set `opened = TRUE` the final icon state becomes just "crate" NOT "crateopen" therefore the if condition fails and we add the component https://github.com/tgstation/tgstation/blob/f1178342084bf89897a46f6ce9dc849233bed21b/code/game/objects/structures/crates_lockers/crates.dm#L36-L37 with the wrong parameters, so when closing the closet after_close() removes the component with the wrong arguments https://github.com/tgstation/tgstation/blob/f1178342084bf89897a46f6ce9dc849233bed21b/code/game/objects/structures/crates_lockers/crates.dm#L81-L84 that is does not unregister the signals and readds the component i.e. re-registers the signals causing runtime. The solution just do this ``` /obj/structure/closet/crate/open[mapping helper] ``` To clearly state that you want the closet to be open, that way you don't have to memorize the icon_state for each different type of crate, it's consistent across all crates & you don't get runtimes. And that's exactly what i did everywhere Another issue that is fixed is "Houdini crates" i.e. crates which are open & appear empty but when you close & reopen them magical loot appears, Go ahead walk upto to cargo and find any empty crate that is open and do this Fixes #69779 https://user-images.githubusercontent.com/110812394/232234489-0193acde-22c8-4c19-af89-e897f3c23d53.mp4 You will be surprised, This is seriously harmful to players because they can just walk by a crate that appears to be open & empty only to realize later that it had some awesome loot. Just mean The reason this happens is because of the Late Initialization inside closets https://github.com/tgstation/tgstation/blob/f1178342084bf89897a46f6ce9dc849233bed21b/code/game/objects/structures/crates_lockers/closets.dm#L85-L86 What late initialization does is suck up all stuff on its turf https://github.com/tgstation/tgstation/blob/f1178342084bf89897a46f6ce9dc849233bed21b/code/game/objects/structures/crates_lockers/closets.dm#L97-L100 In theory this is supposed to work perfectly, if the closet is closed move everything on the turf into the closet and so when the player opens it, they all pop back out. But what happens if the closet is opened before ` LateInitialize()` is called? This breaking behaviour is caused by object spawners https://github.com/tgstation/tgstation/blob/f1178342084bf89897a46f6ce9dc849233bed21b/code/game/objects/effects/spawners/random/structure.dm#L94-L100 And maint crates https://github.com/tgstation/tgstation/blob/f1178342084bf89897a46f6ce9dc849233bed21b/code/game/objects/structures/crates_lockers/crates.dm#L141-L143 These 2 spawners open up the crate based on random probability before ` LateInitialize()` is called on the crate and so what happens is the crate is first opened and then stuff on the turf is sucked in causing an open but empty crate to appear. The solution is simple just check again in ` LateInitialize()` if our crate is still closed before we proceed.That's fixed now too **Code Refactors** 1. Introduced 2 new signals COMSIG_CLOSET_PRE/POST CLOSE which are the counter parts for the open signals. hook into them if you ever need to do stuff before & after closing the closet while return BLOCK_CLOSE for COMSIG_CLOSET_PRE_CLOSE if you want to block closing the closet for some reason 2. 2 new procs `before_open()` & `before_close()` which are the counter parts for `after_open()` & `after_close()`. If you need to write checks and do actions before opening the closet or before closing the closet override these procs & not the `open()` & `close()` procs directly **Secured Craftables** This is just a reopened version of #74115 after i accidently merged another branch without resolving the conflicts first so i'll just repaste everything here, since crates & closets are related might as well do all in one 1. **Access secured closets** - **What about them?** **1. Existing System** If you wanted to create a access secured closet with the existing system its an 4 step process - First construct a normal closet - Weld it shut so you can install the airlock electronics - Install the electronics [4 seconds] - Unweld This is a 4 step process which takes time & requires a welding tool **2. New system** Combine the 4 steps into 1 by crafting the secure closet directly  - **Bonus Features** **1. Card reader** The card reader acts as an interface between the airlock electronics & the player. Usually if you want to change access on a locker you have to - Weld the closet shut - Screw driver out the electronics - Change the settings - Install it back - Unweld With a card reader there is no need of a welder & screwdriver. You can change the access of the locker while its operational **How do i install the card reader?** 1. Weld the closet shut 3. Insert card reader with hand 4. To remove the card reader use crowbar or just deconstruct the whole closet with a welding tool 5. Unweld closet **How to change its access?** This will overwrite the settings on your airlock electronics. To do this 1. make sure the closet is first unlocked. This is important so that no random person who doesn't have access to the closet can change its access while its locked. It would be like giving the privilege of changing your current password without first confirming if you know the old password 2. attack/swipe the closet with your PDA. Make sure your ID card is inside the PDA for this to work. You can also just use your ID card directly without a PDA 3. You will get 3 options to decide the new access levels  They work as follows - **Personal**: As the name implies only you can access this locker and no one else. Make sure to have your ID on you at all times cause if you loose it then no one can open it - **Departmental**: This copies the access levels of your ID and will allow people having those exact same access levels. Say you want to create a closet accessible to only miners. Then have an miner choose this option and now only miners can open this closet. If the Hop sets custom access on your ID then only people with those specific access levels can open this closet - **None**: No access, free for all just like a normal closet **Security:** After you have set the access level it is important to lock the access panel with a "multi-tool", so no one else can change it. Unlock the panel again with the "multi-tool" to set the new access type **2. Give your own name & description** To rename the closet or change its description you must first make the closet access type as personel i.e. make it yours, then use an pen to complete the job. You cannot change names of departmental or no access closets because that's vandelism **3. Custom Paint Job** Use airlock painter. Not intuitive but does the job.  **4. Personal closets** Round start personal closets can have their access overridden by a new ID when in it's unlocked state. This is useful if the last person has no use for the closet & someone else wants to use it. - **Why its good for the game?** 1. Having your own personal closet with your own name & description gives you more privacy & security for your belongings so people don't steal your stuff. Personal access is more secure because it requires you to have the physical ID card you used to set this access and not an ID which has the same access levels as your previous ID 2. Make secure closets faster without an welding tool & screw driver 3. Bug fix where electronics could be screwed out from round start secured closets countless times spawning a new airlock electronic each time 2. **Access secured freezers** - **What about them?** The craftable freezer from #73942 has been modified to support secure access. These can be deconstructed with welders just as before  - **How does it work?** The access stuff works exactly the same as secure closets described above. You can rename & change description with pen just like the above described secure closets. No paint job for this. Install card reader with the same steps described above. - **Why it's good for the game?** 1. Make access secured freezers faster without a welder and screwdriver 2. Your own personally named & locked freezer for storing dead bodies is always a good thing 4. **Access secured suit storage unit** - **What about them?** Suit storage units now require airlock electronics for construction. The access levels you set on it will be used to decide 1. If a player can unlock the unit 2. If the player can open the unit after unlocking 3. If the player can disinfect whatever is inside By default all round start suit storage units have free access - **Install card reader** Provides the same functionality as secured closets described above. To install it 1. Open its panel with a screw driver 2. Add a card reader to it with hand 3. Close the panel When you deconstruct the machine the card reader pops back out - **Why it's good for the game?** 1. Having your own access protected and named suit storage unit so random people don't steal your mod suits? Who wouldn't want that.? Provides security for department storage units. 2. If you have the unit locked then you cannot deconstruct the machine with a crowbar providing additional security 3. Fixes #70552 , random people can't open/unlock the suit storage unit without access. You can set personal access to make sure only you can access the unit ## Changelog 🆑 add: Access secured closets. Personal closets can have their access overwritten by an new id in it's unlocked state add: Access secured freezers. add: Access secured suit storage units. fix: Suit storage unit not having access restrictions. fix: airlock electronics not properly getting removed after screwing them out from round start lockers fix: round spawned open crates run timing when closed fix: open crates hiding stuff in plain sight fix: open closets/crates sucking up contents during late initialize causing them appear empty & open /🆑 --------- Co-authored-by: Tim <timothymtorres@gmail.com> |
||
|
|
b1716732b0 |
The North Star Expeditionary Vessel - A Second Wind (#74371)
## About The Pull Request A new map for TGstation, in the works! It has 4 fucking Z levels, a massive expansive maintenance with unique designs, and some unique code features in the works. To Do: - [x] Update the Map to Modern TG - [x] Local Tests - [x] Work on Map Optimizations - [x] Run Live Tests Fikou has greatly helped with creating an important flavour aspect of this map, Trek Uniforms on anyone who joins! See the forum thread for more. This includes the framework for innate station traits, station traits loaded as long as it's in a map's json Here's the forum dev thread there are screenshots there. https://tgstation13.org/phpBB/viewtopic.php?p=657252#p657252 ### Mapping March Ckey to receive rewards: Cheshify ## Why It's Good For The Game So, this is the North Star. An effort taking multiple mappers and of 9~ months of hard work. This map was not initially designed for TGstation, but always designed for TGstation code. The process of retooling the map for TGstation was an absolute joy and I feel like the map definitely has it's niche as a massive and unique experience for it's players. I adore this map, it's gorgeous, has a unique aesthetic, and a number of very funny interactions with multi-Z. The PR comes packed with unique mechanics for future mappers (innate station traits!), a number of map-fitting shuttles, and a fun spacefaring uniform gimmick for the crew. **This is my second attempt at bringing this map into rotation. It was initially closed due to concerns about maptick and performance, as I wasn't willing to push for a map to be added to the repository if it didn't function to my own standards. I've been informed by a number of coders far better than I that optimizations are arriving and enroute, so I think it's time to dust her off and set sail for another journey.** **Quick Disclaimer: Due to some design decisions disagreed upon by the headcoder team and myself, the map will not be featuring unique roundstart uniforms, and despite my design intentions, the innate station trait features will be shelved for now.** ## Changelog 🆑 Cheshify, Fikou, Blue-Berry, Zytolg, InfiniteGalaxies, Striders, Sylphet, Riggle, Soal, Andry, Crit, Deranging, and Pumpkin0. add: Nanotrasen's Newest Exploratory Vessel is now available! Meet the North Star! add: More landmines, and a landmine random spawner. add: energy barriers now have a regenerative subtype, fit for permanent installations. code: Raised the number of possible level render to 4, check your preferences if needed to be reduced. /🆑 --------- Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> |
||
|
|
6085e3b5ee |
Reagent soup / Soup rework / Stoves - A kitchen expansion (#74205)
## About The Pull Request  **This PR:** - Reworks most* existing soup into reagents. - Adds Stoves and Ranges. Ranges replace most* existing ovens. - Adds soup pots, to cook soup **How does it work?** In the kitchen you will find a stove now. Stoves act as a "reagent container heater", essentially a chem heater. You can set a pot onto the stove. To make soup, visit the cooking recipe book for a guide. Most recipes are the same as before, just tweaked slightly - Add water to the pot (50 units for 1 batch generally), then add all the corresponding ingredients to the pot. Set the pot out on the stove and right click it to turn it on. If the recipe's correct, shortly it will start to mix and give you soup! One soup recipe will give you roughly 3 servings of soup. You can pour our the soup into a bowl using a ladle or just by pouring it manually. Of note: **All of the reagent contents of the ingredient are transferred into the soup.** Better, more nutrient rich ingredients produces more soup, and poisoned produce will pass it on. If you place the soup into a chem master, you will notice it's roughly half "soup reagent" and half a variety of reagents, including nutriments / proteins. This is your soup! It is recommended you serve your soup with the reagents included, as they make up more nutrition for the customer, however you can separate it out if you're picky. **Todo:** - [x] Fill out the PR body a bit more - [x] Mapping (wait for big merge conflict pr to go past) - [x] Soup colors - [x] Balance pass over for soup recipes - [x] TODOs - [ ] Unit tests - [x] Cullen Skink's recipe is invalid - [x] Try to see if there's an easy way to prevent soup from fattening you up too easy. ## Why it's good for the game Adds some more depth to the kitchen and moves chef away from the click-button-get-food style that exists. Allows for inherently custom soups by the way of making it reagents, so no need to support custom soup food items. ## Changelog 🆑 Melbert, stove and pot sprites by Kryson, ladle sprite by Kinneb add: Kitchens are now stocked with Ranges. add: You can now print (and create) Stoves. add: The dinnerware vendor now dispenses ladles. add: Spoons can now actually spoon... things. add: Soup has been reworked entirely. Soups are now reagents, cooked via a soup pot on a Stove or Range. Simply add water and your required items, then apply heat. Be careful not to boil over! add: Stoves, Ranges, and Griddles will now heat up their surroundings - don't turn them on around plasma! fix: Fixes being able to cook in an Oven while the room is depowered qol: Hitting a customer bot with an incorrect recipe no longer counts as a hostile attack leading to your demise shortly after refactor: Customer bots that request a reagent now use custom orders code: Cut down a lot of code in the crafting menu code, and removes some ugly ispaths del: Soup is no longer food items, so can't appear in random food pools (at least not yet). balance: Virus Food recipe now requires you cool it to 200k. /🆑 |
||
|
|
af81a87446 |
Adds bacteria rich moldy food to random trash spawners. (#74276)
## About The Pull Request So, as bacteria bread from perma vendor was nerfed, the only way to obtain mold for cytology is from the mini-fridges. And they won't even spawn when needed. Correct me if i'm wrong. And so this adds moldy breadslices and pizzaslices to `random/trash/garbage` spawner which appears in trashcarts and in trashbagsfrom the trashcarts. Also added it to `grille_or_waste` spawner so it can just randomly spawn on the floor. About the damp rag. Just thought that there should be at least some piece of cloth at pile of garbage, as there is none at the moment. And it's quite usefull also, you can clean yourself or your fingerprints with it. Can cut it out if needed, not a big deal. ## Why It's Good For The Game More chances to find what you want to do cytology. Cytology slightly more practical. Damp rag is usefull. ## Changelog 🆑 add: Bacteria rich moldy food (like breadslices and pizzaslices) now spawn in trashcarts, trashbags and randomly on the floor. add: Damp rag now spawns in the trashcarts and etc. /🆑 |
||
|
|
302060acda |
Removes bepis Techweb and reworks tech disks in general (#74147)
## About The Pull Request Did you know that there's 2 types of disks Science can print? One of them creates a whole new techweb and is used to transfer data to and from techwebs (which used to be for Theft objective, but nowadays all it's used for is Admin techweb). The other one is these disks you can find from Lavaland & for the Limbgrower which holds nodes on them directly, they don't need anything else. These are both printable and have very similar names which could easily confuse people, especially since they are both printed and used at the same place, being the R&D room and R&D console. This will hopefully simplify it, by removing the base Tech disks from being printable. The only one that can be printed now is for Limbgrowers, which can't be easily mixed with the other type of Disk. Outside of that, Lavaland disks are staying the same, but I've moved Bepis disks to use this, which allows us to remove Bepis techwebs being made every single time a new bepis disk is created. Examples of it in-game    ## Why It's Good For The Game There's no reason why every single Bepis node should be making a whole new techweb set with experiments to complete, roundstart nodes researched, being constantly checked if it should gain research points, have a list of papers to publish, and everything else that techwebs do. Can you guess which disk does what in this screenshot?  ## Changelog 🆑 balance: You can no longer print Technology data disks. You can still print Tech disks, which hold techweb information on it, just not the one that holds up to 5 nodes. balance: ^ Because of this, there's no way to download nodes from an RD console and upload them to an Autolathe to bypass departmental restrictions, you have to go through a Techfab/Circuit imprinter for your needs. balance: Ones that are found cannot have anything uploaded/deleted off of them either, you can only upload them to the Web. code: Every individual Bepis disk no longer create an entire techweb /🆑 |
||
|
|
8b2aed0342 |
New Station Trait, Employee Birthday! (#73751)
<!-- 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 Adds a new neutral station trait the announces to the crew its a member of staff's birthday, spreads some confetti/balloons around and gives out some birthday themed items including hats, new toys and cake ingredients for the chef. The mechanical impact of the trait is quite minimal only giving out some fluff items and giving the janitor some extra work. However the event has a lot of potential roleplay impact by singling out a crewmember and informing everyone about their birthday, I can foresee players using this as an opportunity to run birthday themed gimmicks or give one specific player preferential treatment for the shift which should allow for some interesting stories to be produced. <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> ## Why It's Good For The Game Partially explained in my about section but in short I think a lot of the station traits we have at the moment are very mechanically driven and we could use a more open ended roleplay prompt themed one which this one provides. The idea of one player getting put in the spotlight while not being an antagonist is also something I can see potentially great stories come from. <!-- 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. --> ## 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. --> 🆑 add: New Neutral Station Trait, "Employee Birthday", its someone on the crews birthday, make sure to wish them a happy birthday and perhaps get them a gift. add: Two new party themed items have been added to the arcade prize pool, the party horn and a box of party poppers. /🆑 <!-- 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. --> |
||
|
|
64de1617b2 |
Refactors lizard fake canned food into real canned food (#73469)
## About The Pull Request /obj/item/food/canned_jellyfish, /obj/item/food/desert_snails, and /obj/item/food/larvae are now all /canned subtypes. All this means is that to eat them, you use them once, and now they drop an empty tin rubbish item. ## Why It's Good For The Game Making fake false versions of real types that exist is such a pet peeve of mine, we recently had a bug from it where the snails would go bad. But even with that fixed you're just chomping the container of snails and it's not the same behavior as all the other cans grumgrugmrg I FIXED IT. ## Changelog 🆑 refactor: Lizard related canned food now acts like canned food /🆑 |
||
|
|
7d47fbef42 |
Refactor lighting items that use fuel (#72146)
## About The Pull Request Fixes #71826 This does the following: - Makes candles a subtype of flare - Fixes candles having lighting inconsistencies - Fixes burning items (welder, candles, flares, etc.) not causing ignition effects when held in hand - Adds burnt flares and melted candles to maint loot and trash spawners - Add match lighting sound when candles are lit - Add time defines for fuel amounts and rounded them (ex. instead of 32.3333 minutes, it's now 35 minutes) - Light sources that burn will now spawn a trash item once fuel is spent - Light sources that burn now have a welder hitsound - Light sources that burn can now be extinguished by a fire extinguisher (except flares) - Light sources that burn can now be used to ignite another object on fire (ex. a lit candle can be used to light a cigarette) - Light sources that burn and are lit now do `BURN` damage while attacking ## Why It's Good For The Game Code is more cleaner and consistent. Also fixes some bugs. ## Changelog 🆑 soundadd: Candles will now use the match lighting sound when lit soundadd: Light sources that burn will now have a welding hitsound fix: Fix candle light behaving erratically fix: Fix burning items that are held in hand will now have an ignition effect on the turf. (ex. lit welders in hand will now ignite plasma in the air) balance: Light sources that burn and are lit now do `BURN` damage while attacking balance: Light sources fuel amounts were rounded to exact numbers (ex. instead of 32.3333 minutes, it's now 35 minutes) qol: Light items that burn can now be extinguished by a fire extinguisher (except flares), used to ignite another object on fire, and will now leave a trash item once fuel is used qol: Add burnt flares and melted candles to trash spawners refactor: Refactor lighting items that use fuel to be more robust /🆑 Co-authored-by: Kylerace <kylerlumpkin1@gmail.com> |
||
|
|
e7d788348f |
Frog Basic Mob Refactor (#72044)
## About The Pull Request Refactors the frog into a basic mob. The frog now does the same as the old frog and can now properly be commanded by the regal rats. ## Why It's Good For The Game ## Changelog 🆑 refactor: Refractors the frog into a basic mob /🆑 |
||
|
|
47ec8ecd38 |
Adds the Sandstorm random event, directional meteor functionality, space sand. (#71802)
<!-- 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  Hey guys, it's your boy. Back at it again with another meteor-adjacent event PR. Adds the Sandstorm random event, inspired by the long-unused admin only one. It picks a direction to approach from, alerts the crew of its imminent arrival, and after a little over a minute of preparatory time, sends waves of sand and dust to grind down everything in that direction. To accomplish this, some minor adjustments had to be made to meteor generation code. They can now be passed an optional arg for a direction to be thrown from, and will pick a random one if no direction is given. Also introduces the newest addition to our cast of meteors -- space sand! It's even weaker than space dust, and shows up exclusively in this event. Space sand is **ineffective against rwalls**, and will not damage the arrivals area's high-tech sand-resistant glass. This is to prevent this event from venting one of the most dust-vulnerable areas on the station, and to make sure new players aren't shafted into firelock hell when the right angle is picked. I did a lot of testing and tweaking of numbers to get the damage to average at about the level I'm comfortable with. This is meant to be a high-impact event that isn't as destructive (or unavoidable) as a meteor wave. Speaking of avoidance, let's talk about mitigation: You get an early warning and a direction the sand will come from. You have time to grab repair supplies, move to safety, get a MODsuit. You can make worthwhile repairs as the sand comes in from inside (or outside, if you're brave enough) with nothing more than a welder and iron sheets. If you're feeling particularly spicy, you can leverage your prep time setting up shield generators, which spawn in engineering and have been added to the maintenance machines loot pool. Anyone can contribute, so do your part as a good crewmate and help out! All that being said, the event can't be prevented entirely. Shit's going to get shredded, especially on the outside of the station. Damage will vary heavily based on the station and direction, ranging from inconsequential to threatening. It should happen late enough into the round that, at the bare minimum, the crew shouldn't be caught unprepared. For those of you who are worried, the ORIGINAL sandstorm admin event is still with us too. It's been moved from the space dust file into the Sandstorm event file. This PR also makes a very minor change to the naming of the space _dust_ events, for better menuing. So, to sum it all up: Sand hits grinds down one side of the station, you get a minute of warning, shield generators now spawn in maintenance. Be a good crewmate and help where you can. <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> ## Why It's Good For The Game More event variety is good, and events that give the players agency on how bad the impact will be is even better. <!-- 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. --> ## 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. --> 🆑 Rhials add: Sandstorm random event! A random side of the station is pummeled by an onslaught of sand and dust. If you hear that one is approaching, grab a welder and some iron to help with repairs! add: Space sand! It's weak and doesn't hurt reinforced walls, but shouldn't be underestimated in high quantities. code: You can now pass a start direction to the spawn_meteors/spawn_meteor global procs. /🆑 <!-- 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. --> |
||
|
|
b4615f9f40 |
turns axolotls into basic mobs (#71778)
## About The Pull Request Changes axolotls from simple mobs to basic mobs. I'm not well versed on the differences between simple and basic mobs but it looks like axolotls are still working as before. Their idle movement may be slightly different compared to before and now they don't move away while you're pulling them. ## Why It's Good For The Game Basic mobs are better for AI and probably some other stuff as well and there's the freeze thing also. ## Changelog 🆑 code: turned axolotls into basic mobs, their idle movement may be slightly different and they won't move while you're pulling them anymore /🆑 |
||
|
|
2425531eb2 |
Removes tablets (not PDAs) entirely. (#71507)
## About The Pull Request **Comes with an UpdatePaths!** Removes the tablet subtype, PDAs now replaces them entirely. Nukie and Silicon tablets are now subtypes of the PDA instead, while contractor ones were removed entirely as they didn't do anything and were unused (though it wouldn't be hard to re-add). Nukie PDAs are now the only type of PDA that uses modular_tablets.dmi, which is just larger icons of modular_pda. Each application requires an icon state in both of these, for 2 different sizes, which makes it annoying to make new applications, especially if it can also run on computers/laptops. ### Icons Because Silicon tablets are now a subtype of PDA, they use PDA icons instead of tablet ones. Luckily for us, they already exist in code.  AI's don't use a tablet icon though, so they aren't affected. ## Why It's Good For The Game There's very little difference between tablets and PDAs, PDAs overshadow them in every single way, so at this point I don't see why we should have both of these, and if you compare the two in usefulness and actual in-game use by players, it's a no-brainer than the item all players get roundstart and comes with a messenger should be the one we go with. Also as said in the about section, when making an app you would need to make icon states for the program running for all hardware it can run on, which is Computer, Laptop, PDA, and Tablet. Laptop is just a smaller computer icon PDA is just a smaller tablet icon However, you can't simply shrink the size of the icon, instead you have to completely resprite the same app icon FOUR TIMES for it to not bluescreen on all these different devices. <details> <summary> Here's examples of it </summary> Computer (NOTE: *They share the same icon file as regular computers*) <img src="https://user-images.githubusercontent.com/53777086/203876801-486a8054-489a-4983-bdad-a2599b4dc379.png"/> Laptop <img src="https://user-images.githubusercontent.com/53777086/203876333-58e5d135-f4c6-4a02-8948-1df771e294a4.png"/> Tablet <img src="https://user-images.githubusercontent.com/53777086/203876352-816c7fb1-c681-40b9-99e0-052f49632c7f.png"/> PDA <img src="https://user-images.githubusercontent.com/53777086/203876358-1cf7253d-3c6a-456a-8133-ebf7f0351637.png"/> </details> If we wish to help in simplifying this, we should remove tablet icons entirely, which means 1 less icon to worry about. To do this, we'd need to resprite nukie PDAs, however I am very much not a spriter and never tried GAGS, so I'll leave it to someone else to do. ## Changelog 🆑 del: Tablets are now removed, PDAs are now the base 'tablet'. Silicon and nukie tablets are now PDAs. /🆑 |
||
|
|
fd19f6d5a0 |
The Mining vendor now works like the Chef produce console (has to go through Cargo) (#71023)
## About The Pull Request Now comes with a Hackmd: https://hackmd.io/ImTe5FLeTgmI7spTWKBaFQ?view In-game screenshots:    Removes the old Mining vendor console and all its bad code. Instead, the chef produce console was generalized and a NEW mining vendor is a subtype of it. If they try to Express this console, it will be 1.5x the mining points (compared to 2x for the Chef produce console atm), so it is technically possible, but it is still better to order it through Cargo. Different to the Kitchen crate, this one is a private order by the Shaft Miner, using mining points instead of Credits. Cargo CAN emitter it open, but I think that's an acceptable risk with all crates. As shown in the screenshot, Cargo will immediately know who ordered the items so knows who to call to pick it up when needed. This also means Shaft Miner's vendor is now categorized somewhat. I tried my best to make sense out of it but some items really don't make sense (laser pointer, soap...) I split the different sections of orderable items into different files for better management, and de-hardcoded it and its TGUI to make it easier for anyone who wants to add more to it. I also made the produce console use paths and added ways 'categories' to produce consoles, which indicates which sections you should and shouldn't be allowed to see. https://github.com/tgstation/tgstation/pull/71007 already did part of this but it isn't merged yet so :/ Free golems are mostly unaffected by this. Their console only works in express mode and doesn't increase the prices for it. The only downside is the cooldown. I still have some things to finish on this PR so it'll be left as draft until at least tomorrow. ## Why It's Good For The Game https://hackmd.io/ImTe5FLeTgmI7spTWKBaFQ?view 1. A large problem currently with Miners is that they don't interact with the station, this will at least help integrate them more into their own department, by making the cost of their equipment cheaper if they bother to actually go through Cargo for their gear. 2. It also means that a non functional Cargo would affect Shaft Miners too, and as they have access to the shuttle, maybe we can expect some Miners to pick up the slack if needed. 3. The old mining vendor was the ONLY vendor in the game that had infinite stock. It doesn't need a refill or anything like any other vendor, and every other vendor uses credits, mining points is just shaft miner credits. Why are they an exception? At least being ordered through the shuttle makes sense. 4. It opens the QM being able to see easier what Miners are doing, and prevents miners from hiding on Lavaland to do nothing but hunt fauna if they were meant to be demoted or something by the QM. Basically, gives the QM more control over the people working in their department. ## Changelog 🆑 add: Shaft Miner's equipment vendor now orders their equipment through the Cargo shuttle, though you can spend 1.5x the points to express it, making it a Mining version of the Chef's produce console, with a weakened express tax. /🆑 |
||
|
|
333dcef6ad |
Refactor janicart to be subtype of mop bucket (#71094)
## About The Pull Request Fixes #41123 This gives mop buckets the same behavior as janicarts. This means it inherits the same hotkeys, context screentips, etc. Other niche changes: - Fix reagent containers playing attack animation when transferring reagents to mob bucket - Fix syringes and droppers not updating the appearance of target when used - Regular mop bucket has the same RMB hotkey as janicart for wetting mop ## Why It's Good For The Game One less bug off tracker. Better consistency with code. ## Changelog 🆑 fix: Fix reagent containers playing attack animation when transferring reagents to mob bucket fix: Fix syringes and droppers not updating the appearance of target when used qol: Regular mop bucket has the same RMB hotkey as janicart for wetting mop refactor: Refactor janicart to be subtype of mop bucket /🆑 Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> |
||
|
|
bbb956d2a6 |
Removes Bowls from garbage spawners because they don't fit in trash bags and I'm SICK of not being able to clean! (#71152)
## About The Pull Request Let me give you a scenario. --- THIS, is you. Say hi!  You're a loyal janitor aboard NT-SS13. You love your job; despite the dangers, it's generally not too busy or tedious. Just a spray, a sweep, and put it all in a bag. --- This. This is your enemy.  Some crewmembers continuously leave them in maintenance, tossing them into garbage bins as they pass. This bowl, you cannot spray it. You can sweep it as far as you want, but in the end, cannot put it into the bag.  --- It exists to torment you. Nothing more, nothing less. You hate the bowl. And it hates you. Wake up.  ## Why It's Good For The Game Usually when you pass a trash pile you expect it to have trash, and entire bowls aren't technically trash code-wise, nor can you clean them. Yes, this PR has a modicum of salt. It was salt left behind in THE DAMN BOWLS. ## Changelog 🆑 del: NT has decided to begin a Recycling initiative, asking crew to please stop throwing their bowls away in maintenance. You should only find trash and grime from now on! /🆑 |
||
|
|
be1edab621 |
Sign Language Refactor & Bugfixes (#71265)
## About The Pull Request This PR contains an intermediate refactor and a bug-fix for sign language, which was originally from the Tongue Tied quirk/tongue. With helpful advice from @MrMelbert and @LemonInTheDark, I have successfully decoupled sign language from the tongue and ported it into a highly modular DCS component, and then added an Action for toggling it. Big thanks to @Wallemations, the original creator of Tongue Tied, for creating the new Action sprite and helping me to complete this project! The new sign language component is added to all new Carbon mobs, and incrementally overrides several critical functions, variables, and argument lists relevant to a mob's speech; the component primarily listens for the addition/removal of trait `TRAIT_SIGN_LANG` in order to function. Additionally, fixed a bug in the original implementation of sign language that caused its say verbs such as "emphatically signs" to stop working. The bug was caused by an unsafe early removal of exclamation points from the input string, causing a conflict with the `say_mod` proc which requires such punctuation points to be present. Here's a granular list of changes: - Added a ubiquitous signal to extend the behavior of `/atom/movable/proc/say_quote`. - Added a ubiquitous signal to extend the behavior of `/atom/movable/proc/lang_treat`. - Fixed a bug in the original implementation of sign language that caused its `verb_yell` to stop working. - Refactored sign language into a Carbon-only DCS component. - Refactored the Tongue Tied tongue to use `TRAIT_SIGN_LANG` and `TRAIT_MUTE`. - Removed the Tongue Tied quirk, in favor of two separate quirks. - Added the Signer quirk for sign language, good, costs 4 points. - Added the Mute quirk, negative, gives 4 points. - Added a rare sign language Action granter book to maint and space loot, "Galactic Standard Sign Language". ## Why It's Good For The Game This PR tactfully re-implements Tongue Tied, re-introducing it as two new quirks: For sign language itself, I added the Signer quirk, which is a good quirk which allows you to use sign language for 4 quirk points. I also added the Mute quirk, which grants 4 quirk points in exchange for your audible voice. There is also a marked improvement in the code health as a result of my changes. Here's a preview of the sign language Action. If you're also mute, it becomes invisible to reduce clutter:  In regard to how useful sign language is, it can be used as: 1. A way to communicate across a vacuum without a radio. 2. An easy way to communicate with deaf people. 3. An easy way to communicate as a Mute person. ## Changelog 🆑 A.C.M.O. del: Removed the Tongue Tied quirk. The tongue can still be found and used in-game. refactor: Refactored Tongue Tied's tongue to use the Sign Language and Mute traits. add: Added Sign Language innate action. Granted by book or quirk. add: Added the Galactic Common Sign Language book as rare maint and space loot. add: Added the Signer quirk, which teaches you sign language in exchange for 4 quirk points. add: Added the Mute quirk, which grants you 4 quirk points in exchange for your voice. fix: Fixed sign language say_yell verb, which allows you to emphatically sign. /🆑 Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com> |
||
|
|
53433bfbd2 |
Allows languages to weight the likelihood of certain syllables, refactors certain code related to pick_weight() (#71275)
## About The Pull Request This PR does the following: - Defines a new proc in __HELPERS/_lists.dm called `pick_weight_recursive()`. This is the code from `/obj/effect/spawner/random/` that allows for nested weighted lists, moved to its own proc. - Replaces explicit code in spawners/random.dm with calls to `pick_weight_recursive()` where appropriate - Deletes the redundant (and barely used) proc `/obj/item/loot_table_maker/proc/pick_loot`, as this was equivalent to `pick_weight_recursive()` - Moves the global proc `fill_with_ones()` from spawners/random.dm to __HELPERS/_lists.dm - Replaces `pick()` in language syllable selection with `pick_weight_recursive()`, allowing languages to define syllable weights or use nested lists of syllables. - Reformats Galactic Common to use nested lists of syllables, allowing English and Chinese syllables to occur at equal frequency despite having different numbers of each. ## Why It's Good For The Game Allowing languages to define syllable weights and nested groups of syllables is a relatively small change that greatly expands what you can do with them. In addition to making Galactic Common look nicer in code, this change also allows for the easy creation of languages with highly uneven syllable distributions (including ultra-rare secret syllables, perhaps) or the quick creation of pidgin languages that combine multiple syllable sets. Using a new proc simplifies spawner code by reducing repetition. Making it global allows for other code to easily implement the same flexible and elegant system of nested lists that spawners already use. ## Changelog 🆑 refactor: defines a new global proc, pick_weight_recursive() code: languages can weight syllables, and galactic common's definition is easier to look at /🆑 Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> |
||
|
|
83c75cac2c |
Brimdemons & Lobstrosities drop (slightly) useful organs (#70546)
Goliaths, Legions, Watchers, and (as of recently) Bileworms all drop something vaguely useful when they die. Brimdemons and Lobstrosities do not. This PR aims to fix that, so that there's at least some vague benefit to hunting them. In this case it takes the form of organs you get when you butcher them, similar to the regenerative core from Legions. As they're similar to the regenerative core, I modified the regenerative core to extend from a new common "monster core" typepath which these two new organs also extend. Like the regenerative core, both of these items do something when used and something slightly different if you go to the effort of having someone implant them into your body. They also decay over time, and you can use stabilising serum to prevent this from happening. https://user-images.githubusercontent.com/7483112/195967746-55a7d04d-224e-412d-aedc-3a0ec754db3d.mp4 The Rush Gland from the Lobstrosity lets you do a little impression of their charging attack, making you run very fast for a handful of seconds and ignoring slowdown effects. Unlike a lobstrosity you aren't actually built to do this so if you run into a mob you will fall over, and if you are doing this on the space station running into any dense object will also make you fall over (it shouldn't make you _too_ much of a pain for security to catch). The idea here is that you use this to save time running back and forth from the mining base. The Brimdust Sac from the Brimdemon covers you in exploding dust. The next three times you take Brute damage some of the dust will explode, dealing damage equal to an unupgraded PKA shot to anything near you (but not you). If you do this in a space station not only is the damage proportionally lower (still matching the PKA), but it _does_ effect you and also it sets you on fire. You can remove the buff by showering it off. The idea here is that you use this for minor revenge damage on enemies whose attacks you don't manage to dodge. https://user-images.githubusercontent.com/7483112/195967811-0b362ba9-2da0-42ac-bd55-3809473cbc74.mp4 If you implant the Rush Gland then you can use it once every 3 minutes without consuming it, and the buff lasts very slightly longer. It will automatically trigger itself if your health gets low, which might be good (helps you escape a rough situation) or bad (didn't want to use it yet). https://user-images.githubusercontent.com/7483112/195967888-f63f7cbd-60cd-4309-8004-203afc5b2153.mp4 If you implant the Brimdust Sac then you can use it once every 3 minutes to shake off cloud of dust which gives the buff to everyone nearby, if you want to kit out your miner squad. The dust cloud also makes you cough if you stand in it, and it's opaque. If you catch fire with this organ inside you and aren't in mining atmosphere then it will explode inside of your abdomen, which should probably be avoided, resultingly it is very risky to use this on the space station. |
||
|
|
a4446ff754 |
Adds a QM statue, as all other heads have one. (#70744)
* Adds a QM statue, bringing it on par with every other head of staff. |
||
|
|
85b2d5043d |
Optimizes qdel related things (slight init time savings) (#70729)
* Moves spawners and decals to a different init/delete scheme Rather then fully creating and then immediately deleting these things, we instead do the bare minimum. This is faster, if in theory more fragile. We should be safe since any errors should be caught in compile since this is very close to a "static" action. It does mean these atoms cannot use signals, etc. * Potentially saves init time, mostly cleans up a silly pattern We use sleeps and INVOKE_ASYNC to ensure that handing back turfs doesn't block a space reservation, but this by nature consumes up to the threshold and a bit more of whatever working block we were in. This is silly. Should just be a subsystem, so I made it one, with support for awaiting its finish if you want to * Optimizes garbage/proc/Queue slightly Queue takes about 1.6 seconds to process 26k items right now. The MASSIVE majority of this time is spent on using \ref This is because \ref returns a string, and that string requires being inserted into the global cache of strings we store What I'm doing is caching the result of ANY \ref on the datum it's applied to. This ensures previous uses will never decay from the string tree. This saves about 0.2 seconds of init |
||
|
|
c7dde06668 |
[MDB Ignore]Hats DMI split (#70060)
Splits head dmi into separate files for both mob and obj icons. Kept similar to suit split categorization + some more. New files include beanie, bio, chaplain, costume, cowboy, default, hats(softcaps, fedoras, head caps, generic hats), helmet(helmets and other armored headgear/hoods), spacehelm, utility(hardhats, mostly work related hats), wizard. Moves animal/pet head sitting icons to 1 folder, pets_head.dmi Renames PAI head sitting icon file to pai_head.dmi |
||
|
|
29227aab52 |
Mail Quirk Goodies DLC - Package Bonanza (#70091)
* Add mail goodies for neutral quirks * todo later... hur hur hur * Add mail goodies for quirks * Move money goodie to random spawner effect * Add more goodies to positive quirks * Add more mail goodies for negative quirks * Add pajama clothing to heavy sleeper mail goodies * Ad fedora to mail goodies for gamer quirk * Add trenchcoat to monochromatic quirk mail goodies * Add mail goodies to all remaining quirks * Fix linter error * Add candle box to spirtual quirk mail * Clean up code for mail goodies * Rebalance generic goodies mail weight * Add mail goodies quirk code comments * Add more noir items for monochromatic * Add 3 new random spawners icons * Add nightcaps to heavy sleeper mail goodies * Fix plushies random spawner to work correctly * Add code comment explaining quirk weight value |
||
|
|
c373959506 | Fixes invalid path in the garbage spawner (#70127) | ||
|
|
28597066d3 |
adds axolotls (#69973)
Axolotls have a chance of spawning roundstart at each moisture trap, just like their fellow amphibians. Their spawn chance is half that of a frog. |
||
|
|
73d471637b |
Closets now initialize their contents on demand (more than 1.6 seconds of init time saved) (#69587)
About The Pull Request Closets now initialize their contents once in dump_contents(). This saves more than 1.6 seconds of init time (all /obj/structure/closet now initialize in 84ms). Not sure what assumptions this will break, there's a lot of closets, so separate PR. cl del: You can no longer see maint spawners before the round starts (but your rounds start faster now :) ) /cl |
||
|
|
670aa7c4a0 |
Cucumber Fever (#69639)
About The Pull Request Not without the help of my friend spriter, I added cucumbers, their seeds, the cultivation itself, so that they could be pickled and washed with a brine jar. I also added a Danish hot dog because it required cucumbers (perhaps that was the end goal), changed a couple of recipes to include cucumbers or pickles. Cucumbers have been added to both cargo orders and bounty cubes, as well as for the food order console I think the Cucumber Update deserves its plush toy. gg18b4b2cab0 Why It's Good For The Game I think more food and drink... would add quite a nice role playing experience, and additional gameplay for hydroponics. Changelog cl Vishenka0704 and Ying-The-Pando add: Cucumbers and pickles add: Danish hot dog balance: add cucumbers in dishes where they need qol: add to bounty cubes, orders - new vegetables /cl |
||
|
|
835ad42d75 |
Random statue mapping spawner spawns its statues anchored (#69305)
About The Pull Request
The /obj/effect/spawner/random/decoration/statue spawner will spawn it's statues anchored, assuming they are structures.
Also refactored graffiti spawner since I was adding support in this area and saw it
Why It's Good For The Game
If you wanna use the spawner to place a statue in a public area, people will shove it around and stuff, which is lame.
So, by anchoring it when it spawns, mappers don't have to worry about people bumping their pre-placed statues around.
|
||
|
|
7354466b42 |
Food Expansion 4! The great salad update and more (#69355)
About The Pull Request
This is my fourth food expansion PR, adding and changing quite a few things.
This PR will:
Add 7 different types of salads
Add a new ingredient supply beacon box called 'Salads', which includes ingredients used for the salad recipes
Give cherry jelly its own container, and allow jelly to be ordered from the produce console
Make cherry jelly actually nourish you when consumed
Add paçoca, a Brazilian peanut candy requested by @GuillaumePrata
Add mashed potatoes
Add shepherds pie
Add Cullen skink
|
||
|
|
4a274a6e4b |
[MDB IGNORE] Refactors drinks and fixes a lot of food problems (#69081)
* Makes condiments their own subtype, fixes geese, prepares for merging * Fixes geese checking drink type instead of edible foodtype to eat gross food. * Renames foodtype var on drinks to drink_types to prevent above from happening again because it KEEPS HAPPENING. DRINKS AREN'T FOOD! * Makes Condiments their own subtype of reagent_containers because they don't make any use of being a subtype of food, at all. * Starts moving things from food to /food/drink subtype in preparation for merging /food/drink with /drink * fully removes Food subtype * /reagent_containers/drinks are now /reagent_containers/cup - This is so it's no longer confused with eachother. * /food/drinks is now /reagent_containers/cup/drinks, so we can keep their special abilities. * Fixes a LOT of errors with food, which are STILL checking the reagent_containers, despite ACTUAL food being refactored away from it a long time ago. This doesn't compile yet, but I do want to make sure my progress is well tracked. * remove copypaste code, changes soda cans * Removes most copy paste code between the two drinks, moving most stuff to parent whenever needed. * Made soda cans their own subtype since they didn't share anything with glass bottles anyways. * Fixes more problems with food/drinks, especially with geese. Geese really were just broken this whole time and no one said a word... * Removes a snowflake signal, now that both drink types share a common one. * Adds everything to the .dme Currently my goal is to get this all compiling, then remove isGlass var by making glass be all glass ones only. * Moves all icons into a single drinks dmi I'm not that great at icon stuff, hopefully I didn't forget/break anything. * Turns juices into their own subtype This allows us to let them check for type in molotov, to both get rid of a use of isGlass, and so non-glass non-cartons don't show up as 'carton'. * fixes compile issues, adds updatepaths * a better updatepaths * updates the damn maps now * properly names the updatepath * how did that get there * i suck at handling merge conflicts * how am i this bad * code improvement and soda fix * more fixes * Don't be a timer Ports from old food bottles to trans the reagents, rather than add a timer to. * Merge conflicts and fixes bottle smashing * Bottle smashing is now consistently functional regardless of how much liquid they have in them, when before it would spill first, then smash on the second hit. * runs updatepaths again |
||
|
|
43480ede67 |
Add chance for maintenance crate and closet spawners to be open (#68851)
* Add randomized open state for crate spawners * Add chance for empty closets to spawn open |
||
|
|
37db4a3e85 | Peanuts! + Other various foods/changes (#68390) | ||
|
|
8a72cd9997 |
Piano broken sprite, helper, and hit sound (#68003)
* Does the PR * fixes playsound locations |
||
|
|
940f8348f8 |
Fixes regenerative core implants not functioning (#67961)
* Repaths regen_core * updates var names * updates var name |
||
|
|
ac768af647 |
Re-adds freeform/purge boards to all AI uploads, removes from spawners (#67915)
Re-adds the freeform boards to an open table in all the AI uploads, re-adds the purge boards to the harmful table in all uploads, and removes them from their associated spawners so that all stations have them as roundstart guaranteed spawns. |
||
|
|
f06d735a52 |
All AI Lawsets are rebalanced, can be researched, appear in config, and random spawners for AI upload. (#66854)
This formally adds the new AI lawsets from #66636 into the game. Every lawset can be researched, appears in config, and random spawners. |
||
|
|
c24ff68629 |
Adds steam vents to maintenance, adds some flavor to maintenance. (#66915)
* Steam Vent Challenge (Do not meme) * Fixes icebox, I think * Changes to how smoke behaves appears to have removed the need for the opacity setting on the vent. Sounds. * Mapmerge sama please * Adds signal system, crafting recipe, and some basic crafting organization. * Potential fix * Apply suggestions from code review Co-authored-by: Seth Scherer <supernovaa41@gmx.com> * makes changes thanks anturk Co-authored-by: Seth Scherer <supernovaa41@gmx.com> |
||
|
|
6d470992cb |
This tail refactor turned into an organ refactor. Funny how that works. (#67017)
* Fuck you (refactors ur tails) * Errors * Wow. Pain. * Fixes up probably everything * finish up here * Fixes hard del maybe * original owner hard del * garbage collection runtime * suck my peen byond * Mapped tails * motherfucker. * motherrfucker. again. * Whooopppppsie * yeah bad idea * Turns out external organs literally just sat in nullspace forever if their parent was deleted, and didnt Remove() themselves, causing harddels. * So anyways I repathed all organs * Fixes * really. * unit test... test * unit test-test but it passes linters this time because im a moh-ron * I've lost track of what im doing at this point * Hopefully fixes hard del? * meh * Update code/datums/dna.dm * things n stuff * repath from master pull |
||
|
|
9aeeb24838 | Massively Nerfs Snowdin Gamer Loot (#66997) | ||
|
|
3d5a36308e |
Reduces the chance of spawning a pants altar (#66904)
* reduces the chance of spawning a pants altar |