mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-06-18 12:44:15 +01:00
ed94de4ddf7edad8694badefc577392e0f762bf5
896 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
304ccb1716 |
Adds 50 armor penetration to neurotoxin spit (#76420)
## About The Pull Request Someone noted in an issue report that virologists could tank like 7 of these without breaking a sweat, that's a little goofy. This knocks it down to 4. You're still getting some protection by having extra gear on, but you're not immune to it. Fixes #76389 ## Why It's Good For The Game Xenos should be dangerous to most of the crew without significant protection. I argue that, while a labcoat is meant to protect from nasty fluids, it shouldn't completely negate them, especially if a Sentinel has saved up a good chunk of plasma to throw at you. ## Changelog 🆑 Vekter balance: Increased armor penetration on xenos' neurotoxin spit. Well-protected crew members should still take more than a few hits to down but shouldn't be immune to it. /🆑 |
||
|
|
b9fa1bc8f4 |
The Laser Musket (2023) (Settlement Helper Edition) (#76231)
## About The Pull Request This adds a craftable laser musket to the game. It's slow and unwieldy, but consistent! I'd be happy to tweak the numbers if it's too good/bad. This PR also adds an independent militia ERT, who travels the spinward sector to help defend stations! TO DO LIST: - [x] Finish worn sprites - [x] Add a crafting recipe on par with the pipegun - [x] Add bayonets - [x] Separate charging into two stages and REDO THE AUDIO AAAA - [x] Clean up code (Needs review, totally) Scrapped: - Possibly add overcharge mechanic (This is just beyond my skill level for now) - Find a unique sound for the weapon firing (We have a unique projectile, and I can't a sound that fits more than the laser gun one)      Inhands by RedSentry27 Suit sprite by Kinnebian Prime Laser Musket sprites by RedSentry27 Balance Considerations (ew): 25 damage (30 on prime) Normal wound 40 Stamina damage (45 on prime) Weak to armour (prime not weak to armor) 2 second charge time, needs to be charged twice No overcharge Requires two hands to hold (like a chainsaw) Crafting Recipe: One rifle stock Fifteen Cable Coils Four Iron Rods One micro laser One capacitor One pair of prescription glasses One drinking glass Craft for 10 seconds with a wirecutter and screwdriver Prime crafting recipe: (REQUIRES READING MAINTENANCE LOOT: "journal of a space ranger") One laser musket Fifteen cable coils Five silver One water recycler Fifteen units of nuka cola Craft for 30 seconds with a screwdriver while wearing cowboy boots and a cowboy hat ## Why It's Good For The Game The idea of assistants and revs forming firing lines in the halls to shoot eachother sounds hilarious. Besides, we need a parallel to the pipegun, and this is the funniest way to do so. ## Changelog 🆑 Cheshify, Kinnebian, and RedSentry27 add: Maintenance engineers have sent out blueprints across the sector for a new laser musket. admin: A new energy-gun toting ERT is available to send to the crew. --------- Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com> |
||
|
|
6b007f758b |
Replaces ammo_casing/caseless and bullet/reusable with elements. (#76335)
The reusable and caseless types only purposes are the behaviors of deleting the casing when fired and spawning a new object when the projectile ultimately reaches its maximum range or hits a target, both of which are easily "elementizable". Also, I don't like those barely filled sub-folders in the projectile module, and the fact we've divergent reusable and single use arrow types. |
||
|
|
daa33d89fe |
Xenomorph/Alien Rework 2023: Part 1 (#75286)
## About The Pull Request Alternative to #75277 Kept you waiting, huh? This PR is the first part of a Xenomorph rework which seeks to make the big lugs more balanced and up to date with /tg/'s current design. This mainly involves curtailing xenomorph's infamous hardstuns into more interactive forms of combat, while also giving some buffs to the xenomorph's more unique abilities in order to keep them threatening. Part 1 will focus on simple number changes and some simple mechanic changes. In the future, changes will be made to endgame involving xenomorphs, along with changes to other facets of Xenomorphs. Highly based off of #55937. Changes: - Xenomorph disarm has been completely reworked. While a disarm will attempt to, well, disarm, a human opponent should they be holding something, it will no longer immediately hardstun targets when they aren't. Instead, the xenomorph will shove the target several tiles back and inflict 35 stamina damage. If the target slams into a wall, this will also come with the added effect of knocking them down. If a human is incapacitated, however, right click will slam them into the ground, which paralyzes them for a lengthy 5 seconds (which is ultimately half the time xenos could stun you for before), allowing for safe transport back to the nest as long as you keep them close. - Humans can now shove xenomorphs. Due to being the superior predator, however, you can't knock down xenomorphs from shoving. You can slow them for a little bit akin to humans though. - Neurotoxin no longer is a hardstun. Instead, it deals 50 stamina damage on contact. It is still resisted by BIO armor. **HUNTER:** - Speed reduced from -1 to -0.3. - Pounce speed is twice as fast as before (1 to 2) - Hardstun time on pounce reduced from 10 seconds to 5 seconds. Hunters being insanely fast has been a major balance-ruining factor of xenomorphs for many years now. These buggers could practically ambush anyone, hardstun them immediately, and then leave before anyone could do anything. Now, with their speed nerfed and in combination with the xeno shove changes, hunters will need to spend more time to down a target. Their pounce was practically useless, so its been sped up in order to make it more practical to use. **SENTINEL** - Speed reduced from 0 to 0.2 - Cloak alpha reduced from 0.75 to 0.25 (you're more hidden now) Sentinels receive a large nerf in regards to their spit, but their before useless cloaking ability has been greatly improved upon as compensation. They now serve better as defenders and ranged ambushers. **XENOMORPH DRONE** - No changes As in the original PR, drones are perfeclty balanced in my eyes, so no changes were required. **XENOMORPH PRAETORIAN** - Speed increased from 1 to 0.5 - No changes Praetorians get affected by the nerfs of the other xeno abilities, but now they're a bit faster in order to close the gap to use their abilities. **XENOMORPH QUEEN** - Speed increased from 3 to 2 - Health increased from 400 to 500 - Damage increased from 20 to 50 Xenomorph queens have been sped up and made more tanky and lethal in close-range combat. Fighting this beast up-close should be a death sentence to almost anything else in the game. Speed increases will help her re-position and close the gap on potential prey. **OTHER CHANGES** - Fixed a bug where simplemobs didn't actually use xenomorph's damage values when they were attacked by them. ## Why It's Good For The Game Xenomorphs are old, and haven't been updated for quite a long time. This has left them as sources of a bunch of hardstuns which made counterplay from a modern spaceman extremely difficult. With these changes, fighting xenomorphs is more interactive and should end up being more enjoyable for both crew and xenos. Buffs were also given out to incentivize usage of xenomorph's unique abilities as opposed to the standard disarm spam which was most effective for them until now. ## Changelog 🆑 balance: Xenos have been rebalanced, removing their hardstuns on their disarm and neurotoxin, along with a slew of other changes. Xenos have received buffs to their more unique abilities in return. fix: Fixed simplemobs ignoring xenomorph's melee damage values when being attacked by them. /🆑 |
||
|
|
38983ee289 |
Fix rockets embedding in people (#76136)
## About The Pull Request Rockets can't embed anymore and are now blunt objects (so they cause blunt wounds instead) This is what could happen before:  ## Why It's Good For The Game I've been told that the embedding is not intentional, so this PR fixes an oversight ## Changelog 🆑 fix: Rockets can no longer embed in people and cause blunt wounds instead of piercing /🆑 |
||
|
|
8788e48378 |
Shuttle events (#76008)
## About The Pull Request https://github.com/tgstation/tgstation/assets/7501474/a2d83ce8-eba1-42d9-a1f8-9d73f7c40b21 Adds shuttle events! Stuff can now start to happen outside the shuttle, either benign or spicy (but usually just fun to watch)! ## Why It's Good For The Game The shuttle escape sequence is an important part of the game, uniting about every player surviving player. Recently, #71906 has made the escape sequence more forgiving as well as more interesting by conditionally doubling the playing field. The area outside the shuttle is still mostly empty though, except for the few people being spaced, daredevils and the occasional epic space fight. This PR adds adds some space events to spice up the outside of the shuttle! This both gives people something too look at, making the escape sequence feel less static and more lively, as well as give people a reason to go outside and get the full experience of ~being decapitated by a meteor~ swimming with the fishes! <details> <summary>Shuttle Events</summary> **Friendly carp swarm** Spawns a group of carp that flies past the shuttle, completely friendly unless provoked. **Friendly meteors** Spawns a lot of strong meteors, but they all miss the shuttle. Completely safe as long as you don't go EVA **Maintenance debris** Picks random stuff from the maintenance spawn pool and throws it at the shuttle. Completely benign, unless you get hit in the head by a toolbox. Could get you some cool stuff though! **Dust storm** Spawns a bunch of dust meteors. Has a rare chance to hit the shuttle, doing minimal damage but can damage windows and might need inflight maintenance **Alien queen** One in every 250 escapes. Spawns a player controlled alien queen and a ripley mech. RIP AND TEAR!! Really not that dangerous when you realize the entire crew is on the shuttle and the queen is fat as fuck, but can still be fun to throw people around a bit before being torn to shreds. **ANGRY CARP** Once in every 500 escapes. Spawns 12 normal carp and 3 big carps, who may just decide to go through the shuttle or try and bust through the window if you look at them wrong. Somewhat dangerous, you could stay away from the windows and try to hide, or more likely shoot at them and weld the windows **Fake TTV** Lol **Italian Storm** Once in every 2000 rounds. Throws pasta, pizza and meatballs at the shuttle. Definitely not me going off the rails with a testing event **Player controlled carp trio** Once in every 100 escapes. Spawns three player controlled carp to harass the shuttle. May rarely be a magicarp, megacarp or chaos carp. I can't honestly see them do anything other than be annoying for 3 seconds and die There are some other admin only ones: a group of passive carps going directly through the shuttle and just being little shits, and a magic carp swarm </details> Events are selected seperately, there isn't a crazy weighting system, each just has a chance to run, and multiple could run at once. They also don't immediately trigger, so people can get settled a bit, and to make sure just waiting out the more dangerous ones is still a valid strategy. ## Changelog 🆑 add: Adds shuttle events! If shuttle escapes weren't exciting before (doubtful), they definitely are now! I'm joking it's mostly an atmosphere thing. admin: Adds an admin panel to interact with shuttle events, under the Events tab: Change Shuttle Events fix: Objects spawned in hyperspace will properly catch hyperspace drift /🆑 There's a few things I'd like to do later (another PR) (honestly anyone can do them because I suck at follow-ups), because this is too big as is: - Hijack triggered shuttle events - More events (got a lot of cool suggestions, but I'm putting most of them on hold) - Maybe stration announcements if some more dangerous ones get added - Structures appearing next to the escape shuttle??? --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
22799fcb89 |
Refactors the worst list ever, Stun Absorptions, into status effects + makes status flags more accurate (making certain mobs more vulnerable to incapacitations?) (#76000)
## About The Pull Request - Refactors the stun absorption list into a status effect - Does a fair bit of cleanup around stun code Weird thing involved in this. Check out this define. `IS_STUN_IMMUNE(source, ignore_canstun) ((source.status_flags & GODMODE) || (!ignore_canstun && (!(source.status_flags & CANKNOCKDOWN) || HAS_TRAIT(source, TRAIT_STUNIMMUNE))))` Notice anything odd about it? It only checks for `CANKNOCKDOWN`. What does this mean? Well, *every single* one of the stun procs used this macro for checking stun immunity. Which means every method of stun checked the `CANKNOCKDOWN`. This means that, say you have a mob which has `CANSTUN` but not `CANKNOCKDOWN`. Intuitively this means that the mob cannot be knocked down, but can be stunned. But instead, this means the mob can't be stunned either. This doesn't affect humans, they have all the status flags, but it does affect some other mobs. Alien adults (not queens) have `CANUNCONSCIOUS|CANPUSH`. Before, they didn't have `CANKNOCKDOWN`, so they were fully immune to stuns and sleeps. But now, they can be knocked unconscious. However, overall it doesn't change much, as most mobs that flipped off `CANKNOCKDOWN` flipped off the others too. For consistency though it makes sense for these flags to work as they imply. - `incapacitate` didn't have a signal, now it does ## Why It's Good For The Game More consistent, better code? I may use this in the future. ## Changelog 🆑 Melbert refactor: Refactored Stun Absorptions (Bastard Sword, His Grace) refactor: Refactored Stun Immunity. Note this means that some mobs which, prior, were immune to all forms of incapacitation are now vulnerable to some. Notably, adult non-queen xenomorphs are now vulnerable to falling unconscious. /🆑 |
||
|
|
f15a971193 |
Fixes cases where doors do not bolt correctly (#75882)
## About The Pull Request Some things, like door control buttons, set locked directly instead of calling lock() or unlock(). This fixes that, which should make sound effects play. Also annotates some code where we *don't* want that to happen with an explanation of why we just set locked directly. ## Why It's Good For The Game Fixes Skyrat-SS13/Skyrat-tg/issues/21510, which also applies to upstream. |
||
|
|
7317025857 |
Buffs Lasers (#75329)
## About The Pull Request This increases laser wound chance, increases the damage and also makes them use less energy. ## Why It's Good For The Game Lasers cannot reload so they're not as convenient as a gun, so this will maybe make them more cool, honestly I just want to try this to see what happens. ## Changelog 🆑 oranges balance: increased laser damage, decreased energy cost and increased wound chance /🆑 |
||
|
|
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> |
||
|
|
b2eba17f07 |
New laser and disabler sounds! (#74900)
## About The Pull Request Changes old laser sounds (and sear sound) to new ones, made by me in FL Studio. (The sound getting too distorted when pitching up will be soon fixed, as Goof will make pitching down of gun sounds better) https://user-images.githubusercontent.com/42353186/233795506-d68825d9-63a5-4cff-a52d-9fc949f2ec13.mp4 https://user-images.githubusercontent.com/42353186/233795520-525bada0-265c-4003-bb76-0b256ee844fb.mp4 https://user-images.githubusercontent.com/42353186/233795548-e97528ab-c9d6-4389-bee1-f849ceb71c60.mp4 ## Why It's Good For The Game For a long time, people have always been liking ballistics more than laser for many reasons. But I often heard that the ballistics sound gives feedback of a punch and that laser guns (especially disablers) sound like toys. And to make the laser more satisfying and intimidating to use, I have created new sounds for them which are more in-depth. And also changed the sear sound (when you get hit by a laser) to give more of a punch. ## Changelog 🆑 sound: Disablers and lasers have a new deeper sound to them sound: Sound of lasers hitting a person now are giving more of a punch /🆑 |
||
|
|
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. /🆑 |
||
|
|
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> |
||
|
|
c27f9a6d9b |
Minor Nukie Thing: Bolt-action Sniper Rifle, balance coding, and some ammo changes (#73781)
## About The Pull Request ### The Rifle: -The Sniper Rifle is now a bolt action. This replaces the 4 second fire delay on the sniper rifle. This overall will improve the fire rate if you're good at racking the bolt, but it will also feel less like you're in a weird limbo of inaction while using the sniper rifle, since the fire delay can be quite confusing to players not used to it. This can be tweaked, like reducing the speed of the racking action, if it seems like it is too much. -The scope component now goes up to 50 tiles (or so), which allows you to gain a significant sightline over an area. The reasoning for this is simple. The component actually nerfed the overall range of the sniper rifle's scope, so this should hopefully restore that somewhat. And having such a huge sightline makes it much easier to utilize the impressive range of the rifle. Currently, it's really only ideal for extremely close range fighting. -The normal sniper rifle, the one that syndicate base scientists get, can be suppressed. I don't know why it was different. ### The Ammo: Normal .50 BMG: Does much more object damage, and on top of that deals additional damage to mechs, but not by much more. Now, when it dismembers a limb, it also deals its damage to the chest. This ensures that you didn't straight up lose out on dealing a killing blow because you took their limb off, and makes the dismemberment property of .50 BMG a significant upside rather than a immense detriment. Marksman: Gains a lot of the above benefits, but has much lower range. Why this nerf? It's actually because of some funny nonsense with how ricochet works. Which can cause....accidents to happen. To you. Consider that firing down a straight line and missing could be quite embarrassing when the bullet has 400 tiles of range. Soporific: Now called Disruptor ammo. Works as it did before, putting humans to sleep for 40 seconds (seriously, 40 seconds). Also deals some stamina damage, if...that's relevant. But now also causes an EMP effect and a boatload of added damage to both mechs and borgs, allowing it to be an excellent anti-mech and anti-borg ammo type, as well as scrambling any pesky suit sensors, energy weapons and so on in an area around the impact. Useful for support fire. Incendiary (NEW!): Causes a massive firebomb to go off where it impacts (no explosion, so this isn't a stun). Also sets the target on fire, which is always fun. Good for shooting into groups of people with impunity. Also deals burn damage instead, since I think nukies could use more methods for direct fire damage. Surplus (NEW!): It's .50 BMG but it lacks most if not all the upsides. No armour penetration, no dismemberment, no paralysis. It still deals a lot of damage to objects, so not a bad option for simply removing structures from afar. So what's the point in this ammo? You can buy 7 magazines for the price of one. I want to introduce 'Surplus' as an idea for nukies to invest in if they want to be able to keep shooting but they're really on a budget, like most non-warop nukies tend to be. This is definitely subject to change (like a damage decrease on top of everything else). Pricing and Capacity: Normal ammo and surplus costs 3 TC. Every special ammo costs 4 TC. Every special ammo also has the same ammo capacity as the normal magazine. It's kind of weird how most of the subtypes had 5 shots rather than 6, but then soporific had...3? I don't get it. This would probably cause a good deal of confusion, especially if you are swapping ammo types and weren't aware of this particular oddity. Anyway, 6 shots. ### Minor Addition Gets rid of the cheap suppressor. It lies to players, tricking them into thinking this is a low quality suppressor. Newsflash, it isn't. There is no distinct difference between that suppressor and the normal suppressor. ## Why It's Good For The Game The sniper rifle, unfortunately, sucks a lot except for very specific use cases. It got a big nerf with the scope component in terms of range, even if the functionality is way cooler. And, at a baseline, there was some counterintuitive functions attached to it. Dismemberment was cool, but it also caused a loss in overall damage due to how limbs contribute to core health. On top of this, the cool ammo types were...not much better? Penetrator was almost always the best option, even if it lost a lot of damage as a consequence. So, what was it good for? X-ray + Penetrator. Pretty much, that's it. It has some other uses but if I had to be entirely honest, there wasn't much that other weapon couldn't do as well. Hopefully this helps things going forward, and I want to mess with this as well down the line in case its a bit too much of a boost in power. Absolutely please rip this PR apart. ## Changelog 🆑 balance: Makes the syndicate sniper rifle a bolt-action rifle. balance: Sniper rifles have a scope range of roughly 50 tiles. balance: Sniper rifle ammo, if it dismembers your limbs, does damage to the chest. balance: All the various syndicate sniper rifle magazines have consistent casing quantities (6 shots). They also have more consistent pricing. 3 for normal and a box of surplus, and 4 for every other type. balance: Reduces the range of Marksman ammo to 50 tiles. Not because it is strong, but because you might accidentally shoot yourself if you're not watching where you're shooting. Ricochets are no joke. add: Replaces Soporific with Disruptor ammo. Works like soporific, but also EMPS things it hits. add: Adds Incendiary .50 BMG. Causes a combustion to erupt from the struck target, as well as setting targets on fire. Great for parties. add: Adds Surplus .50 BMG. It sucks, but you get a lot of them! Quantity over quality, baby. remove: The suppressors in the bundle are of standard quality. The apparent 'cheap suppressor' that came bundled with the C-20r and sniper rifle were found to actually be 'fine'. Trust us. /🆑 |
||
|
|
b688c36620 |
Allows any bullet class that doesn't override wound_bonus to cause wounds. (#73838)
Overrides wound_bonus for the bullet class to be 0 instead of CANT_WOUND. ## About The Pull Request The bullet class has wound_bonus 0 instead of CANT_WOUND. This allows things such as 9mm and 10mm to wound, and probably other things. ## Why It's Good For The Game Makarovs that used 9mm and some other things just didn't cause any wounds, and that was sad. Bullets are physical things, so it doesn't make sense to make them not cause any wounds unless they were overidden. ## Changelog 🆑 balance: 9mm, 10mm, and other stuff can cause wounds. /🆑 |
||
|
|
60e85fa947 |
Polishes some side sources of light and color (#73936)
## About The Pull Request [Circuit Floor Polish](https://github.com/tgstation/tgstation/commit/6b0ee9813271f693ceb44ad42277c36ef2e71268) Circuit floors glow! but it looks like crap cause it's dim and the colors are washed out. I'd like to make them look nicer. Let's make them more intense and longer range, and change the colors over to more vivid replacements. While I'm here, these should really use power and turn on and off based off that. Simple enough to do, just need to hook into a signal (and add a setter for turf area, which cleans up other code too). [Desklamp Upgrade](https://github.com/tgstation/tgstation/commit/8506b13b9c97bf740c3e97db04450555387dd126) Desklamps look bad. They're fullwhite, have a way too large range.Crummy. Let's lower their lightrange from 5 to 3.5, and make the ornate ones warmer, and the more utilitarian ones cooler. The clown one can be yellow because it's funny I'm renaming a color define here so I'm touching more files then you'd expect [Brightens Niknacks](https://github.com/tgstation/tgstation/pull/73936/commits/835bae28e9eb9946be53c9f5dac0a0a39f15ef21) Increases the light range of request consoles, status displays, newscasters, and air alarms (keycard machines too, when they're awaiting input at least) Increases the brightness of air alarms, I think they should be on par with apcs, should be able to tell when they're good/bad. Increases the brightness of vending machines (I want them to light up the tiles around them very lightly, I think it's a vibe) Fixes a bug with ai status displays where they'd display an emissive even if they didn't have anything on their screen, looking stupid. This was decently easy but required a define. Looked really bad tho ## Why It's Good For The Game Pretty <details> <summary> Circuit Floors </summary> Old   New   </details> <details> <summary> Desk Lights </summary> Old   New   </details> The niknack changes are more minor so I'm not gonna grab photos for them. I can if you'd like but I don't think it's necessary. Mostly a vibes in dark spaces sorta thing ## Changelog 🆑 add: I made circuit floors brighter and more vivid. add: Made air alarms, vending machines, newscasters, request consoles, status displays and keycard machines slightly "brighter" (larger light range, tho I did make air alarms a bit brighter too) add: Tweaked desklamps. Lower range, and each type gets its own coloring instead of just fullwhite. fix: AI displays are no longer always emissive, they'll stop doing it if they aren't displaying anything. Hopefully this'll look nicer /🆑 |
||
|
|
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
/🆑
|
||
|
|
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 |
||
|
|
793e38e1b6 |
Buffs mech disabler (#72941)
## About The Pull Request Mech disabler now is works like a shotgun, shooting 5 weak disabler beams(15 damage, the normal disabler beam has 30). The energy drain is increased to 100 from 30. Has a cooldown of 1.5 seconds. The exact numbers(weapon scatter, damage, amount of projectiles) can be discussed. ## Why It's Good For The Game When you are trying to nonlethally deal with someone, a normal security officer with their roundstart available equipment is more effective then an expensive lategame mech, due to that fact that it is really slow, cant use stunbattons and even if you manage somehow to stamcrit a person with a mech disabler you still need some time to get out in order to handcuff them. So mech disablers are useless, especially compared with other mech weapons, like rocket launchers and ballistic guns. This PR makes the mech disabler not trash, so roboticists would have a wider choice of useful weapons when making a mech. ## Changelog 🆑 balance: Mech disabler now works as a shotgun, shooting 5 weak disabler beams at one time. balance: Mech disabler now uses 100 energy instead of 30, and it's attack cooldown increased to 1.5 seconds instead of 0.8 /🆑 |
||
|
|
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 /🆑 |
||
|
|
519bf69869 |
Dynamic Human Icon Generation For Simple/Basic Mobs (& Cardboard Cutouts) (#72517)
## About The Pull Request revive of #68760 this time a proc, not an element this time supports cardboard cutouts this time supports mob corpses  ## Why It's Good For The Game prevents these icons ever being outdated, they'll always look what they are supposed to, saves spriting work ## Changelog 🆑 Fikou, a hood by Viro refactor: humanoid mobs and cardboard cutouts automatically generate their sprites, they no longer will be outdated /🆑 Co-authored-by: Time-Green <timkoster1@hotmail.com> |
||
|
|
872e64fb05 |
Adds spaces around logical operators (#72603)
## About The Pull Request Part of a prior PR that was closed (#72562). This version does not add the check in CI. ## Why It's Good For The Game The work is already done, so I figured why not. ## Changelog N/A Nothing player facing Co-authored-by: Jeremiah Snow <jlsnow301@pm.me> Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> |
||
|
|
baab4a3145 |
fixes neurotoxin newtonian movement and alien hud hand icons (#72269)
neurotoxin now properly moves u also the alien spit shot by simplemob xenos is now a subtype of normal because it was fucking stupid also the nt hud pr broke the hud hand icons so fixes that |
||
|
|
b174af7661 |
Basic Mob Carp Part VIII: Basic Mob Carp (#72073)
## About The Pull Request Wow we're finally here. This turns carp into Basic Mobs instead of Simple Animals. They use a variety of behaviours added in previous PRs to act in a marginally more interesting way than they used to. But don't worry there's still 2 or 3 PRs to follow this one until I'm done with space fish. Changes in this PR: Carp will try to run away if they get below 50% health, to make use of their "regenerate if not attacked" component. Magicarp have different targetting behaviour for spells depending on their spell; - Ressurecting Carp will try to ressurect allied mobs. - Animating Carp will try to animate nearby objects. - Door-creating Carp will try to turn nearby walls into doors. You can order Magicarp to cast their spell on something if you happen to manage to tame one. The eating element now has support for "getting hurt" when you eat something. Carp eating can rings and hating it was too soulful not to continue supporting. ## Why It's Good For The Game Carp are iconic beasts and I think they should be more interesting. Also we just want to turn mobs into basic mobs anyway. ## Changelog 🆑 add: Carp will now run away if their health gets low, meaning they may have a chance to regenerate. add: Lia will now fight back if attacked instead of letting herself get killed, watch out! balance: Magicarp will now aim their spells more intelligently. add: Tame Magicarp can be ordered to use their spells on things. refactor: Carp are now "Basic Mobs" instead of "Simple Mobs" fix: Dehydrated carp no longer give you a bad feeling when they're your friend and a good feeling when they're going to attack you. balance: Tamed carp are now friendly only to their tamer rather than their whole faction, which should make dehydrated carp more active. Order them to stay or follow you if you want them to behave around your friends. /🆑 |
||
|
|
ae8ed395e1 |
Changes the missing food icon test to cover ALL /obj's (#71908)
Might as well cover everyyyyyyyyything. :) Fixes https://github.com/tgstation/tgstation/issues/71953 Fixes https://github.com/tgstation/tgstation/issues/71983 🆑 ShizCalev code: We now unit test all /obj's for missing icons. :) /🆑 todo: Fix the fucked up icons. Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
d31090b6b7 |
Getting hit by a nuclear particle will always irradiate you. (#71812)
## About The Pull Request Makes nuclear particles directly irradiate people. ## Why It's Good For The Game Getting hit by a nuclear particle should be a death sentence. ## Changelog 🆑 balance: Nuclear particles will always irradiate you on hit. /🆑 |
||
|
|
f55aafcc68 |
Adds the Marksman Revolver from Ultrakill, with coinflipping and splitshotting! (#70612)
## About The Pull Request Ultrakill is a neat game that I like, and I like to add fun things from things I like. This PR adds the marksman revolver as an admin-only weapon, complete with coin flipping and splitshotting mechanics! [Have a video demonstration!](https://streamable.com/5x4mnj) Basically, right clicking on a visible tile flips a coin towards a random adjacent tile to the one you targeted. Shooting the coin projectile with the hitscan primary fire while it's within one tile of the target will trigger a splitshot. Those two child splitshots will roughly follow the priority order of Ultrakill (prioritizing coins [for even more splits!], then nearby mobs, then less nearby mobs, then other random stuff nearby). I plan to add other stuff for the shots to prioritize like fuel tanks, windows, and others. I'm still working out some of the finer details of balance and more closely matching how it works to UK (while still working in the realm of SS13), and of course I hope to get unique sprites/sounds/whatever. <img src='https://imgur.com/XUTqksD.png'> ## Why It's Good For The Game Adds more funny/unique things for admins to spawn in. ## Changelog 🆑 Ryll/Shaps add: Added the Marksman Revolver, for admins to spawn. /🆑 |
||
|
|
b449dbbfb7 |
Fixes Riot Dart Damage Exploit (#71261)
Fixes an issue where riot darts would do damage even if they had no pen in them if recovered after being fired while modified to be able to accept pens ## About The Pull Request Fixes an issue where riot darts would do damage even if they had no pen in them if recovered after being fired while modified to be able to accept pens Fixes #71084 ## Why It's Good For The Game bug bad ## Changelog 🆑 fix: Riot darts no longer do damage with no pen inserted if recovered after being fired while modified to accept pens. /🆑 |
||
|
|
87f5f2ecfa |
What if meteorslugs were mini cannonballs (#71137)
## About The Pull Request Meteorslug shells fire effectively mini cannonballs. They're not as strong, but they tear through everything they shoot, including walls and airlocks. They're not as lethal as the real deal or go nearly as far (range of 7, not even a screens length), but they are still pretty destructive. They don't fling people, but they could potentially barrel over several people, which I think is a good trade-off. Meteorslugs need gunpowder (for a bigger shot) and rum (yarr) to construct. ## Why It's Good For The Game Only through sleep deprivation do I get such diabolical ideas. Also, the original functionality wasn't very interesting except for like, maybe a few niche silly things, but the real value was using them to get into places. This version still definitely does that. But it's _cooler_. (The object displacement was pretty jank and I think this accomplishes a very similar effect without actively harming why people would look to use meteorslugs) ## Changelog 🆑 balance: Meteorslugs are now miniature cannonballs. They also need more gunpowder and rum to be constructed. /🆑 |
||
|
|
79ffefa06d |
Allows Fully Heal to be passed a series of flags, fixes Adminordrazine being horrible (#71123)
## About The Pull Request - Fully heal can be passed a series of flags detailing what all is healed by the proc. This allows for things to provide almost-but-not-quite fully heals. - Uses this in Adminordrazine, so that it stops being a pain to update every time fully heal is updated. This includes some small balance changes which i'll go over, nothing extremely noticable. ## Why It's Good For The Game Allows for more precise control over full heals. ## Changelog 🆑 Melbert refactor: Fully heal can be passed a series of flags. As a result, some things which previously did a full heal might heal slightly less, or some things which did partial full heals might do slightly more. fix: Adminordrazine will no longer completely break every facet of a person admin: Ahealing a changeling will refill all of their chems. /🆑 |
||
|
|
4d6a8bc537 |
515 Compatibility (#71161)
Makes the code compatible with 515.1594+
Few simple changes and one very painful one.
Let's start with the easy:
* puts call behind `LIBCALL` define, so call_ext is properly used in 515
* Adds `NAMEOF_STATIC(_,X)` macro for nameof in static definitions since
src is now invalid there.
* Fixes tgui and devserver. From 515 onward the tmp3333{procid} cache
directory is not appened to base path in browser controls so we don't
check for it in base js and put the dev server dummy window file in
actual directory not the byond root.
* Renames the few things that had /final/ in typepath to ultimate since
final is a new keyword
And the very painful change:
`.proc/whatever` format is no longer valid, so we're replacing it with
new nameof() function. All this wrapped in three new macros.
`PROC_REF(X)`,`TYPE_PROC_REF(TYPE,X)`,`GLOBAL_PROC_REF(X)`. Global is
not actually necessary but if we get nameof that does not allow globals
it would be nice validation.
This is pretty unwieldy but there's no real alternative.
If you notice anything weird in the commits let me know because majority
was done with regex replace.
@tgstation/commit-access Since the .proc/stuff is pretty big change.
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
|
||
|
|
ad5debaaa1 |
Add investigate_deaths (#71112)
## About The Pull Request Adds INVESTIGATE_DEATHS, an investigate category intended to better show causes of death.   Also makes suicide_act take a `mob/living` as an argument instead of a `mob`, and some minor style improvements since apparently I hate atomicity. ## Why It's Good For The Game Inspired by a mysterious death and dusting. More logging and leads for admins investigating deaths. Also fixes #59028 ## Changelog 🆑 Tattle admin: added investigate deaths to shed some more light on unusual demises, dustings, and gibbings /🆑 Co-authored-by: tattle <article.disaster@gmail.com> |
||
|
|
c29b3781a9 |
Missile Sanity Checking: I made it explode better? (#70813)
* Fixes robotics and nukies gaining access to the wrong type of exosuit missiles, renames the BRM-6 to the PEP-6 (Precision Explosive Projectile), ensures the defines match to which gun goes where, also renames the ammo paths to also prevent the same confusion, swaps around a whole lot of the pathing for what missile is the baseline and what is the parents, makes the PEP use the missile procs instead of its own snowflake code, inadvertently makes the missile a borg murder device but fuck it they're dense objects |
||
|
|
09d88b31ee |
Wizard DLC - Tower of Babel (#69629)
About The Pull Request
This adds a new status effect called - Tower of Babel
Any carbon mob afflicted by the status effect will lose knowledge of every known language and gain a randomized one as a replacement. The affected mob will also be hit with a depressing moodlet that lasts for 15 seconds. Silicons are immune to all effects.
This effect is implemented in several ways:
Tower of Babel wizard event (all crew on the station z level are affected. The wizard is not and gains mastery of every language to taunt their victims)
Admin smite option
Admin secret event (can be reversed)
Staff of Babel (formerly the Staff of Sapping) will spawn during spawn magic wizard event
Magicarp will randomly shoot bolts of babel
Staff of Chaos will randomly shoot bolts of babel
Overdosing on Mushroom Hallucinogen will temporarily and sporadically acquire the effect
The effect can be blocked or cured in several ways:
Curators are given immunity
Reading a book of babel (via lavaland loot) cures and gives immunity
Reading a language book cures and gives immunity ONLY for that particular language
Note - The Tower of Babel does not allow tongueless, mute, or tongue tied people the ability to speak
|
||
|
|
ced20c8e63 |
Converts silent to status effect + small cleanup of can_speak / can_speak_basic / IsVocal, and sign language (#69963)
* Gets rid of a lot of weird vocal checks - unifies all vocal checks under can_speak and try_speak - de-spaghettis a bit of sign language stuff - introduce a silence status effect |
||
|
|
45516f4741 |
Adds macros to help with common set_- and adjust_timed_status_effect uses (#69951)
* Adds helpers for status effect application |
||
|
|
6baebf47a1 |
Completely refactors hallucinations, and also adds a few (#69706)
* Refactors hallucinations slightly, organizes them * Refactors hallucination into a status effect * Further hallucination proper refactoring * Refactors battle hallucinations * Refactors "fake item other" hallucination * Gets it a bit closer to working state * Refactors screwydoll and fake alerts * Refactors fake inhand items * Refactors a few more. - Fake death - Fake messages - Fake sounds - Projectiles * Refactoring delusions, hallucination effects * Furthering the hallucination status effect - removes copypaste of hallucination pulses * Almost finalizes the changeover to status effect * Last staus effect stuff * Delusion business * Airlocks, fire, and more delusion stuff * Finishes screwyhud. It compiles now! * Swaps screwyhud over to a grouped status effect * Removes hal_screwyhud * Comment * Bugfixing * image cleaning * Get rid of this it came back * What if I finished this branch? * Oops * Messing with the randomness * Mass hallucination tweaks * + * Some more mass tweaks * Review * Updates * Unit tests hallucination icons * More tweaks * Move folder * Another re-name * Minor tweaks * Anomaly unity * Mass hallucination buffs * t * Sig * Merge * Lints * Unit test already coming in clutch * Another failure * Use named args for cause_hallucination via some define trickery * Some cleanup * This is better * adds some hallucinations * Oops * More sounds * Tweaks * Some additional documentation * Flash * Fixes mass hallucination * Json changes * Updates documentation * Json conflicts * Makes it work * Missed that one too * Helpers * More signalization (WIP) * Fixes bump * Missed a helper use * Dumb |
||
|
|
8f59a6dbac |
Fix plasma cutter or guns that burn not being able to ignite plasma (#69584)
* Plasmacutter projectiles now deal BURN instead of BRUTE * BURN projectiles now properly detonate plasma and explodables. |
||
|
|
de04b3be80 |
Kills /obj/shapeshift_holder, replaces it with /datum/status_effect/shapechange_mob, also does a lot of Wabbajack refactoring (#69091)
About The Pull Request
Deletes /obj/shapeshift_holder, replaces it with /datum/status_effect/shapechange_mob
Refactors Heretic worm form into a shapeshift spell
Refactors Wabbajack, and associated code
Fixes #69117
Fixes #65653
Fixes #59127
Fixes #52786
Why It's Good For The Game
/obj/shapeshift_holder was one of the worst remaining abuses of /obj direct subtypes, so I replaced it with a cool fancy datum.
This also decouples the shapeshifting behavior entirely from the shapeshifting spell. So we have support for shapeshifted mobs not sourced from a spell. Which is neat, we could technically swap Wabbajack to use this in the future.
Changelog
cl Melbert
fix: Wabbajacking a shapeshifted mob no longer runtimes horribly. When a shapeshifted mob is wabbajacked, they'll now be removed from their shapeshift and stunned.
fix: Transforming via a shapeshift should no longer rob you of your hearing / runechat awareness.
fix: Shapeshifting plays nicer with holoparasites.
fix: Being polymorphed from a xeno to a non-xeno correctly makes you a non-xeno
refactor: Refactored shapeshifting, the shapeshift holder is now a status effect instead of an object.
refactor: Heretic worm form is a shapeshift spell now, this might have some minor behavioral changes but should overall be the same.
refactor: Refactored Wabbajack (+ cursed pool). Overall a bit more clean / consistent behavior.
/cl
|
||
|
|
d91390a447 |
[IDB IGNORE] The Great Sweep: Moving dmis into subfolders (part 1) (#69416)
Moves singulo and supermatter dmis into obj/engine, renamed from obj/tesla_engine Moves Halloween, Christmas, and misc holiday items to obj/holiday Moves lollipops to obj/food Moves crates, closets, and storage to obj/storage Moves assemblies to obj/assemblies Renames decals.dmi to signs.dmi ...because they're signs and not decals Moves statues, cutouts, instruments, art supplies, and crayons to obj/art Moves balloons, plushes, toys, cards, dice, the hourglass, and TCG to obj/toys Moves guns, swords, shields to obj/weapons |
||
|
|
f1a363c825 |
Converts a shitload of istypes to their more concise macros (#69260)
* Converts a lot of istypes() to use their istype macro helpers. |
||
|
|
34b4034777 |
Replaces the mood component with a mood datum (#68592)
About The Pull Request Mood was abusing signals and get component pretty badly, so I redid it as a datum to stop this. Why It's Good For The CODEBASE Better code pratices, also gives admins easier tools to manage mood Changelog cl admin: Added two new procs into the VV dropdown menu to add and remove mood events from living mobs. /cl |
||
|
|
0debbf03c4 |
Adds the COMSIG_PROJECTILE_RANGE signal and the pixel_speed_multiplier var for projectiles (#68647)
The COMSIG_PROJECTILE_RANGE signal can be used to add signal handlers for behaviors that a projectile should execute each step of its travel. Currently, nothing uses it, but it is available for use in admin circuits or lua scripts. The pixel_speed_multiplier var for projectiles acts as the value passed to the trajectory_multiplier argument of pixel_move, which originally was passed a constant value of 1. By lowering this var, you can reduce the speed of projectiles without them becoming jumpy. As an example, magic missile, gauntlet echo, the demonic watcher's temp beam, and the demonic frost miner's projectiles have all been changed to use this var. As such, their movement will be much smoother (but still the same effective speed). |
||
|
|
fe7513d282 | addresses reviews on the tram pr made after merge, fixes diagonal movement bugs (#68033) | ||
|
|
71835a7c1c |
Nukie Rework Part 2: Nuclear Operative starting gear rework (#68401)
Replaces the nuke op Makarov with the Ansem, a clandestine pistol firing 10mm rounds which do more damage. Ammo costs more. Replaces the nuke op survival knife with the energy dagger, as well as giving it a soft light, light armor penetration and a light wound bonus. Replaces the diamond drill in their closet with an entrenching tool, which swaps between crowbar, pickaxe and shovel modes. Gives the nuke op survival box the syndie box design, as well as a crowbar, screwdriver and mini welder. Removes the nuke op leader's Krav Maga gloves. Updates the esword and edagger sprites with ones i had lying around from 2019, they are more consistent. Moves pistol sprites a bit up to center them. |
||
|
|
a592c777ff |
Makes backblast not runtime, moves some of its behaviour to an "incendiary/fire" parent (#68397)
* just a normal fire projectile * Update code/modules/projectiles/projectile/bullets/_incendiary.dm |
||
|
|
f8f3dbed98 |
Completely removes proc_holders from existence. Refactors all wizard, xeno, spider, and genetics powers to be actions. Also refactors and sorts ton of accompanying code. (#67083)
* destroy proc holder pt1 - change proc_holder/spell to action/cooldown/spell - docs all the spell vars, renames some of them - removes some useless vars - start with pointed spells, as they're easy * kill proc_holder pt2 - kill a buncha vars and replace it with flags - convert a ton over - general code improvements * kill proc_holders pt3 - convert a good few more spells - rename some signals - handle statpanel - better docs * kiill proc_holder pt4: - restructure the file system of action.dm, separating a good amount of item actions and miscellaneous garbage into files where they belong slightly better. Also splits off item actions, cooldown actions, innate actions, etc. into their own files, overlal making it much better to work with - converts touch attacks to actions - converts blood crawl, jaunt subtype * kills proc_holder pt5 - clears up some icon issues so all the currently converted pages don't have errors - shapeshift - some more action cleanup * kills proc_holder pt5.5: - some documentation - reworks feedback to prevent oversight with teleports and stuff * kills proc_holder pt6: - converted cult spells - converted magic missile - converted mime spells - chipped away at the errors - removed some vars which were too general, replaced them with more locally applicable vars. for example "range" which could mean "projectile range" or "aoe radius" or whatever - instead of having a broad net which everyone applies to in a confusing matter, instead lets each spell delegate on their own. - merged magic/spell and magic/aoe, as the comment intended - more unified behavior for spell levelling * kill proc_holders pt 6.5: - replacing a buncha old proc_holders that have been updated to reduce some errors. sub 900 baby * kills proc_holder pt 6.75: - minor fixes * kills proc_holder pt7: - cuts down on some errors - refactors some wiz events * kills proc_holder pt 7.5: - malf ranged modules - some minor errors * kills proc_holder pt 7.75: - mor eminor error handling, cleaning up changes * kill proc_holder pt8: - refactors spell book - refactors spell implant - some more minor error fixing * kill proc_holder pt 8.5: - scan ability * Adds some robust documentation * kill proc_holder pt9: - converts some / most mutations over * kill proc_holder pt10: - sort out all the granters - refactor them slightly - fix some compile errors * Some set-unset sanity - going to need to test removing Share() * Removes transfer actions. It doesn't seem to do anything. - Transfer_actions was called when current = new_character so locially speaking the early return in Grant() should cause it to NOOP. Test this in the future though * Removes sharing from actions, docs actions better * Some better documentation for spell and spell components * Kills proc_holder pt11: - Finally finishes ALL THE SPELLS IN THE SPELL FOLDER - Fixes some more errors * kills proc_holder pt11.5: - minor error fixing and sanity * Method of sharing actions. Can be improved in the future, needs testing * Implements a way to update the stat panel entry for a spell. Also gets rid of VV stuff, as you can update the bigflags directly in VV now. * Curse of madness bug I put in. * kills proc_holder pt12: - sub 500 errors! - converts cytology mobs - converts and refactors spiders slightly - some minor fixing around the place as usual * kill proc_holder pt13 - Finishes heretic spells - Sub 300 errors! - some touch refactoring to account for mansus grasp * kills proc_holder pt14: - revenant - minor bugfixing for heretic stuff * kills proc_holder pt14.5: - some missed stuff for revenant + heretic * kills proc_holder pt15: - alien abilities - more minor fixing - sub 100 errors. The end is nigh * kill proc_holder pt16? 17: - Finishes cult spells - sub 50 errors! - refactors the way charge works - renames / moves some signals * kills proc_holder pt final: - sdql spells - no more errors! * Bugfixes round 1 * Various bugfixing - documentation done - give spell works - can cast spell gives feedback conditionally - is available takes into account casting ability * Some accidental reversions + fixes * Unit tests * Completely refactors jaunting - All bloodcrawling is now handled on the action itself instead of across various living procs - slaughter demons have their own blood crawls - jaunting dummies don't have side effects on destroy() anymore * Wizard spell logging and even more refactoring |
||
|
|
7096580260 |
Updates the sprites for bullets (inflight), adds pellet sprites, redoes the thermal projectile sprites (#67856)
imageadd: Improves the sprites for bullets, thermal projectiles, and introduces pellet sprites. |
||
|
|
41c1d71bc4 |
Add magic reactions to hydroponics plants (#67724)
* Add magic reactions to hydroponics plants * Refactor magic bolts for plants * Add polymorph proc to hydroponics plants * Fix mob and plant_tray variable names |
||
|
|
2683ec04b0 |
Improves logging for smoke clouds. (#67206)
About The Pull Request Makes smoke propagate the fingerprints of the last person to touch the source of the smoke. This makes gunpowder smoke actually log the person responsible for the explosions. Why It's Good For The Game As of right now gunpowder smoke (and similar) doesn't actually have very good logging as as far as the smoke is concerned it's never been touched and so the resulting explosions are blameless. Obviously, scrolling up for a good minute looking for who has just obliterated the escape shuttle is slightly annoying for the admins. Ergo, making the explosions log who actually is responsible for making the smoke they originate from should reduce admin annoyance. Changelog cl admin: Smoke now logs the last person to touch the source of the smoke as the last person to touch the smoke itself. Gunpowder smoke should be less annoying to log dive as a result as every explosion will log that person. /cl |