mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-20 12:35:33 +01:00
master
31 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
5a68cb5ff3 |
Implements "Sound Tokens", a way to have spatial audio. And implements it on looping sounds. (And also some tweaks to fall-off) (#96018)
## About The Pull Request This pull request implements sound tokens, based on the implementation by Kapu at https://github.com/DaedalusDock/daedalusdock/pull/1379 I've taken that implementation and extended it to looping_sounds, allowing us to have spatial audio that updates much more nicely when players walk closer. This system also lets players that walk into range after the sound has started playing to also hear the sound, before if you missed the sound, you would never hear it. This is particularly noticeable with long sounds (Which is lame!) **VIDEOS**: griddle: https://streamable.com/v7ayqm engineering / SM: https://streamable.com/5lr1oj The system essentially sends the sound to every client, and changes the volume based on distance to the sound. There are some performance concerns here, so we will need to testmerge this and see how impactful it is. It is in a subsystem though, so there is some limit to the amount of cpu it will use. Do keep this in mind when watching the videos; it will probably not be AS responsive as in there. I've also changed how intense our fall-off is, making sounds lose their volume slower. Before taking one step away from a 50 volume sound would make it 18 volume, this is way too big of a drop and it became particularly jarring with the changes in this PR. Some sounds might be too long range now, but I think we should just reduce the max range of those sounds as we were basically playing them at <5 volume after 10 tiles, at which point we should maybe just reduce the range a bit since at those volumes theyre really not audible. **OLD FALLOFF;** note the MASSIVE drop from 1 tile to 2 tiles <img width="1416" height="897" alt="image" src="https://github.com/user-attachments/assets/805b270e-6aa5-4e84-868e-39585966f0a4" /> **NEW FALLOFF:** <img width="1418" height="905" alt="image" src="https://github.com/user-attachments/assets/eabbd592-ae9c-4690-8945-fbd0b4f6614f" /> Also tweaked a few looping sounds (deep-fryer in particular got some clean-up, as its mid-length was way too short for the sounds and it had a double-definition) ## Why It's Good For The Game This system allows us to have a richer audio experience, I really don't like how choppy our looping sounds are, especially in some areas where you hear them a lot (kitchen and engineering) ## Changelog 🆑 CabinetOnFire, Kapu sound: Changed our falloff to be less intense, as it was punching volume down way too fast. refactor: Implements a system for spatial audio to improve our looping sounds /🆑 --------- Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
039a0a8180 |
Wizard Wand blind box & wand bandolier (#95563)
## About The Pull Request  This PR adds 16 more wands to the game, try and guess what they all do! I finished coding this PR 6 weeks ago but it turns out I had to sprite 16 wands after that before I could PR it. <details> **Wand of Animation**- It's like the Staff of Animation but doesn't recharge itself, obviously. **Rod of Babel**- Grants victims a new random spoken language and then removes all of their other languages. **Shearing Rod**- It renders you bald. If you are covering your hair with a helmet, it pops the helmet off (possibly its most useful effect). If you're already bald, your bald head will shine brightly and blind nearby people. **Party Wand**- Fires projectiles that are incredibly alcoholic. Two of them will destroy the livers of most targets and kill them (although it gives them a good leadup time to get that fixed before dying of alcohol toxicity), so try one at a time if you're just there to have fun. **Wand of Ice**- Freezes people temporarily, making them really cold and unable to move. It also spawns slippery ice on impacted tiles. **Wand of Chaos**- Forces targets to hallucinate from a curated list of hallucinations. It looks and is named sort of like the Staff of Chaos just in the hopes that people are more likely to believe that the wizard did actually just instantly kill them, set them on fire, or turn them into a demon. Even if it doesn't, a lot of these cause you to stop moving or be temporarily knocked down or in some other way disoriented. **Lifting Rod**- Removes gravity from a target for two minutes, which funcionally immobilises them if they're in the middle of a room or you can use on yourself to cross big pits. **Rod of Compassion**- Heals you and your target a little bit, and also gives you both Pacifism for 30 seconds. This gives you time to talk out your problems, or deliver a monologue. **Wand of Snacking**- Turns things into pizza. If fired at a mob, will put some pizza in their hands and force them to start eating it. Unlikely to be deadly, but it might spawn mouldy pizza, a food they are allergic to, ethereal battery acid pizza, or pizza which dismembers you. **Pestilent Wand**- Confers a transmissible plague which causes you to periodically cough out vermin of various degrees of danger and hostility depending on disease level, treated via traditional methods of exorcism. **Wand of Pratfalls**- Slips and pies the target as well as creating small amounts of lube foam. **Wand of Rebellion**- Removes a limb from the target, then animates that limb. Stop hitting yourself. **Rod of Repulsion**- Throws things you shoot away from you. **Switching Rod**- Swap places with the hit atom, as with the spell Swap. **Restraining Rod**- Summons a tentacle from the ground to grasp the target, immobilising them for 20 seconds or until someone helps them. **Wand of Zapping**- Briefly locks up the target's nerves with lightning (it's secretly a classic ss13 taser). </details> They are available to wizards via the new option "Wand Assortment (Bargain Bin)" which only costs a single spellbook point, but gives you an assortment of 6 wands picked at random from this list of new wands and some of the existing ones. If you buy two or more sets of wands (and are wearing the wand belt from the first one) then instead of spawning wands in a belt it will spawn them in a bandolier, which fits into your backpack or can be worn on a suit slot. Wand bandoliers in a suit slot will automatically replace an empty wand you try to fire with a wand that still has ammo in it. Several of these wands' projectiles are now also possibilities from firing the Staff of Chaos (making it more chaotic) and some of them also have their own Magicarp types. Also I made it so that if you animate an animating weapon then it focuses on animating more things instead of shooting its animating bolts at mobs that are already animate. I could do this for more specialty wands too at some point (door wand projectiles don't exactly hurt anyone) but if I do that it'll probably be in a different PR. ## Why It's Good For The Game A good number of these wands come from a downstream antagonist that's essentially a lower-threat wizard. I thought these were all fun or funny effects to have in the game upstream but also not ones that people would typically want to buy as a dedicated spell (or alternately, that would be pretty good as a dedicated spell but quite boring), so instead they're limited use spells that you get in bulk for cheap. I didn't think we'd really want to bulk up the spellbook with several different kinds of themed bundle though (and frankly, they don't share themes), so it's a blind box instead. The bandolier was added to compensate people for buying random wands multiple times, so they can have more of a wand-based playstyle. Now you can spend all of your points on 60 wands (maybe more if you take the gambling trait...) and be a sort of wizard cowboy, or split them among your apprentices, or just leave them everywhere like candy and see whether the crew fuck things up for themselves with their new power I guess. ## Changelog 🆑 add: Adds 16 more wizard wands to the game, which wizards can buy cheaply but randomly, or are available via Summon Magic. add: If a wizard buys more than one set of wands they will receive a "Wand Bandolier" holster which fits in the backpack or, if worn in the suit slot, will automatically exchange an expended wand for a full one. balance: Staffs (and wands) of animation that are animated will try to animate other objects instead of firing at living mobs, which are already animated. balance: Animating a wand of nothing will turn it into a wand of animation (and animate it). balance: The staff of chaos can now do more things. balance: Magicarp now additionally come in Babbling, Frigid, Quantum, and Weightless varieties. Collect them all! /🆑 |
||
|
|
d76d2f5438 |
Laser Gun Update: Deep Lore, Gun Variety, Pew Pew (#93520)
## About The Pull Request Updates the laser gun into four proper subtypes: Standard, Pistol, Rifle and Carbine. <img width="229" height="210" alt="image" src="https://github.com/user-attachments/assets/12c03076-8ebf-4d87-8c98-6a8cce6821db" /> Current sprites are pending a palette change. **Standard:** Functions as you would expect. Same as ever. **Pistol**: Lower charge, 20 force, normal sized, recharges faster. **Carbine**: 15 force, 26 mag, two round burst. Projectiles flight slightly faster. Cannot dual-wield. **Rifle**: 20 force. 40 mag. Two round burst. EMP resistant (not immune). Projectiles fly slightly faster. Cannot dual-wield (not that you need to). All but the rifle can be sourced from cargo. You can also buy the sovl version of the laser gun if you're especially nostalgic. ### Armory Changes The Armory now can potentially spawn either pistols, carbines or standard. The weighting leans closer to spawning carbines and standard as opposed to pistols. ### Lore Dump The laser line of weapons now all have lore. That rich, deep lore that every game needs and is totally not important at all to the meat and potatoes of the game. I'm paid by the hour ($0.00) ### Code Tidying Lasers are old and a total mess code-wise so we've tidied up while we're here. ## Why It's Good For The Game Variety is the spice of life and also some of these weapons could have used a face lift. Especially the laser carbine. Both functionaltiy wise and appearance wise. A bit of randomness in the armory means some rounds might have unique outcomes compared to others. Sometimes, items in cargo don't see particularly much use, so peppering in a few random potential deviations can maybe nudge people to utilize variant gear on future rounds. I'm obsessed with writing too much information. I blame Hatterhat. ## Changelog 🆑 add: Three variants of the laser gun; Carbine (replacing the existing one), Pistol and Rifle! Find it (possibly) in your armory today! balance: The armory laser guns might be different variants of the laser gun, rather than always being the standard. The standard is the same as ever, even if it looks different. add: If you care, the sovl version is available as a goodie. And in the hands of pirates... spellcheck: Lore! LORE FOR LASER GUNS! LOOOORE! Examine laser guns closely and you might learn more about them. balance: The new set of laser guns come with brand new sprites. /🆑 --------- Co-authored-by: StaringGasMask <62149527+Exester509@users.noreply.github.com> |
||
|
|
0204ab8fdd |
Canreach refactor (#93165)
## About The Pull Request ports https://github.com/DaedalusDock/daedalusdock/pull/1144 ports https://github.com/DaedalusDock/daedalusdock/pull/1147 full credit to @Kapu1178 for the juice instead of `reacher.CanReach(target)` we now do `target.CanBeReachedBy(reacher)`, this allows us to give special behavior to atoms which we want to reach, which is exactly what I need for a feature I'm working on. ## Why It's Good For The Game allows us to be more flexible with reachability ## Changelog 🆑 refactor: refactored how reaching items works, report any oddities with being unable to reach something you should be able to! /🆑 |
||
|
|
4b61f5c6a1 |
Removes the random emagged portal spawn and lowers the export price of the monocloning jumperfish. (#93092)
## About The Pull Request The export multiplier for monocloning jumpercable fish has been lowered by an order of magnitude, making each one sell for a value in the ballpark of 200-300 credits each, in-line with a free crate as opposed to... buying a whole crate for free. The emagged fishing portal board has been removed from the treasure chest loot table. ## Why It's Good For The Game **The emagged fishing portal can still be obtained by emagging a fishing portal as usual and intended.** Currently, the ocean portal can spawn in a treasure chest, `/obj/structure/mystery_box/fishing`. It's a time-gated rare item from the ocean portal, which has a rare chance to spawn. The issue with the fishing treasure chest is primarily that one of it's rewards is the emagged fishing portal. Additionally, the treasure chest functions like the christmas tree, one free gift per mind per box. On a decent pop you run pretty good odds of getting the emagged fishing portal. As a result, the fishing portal has been obtained a particularly large number of times, far more than expected based on export data. I know this due to the chart. ### Arcane what do you mean "the chart". I mean the **chart.** <img width="1550" height="274" alt="image" src="https://github.com/user-attachments/assets/82e5dfd6-9f96-478b-b4f1-8259c5d4f905" /> This is a chart of the top most exported items based on all superset, blackbox data. Number one, the monocloning jumpercable, aka `/obj/item/fish/jumpercable`. On current patch, they have an average export value in the ballbark of 2k-3k credits for each fish caught, with a 25% chance to be caught from an emagged portal. As their name suggests, they can clone themselves without a breeding pair, and breed up to a tank maximum of 12 of themselves. These fish make up 4x more export value than all sales across the stock market, and believe me, I *already know* how unilaterally broken the stock market is right now. Keeping these as-is would be extremely unhealthy for game health. This isn't just me being an asshole about balance as usual. **The emagged fishing portal can still be obtained by emagging a fishing portal as usual and intended.** ## Changelog 🆑 del: You can no longer obtain an emagged fishing portal board from treasure chests. You can still, however, emag fishing portals. balance: Monocloning Jumpercable fish have had their export values decreased. Their cloning capacity and electrical output remain the same. /🆑 |
||
|
|
d2f34e33be |
moves abstract_type up to datum, spawners wont spawn them (#92909)
## About The Pull Request moves all implementations (im aware of) for "Im a parent type dont spawn me please" to the datum layer to standardized behavior adds a standerized proc for filtering out "bad" items that we dont want spawning. applies to it the subtype vendor, gifts, and a new spawner and mystery box for a random gun (neither playerfacing) "port" of https://github.com/shiptest-ss13/Shiptest/pull/4621 https://github.com/user-attachments/assets/22f6f0b2-b44e-411a-b3dc-6b97dc0287aa small warning: I dont have EVERY abstract type defined right now but, ive done a good enough job for now. Im tired of data entry rn ## Why It's Good For The Game standardizing behavior. Might be a micro hit to performance however having this lets us not rely on icon state to determine whether something is a parent type and makes it much easier to tell something is a parent type (could be applied further to things like admin spawning menus and things like that). need feedback on if this is actually good for the game. ## Changelog 🆑 add: Soda cans show up in the silver slime drink table. add: Examine tag for items that are not mean to show up ingame. refactor: Standardizes how gifts rule out abstract types. fix: gifts no longer check if something has an inhand, massively expanding the list of potential items. /🆑 |
||
|
|
d74f9ae8d5 |
generic parent type for both sabre sheaths (#92300)
## About The Pull Request puts both the grass and normal sabre sheath types under a shared parent type for shared behavior. considered subtyping the storage datum but it seemed overkill. can do if requested. ## Why It's Good For The Game less copy paste. good if someone wants to add a clay-more sheath for similar (believe that exists somewhere downstream), would have done it myself but no sprites. ## Changelog N/A |
||
|
|
3256f65a9e |
mystery_box_item is now a type of /obj/effect/abstract (#90258)
## About The Pull Request Retypes the object, attaches it to the crate as a vis_overlay, and gives it the correct vis_flag to share the plane. This also means it now layers correctly on multiz, when previously it would show up on the lowest level. ## Why It's Good For The Game /obj/ is not meant to be bloated with stuff that can easily be an effect. Also fixes a bug ## Changelog 🆑 fix: Mystery box items no longer layer on the lowest z_level when in multiz code: mystery_box_item is now a type of /obj/effect/abstract /🆑 |
||
|
|
334589ad25 | Tendril chests and mystery boxes can now be fished multiple times with a 30 minutes cooldown. (#87944) | ||
|
|
58501dce77 |
Reorganizes the sound folder (#86726)
## About The Pull Request <details> - renamed ai folder to announcer -- announcer -- - moved vox_fem to announcer - moved approachingTG to announcer - separated the ambience folder into ambience and instrumental -- ambience -- - created holy folder moved all related sounds there - created engineering folder and moved all related sounds there - created security folder and moved ambidet there - created general folder and moved ambigen there - created icemoon folder and moved all icebox-related ambience there - created medical folder and moved all medbay-related ambi there - created ruin folder and moves all ruins ambi there - created beach folder and moved seag and shore there - created lavaland folder and moved related ambi there - created aurora_caelus folder and placed its ambi there - created misc folder and moved the rest of the files that don't have a specific category into it -- instrumental -- - moved traitor folder here - created lobby_music folder and placed our songs there (title0 not used anywhere? - server-side modification?) -- items -- - moved secdeath to hailer - moved surgery to handling -- effects -- - moved chemistry into effects - moved hallucinations into effects - moved health into effects - moved magic into effects -- vehicles -- - moved mecha into vehicles created mobs folder -- mobs -- - moved creatures folder into mobs - moved voice into mobs renamed creatures to non-humanoids renamed voice to humanoids -- non-humanoids-- created cyborg folder created hiss folder moved harmalarm.ogg to cyborg -- humanoids -- -- misc -- moved ghostwhisper to misc moved insane_low_laugh to misc I give up trying to document this. </details> - [X] ambience - [x] announcer - [x] effects - [X] instrumental - [x] items - [x] machines - [x] misc - [X] mobs - [X] runtime - [X] vehicles - [ ] attributions ## Why It's Good For The Game This folder is so disorganized that it's vomit inducing, will make it easier to find and add new sounds, providng a minor structure to the sound folder. ## Changelog 🆑 grungussuss refactor: the sound folder in the source code has been reorganized, please report any oddities with sounds playing or not playing server: lobby music has been repathed to sound/music/lobby_music /🆑 |
||
|
|
9a3dceda26 |
Fishing in a virtual domain doesn't deplete limited loot anymore (also the treasure chest is no longer anchored) (#86625)
## About The Pull Request I've recently realized that bitrunning fishing spots can steal the limited loot from outside the virtual reality, which sucks. Also Livrah asked me why the treasure chest is anchored, to which I said it's actually an oversight. ## Why It's Good For The Game Fixing stuff. ## Changelog 🆑 fix: Bitrunning fishing spots no longer deplete limited loot from outside the virtual reality. fix: The treasure chest from the beach is no longer anchored to the floor. /🆑 |
||
|
|
ed0093375f |
[NO GBP] Fixes mystery boxes breaking after a single use (#86560)
## About The Pull Request Forgot to set the default value for `uses_left` to infinity when I added the treasure chest to the beach (it still has 18 uses). ## Why It's Good For The Game This will fix #86547 ## Changelog 🆑 fix: Fixes mystery boxes breaking after a single use. /🆑 |
||
|
|
d9168e7254 |
Adds a treasure chest to the ocean/beach fishing spot. (#85276)
## About The Pull Request This PR adds a treasure chest that can be fished from the ocean if you're lucky enough (or have enough explosives or lobstrosities to do it for you). The treasure chest is basically a mystery box (like the ones from the deathmatch) with a couple catches; the treasure chest can be opened up to 18 times in total before breaking down, however, it can only be opened up to 3 times per spaceman, encouraging the player to share it with others. Here the possible loot by the by: - A toolbox containing a master fishing rod, all the hooks and reels, fish feed, an experi-scanner, an aquarium kit and a can of super baits - A box containing a lazarus injector, a cup and a bottle of strange reagent which you can use to revive fish now - A circuit board for a pre-emagged fishing portal generator - A master fishing rod - A can of super fishing baits - A fish case containing Tiziran fish - A fish case containing Syndicate fish - An old, yet fairly strong cutlass - An old laser gun which fires only 5 shots before running out - A crank laser musket - A smoothbore disabler - A surplus bolt action rifle - A ration pack - A can of squid ink - A bottle of aged rum that forces you to switch to the piratespeak language - A money bag with some doubloons inside - A piratespeak manual - Pirate armored coat - Pirate armored hat - A pre-loaded cannon - Four trash cannon balls - Four cannon balls ## Why It's Good For The Game Mystery boxes are fun, from the little fanfare they play to the potential loot they can give, and I had an old treasure chest I had sprited for fun years ago around so I've come up with an entertaining idea. If you think the loot list is a bit too hot, I can cool it down a bit. Also yeah, I wanted to make fish revivable with strange reagent, since you can already do it with lazarus injectors even though using a lazarus injector for this would be a severe waste of mining points. ## Changelog 🆑 add: Added a treasure chest you can rarely fish from the ocean/beach, with loot being a mix of fishing and piratey stuff. add: You can revive fish with strange reagent now. /🆑 |
||
|
|
624e9c7d54 |
replaces the unusable energy cannon in mystery boxes to the new smartgun (#85529)
## About The Pull Request see title ## Why It's Good For The Game It's been a really long time since anyone other than a turret could shoot the energy cannon (free tasers for everyone!!) so it's an entirely useless weapon roll. I'm replacing it with the new smartgun because the smartgun is cool and more importantly you can actually shoot it. ## Changelog 🆑 add: The new smartgun has replaced the unusable energy cannon in mystery boxes /🆑 |
||
|
|
bac55e33fd |
exorcises hardstun weapons + death/poly wands from lootboxes (#84414)
## About The Pull Request exorcises hardstun weapons + death/poly wands from lootboxes pulse weapons are of the taserless variant also all nukeop guns are unrestricted let people have fun bro also removes the enchanted modsuit from said loot ## Why It's Good For The Game getting instantly paralyzed with a ranged gun is not fun, never will be so we just remove those also being able to use the guns you get from an admin shitspawn/deathmatch prop is pretty much a fix??? polymorph wands and death wands are stupid and are just taser++ except they kill you outright (polymorph could make you a rat that would count as dead personally) enchanted modsuit entirely shuts down basically 90% of other players spells which basically invalidates the entire ragin mages map (which sucks anyway) ## Changelog 🆑 balance: removed tasers, the unfirable turret gun, death wand, polymorph wands and the enchanted modsuit from lootbox loot tables fix: lootbox guns should now mostly not have syndicate firing pins so you can actually use them /🆑 |
||
|
|
c88438ea35 |
Removes the locker staff from Ragin' Mages deathmatch (#84060)
## About The Pull Request See title, removes this particular staff from the loot list. ## Why It's Good For The Game Locker staffs only serve to drag out the match unreasonably, while denying everyone involved their time and fun. It's boring to be the person trapped in one having to wait a whole minute to resist out, and it's boring to be the last other person left alive unable to finish the match because you can't find the other guy who is actually stuck in one of the 20 lockers scattered across the arena. ## Changelog 🆑 del: Locker staffs have been removed from the Ragin' Mages deathmatch lootcrate pool. /🆑 |
||
|
|
35114cb487 |
Adds a Wizard-themed map to the deathmatch (#81640)
## About The Pull Request
Deathmatch is severely lacking in HIGH IMPACT MAGIC LARPING. So I added
a big ass wizard arena. The arena itself is based off the wizard den.
Loadouts:
**Wizard:** Standard all-rounder. Got magic missile, jaunt, and
forcewall. Regular gear.
**Pyromancer:** Fire guy. Red robes, fireball, smoke.
**Electromancer:** Zappy guy. Lightning and tesla shock.
**Necromancer:** Is a skeleton. Has Scream for Me and blink.
**LARPer:** Straight from Station & Spessmen. Fake robes and can only
throw lightning and repulse.
**Chuunibyou:** Classic animage. Got chuuni buff and magic cards.
**Battlemage:** Melee fighter. Got some armor and a big hammer with
instant summons.
**Apprentice:** Underpowered until they find a mystery box. Got charge.
**Gunmancer:** Who needs magic when you have guns? Starts with an m1911,
lesser gun summons, and knock.
**Monkeymancer:** Is a monkey. Can summon monkeys and gorillas. Has a
banana.
**Chaosmancer:** Jumbled robes. Starts with a chaos rod. Can rod form
and summon traps for high chaos.
**Funnymancer:** It's just a clown with a banana staff.
The map itself is a pretty standard arena with a long sightline in the
middle. Each participant spawns in their own room complete with a magic
item box. The very southern portion of the ship has a standard mystery
gun box. Soon after the round starts, a hostile gelatinous cube in the
center of the map will break out and attack whoever it sees. Inside its
enclosure is a free death wand. Map has been tested to make sure
deathmatch participants can't escape the deathmatch.
## Why It's Good For The Game
Deathmatch provides a unique opportunity for people to play with
mechanics they will not often get to use. Allowing people to play wizard
for a few minutes shouldn't cause too much harm aside from admin logging
from explosions, which hopefully a fix is in the pipeline for.
## Changelog
:cl:Motho
add: Added wizard-themed deathmatch map.
add: Added mystery wand box.
/🆑
|
||
|
|
466b3df048 |
Refactor removing unused defines. (#82115)
## About The Pull Request Refactors a lot of the unused defines. ## Why It's Good For The Game Refactors a lot of the unused defines. ## Changelog Nothing player facing --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
69a7f56cbc |
Splits ballistic firearms "mag_type" into "accepted_magazine_type" and "spawn_magazine_type", fixing a few funny magazine bugs (#76973)
## About The Pull Request As the title says, mag type has been split into two variable that do different things: Accepted magazine type handles what magazines that gun will accept, type and any subtypes. If spawn magazine type isnt defined, then it will be made equal to accepted magazine type to prevent having to double define magazines on every gun ever. Spawn magazine type is separate from accepted magazine type, spawn magazine type is what magazine the gun will actually spawn with. This exists because there are a few weapons which are made to spawn with special magazines, that can't use normal magazines anymore. For example, the riot dart pre-loaded donk soft pistol can only ever be reloaded with the riot subtype of donk soft magazines at the moment. This isn't typically something people notice because new magazines are usually not a thing people come by with these specific weapons, but its a problem I noticed while coding some weapons. ## Why It's Good For The Game In short, certain weapons (mostly donksoft weapons, but there's a single traitor pistol subtype that spawns with fire ammo) will no longer be limited to the exact subtype of magazine they spawned with, allowing them to use the normal versions of those magazines as well. ## Changelog 🆑 refactor: The mag_type variable on guns has been split between accepted_magazine_type and spawn_magazine_type, allowing weapons to safely spawn with subtypes of their normal magazines without breaking the weapon fix: Several weapons that spawned with special magazines, the riot dart pre-loaded donk pistol for example, will now be able to accept normal donksoft magazines that don't spawn loaded with riot darts. /🆑 |
||
|
|
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. /🆑 |
||
|
|
4599842d7c |
Makes Shake() proc work (#73480)
## About The Pull Request Fixes #72321 Fixes #70388 The shake proc didn't work and hasn't for ages. I remember it having worked at some point, but it was quite a long time ago. I cannot guarantee that the end result here is the same as it was, the reason here being that I have no idea how this proc ever worked in the first place. My limited understanding of the `animate` proc implies that the previous implementation as written would never have acted as you would expect it to, but clearly at some time in the past it did work. A mystery. As a result of the previous, possibly because the proc never _did_ work as expected and just did something which looked vaguely correct most of the time, both the default values and the values people were passing into this proc were completely ridiculous. Why would anyone ever want to pixel shift an object with a range of _15_ pixels in all directions? That's half a full tile! And why would you want it to do this for 25 seconds? So I also changed the values being passed in, because you really want pretty small numbers passed into here most of the time. Here's a video of everything that vibrates: https://www.youtube.com/watch?v=Q0hoqmaXkKA The exception is the v8 engine. I left this alone because it seems to try and start shaking while in your hands, which doesn't work, and I don't know how to fix that. This has potentially _also_ never worked. ## Why It's Good For The Game Now you can see intended visual indicators for: - Lobstrosities charging. - Beepsky being EMPed. - The Savannah Ivanov preparing to jump. - The DNA infuser putting someone through the spin cycle. - The mystery box admin item I had no previous idea even existed (fun animations on this one). - Anything else which wants to use this proc to create vibrating objects in the future. ## Changelog 🆑 fix: Lobstrosities and Tarantulas will once more vibrate to let you know they're about to charge at you. fix: The Savannah Ivanov will once more vibrate to let you know it's about to jump into the air. fix: The DNA infuser will now vibrate to let people know that it's busy blending someone with a dead animal. /🆑 |
||
|
|
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> |
||
|
|
e9cff525dc |
Refactors Pirates into Pirate Gangs, Adds the Psyker-gang as new pirates (#71650)
## About The Pull Request ### Refactor Pirate gangs are now datumized for extendability, custom dialogue, etc. ### Psyker Gang 🧠 Psyker-gang Members are pirates who are... yes, Psykers. They're on a gore-binge and need some money for more hits of gore! - Gore autoinjectors, filled with dirty kronkaine. Don't overdose, you'll go splat. - Psykerboost armor, reactive armor that refreshes psychic abilities. Given to the leader. - [x] @Fikou is making the map :D ## Why It's Good For The Game God I fucking love variety also now we can add as many different pirates as we so desire <details> <summary>Spoiler warning</summary>  </details> ## Changelog 🆑 Tralezab code, Fikou's map, PigeonVerde and Halcyon for sprites! add: Psyker-gangers are new pirates refactor: refactored pirate code so we can add more in the future /🆑 Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> |
||
|
|
9dab26371c |
Throws a bunch of parenthesis around to ensure dear Aunt Sally is always properly excused. (#71281)
Similar vein to #37116 This is supposed to be standard, yet here we are. SHOULDN'T change anything, but there's likely something out there that's bound to behave different because of it. These were done manually, regex to find things that MIGHT need to be corrected; `^#define.+\+((?!\)).)*$` `^#define.+-((?!\)).)*$` `^#define.+\*((?!\)).)*$` `^#define.+\/((?!\)).)*$` (yeah that's a lot of stuff.) `^#define.+%((?!\)).)*$` `^#define.+SECONDS((?!\)).)*$` `^#define.+MINUTES((?!\)).)*$` |
||
|
|
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>
|
||
|
|
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 |
||
|
|
61f1c5ee19 |
[MDB IGNORE] makes ebows and kinetic accelerators share a parent (#66247)
Moves recharging functionality from kinetic accelerator to /obj/item/gun/energy/recharge base type |
||
|
|
f8794c441b |
Mystery boxes no longer cut off each other's audio (#65655)
I put mystery boxes on their own sound channel so they could cancel out the full music clip when someone took an item from them, but this causes issues because only one box could be playing a sound clip at a time, and they'd cut each other off if there were multiple. Now they reserve their own channels for their duration, then release them, so they can all play at the same time. Accordingly, their sounds now fall off quicker so having multiple of them nearby won't destroy your ear drums. |
||
|
|
36f4395a6e | replaces uses_integrity with just setting a very high integrity (#64873) | ||
|
|
33dd1d811b |
Adds the mystery box (#64061)
A compliment to my recent root beer PR, since I've been on a retro CoD Zombies kick lately, this PR adds a new admin structure that randomly rolls an item and presents it to the player like the mystery box from... well, CoD Zombies. The music that plays while selecting is The Ragtime Drummer by James Lent, sourced from freemusicarchive. There's a base version that can spawn any item that the christmas tree/santa's bag can spawn, and then there's a subtype that draws from the Summon Guns list only. If you want, you can use the base type to generate a list of any subtypes of a given path, or you can edit the valid_types list to only consider specific types of atoms. |