mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-06-05 14:17:12 +01:00
133d5b4a8564bb372bcffd3d403529de14b747cb
2670 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
ae5a4f955d |
Pulls apart the vestiges of components still hanging onto signals (#75914)
## About The Pull Request Signals were initially only usable with component listeners, which while no longer the case has lead to outdated documentation, names, and a similar location in code. This pr pulls the two apart. Partially because mso thinks we should, but also because they really aren't directly linked anymore, and having them in this midstate just confuses people. [Renames comp_lookup to listen_lookup, since that's what it does](https://github.com/tgstation/tgstation/commit/102b79694fa8eb57ecf7b36032616a9e368ccced) [Moves signal procs over to their own file](https://github.com/tgstation/tgstation/commit/33d07d01fd336726b4f6f6f1b61bb0b3f11a00dc) [Renames the PREQDELETING and QDELETING comsigs to drop the parent bit since they can hook to more then just comps now](https://github.com/tgstation/tgstation/commit/335ea4ad081ec63c42cfa05856e582cca833af6e) [Does something similar to the attackby comsigs (PARENT -> ATOM)](https://github.com/tgstation/tgstation/commit/210e57051df63f88dac3dd83321236da825aae5e) [And finally passes over the examine signals](https://github.com/tgstation/tgstation/commit/65917658fb8a1e7d28ae23c9437a583d646f0302) ## Why It's Good For The Game Code makes more sense, things are better teased apart, s just good imo ## Changelog 🆑 refactor: Pulled apart the last vestiges of names/docs directly linking signals to components /🆑 |
||
|
|
191459a86f |
Hot Stuff(Igniter's & Sparkers) are buildable. (#75722)
## About The Pull Request **1. Igniter's** Those things which you see in atmospheric's incineration chamber & ordanance lab used to ignite gases, they can now be crafted  - **Interactions** a) attack with hand to turn it on/off b) use a multitool to change it's ID(how that's useful? keep reading) c) use welding tool to deconstruct it **2. Sparker's** No they aren't a new thing, you probably woudn't have noticed them but it's this thing in xenobiology lab for example, and you use the button to turn it on  They function the same as igniter's(i.e. combust gases) except as the name implies they emit spark's to get the job done These can now also be made in the autolathe as a wall mount  Yup just stick it on a wall and your done - **Interactions** a) use a multitool to change it's ID(how that's useful? keep reading) b) use welding tool to deconstruct it To turn this on see the last section **3. Ignition Switch Controller** These function just like blast door controller's except they can control only sparker's & igniter's Also printable in autolathe  - **How it work's(or a reminder if you already know)** a) First use multitool on sparker/igniter to set their ID's b) Use multitool on this controller to set it's ID to be the same as your sparker/igniter ID. If the igniter, sparker & this controller all share the same ID you can use this controller to turn all device's on/off at once c) stick it in a button frame & close d) use button Hot Stuff https://github.com/tgstation/tgstation/assets/110812394/8b59a71e-8992-428e-a629-5c371b5c0c3d Ok so really what's the actual difference's between an igniter & sparker 1. Igniter's are built on the floor while sparker's are mounted on wall's 2. Igniter's have `max_integrity = 300` while sparker's have it s normal `max_integrity = 100` so yeah igniter's are more durable than sparker's 3. Igniter's keep the turf hot continuously as long as it's on so they take up power continuously, so their operation cost is high whereas sparker's emit spark's only once and use power only that one time so they are cheaper to operate **Why it's good for the game** Make your own combustion chamber professionally and not in an improvised way. Honestly I'm tired of seeing people chuck in lit welding tool's/ Zipo lighter's to ignite the gases and we loose those item's so yeah now we have the tool's to do it the right way ## Changelog 🆑 add: Igniter's can be crafted add: Spraker's can be printed in the autolathe add: ignition controller can be printed in the autolathe /🆑 --------- Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> |
||
|
|
b32faa5611 |
Stabilized metal slime extract now properly add's a sheet to a random stack (#75685)
## About The Pull Request `/obj/item/stack/sheet/add()` proc not only increments the `amount` var but also 1. updates the stack's appearance 2. updates it's weight 3. inform's global material sniffer's about it's presense 4. also updates it's custom material's So let the slime extract use this proc instead of doing a partial incomplete job ourselves ## Changelog 🆑 fix: stabilized metal slime extract properly increments stacks so that it's appearance & weight are updated correctly & is picked up by material sniffers. /🆑 |
||
|
|
0c99bd28f4 |
Makes gasses use defines (#75542)
## About The Pull Request Adds defines for gasses and replaces uses I've found to instead use the defines. Can you believe I made this PR while trying to work with Xenos? This sucks! ## Why It's Good For The Game There's a lot of different uses of things like "o2" and "plasma", and they are pretty inconsistent. In some places, it's "hydrogen", in others it's "h2". In some it's "plasma", others "plasm". This unifies it all under defines so it has a less chance of breaking in the future. ## Changelog Nothing player-facing. |
||
|
|
8767ab709a | removes all non-defined materials I found (#75659) | ||
|
|
9f27887e07 |
Allows turbine parts to be made at off-station protolathes (#75651)
## About The Pull Request smacks a ` | AWAY_LATHE` on the end of the turbine parts `build_type` edit: Fixes https://github.com/tgstation/tgstation/issues/74078 - thanks to SyncIt21 for pointing that out. made this pr after finding out I couldn't print the parts myself, wasn't aware there was an open issue for it ## Why It's Good For The Game The circuit boards for the turbine could be printed at ancient circuit imprinters, but the actual parts needed for the turbine itself couldn't be printed at the ancient protolathes. I assume this was an oversight since there's not really any reason why off-station roles shouldn't be able to make a functional turbine. ## Changelog 🆑 Treach fix: Turbine parts can now be printed at ancient protolathes. /🆑 |
||
|
|
c4dc58f184 |
Modular Shield Generators, Also Adds a new perimeter algorithm to _helpers/math_dm (#75328)
Disclaimer im mostly making this pr for the experience if anything. Also anyone can replace the sprites if they want to I`m just making them so itl be done, idk what a plasteel machine is supposed to look like. The circuit boards to make these machines are unlocked by the advanced power manipulation tech The entire shield - Has one big healthpool (base of 50) - Has a configurable radius - Takes damage from hot gas and emp - Has regeneration (it gets nerfed by alot of things that I have to talk about separately) - When the shield is broken the generator must regenerate at 0.25x speed before coming online again - can be configured to either only generate a shield externally (in space) or both internally and externally at the cost of half the regen rate - Regen rate is also reduced based on the ratio of the shield radius and the max radius that the generator is capable of generating - Alot more that im too tired to explain at the moment The base stats of the shield (max health, regen rate, max radius) all scale with the tier of parts used in the main generator. 4 other machines (3 are finished code-wise as of now) the charger (regen rate), the relay (max radius) the well (max health) the node (allows for more connections) can all be connected to the main generator to boost its core stats based on their part tiers In the future there is a possibility of specialization / modifications to the forcefield at the cost to the core stats |
||
|
|
83723acab0 | Turns Chickens into Basic Mobs (#75592) | ||
|
|
e5ce1c09a7 |
Converts butterflies to basic mobs and adds them to cytology (#75582)
## About The Pull Request Converts butterflies into basic mobs. Also a little list organisation. <details> <summary>Yep, those are some butterflies alright</summary>  </details> ## Changelog 🆑 refactor: Converted butterflies to the basic mob system add: Butterflies can now be grown in cytology /🆑 |
||
|
|
e2bc712714 |
Converts Lizards to Basic Mobs (#75515)
This was pretty simple since they didn't have too much custom behavior, and whatever they did have already had AI behavior. I got really burned out the last two times I wrote intricate AI action/decision behaviors so I'm just taking it light and doing the bare minimum. one day our shackles will be free of the simple animal scourge. they're also a bit more intelligent, and i daresay a bit cuter too now. also that lizard gib animation has been sitting there for god knows how long completely unseen, so let's actually hook it into the mob. |
||
|
|
5be8a1dbe6 |
Fixes burning black slime spell skipping some of the cast chain (#75335)
## About The Pull Request Shapeshift needs to go through `before_cast` to select the shapeshift type. So, instead of just doing `cast`, we do `Activate`, to go through the entire cast chain. At first I was going to run `Trigger`, but by using `Activate` we can skip some checks. Likely makes it a bit more consistent and less likely to fail. ## Why It's Good For The Game Runtime ## Changelog 🆑 Melbert fix: Runtime with burning black slime transformation /🆑 |
||
|
|
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> |
||
|
|
154c9ebe82 |
Stock Part Resprite (#75149)
## About The Pull Request Resprites stock parts to bring them up to date, changes manipulators to servo motors as I couldn't make manipulators work well at this scale.  (Power cells sold separately) ## Why It's Good For The Game The old stock parts are dated, in some cased quite ugly, and in the case of manipulators a ball of assorted pixels. Incidentally removed a couple of single letter var names. ## Changelog 🆑 image: Stock parts have been resprited. code: Manipulators have been renamed to servo motors, all related types have been repathed to match. /🆑 |
||
|
|
1a918a2e14 |
Golem Rework (#74197)
This PR implements this design document: https://hackmd.io/@Y6uzGFDGSXKRaWDNicSiEg/BkRr176st Put briefly, this will remove every existing golem subtype and consolidate golems into a single species with cool new sprites. NOT implemented from that PR is the ability to eat Telecrystals, I couldn't come up with an appropriate visual that can stack with the existing ones, but that should be a reasonably trivial add for a future artist & developer. New Golems have a food-based mechanic where their hunger decays pretty quickly and can only be replenished by eating minerals. They start moving slower as they get hungrier, until eventually they become completely immobilised and need to be rescued. Eating different kinds of minerals will visually change your sprite and give you a special effect in a similar way to old golems, but temporary. While transformed, you can't eat any other kind of mineral which would transform you (but can still consume glass). To see the full list of effects, look at the hackmd above. In service of these sprites working I have refactored the `species/offset_features` feature by killing it and delegating that responsibility to limbs instead. Rather than applying an offset to items due to your species, it is due to your weird head or arms. This makes overall more sense to me, but it inflates the code changes in this PR somewhat. It doesn't make a lot of sense to atomise unfortunately because that code also seemed to be entirely unused until I tried to use it in this PR, so you wouldn't be able to tell if my changes broke anything. I might make a downstream sad by doing this. All of the actual numbers in this PR are made up and only loosely tested, it will need some testmerges to gather feedback about whether it sucks or not. Other relevant changes: I reworked how bioscrambling works based off bodypart bodytypes, to automatically exclude golem limbs in either direction. There's really no way to have those work on humans or vice versa. Organs still fly though. |
||
|
|
1674f25725 |
New Medical job: The Coroner (#75065)
## About The Pull Request HackMD: https://hackmd.io/RE9uRwSYSjCch17-OQ4pjQ?view Feedback link: https://tgstation13.org/phpBB/viewtopic.php?f=10&t=33972 Adds a Coroner job to the game, they work in the Medical department and have their office in the Morgue. I was inspired to make this after I had played my first round on Paradise and messed around in there. The analyzer is copied from there (https://github.com/ParadiseSS13/Paradise/pull/20957), and their jumpsuit is also mostly stolen from it (i just copied the color scheme onto our own suits). Coroners can perform autopsies on people to see their stats, like this  They have access to Medbay, and on lowpop will get Pharmacy (to make their own formaldehyde). They also have their own Secure Morgue access for their office (doubles as a surgery room because they are edgelords or whatever) and the secure morgue trays. Secure Morgue trays spawn with their beepers off and is only accessible by them, the CMO, and HoS. It's used to morgue Antagonists. Security's own morgue trays have been removed. The job in action https://cdn.discordapp.com/attachments/950489581151735849/1102297675669442570/2023-04-30_14-16-06.mp4 ### Surgery changes Autopsies are a Surgery, and I tried to intertwine this with the Dissection surgery. Dissections and Autopsies both require the Autopsy scanner to perform them, however you can only perform one on any given body. Dissections are for experiments, Autopsies is for the paper of information. Dissected bodies now also give a ~20% surgery speed boost, this was added at the request of Fikou as a way to encourage Doctors to let the Coroner do their job before reviving a body. I also remember the Medical skill, which allowed Doctors to do surgery faster on people, and I hope that this can do something like that WITHOUT adding the potential for exploiting, which led to the skill's downfall. ### Morgue Improvements Morgue trays are no longer named with pens, they instead will steal the name of the last bodybag to be put in them. Morgue trays are also removed from Brig Medical areas and Robotics, now they have to bring their corpses to the Morgue where the Coroner can keep track and ensure records are properly updated. ### Sprite credits I can't fit it all in the Changelog, so this is who made what McRamon - Autopsy scanner Tattax - Table clock sprites and in-hands CoiledLamb - Coroner jumpsuits & labcoats (inhand, on sprite, and their respective alternatives) - Coroner gloves - CoronerDrobe (the vending machine) ## Why It's Good For The Game This is mostly explained in the hackmd, but the goal of this is: 1. Increase the use of the Medical Records console. 2. Add a new and interesting way for Detectives to uncover mysteries. 3. Add a more RP-flavored role in Medical that still has mechanics tied behind it. ## Changelog 🆑 JohnFulpWillard, sprites by McRamon, tattax, and Lamb add: The Coroner, a new Medical role revolving around dead corpses and autopsies. add: The Coroner's Autopsy Scanner, used for discovering the cause for someone's death, listing their wounds, the causes of them, their reagents, and diseases (including stealth ones!) qol: Morgue Trays are now named after the bodybags inside of them. balance: The morgue now has 'Secure' morgue trays which by default don't beep. balance: Security Medical area and Robotics no longer have their own morgue trays. balance: Dissected bodies now have faster surgery speed. Autopsies also count as dissections, however they're mutually exclusive. /🆑 --------- Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> |
||
|
|
59da3c5283 |
Ectoplasm Anomaly Name and Icon Bugfix (#75162)
Does as the name states. I found it weird that the ectoplasm anomaly core is not referred to as raw when you have to refine it and instead used both the normally refined core icon as well as the name not saying it was a raw anomaly core at all. |
||
|
|
f2fd69a49a |
Minerals have been refactored so costs and minerals in items are now in terms of mineral defines. (#75052)
Ladies, Gentlemen, Gamers. You're probably wondering why I've called you all here (through the automatic reviewer request system). So, mineral balance! Mineral balance is less a balance and more of a nervous white dude juggling spinning plates on a high-wire on his first day. The fact it hasn't failed after going on this long is a miracle in and of itself. This PR does not change mineral balance. What this does is moves over every individual cost, both in crafting recipes attached to an object over to a define based system. We have 3 defines: `sheet_material_amount=2000` . Stock standard mineral sheet. This being our central mineral unit, this is used for all costs 2000+. `half_sheet_material_amount=1000` . Same as above, but using iron rods as our inbetween for costs of 1000-1999. `small_material_amount=100` . This hits 1-999. This covers... a startlingly large amount of the codebase. It's feast or famine out here in terms of mineral costs as a result, items are either sheets upon sheets, or some fraction of small mats. Shout out to riot darts for being the worst material cost in the game. I will not elaborate. Regardless, this has no functional change, but it sets the groundwork for making future changes to material costs much, MUCH easier, and moves over to a single, standardized set of units to help enforce coding standards on new items, and will bring up lots of uncomfortable balance questions down the line. For now though, this serves as some rough boundaries on how items costs are related, and will make adjusting these values easier going forward. Except for foam darts. I did round up foam darts. Adjusting mineral balance on the macro scale will be as simple as changing the aforementioned mineral defines, where the alternative is a rats nest of magic number defines. ~~No seriously, 11.25 iron for a foam dart are you kidding me what is the POINT WHY NOT JUST MAKE IT 11~~ Items individual numbers have not been adjusted yet, but we can standardize how the conversation can be held and actually GET SOMEWHERE on material balance as opposed to throwing our hands up or ignoring it for another 10 years. |
||
|
|
61a034bcd9 |
Service Borger Upri- Kitchen Upgrades (#74938)
## About The Pull Request I decided that Service Borgs had been left in the dust for too long, and that since they're named 'Service' cyborgs and not 'Bar' cyborgs I'd give them upgrades to let them assist in the kitchen. To do this I've made 4 upgrades. First up, rolling table dock, to provide mobile service. Nothing worse than offering someone a drink in a hallway and having to drag them to the nearest table or having to drop it on the floor. That's poor service. Secondly there's a condiment synthesizer, which can produce solid condiments like flour, cornmeal, salt, coco powder, etc. Thirdly a kitchen toolset, a knife that can switch to a rolling pin. The blade dulls when not used for cooking. Fourthly, A service apparatus, which can pick up food, oven trays, soup pots, plates, bowls and paper. The upgrades are locked behind a new techweb node, Cyborg Upgrades: Service. This node is locked behind the same nodes as the janitorial cyborg upgrade node. And outside the upgrades, I've also given the cyborg a rag so it can finally clean it's glasses and tables. I've also given it a money bag, to store the profits. This gives cyborgs an opportunity to save up for getting on the deluxe shuttle. Or giving people a new target to hold up and shake down for their hard earned money. Please don't law 2 them into giving you their lunch money. Or do. I've also enabled the RSF to print a few more things. Plates, bowls, plastic cutlery and paper cups. I've also enabled borgs to open and close the oven. Alas, they still can't pick up food or the oven trays from the oven, since the oven is sticky in a manner. I've also added a little bit more to the borgshaker, and moved sugar from the borgshaker to the condiment synthesizer. And not only the borgshaker, but the emagged shaker too. The emagged shaker has been given blood and carpotoxin. And you may ask 'Why those two ingredients?' Both can be used like fernet, both for nice things, and harmful things, staying in line with fernet. Blood can be used to mix drinks or be used for food, or for disease, since the borg or anyone with access to milk and water can easily produce virus food. Meanwhile carpotoxin is well, a rather weak toxin but can also be used to make imitation carpmeat. This'l give more reason to also consider the borg for emagging, or giving illegal tech, instead of just speedlining for the nearest engineering borg or medical borg.  The Condiment Synthesizer uses the same UI as the medical hypo, due to it's ingredient list being low in comparison to the shaker  I've been trying to figure out how to get an item to allow the borg to open the cooking menu when used inhand/inmodule. But I can't figure that one out, sadly. Nor how to let the Service Apparatus pick up trays from the oven. So for now, service borgs will have to settle for simply assisting in the kitchen. ## Why It's Good For The Game Allows Service Cyborgs the tools to help in the kitchen, and elsewhere too. ## Changelog 🆑 add: Damp rag and Money bag to service borg add: Service borg upgrades, with accompanying tech web node add: Sprites for kitchen toolset, and service apparatus balance: The RSF can print a few more things, paper cups, seaweed sheets, plates, bowls, plastic cutlery and standard decks of cards. balance: Sugar moved from borgshaker to condiment synthesizer. Berry juice, cherry jelly and vinegar added to borgshaker. balance: Both shaker and synthesizer can also be adjusted to give 1 unit at time, so it goes 5, 10, 20 then 1, and back around. balance: Adds blood and Carpotoxin to the emagged borgshaker. fix: Money bag was missing a description, it now has one. /🆑 |
||
|
|
666c5c0b02 |
Anomaly refinery no longer lets you insert cores of insufficient quality (#75008)
## About The Pull Request Pretty self explanatory. Someone just forgot a return statement after the error message here. Closes https://github.com/Skyrat-SS13/Skyrat-tg/issues/20803 ## Why It's Good For The Game Bugfix/oversight ## Changelog 🆑 fix: the anomaly refinery will no longer let you insert cores of insufficient quality to refine /🆑 |
||
|
|
d8fe9282ce |
Fixes Infinite Slime Extract Explosions (#74988)
## About The Pull Request Fixes #74984 by making oil extracts get deleted after they explode Technically you can still explode multiple times by carrying multiple extracts but that shouldn't be an issue, it takes all your inventory space and you still only explode a limited number of times which can devastate a department but it's nothing you couldn't do with other explosives. ## Why It's Good For The Game Rocket Propelled Research Director bad ## Changelog 🆑 fix: Stabilized Oil extracts no longer explode infinitely if your corpse is immune to gibbing /🆑 |
||
|
|
a8457b91f3 |
Fixes silo logging + add log file based logging to silo (#74806)
## About The Pull Request Fixes deposit logs not working for the silo because they passed in the mats argument in the wrong format. Also adds log file based logging to the silo with a new log file: silo.log. This log should contain every deposit and withdraw action performed on the silo and from which machine and location inluding material amounts. ## Why It's Good For The Game Fixes broken ingame logs + adds better external logs for potential stat tracking. ## Changelog 🆑 Gamer025 fix: Ingame ore silo logs should now log deposit actions correctly config: New config for silo logs /🆑 |
||
|
|
43473a4dac |
Turns Deer into Basic Mob - They Freeze At The Sight of Vehicles (#74784)
## About The Pull Request deers only show up in the BEPIS but i decided that they would be easy enough to turn into a basic mob (they were). it was so easy in fact that i decided to dip my toes into coding AI behavior, and made them freeze up whenever they see a vehicle. this required a lot of code in a bunch of places that i was quite unfamiliar with before starting this project, so do let me know if i glonked up anywhere and i can work on smoothing it out. ## Why It's Good For The Game one less simple animal on the list. deers staring at headlights is pretty cool i think, neato interaction for when you do get them beyond the joke the bepis makes i'm also amenable to dropping the whole "deer in headlights" code if you don't like that for w/e reason- just wanted to make them basic at the very least ## Changelog 🆑 add: If you ever happen upon a wild deer, try not to ride your fancy vehicles too close to it as it'll freeze up like a... you know where I'm going with this. /🆑 --------- Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> |
||
|
|
f3f274de5c |
refactors poles and trees into basic mobs (#74812)
## About The Pull Request refactors poles and trees into basic mobs. If trees now see you holding a chainsaw, hatchet, or some wood they will get angry and knock you out for longer. Poles will run around giving some of their charge to APCs they find along the way. i did them both in this PR coz poles were a subtype of trees. ## Why It's Good For The Game refactor ## Changelog 🆑 refactor: refactors trees into basic mobs refactor: refactors poles into basic mobs add: If trees now see you holding a chainsaw, hatchet, or some wood they will get angry and knock you out for longer add: Poles will run around giving some of their charge to APCs they find along the way fix: cells charged by the pole will now have their icon correctly updated to reflect their charge /🆑 --------- Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> |
||
|
|
4c48966ff8 |
Renames delta time to be a more obvious name (#74654)
This tracks the seconds per tick of a subsystem, however note that it is not completely accurate, as subsystems can be delayed, however it's useful to have this number as a multiplier or ratio, so that if in future someone changes the subsystem wait time code correctly adjusts how fast it applies effects regexes used git grep --files-with-matches --name-only 'DT_PROB' | xargs -l sed -i 's/DT_PROB/SPT_PROB/g' git grep --files-with-matches --name-only 'delta_time' | xargs -l sed -i 's/delta_time/seconds_per_tick/g' |
||
|
|
d3fffa79d2 |
Labels security equipment as being lethal, nonlethal, less-than-lethal or highly destructive. (#74548)
## About The Pull Request Labels a few bits of security equipment as lethal, nonlethal, less-than-lethal or highly destructive (in the case of ion carbines or flamethrowers). For shotgun shell boxes, ammo boxes and weapon crafting kits, it clarifies this in the name. For printable individual ammo, it clarifies this in the print name. ## Why It's Good For The Game [This thread](https://tgstation13.org/phpBB/viewtopic.php?p=676311#p676311) reminded me that I've seen a lot of confusion about various pieces of security equipment and what exactly the distinction is between lethal, nonlethal and less-lethal actually is. People actively use a lot of less-lethal equipment while thinking that it is nonlethal. It isn't. You absolutely can kill someone with rubber shot and beanbags, and the AI will get up in your grill about it. The same can be said about weapons such as the energy crossbow. I saw one person flabbergasted that by repeatedly shooting someone with it, they killed their prisoner with toxin damage. While the weapon is mostly stamina damage, it still deals a hefty amount of toxin damage, so shouldn't be used necessarily in place of a disabler or baton. Equally, I've seen some people using temperature guns recklessly and finding out far too late that they've murdered a lizardperson by shooting them once, or wondering why the AI is angry at them for using it when it doesn't _seemingly_ cause damage immediately. This has resulted in administrative issues. We can't assume our players know these distinctions before utilizing this equipment, so having some helpful gear titles will hopefully inform them before they walk into these problems. ## Changelog 🆑 qol: Clarifies in various names and descriptions whether security equipment is lethal, nonlethal, less-than-lethal or destructive. /🆑 |
||
|
|
1c69ffa642 |
Refactors Navigational Beacons (#74575)
## About The Pull Request This PR refactors navigational beacons. In detail, this PR does the following: **General Interactions** - You can now print boards. They are unlocked at Basic Robotics Research, and can be printed both at engineering and robotics. - The constructed machine requires no stock parts. When constructed, the floor tile pops up, so you can actually interact with the device from the get go. - Made interacting with it more standardized, you no longer have to screwdriver it to access the interface, instead you just click on it. - Screwdrivering is instead part of the regular screwdriver -> crowbar deconstruct process. However, you have to unlock the maintenance hatch through the UI first. - You can now use wallets too, to unlock the control interface, using the GetID() proc. - Interacting with tools uses balloon alerts where its possible. **UI Interactions** - New tgUI interface! - Previously, you could put in anything as codes, and there was no guide in game about what codes and values were valid. This has been replaced by buttons with pop up text boxes, checkboxes and dropdowns. - You can also reset the code values to roundstart values, or to blanks, if the beacon had none. - InterfaceLockNoticeBox component allows the silicons to unlock the controls **Other backend changes** - Autodocs vars and procs in the navigational beacon file. - Added defines for the various nav beacon codes. - The freq var on beacons and the beacon_frequency var on robots did absolutely nothing, so I have removed them, along with the map varedits, and the frequency define. Maybe in the future one can readd them, to make bots that only patrol specific areas (though you can still do that with good next patrol location tagging). - Mulebots were using the navbeacon's direction itself to figure out the direction they have to put down crates, instead of the direction tag. Now the tag actually works, allowing me to remove a bunch of varedits. I did keep the beacon's direction as a fallback, in case no direction tag is set, which should be South always. - I audited and touched up the directions tags that were not in line with the previous beacon directions (which caused things such as the mule trapping themselves behind the crate. - Sadly, making it use the default screwdriver construction means it is no longer transparent in maps editors 😔  ## Why It's Good For The Game Closes #38064 . More items being constructable is more fun, and its better if you can use an item without checking the map about how it is supposed to work. ## Changelog 🆑 refactor: Refactored navigational beacons, making them constructable, deconstructable, and generally easier to use /🆑 |
||
|
|
997dac9616 |
Imports and Contraband: Different! Cargo crates without locks! MEAT! (#74490)
## About The Pull Request ### **Cargo Black Market goods should stay in cargo's hands** #### New Cargo Console Category: Imports This category is explicitly the non-departmental category beyond simply having a Misc category. It is meant for material that nobody is meant to be buying for their departments, and mostly for the odd-ball crates that might show up. It also allows us to maintain contraband as exactly that; contraband that the departments shouldn't have access too whatsoever. If someone is buying from this category, they probably intend to be a cheeky fuck. <details> <summary>The New Changes</summary> #### Baseline Imports MEAT: MEAT (meat backpack you can eat) <details> <summary>MEAT</summary>   </details> Duct Spiders: They're adorable and cause a mess, but that doesn't stop Nanotrasen from importing them from the Australicus sector to your station! Stack of 50 Bamboo Cuttings: Pretty expensive and kind of a premium. Allows for those people looking to make bamboo decorations without hoping botany exists, and are at least willing to pay. Also lets them make horribly dangerous stuff with bamboo, of course. A Single Sheet of Bananium: The problems this will cause I think speak for themselves. (mostly due to a clown fruitlessly attempting to make something actually disruptive while bankrupting cargo) Natural Fish Bait: It isn't cheating, it's homemade. (Really good bait but expensive and obviously drugs) A dumpster...: A corpse in a dumpster, doesn't get more complicated than that. Useful for corpse reasons. Made using some code I borrowed from over here! https://github.com/lizardqueenlexi/orbstation/pull/354 #### Contraband Imports Foam Force Pistols: Same as it ever was with a price reduction. I brought it down because riot darts are like 8 bullets a clip, and do less damage than a disabler using riot darts. It feels like a sidegrade weapon, and even if it technically is a ballistic weapon, it...isn't that strong. I think this is pretty safe. Definitely Not a Duct Spider: It's actually a giant spider in a box. If you want to waste cargo's money while also sending them a mess to deal with, this is the crate for you. Russian Surplus Military Gear Crate: I took this opportunity to futz with boltaction rifles. There are two kinds of mosin nagant you can get in this crate. One of them is the good kind (no jamming). The other is the shit kind (yes jamming), but you get more of them. You can get the good ammo, or you can get the shit ammo. You'll have to pick through it a lot more carefully to make sure you know which ones you've received. Since this dilutes the pool even further, getting a good number of mosins that aren't trash is even more expensive, and even if you do get mosins at all, you might still only get the bad ammunition that doesn't work against actual human threats as well. It also now cannot be purchased through the security cargo supply console, and as to why they could in the first place baffles me. Doesn't have a lock anymore because...it's contraband? Who is locking this stuff? **Side note: _You can make surplus 7.62 in the autolathe as well. It is not very good except to fight fauna or naked assistants._** **Side Side note: _I've killed off the shitty brand_new subtype and brought peace once more to this land._** #### Illegal Imports (Emag) NULL_ENTRY: A journal that suggests how to make a...very interesting weapon. The Regal Condor. Kind of an evolution on some other ideas I've had over the years. This one is basically a secret weapon with a few hurdles to jump through. Very lethal. Very expensive. **Side note: _For reference, it's effectively 19 TC worth of gear to make, but there does exist some methods to acquire this more cheaply if you can get some bits and pieces from world spawns. Given it requires you to get some pieces of equipment that might require additional purchases of contraband, and getting into the captain's office to loot a specific piece of clothing, the stakes more than make up for the effectiveness._** Smuggled WT-550 Autorifle Crate: This is basically the same, but you might have noticed had you recently attempted, like me, to buy these when you emagged them using a personal account and discovered a tragic oversight. You couldn't, because they still needed armory access. This removes that access, because you've already gone to the effort of getting your hands on an illicit firearm through cargo, and if they techs somehow miss the fact that you've purchased a WT-550...all the better for you! Smuggled WT-550 Ammo Crate: Includes AP and Incendiary! **Side note: _You can get WT-550 ammo again via the Illegal Technology node._** Shocktrooper: Replaces the Special Ops crate. Contains a box of EMPs, smoke grenades, a couple of gluon grenades and a couple of frag grenades. Funsies. Special Ops: The NEW Special Ops crate. Contains a chameleon mask, jumpsuit and agent card. And a knife. **Side note: _This is what appears in some cargo loan events._** Refurbished Mosin Nagant Crate: The actual good mosin nagants. There are 6 of them. But they don't come with spare ammo. Hand them out to your techs! </details> #### New Crates - MEAT crate - Standard - Duct Spider crate - Standard - Giant Hostile Spider crate - Contraband - 50 sheets of Bamboo crate - Standard - A single sheet of bananium crate - Standard - Natural (drugs) fish bait - Standard - Dumpster with a corpse in it - Standard - Shocktrooper crate (Grenades) - Emag - Special Ops crate (Disguise) - Emag - Appears in some cargo loan events - Refurbished Mosin Nagant crate - Emag - Regal Condor construction journal (NULL_ENTRY) - Emag #### Changed Crates - Foam Force Pistols (cheaper) - Contraband - Russian Surplus Crate (less reliable, can't be bought by security console) - Contraband - WT-550 crate (more obtainable via personal accounts, thus incriminating, not armory locked) - Emag - WT-550 ammo (includes incendiary and AP) - Emag #### Crates that got moved, unchanged, into Imports - Foam Force Crate - Cosa Nostra Crate - Black Market LTSRBT - 'Contraband' Crate - Biker Gang Crate #### Not crate changes - You can print Surplus 7.62 (same as normal 7.62 but it sucks against armor) from hacked autolathes. - You can get WT-550 ammo from illegal tech. - Removes the redundant Brand New Mosin subtype - Fixes a potential exploit with jamming chance on Mosins. ## Why It's Good For The Game I just think some of the magic of Cargo getting their hands on obviously dangerous equipment and either hording it for themselves or attempting to pawn it off was lost in recent times. A lot of this 'black market' gear, however, suddenly became openly available to the crew anyway. For _free_. Contraband crates and mafia crates could be purchased via the Service budget. Security could just stock up en masse on mosins through their console. And one fairly unfortunate consequence of a few recent changes has made it nearly impossible to actually get illicit gear in the first place, even if you did go to the effort of getting the money for it. On top of this, most of cargo's goods are pretty safe purchases. There isn't much that would be considered 'actually a really bad idea to buy' other than maybe supermatter shards. I wouldn't mind there existing ways for someone to waste cargo's money while also causing them to have to clean up the mess. ## Changelog 🆑 balance: A significant overhaul of various illicit and dubiously legal goods and gadgets available via cargo. balance: Cargo now has an Import category for all non-departmental goods. (And black market goods) balance: Most contraband that already exists has been moved into Imports. adds: Includes several new imports of dubious quality. You get what you pay for. code: Removes the brand new mosin subtype as it is now defunct. fix: Fixes potentially exploitative code in the jamming proc. Cleans up that code while I'm at it. /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: carlarctg <53100513+carlarctg@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. /🆑 |
||
|
|
f4b5736283 |
Updates paper biscuits and the paper cutter (#74473)
## About The Pull Request Well this started as a PR updating some of the spelling and grammar on the biscuits... though spilled out a little into other aspects of the relevant code. There are a few things I've done here. **Paper biscuits:** - Updated spelling and grammar for paper biscuits. Confidental -> confidential, that sort of thing. - A little reorganisation and cleanup of the code itself. - Preset slips are now generated on init on the parent from a var, rather than each having its own init proc. - Early returns, clearer vars, etc **Paper Cutters** Ended up doing more here, even though it wasn't the original reason I started looking at this code. - Added one (1) paper cutter blade to the paper cutters cargo crate. Raised the price a little. This is just a reskinned hatchet, so I don't think it's much of a balance concern. - Clarifies and docs vars - Cleans up refs on destroy - Many `to_chat`s to `balloon_alert`s - Removed single-letter vars - Cancelled attack chains when trying to actually use the cutter. You now pick it up either by having the blade secured and no paper inside, or by dragging it into your hand. ## Changelog 🆑 spellcheck: Paper biscuits now have more proper spelling and grammar qol: You now get one spare paper cutter blade in the paper cutter cargo crate. tweak: You now use right click to cut paper with a paper cutter fix: You can now remove paper from a paper cutter if you change your mind. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
bf37597c24 |
"Biscuit" cards, and also now slip papers are actually paper! (#74329)
## About The Pull Request **This is not a literal biscuit which you eat. "Biscuit" is just a nickname of this kind of snap-cards.** Slip paper is now actually paper, before that, it was just literally nothing, an object which does nothing. Because of that, the paper cutter was useless as well, as it turned normal paper into useless paper slips. Because of this now paper cutters are placed at: - Bridge - HoP office - Warden office - Cargo Also adds biscuit cards. If you have no idea what it is, it's a kind of card placed around a piece of paper usually to conceal some document and it can be opened by cracking it with a crunchy sound (that's why it's named a biscuit). Those are usually only opened in certain situations or emergencies (The most famous example is the US president's nuclear biscuit, which contains nuclear codes) There are 2 biscuits: Normal and Confidential. Normal is a plain biscuit with nothing really special, can be coloured if you want as it's white.  The confidential biscuit is blue and has "NT" on it.  There is a not-sealed biscuit you can print in autolathe, it starts open so you can put paper in and seal later making it a normal crackable one. Now spare ID safe code automatically spawns in a confidential biscuit in a new paper slip subtype - corporate slip paper. It's a plastic card which is sturdier than the normal paper clip.  You can also create the corporate paper slip paper using - normal paper slip, plastic, and captain rubber stamp (making this paper having a rare status)   ## Why It's Good For The Game Paper slips being not paper is stupid and has no point in being that way. This also made the paper cutter useless; hence, it was never placed on any map (and never used). This PR makes it paper, so it's usable when crew members need a paper slip instead of a full-size sheet. Placing paper cutters around the station makes it so the crew can produce paper slips when they need them, this also gives it finally a use and place on the station. The 'biscuits' are cool and give more flavour to the spare ID safe codes, as well as to other documents people might put in future PRs. This also makes those paranoid captains which are scared of their spare ID safe code being stolen and read can sleep tight, as now if someone opens it up it's really obvious. Now also you can really make sure if that head is lying about "not touching the spare ID", _but not as anyone cares really._ **Okay, it's draft for now just so I can add some new things, and fix the dupe bug:** - [x] Being able to fax the paper biscuits - [x] Make it impossible to cut paper slips into paper slips - [x] Make corporate paper slips craftable or printable - [x] Make confidential biscuits craftable or printable - [x] Make paper cutters orderable at the cargo _CRUNCH_ ## Changelog 🆑 DrDiasyl aka DrTuxedo#0931 add: Added 'biscuit' cards! They can contain documents and can only be accessed by cracking them open, you can't close them back. Nanotrasen now stores spare ID safe codes in them. add: Placed paper cutters around the station. They're in Bridge, HoP office, Warden office, and Cargo. add: Now you can order paper cutters at cargo. fix: Now the paper slip is actually paper. imageadd: The paper slips sprite was slightly tweaked to have text lay more logically, added the corporate paper slip. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
ccef887efe |
Lints Against Unmanaged Local Defines (#74333)
# MAINTAINER - USE THE BUTTON THAT SAYS "MERGE MASTER" THEN SET THE PR TO AUTO-MERGE! IT'S MUCH EASIER FOR ME TO FIX THINGS BEFORE THEY SKEW RATHER THAN AFTER THE FACT. ## About The Pull Request Hey there, This took a while to do, but here's the gist: Python file now regexes every file in `/code` except for those that have some valid reason to be tacking on more global defines. Some of those reasons are simply just that I don't have the time right now (doing what you see in this PR took a few hours) to refactor and parse what should belong and what should be thrown out. For the time being though, this PR will at least _halt_ people making the mistake of not `#undef`ing any files they `#define` "locally", or within the scope of a file. Most people forget to do this and this leads to a lot of mess later on due to how many variables can be unmanaged on the global level. I've made this mistake, you've made this mistake, it's a common thing. Let's automatically check for it so it can be fixed no-stress. Scenarios this PR corrects: * Forgetting to undef a define but undeffing others. * Not undeffing any defines in your file. * Earmarking a define as a "file local" define, but not defining it. * Having a define be a "file local" define, but having it be used elsewhere. * Having a "local" define not even be in the file that it only shows up in. * Having a completely unused define* (* I kept some of these because they seemed important... Others were junked.) ## Why It's Good For The Game If you wanna use it across multiple files, no reason to not make it a global define (maybe there's a few reasons but let's assume that this is the 95% case). Let me know if you don't like how I re-arranged some of the defines and how you'd rather see it be implemented, and I'd be happy to do that. This was mostly just "eh does it need it or not" sorta stuff. I used a pretty cool way to detect if we should use the standardized GitHub "error" output, you can see the results of that here https://github.com/san7890/bruhstation/actions/runs/4549766579/jobs/8022186846#step:7:792 ## Changelog Nothing that really concerns players. (I fixed up all this stuff using vscode, no regexes beyond what you see in the python script. sorry downstreams) |
||
|
|
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 /🆑 |
||
|
|
0fe4dea03f |
Audits usage of isanimal() vs isanimal_or_basic_mob() (#74029)
## About The Pull Request There's a couple of open issues which fix places where only simple animals were considered, but they are doing it piecemeal. I decided to just go through every instance of `isanimal` or `subtypesof(mob/living/simple_animal)` I could find, identify which should also affect basic mobs, and fix them. I left out the two others which are already in PR, I'm not stealing your GBP. Fixes https://github.com/tgstation/tgstation/issues/68881 ## Why It's Good For The Game Consistency, mostly. As far as I can tell all of these things _should_ have effected basic mobs, but didn't. This fixes a fair number of bugs but also they're bugs that nobody noticed or reported. There are a couple of places I did not update which will need updating in future. These are: - Dextrousness checks, because basic mobs don't have that yet. - The Charge cooldown action, because frankly I couldn't tell what it was trying to do. alright here goes ## Changelog 🆑 fix: Carp will once again be healed from being near carp rifts fix: Sepia slime cores and the rewind camera now work on Ian fix: Sapient ridden carp (or cows) can throw off their riders by shoving them, or by performing the spin emote. fix: Giant Spider AI will be disabled by the timestop spell fix: Ian can eat envirochow fix: Mice, Frogs, and Cockroaches will no longer set off bear traps fix: You can put a macrobomb implant into Cayenne (or Ian) fix: Ian will now recognise that being squeezed by a cyborg is a nice hug fix: The player panel will tell admins if you're currently a corgi fix: The staff of storms deals massive damage to Bileworms and Giant Spiders fix: Ian will whimper if forced to scream fix: Slimes can consume space carp fix: Mice can be captured in xenoballs fix: You can use pacifying potions on Giant Spiders fix: Sgt Araneus can be fitted with a xenobiological radio implant fix: Sapient corgis no longer count as living players for the purpose of highlander escape objectives fix: The random sentience event can now target corgis and sergeant araneus add: The random sentience event can target a wider array of farm animals fix: Petsplosion wizard event can target corgis add: Petsplosion wizard event will now target farm animals and mothroaches fix: The colossus possession crystal can now actually possess the cockroach it spawns, does not kill you instantly upon ending possession /🆑 |
||
|
|
571a443b46 |
Stabilized Orange can no longer cool you infinitely fast (#74027)
## About The Pull Request Closes https://github.com/tgstation/tgstation/issues/73923 ### Mapping March Ckey to receive rewards: N/A ## Why It's Good For The Game ## Changelog 🆑 fix: Stabilized Orange extracts are no longer able to cool you from any temperature instantly /🆑 |
||
|
|
97073e65ce |
Stabilized gold extracts can now summon basicmobs (#74020)
## About The Pull Request Stabilized gold extracts can now summon basicmobs, Also, summoned familiars become friendly to the owner, which stops stuff like mice running away. ## Why It's Good For The Game They can now make cool basicmob carp and stuff Fixes #74008 ## Changelog 🆑 fix: Stabilized gold extracts can now spawn basicmobs /🆑 |
||
|
|
8115310c6f |
More stuff to construct & destroy (#73942)
## About The Pull Request
**1. Suit Storage Units**
- What about them?
1. You can print "suit storage unit" circuit boards from engineering &
science circuit printer's after research to make more suit storage
units, now since they behave like regular constructable machines you can
deconstruct them via screwdriver & crowbar.
2. You can upgrade its capacitor to get faster charging speeds
- Why its good for the game?
1. You can rebuild these in the event they get destroyed
2. Better tier capacitors = faster charging speeds
3. More storage units = More places to decontaminate your equipment +
Recharge more mod suits made in robotics
4. If you decide to leave the game or your done using a mod suit e.g. a
mining mod suit rather than keeping it to yourself or throwing it away,
just build a suit storage unit and hang it there so other players can
use it i.e., sharing is caring.
**2. Freezer Cabinet**
- What about them?
1. They are now craftable

3. You can deconstruct them with a welding tool.
- Why its good for the game?
1. You can now make more of them if they get stolen/destroyed
2. More places to store food, dead bodies, whatever
**3. Flood Lights**
- What about them?
They can now be fully deconstructed in the exact opposite sequence you
constructed them.
- First use screwdriver to open its panel
- Then use empty hand to remove light
- Then use screwdriver to unscrew the wiring from frame
- Use wire cutter to remove wiring completely
- Finally use wrench to completely deconstruct frame
- Why it's good for the game?
Reclaim used material to build flood light else where . Also much more
clean than what the wiki is suggesting.

## Changelog
🆑
add: suit storage unit circuit boards to engineering & science
department circuit printers.
add: freezer cabinet as a craftable & destructible item.
qol: flood light can now be deconstructed rather than destroyed/thrown
away.
/🆑
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
|
||
|
|
48ff6a6e65 |
Fixes Ice Slipping, Refactors noslip mechanics, Allows magboots to prevent slip slides (but not the slip itself) (#73948)
## About The Pull Request Code changes: - Fixes #73946 , Ice Slipping not going forever as intended - Detailed in the issue report. Ice slide slip was replaced from a stun to a knockdown, but it relied on it being a stun to function. I replaced it back with an immobilize and incapacitate, reduced to 1 second to prevent cheese. - Refactors noslip mechanics - Changes noslip and noslip_ice from a clothing flag to a clothing trait, as the trait already existed and was used by MODsuits. Also added noslip_slide, which prevents all sliding from slips like lube. - Refactors magboots - Refactored and modernized magboot code. Mostly cleanup, like using base icon state, updating appearance, etc. - Fixes speed potioned magboots not maintaining the speed boost after a toggle - Adds a helper for adding or removing clothing traits from existing, (potentially) worn items. - `TRAIT_NEGATE_GRAVITY` now always updates gravity on signal, no longer requiring a manual call after. Balance change: - Magboots now prevent sliding on permafrost (outside icebox). - This is mainly to give them more of a purpose on Icebox. - Magboot snow prevent sliding on ice (or lube). You will still slip. - Slipping over ice or lube will knock you down as before, but will not send you across the room. - See https://tgstation13.org/phpBB/viewtopic.php?t=33217. ## Why It's Good For The Game Magboots justification: This makes Magboots much less of a "noob trab" for engineers fire-fighting in the Supermatter room. Most engineers believe themselves to be completely save to the Supermatter's pull with magboots, however "wet ice" will still send you flying into the crystal. I think it is an inconsistency, seeing as it protects you from other forms of forced movement like gravitational pulls. However making them pure no-slip seemed a bit too far to me, so the knockdown still occurs. ## Changelog 🆑 Melbert balance: Magboots will now protect you from sliding on ice. It will not stop the slip, though. fix: "Ice sliding" (from patches of permafrost ice) will now correctly slide you until you reach a non-ice patch. fix: Speed potioned magboots maintain their speed booster after toggling them refactor: Refactored magboots. refactor: Refactored noslip mechanics. /🆑 |
||
|
|
33d9a0338f |
Reworks trashbags slightly (#73761)
## About The Pull Request I'm a bit sad about the state of trashbags. They're very clunky to use, so they almost never get touched. S depressing. Let's try and fix that. Let's make em fit in the belt slot (again), but as a tradeoff we'll make it harder to pull one thing from your bag. We'll give it a say, 1.5 second delay, so you can't quickdraw from em. If you try and dump them out into something else, we'll throw any spillover on the ground below you I'm also doing some general code cleanup here. Making procs more readable, vars more direct, removing some old legacy stuff. I've added a remove_single proc to hook into via subtype, which takes a mob as input. this has required placing extra requirement on some helper procs, but fortunately it's not something they're unable to meet. My hope is this will make garbage bags usable without being stupid. ## Why It's Good For The Game I don't see these get used at all, cause they're a pain to carry around. They got gimped because people were using them as infinite storage for shotgun shells and other small items. I've made using them for this sort of thing hard and slow, so I think we oughta be fine. If not I'll do some more touching, maybe give the autodrop a delay. ## Changelog 🆑 balance: The janitor's trashbag now fits on his belt. In exchange, taking something out of it sends a visible message, and has a delay. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
773b7117bf |
[NO GBP]Bolter wrench's design is correctly at advanced engineering now. (#73958)
## About The Pull Request It was at janitorial because I'm pretty good at ctrl+C/V ## Why It's Good For The Game The engineering tool is at the engineering tab now. ## Changelog 🆑 Guillaume Prata fix: Bolter wrench's protolathe design is correctly at the advanced engineering tab now, instead of being under janitorial. /🆑 |
||
|
|
d755b70d76 |
Removes bad nodamage var from projectiles, fixes Juggernaut / Rust Walker projectiles doing zero damage (#73806)
## About The Pull Request
- Juggernaut and Rust Walker projectiles were subtyped off of magic,
which is `nodamage`.
- The juggernaut actually had a copy+paste error with their type
`on_hit` which caused none of their special effects on hit ("relative
patching catches this")
- Then I realized projectiles have this var `nodamage` which is, for all
intents and purposes, just `damage > 0`. it's not checked for pacifism,
it's just that. This is dumb. So very dumb, so I removed it.
- There are, however, a few situations which used it in a unique way,
such as the blast wave cannon. This is why I replaced it with a proc,
`is_hostile_projectile`, for certain situations to actually find out if
the projectile is damaging. Projectiles can override this on a per type
basis by default, damaging projectiles = hostile.
- This has a chance to break some things, but I ... kinda doubt it will.
Fixes #73756
## Why It's Good For The Game
Projectiles that act as they should, less dumb vars
## Changelog
🆑 Melbert
fix: Fixes Juggernaut / Rust Walker projectiles doing zero damage
fix: Fixes Juggernaut projectiles not doing bonus damage to nearby
structures
code: Removed projectile nodamage var, replaces it with just checking
for damage
/🆑
|
||
|
|
296c996434 |
Completing experiments after their associated nodes have been researched gives back a partial refund of the discount lost (#73814)
## About The Pull Request So we're like simultaneously moving two vague directions with research. One being "experisci grants discounts for prohibitively expensive nodes so you want to do the experiments to discount them" and the other being "Let's give Heads of Staff a way to research anything they want without any communication to the research department, including the very expensive nodes that scientists may be working on" You already see the issue, right? You can't have your cake and eat it too. It sucks for scientists to be working on a complex experiment like weapons tech for that huge 90% discount only for the HoS to stumble onto the bridge and research it anyways. Your time is wasted and RND is slowed down massively. We can do something to assuage that. This PR makes it so completing an experiment which discounts already completed nodes will refund a partial amount of the discount that would've applied. For example, researching industrial engineering without scanning the iron toilets will refund ~5000 points. This can only apply once per experiment, so if an experiment discounts multiple technologies, they will only get a refund based on the first technology researched. ## Why It's Good For The Game This accomplishes the following: - Expensive research nodes with difficult experiments remain expensive without completing the experiments. If no one does the experiment, they act the same as before. - Expensive research nodes with very easy experiments (but time consuming) no longer put RND on a time crunch to beat the itchy trigger finger of the Heads of Staff. Stuff like scanning lathes allow the scientists to work more at their own pace: they can talk to people or maybe stop at the bar or kitchen between departments without feeling pressure to get it done urgently. - Scientists are able to complete experiments which previously were no longer deemed relevant if they need a point injection. Experiments left behind are no longer completely useless bricks. Maybe even gives latejoin scientists something to do. - Scientists mid experiment can still complete it to not feel like their time is wasted. Overall I think this has many benefits to the current science system where many have complaints. ## Changelog 🆑 Melbert qol: Completing an experiment which discounts a researched tech node will give a partial refund of the discount lost. For example, researching the industrial engineering research without scanning iron toilets will refund ~5000 points if you complete it afterwards. This only applies once per experiment, so experiments which discount multiple nodes only refund the first researched. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
893c5880b2 |
Stabilised Slime Extracts will work from inside MODsuits (#73683)
## About The Pull Request Fixes #50793 Fixes #55155 Fixes #69682 Which actually seemed to work fine except if you were using a mining MODsuit. Except that it didn't apply to basic mobs, like bileworms or stick figures. I noticed that it was actually pretty hard to tell whether or not the buff was active in the first place, which might be the real reason for a bug report... or maybe it literally just didn't work and someone else fixed it in the past two years. Who can say. Either way, I did some tidying up here because the order of operations was a bit messy, and these extracts did not work from inside MODsuits. As far as I can tell the intended behaviour is that they should be active from inside hands, pockets, backpacks, boxes in hands, chest implant, or modsuit storage but not from inside boxes inside backpacks. So generally, it can be one layer of abstraction away from your body, but MODsuits were failing on that because technically they're in a suit which is on your body. The logic previoulsy added to figure out whether you were in a modsuit seemed sort of overcomplicated and also didn't work. I simplified it by just making a snowflake check for modsuits which overrides the other simplified check to see if you're two levels away from the mob. Also the same proc was rewritten in two places which might be why it didn't work, both places now use the same proc. I _tried_ to update this to use signals instead of checking every tick, but the fact that you could put it in a box and then move the _box_ made it too complicated. It's just less bug-prone to make it check its location every tick, even if it does make me sad. Finally I added a balloon alert for when the effect _stops_ applying, so you can tell why goliaths are suddenly mad at you and not post a bug report. ## Why It's Good For The Game Item will now work as expected and give you feedback when it doesn't. Should be easier to track when effect is and isn't active. ## Changelog 🆑 fix: Stabilized slime extracts will now once again work from inside modsuit storage. fix; Stabilized slime extracts will properly effect carp, spiders, bileworms, and other "basic mobs". /🆑 |
||
|
|
50b37c8c7f |
Faction defines (#73681)
## About The Pull Request Quite a lot of mobs had faction defines as a string, which always has a chance for error. For example, the clown mob spawner had their faction written as "clown", when the official faction name was "clowns", and a define existed for it anyways! This PR moves every single string based factions over here. No references or special role factions. Hopefully I didn't miss anything. I also moved a global define used for picking your uplink provider's flavour to the only file that used it, datum_traitor.dm, and renamed them a bit to avoid confusion. I have also noticed that the mimic faction was assigned to the petrified player with += instead of |=. |= would ensure no duplicate factions, so I have changed it. Future improvement: I have noticed that there is a lot of bloat with factions that contain only one or two entries (examples: gnomes, floating eyeballs, penguins, the pet lizards), and some always appear in pairs (vines and plants, the rare exceptions being killer tomatoes and strange reagent spawned pine trees), but trimming consolidating them is a matter for a different time. ## Why It's Good For The Game Makes assigning factions a bit less error prone. I can finally remove the ```/// Later all mob factions will be moved here and their current factions replaced with faction defines.``` comment. Later is NOW. ## Changelog Nothing player facing |
||
|
|
27388a8aee |
A worn item which has its color changed (such as by a slime potion) with now have its color change reflected on mobs. (#73627)
## About The Pull Request If I'm wearing an outfit and use a slime fireproof potion on it at present it wont become blue until taking it off and putting it back on again, this PR makes it so it changes immediately. Also means if an admin VVs the color value of a worn item its icon worn color will update to reflect this change immediately. ## Why It's Good For The Game Bugfix! ## Changelog 🆑 fix: Any worn item that has its color changed will now have its color change reflected on the item's worn icon immediately. /🆑 |
||
|
|
e5b6732d3b |
Fixes overloading and deconstructing of the master RND server not affecting research rate (#73569)
## About The Pull Request Only a traitor removing the HDD would affect the income modifier of the stored research web. Updated it so `on_deconstruction` with an HDD present or a ninja overloading with an HDD preset will also negatively affect the income modifier. ## Why It's Good For The Game Fixes #73338 Round impact! ## Changelog 🆑 Melbert fix: Deconstructing (or overloading) the Master RND server with an HDD preset will correctly half research rate /🆑 |
||
|
|
dc8db27fa4 |
Fixes NtosNet Downloader & App themes (#73500)
## About The Pull Request NtOS' downloading app is the only application where PC device theme is actually used by the app directly, instead of handled by NtOS Window. I forgot about this, and removed it from the data, breaking the TGUI page. Also two edits; - NtosWindow now takes their theme directly from PC_device_theme, this means we're not relying anymore on apps to individually give the theme they want to have, and tablets will get alerts of downloading illegal programs if they are on any theme but the syndicate one (instead of not getting the message if theyre on any but the nt one). - Removes bad uses of ``as anything`` on stored files, because it holds more than just programs (like ordnance data). ## Why It's Good For The Game the NtOS app now works again, sorry for the issue. Closes https://github.com/tgstation/tgstation/issues/73493 Closes https://github.com/tgstation/tgstation/issues/73507 ## Changelog 🆑 fix: NtOS program downloader now works again, and will now properly alert you of downloading illegal ROMs if you change your theme to anything that isn't Syndicate. fix: NtOS themes are now recognized by all windows. /🆑 |
||
|
|
a1ada2c9ef |
Refactor, improve, and rename canUseTopic to be can_perform_action (#73434)
This builds on what #69790 did and improved the code even further. Notable things: - `Topic()` is a deprecated proc in our codebase (replaced with Javascript tgui) so it makes sense to rename `canUseTopic` to `can_perform_action` which is more straightforward in what it does. - Positional and named arguments have been converted into a easier to use `action_bitflag` - The bitflags adds some new checks you can use like: `NEED_GRAVITY | NEED_LITERACY | NEED_LIGHT` when you want to perform an action. - Redundant, duplicate, or dead code has been removed. - Fixes several runtimes where `canUseTopic` was being called without a proper target (IV drips, gibber, food processor) - Better documentation for the proc and bitflags with examples |
||
|
|
c58cbb4dfb |
Reworked PDA menu & NtOS themes (#73070)
## About The Pull Request This is a port/rework of https://github.com/yogstation13/Yogstation/pull/15735 - I changed a lot of how it acted (some themes are locked behind maintenance apps). The original author allowed this port to happen, and I really liked how it looked there so I'd like to add it here. ### Applications Removes the hardware configurator application, as all it did was show you your space and battery now that all hardware was removed. These are things your PC does by default, so it was just a waste of space. Adds a Theme manager application instead, which allows you to change your PDA's theme at will. Adds a new Maintenance application that will give a new theme, however it will also increase the size of the theme manager app itself as it's bloatware. ### Menu There's now a bar at the top of the menu showing 'special' tablet apps which, for one reason or another, should stand out from the rest of the apps. Currently this is PDA messenger and the Theme manager Flashlight and Flashlight color is now only an icon, and is shown on the same line as Updating you ID https://cdn.discordapp.com/attachments/961874788706574386/1069621173693972551/2023-01-30_09-10-52.mov  ### Themes Adds a lot of themes to choose from, although SOME are hidden behind Maintenance applications, which will give you a random theme. These are bloatware however, so they come with some extra cost to the app's required space storage. Themes are now supported on ALL APPLICATIONS! If you have a computer theme, you will have that theme in EVERY app you enter, rather than just a select few. ALSO also, emagging the tablet will automatically set & unlock the Syndicate theme, which makes your PDA obvious but you can disguise it if you wish through just re-painting it to something else. https://cdn.discordapp.com/attachments/828923843829432340/1069565383155122266/2023-01-30_05-29-53.mov ### Preferences This also adds a pref for theme, reworking the ringtone code to work with it as well. I also removed 2 entirely unused PDA prefs just 'cause. Screenshot not up-to-date, they now have proper names.  ### Other stuff Made defines for device_themes Added support for special app-side checks to download files Fixed programs downloading themselves TWICE because defines all had the same definition Removes the Chemistry computer disk as it was empty due to chemistry app's removal Removes the 'run_emag' proc, since apps can directly refer to the computer to check for emag status instead. Moved over and added better documentation on data computer files, and moved the ordnance ones to the same file as the others. ## Why It's Good For The Game It makes PDAs a lot more customizable while adding more features to maintenance applications. I think the themes look cool and it fits with PDAs being "personal" anyways. I also explained most of my other arguments in the about section, such as the hardware configuration application. ## Changelog 🆑 Chubbygummibear & JohnFulpWillard add: A ton of new NtOS themes, which are accessible by the new Themify application that comes with all PCs. add: Emagging a PC now defaults it to the Syndicate option (and adds it to go back to it if you wish) add: There's a new maintenance app that gives you rarer themes qol: The NtOS Main menu was moved around, added "header" applications that are shown where the Flashlight is, such as your Theme manager and PDA messenger. code: Made defines for device_themes code: Added support for special app-side checks to download files code: Removes the 'run_emag' proc, since apps can directly refer to the computer to check for emag status instead. fix: Programs no longer download twice. del: Removes the Chemistry computer disk as it was empty due to chemistry app's removal /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
42d929a100 |
Adds the Ectoplasmic Outburst, a rare ghost-centric anomaly event (#73024)
## About The Pull Request This PR description might be a bit rushed because I accidentally submitted the PR and want to bang out a quick explanation of what this is before people start asking questions. Adds a new, rare, ghost-themed anomaly event -- The Ectoplasmic Outburst.  This event increases in power as more ghosts orbit it, with three important thresholds to meet. If 10% or more of all active observers are orbiting the anomaly, an effect will occur in the nearby area akin to the revenant's defile spell, damaging flooring, windows, and making a mess. If 35% or more are orbiting the anomaly, nearby objects in the effect radius have a chance to become haunted, and will fling themselves at anyone nearby for a bit. Spooky! Now, at 50% or more participation, things get serious. Ghosts orbiting the anomaly will be polled to be brought back into the world for a brief period as a vengeful spirit, anchored to a SUPER spooky ghost portal. The portal closes after two minutes (alternatively, smash it with a toolbox) and deletes all of the ghosts it spawned. Vengeful spirits are mostly just meant to smash stuff and be a nuisance while they can. It's a wonderful opportunity to let deadchat desalinate a little.  Oh, also, the anomaly is deadchat controlled. With enough ghosts, you could theoretically outrun anyone trying to neutralize it! The associated reactive armor has an effect similar to the anomaly, haunting nearby objects for a time when the wearer is struck. Not particularly outstanding, but it can introduce an element of chaos into a fight that your opponent might not expect. ## Why It's Good For The Game Anomaly events are great for ghosts. Why not make one tailored just for them! Gives admins something to spawn when a wizard has killed half of the crew but it's not quiiiite time for an ERT. It's a bit of a silly event with a novelty reward, but I think it's rare enough not to be a huge issue. ## Changelog 🆑 Rhials add: Ectoplasmic Outburst anomaly event add: Reactive Ectoplasm Armor /🆑 |
||
|
|
7e41cd3c0b |
Netherworld Mobs Refractor (#73086)
## About The Pull Request This PR refactors netherworld mobs into basic mobs as best as possible. Also makes some of them run faster when they are getting damaged or deal more damage. Now the mobs might be able to keep up a little with the players. ## Why It's Good For The Game Makes the mobs have better movement and more dynamic movement. Makes the quality of these mobs better. ## Changelog 🆑 add: Added new damage buffs for netherworld mobs refactor: Refactors netherworld mobs into basic mobs /🆑 |