mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-06-05 06:05:58 +01:00
ed94de4ddf7edad8694badefc577392e0f762bf5
99 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
8c1e35e1c0 |
Refactors mind language holders into non-existent, fixes new languages being deleted on species swap + tests (#76612)
## About The Pull Request This PR refactors mind language holders into non-existence As a result, `update_atom_languages` is no longer necessary Mind-bound languages are transferred via `/mind/proc/transfer_to` Species changing no longer deletes and re-creates the mob's language holder, allowing them to keep any languages they have. Species languages are sourced from `LANGUAGE_SPECIES` now, meaning they are removed when they change species. If the mob is not a human with a species datum, these are effectively just atom level languages. Makes a bunch of unit tests to ensure language transfer over certain events works as intended ## Why It's Good For The Game Mobs with minds having two independent language holders results in a good few bugs, and simply doesn't make sense when we have sources (`LANGUAGE_MIND`). Instead of tracking two language holders, we can simply use sources better and only track one. This means that the language holder you start with is your language holder, period. It doesn't get deleted or re-instantiated or whatever. ## Changelog 🆑 Melbert refactor: Refactored language holders, making species changes not delete all of your known languages /🆑 |
||
|
|
48cc57010d |
Various spider fixes (#76528)
## About The Pull Request Fixes #76484 Then I noticed some weird stuff which slipped through the PR and poked at that too. - Spiderlings and Spiders once more have names ending in (###) - Removed an unused property on Spiderlings. - Rewrote the descriptions for a bunch of web-abilities and web-objects to be clearer and have better capitalisation. - Refactored the "Web Carcass" ability to not extend from "lay web" as it didn't need to perform most of that behaviour. - Also I renamed it and made the description give you a hint about why you would want to instantly spawn a statue. - The web effigy now despawns at the same rate as the ability cools down so you're not dumping spider statues all over the place. - I made spiderlings move at about the same speed as humans except if they're on webs in which case they're still pretty fast. To be honest I am not certain an instant statue spawning button is great to begin with and I didn't even know it was added to the game but I am not interested in messing much with the balance for now. This made me look at spiderlings enough that I'm going to try and make a new sprite for them that isn't awful. ## Why It's Good For The Game Lets you differentiate individual spiders a little bit. Makes usage of abilities clearer. ## Changelog 🆑 balance: Guard spider web statues despawn as the ability comes back off cooldown. balance: Spiderlings now only move at light speed if they're on webs, stay safe little guys. fix: Spiders once again have random numbers after their names. /🆑 |
||
|
|
5fdb5fa0f0 |
Mob spawners now return their created mob after create_from_ghost (#76371)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may not be viewable. --> <!-- You can view Contributing.MD for a detailed description of the pull request process. --> ## About The Pull Request create_from_ghost() now returns the body it produces. This should fix the pirate/fugitive ghost orbit notifications, since they expect to have a mob returned by this proc. Since the mob they expect to be returned is used as the subject for the ghost orbit popup, the popup would have no source and end up being blank. <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> ## Why It's Good For The Game Players selected to play pirate/fugitive will now have a functioning orbit popup. <!-- Argue for the merits of your changes and how they benefit the game, especially if they are controversial and/or far reaching. If you can't actually explain WHY what you are doing will improve the game, then it probably isn't good for the game in the first place. --> <!-- Both 🆑's are required for the changelog to work! You can put your name to the right of the first 🆑 if you want to overwrite your GitHub username as author ingame. --> <!-- You can use multiple of the same prefix (they're only used for the icon ingame) and delete the unneeded ones. Despite some of the tags, changelogs should generally represent how a player might be affected by the changes rather than a summary of the PR's contents. --> |
||
|
|
64eae49042 |
Replaces the Reaper Scythe with the Vorpal Scythe (also the Morbid trait) (#75948)
adds the Vorpal Scythe, a special chaplain null rod variant, replacing the Reaper Scythe, a not so special null rod variant. When you choose the vorpal scythe, it comes as a shard that you implant into your arm, similar to a cursed katana. Once implanted, you can draw it at any time like an arm implant. However, sheathing it again presents some problems. (Also, implanting the organ gives you ``TRAIT_MORBID``, which I'll explain in a bit) The Vorpal Scythe has 10 force, one of the weakest null rod variants for force that isn't a joke null rod. However, it has exceptional armor pen and also has 2 tiles of reach. So quite unique. It also has a special beheading ability when you right-click someone. This borrows some code from amputation shears, functioning pretty similarly, except with a few additional ways to speed up the action and restrictions. (It takes 15 seconds baseline to behead someone standing and conscious, and speeds up or slows down based on factors such as incapacitation and whether or not our scythe is already empowered) When you successfully behead someone with a mind, the vorpal scythe gains 20 force and can be safely stowed and drawn for 2 minutes. Performing more death knells like this will reset the timer. If it has not performed its 'death knell', or you haven't hit a living mob, then it will cause severe damage to you if you ever try and stow it (or its forced back into your arm). Just hitting a mob with the scythe will sate it for 4 minutes. Unless it is a non-player monkey. Horrible things. Just hitting mobs does not reset the timer on empowerment. What this means is that the chaplain may be more hesitant to simply draw their weapon on people. It also means that potentially, the chaplain will not always have magic immunity, since they may end up stowing the weapon away and be reluctant to draw it on a whim without either taking damage for sheathing it without hitting something, or dealing with having one less hand up until they can. While empowerment only happens when you behead mobs with a mind, beheading monkeyhumans and other mindless humans subtypes causes their heads to become haunted! It's mostly harmless and largely just SpOoKy. We don't want heads with actual players in them to go floating off to space. (Does not work on monkey heads for sanity reasons) When you have the Morbid trait, you think creepy stuff is cool and hate saving peoples lives. You get a mood boost from graverobbing, autopsies, dissections, amputations (including beheadings with the scythe and amputations with the shears) and revival surgery. However, you get a mood penalty when you tend wounds on the living, as well as a hefty penalty when you perform CPR or defibrillate someone. I was thinking Victor Frankenstein when I was choosing which actions had an associated moodlet, so anything that I might have missed would be appreciated. You also count as potentially cool with regards to haunted objects. Ghosts think you're neat. (Revenants probably will still kill you if they had the chance) |
||
|
|
803658dc30 |
Deadchat Announcement Variety Pack 2 and also some fixes to other popups (#76053)
## About The Pull Request This adds ghost orbit popups for the following: - Macrobombs (or stacked microbombs) being triggered. - HFR Meltdowns. - Living players about to be gored by an emagged organ harvester. - Nuclear devices being armed. - Doomsday devices. - Blob hosts bursting. This also modifies the following ghost orbit popups: - Toy hot potatoes will no longer cause a popup when armed. - Normal spider eggs will not flash the byond window, only special egg types. ## Why It's Good For The Game Gives more gathering spots/information to deadchat. Let no entertaining moment in this game go unobserved. Spider eggs flashing your window for every single egg produced makes alt-tabbing suck. I saw some guy on the forums complaining about it and thought "huh yeah I guess he's got a point that pisses me off too" so here we are. ## Changelog 🆑 Rhials qol: Basic spider eggs no longer flash the byond window when ready to hatch. qol: Toy hot potatoes no longer give a ghost notification. qol: Deadchat will be notified in the event of an imminent macrobomb detonation, HFR meltdown, organ harvesting, qol: Deadchat will be notified when a nuclear/doomsday device is activated, as well as when a blob-infection bursts. /🆑 |
||
|
|
abc0820466 |
Gives Fugitive Hunters credible IDs, access restricts the hunter shuttles, minor hunter shuttle improvements (#75913)
## About The Pull Request This standardizes fugitive hunter IDs, making all hunter packs use the same subtype and giving them to hunters who would spawn with no ID at all. The badass flaming ID color that the OG Bounty Hunter team got are now the standard for fugitive hunter IDs. Additionally, these IDs now come with a radical skull trim. (Spacepol Officers don't get the badass flaming skull ID, and instead get a more modest Police Officer ID). **These IDs come with access, too. Airlocks, bolt buttons, shuttle controls, and shutters on all of the hunter shuttles now require a hunter's ID to operate.** While I was in the area doing mapping stuff to get the accesses in place, I made a few other very minor changes to the shuttles. These include: - The Bounty Hunter shuttle now has an oxygen dispenser. Two walls have been moved to make space. - The Russian Hunter shuttle now gets enough oxygen tanks to share with everyone. - The Psyker Hunter spawners now have proper spawner menu text. This was due to duplicate-but-not-really subtypes existing, and me mistakenly putting the wrong ones there in a previous PR. - The cut ai wire helpers from the Russian/Psyker shuttles have been extended to the Bounty/Spacepol shuttles. - Every hunter shuttle now has a shuttle pinpointer on it somewhere, and is no longer exclusive to a single Bounty Hunter's loadout. ## Why It's Good For The Game Some of the hunter IDs would spawn without trims or coloration, and some hunters wouldn't spawn with IDs at all. Now, everyone gets a credible, cool-looking ID that lets everyone know what you're here to do at a glance. One of these is a crazed larper with an unregistered firearm, the other is a certified bounty hunter. As for the hunter access, it's pretty nonsensical that anyone can just walk into the hunter ship and set up shop. At least the pirates get turrets! Not to mention, it's hard to balance or give hunters new equipment in good conscience when their entire domain is public-access and anything they can't carry is considered forfeit to the crew. Now it can be used as a base of operations, storage area, etc. more securely. Locking down the shuttle with accesses isn't going to stop a determined gamer with a toolset, but it'll at least make it more interesting and an actual risk. If the fugitives want to try and loot/hijack the shuttle, it will require the effort of taking down one of their hunters first. While hunters stand out for the differences/imbalances between each group, I don't see the shuttle pinpointer as something that contributes positively to the OG bounty hunter's uniqueness. There's no reason why the other hunters shouldn't also be able to track their ship. |
||
|
|
a1d58490c5 |
Turns Changeling Headslugs into a Basic Mob (#75601)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may not be viewable. --> <!-- You can view Contributing.MD for a detailed description of the pull request process. --> ## About The Pull Request Short and simple, just converts the changeling's headslug (that ability they get that lets them infest another body) into a basic mob. Also touches up some of the code, as well as split up the code such that the headslug resides in the basic mobs folder, while the eggs are in the changeling's antagonist folder, rather than one megafile for both. No AI because this is 100% a player-controlled mob, it never exists in any other context. No UpdatePaths for the same reason as well, this shouldn't (and really doesn't) exist on maps because its sole purpose is player-driven. <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> ## Why It's Good For The Game Knocks another one off the list, potentially clears up some janky code with how this operated and just beautifies it overall. I also standardized the name "headslug" in any applicable context because the name "headcrab" is quite confusing. Some other code still refers to it as headcrab/crab, but that's whatever, at least the paths are a-okay now. Also opens the door in case someone really wants these to be AI-powered? That sounds really weird and I don't really support that idea, but it's indeed possible.  Grow and regrow, the life cycle. <!-- Argue for the merits of your changes and how they benefit the game, especially if they are controversial and/or far reaching. If you can't actually explain WHY what you are doing will improve the game, then it probably isn't good for the game in the first place. --> ## Changelog <!-- If your PR modifies aspects of the game that can be concretely observed by players or admins you should add a changelog. If your change does NOT meet this description, remove this section. Be sure to properly mark your PRs to prevent unnecessary GBP loss. You can read up on GBP and it's effects on PRs in the tgstation guides for contributors. Please note that maintainers freely reserve the right to remove and add tags should they deem it appropriate. You can attempt to finagle the system all you want, but it's best to shoot for clear communication right off the bat. --> 🆑 refactor: Headslugs (the really small slug-like changeling form) are now basic mobs. They only wander around aimlessly now instead of attacking corpses all the time, and examining will let you know what type. Should probably still smash them before they suddenly gain sapience... /🆑 <!-- Both 🆑's are required for the changelog to work! You can put your name to the right of the first 🆑 if you want to overwrite your GitHub username as author ingame. --> <!-- You can use multiple of the same prefix (they're only used for the icon ingame) and delete the unneeded ones. Despite some of the tags, changelogs should generally represent how a player might be affected by the changes rather than a summary of the PR's contents. --> |
||
|
|
81ffc3aa01 |
Fugitive hunters gather candidates with a deadchat poll (#75485)
## About The Pull Request Fugitive Hunter spawning now works a lot more like it does for Pirates. Rather than just using the spawners, it collects candidates from a ghost poll, and leaves the remaining spawners to be used if any are left. ## Why It's Good For The Game The only way this event gathered candidates was through the notify_ghosts that hunter spawners threw on Initialize(). This easily flies under the radar (and I think also stopped working after lazyloading was implemented??), contributing to how infrequently hunter rolls are taken. The hunters are an important part of fugitives as a whole, so making sure they're properly filled out is good. Closes #74625. ## Changelog 🆑 qol: Fugitive hunters now get a deadchat poll and notify deadchat properly. /🆑 |
||
|
|
2aaafd9a67 |
Replaces the syndicate corpse Legions can drop with one without a MODSuit (#75700)
## About The Pull Request This is part of a pass I'm working on doing where I go through and remove instances of antag gear outside of their normal context. This is mostly going to involve replacing space/Lavaland ruin gear with something close to the same power level but not distinctly something only antags should be able to get. I want to keep ruins rewarding but I don't want explicit antag gear to be something you can obtain without needing an uplink. The first part of this is me removing the MODSuit from the syndicate operative corpse. The new one drops a turtleneck, a syndicate gas mask, and gripper gloves. ## Why It's Good For The Game It's my opinion that antag gear should probably stay in antag hands unless you manage to kill one or steal an uplink. The main impetus for this was a discussion I had a while back about how blood red hardsuits used to _just_ be an antag thing. I kind of miss that general feeling of paranoia that came from seeing someone wearing it, as opposed to seeing it these days and just thinking "Yeah, it's probably someone who got it from space". In this specific instance, Syndicate MODSuits are pretty strong anyway and, regardless of the low odds of getting one, I really don't think it should be available as loot off a fairly easy-to-kill mob. ## Changelog 🆑 balance: Syndicate corpses dropped from killing a Legion no longer come with a MODSuit. /🆑 |
||
|
|
419dd2b754 |
Spider Infestation Balance Rebalance Expansion Part 1 (#75204)
## About The Pull Request https://hackmd.io/dxhPOOdRRKW7siqPbpfmYQ?view The HackMD goes in-depth into what this PR is about ## Content ### Ambush Spider   ### Scout Spider    ## Tangle    ### Spiderlings    ## Why It's Good For The Game Currently, spiders have plenty of issues that make them a very 2d mentional antag they kill,die, and respawn which is boring and leads to a bunch of balance issues for their current design this PR both fixes the current issues spiders have and adds more depth into the antag. ## Changelog 🆑 add: Added 3 new spider types add: Added more spider abilities balance: Rebalanced spiders fix: Fixes spiderlings having density /🆑 --------- Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
51202c962e |
Frees free golems (#75249)
## About The Pull Request The autolathe free golem shells created on the free golem ruin now create free golems rather than servant golems. On the backend, this was done by delegating the responsbility for what to do with the "owner" to the spawned subtype. Now the three golem ghost spawners are: - Default, which creates a normal free golem. - Adamantine, the "leaders" on the free golem ruin, who get special vocal cords. - Servant, which enslaves itself to whoever finished building the shell. Previously the servant subtype did not do anything at all, but now it holds all of the relevant behaviour and the other two simply don't care who their creator was. ## Why It's Good For The Game Makes item does what it was supposed to, not sure how long it has been broken but it has been a while. Makes raiding free golem ruin for autolathe design create free rather than loyal golems, which could backfire. Free golems constructed in the ruin by other free golems are no longer forced into a hierarchy, which can be a good or bad thing depending on the temperament of whoever made them but might reduce the incidence of one guy ordering everyone else to tide cargo. |
||
|
|
4c5254d47a |
Removes ELITE SYNDICATE MODSUIT from Space Ruin (#75213)
## About The Pull Request - Removes an ELITE SYNDICATE MODSUIT SPAWN from infested_frigate.dmm - Removes a Combat Defibrillator from infested_frigate.dmm - Removes Dart Pistol from infested_frigate.dmm ## Why It's Good For The Game We will never learn. Space Loot should not be put in control of easily cheesable simplemobs, and we shouldn't be straight up putting NUKIE STUFF in Space ## Changelog 🆑 Melbert del: You can't get an Elite Syndie Modsuit (or combat defib, or dart pistol) from Space Ruins /🆑 |
||
|
|
1a918a2e14 |
Golem Rework (#74197)
This PR implements this design document: https://hackmd.io/@Y6uzGFDGSXKRaWDNicSiEg/BkRr176st Put briefly, this will remove every existing golem subtype and consolidate golems into a single species with cool new sprites. NOT implemented from that PR is the ability to eat Telecrystals, I couldn't come up with an appropriate visual that can stack with the existing ones, but that should be a reasonably trivial add for a future artist & developer. New Golems have a food-based mechanic where their hunger decays pretty quickly and can only be replenished by eating minerals. They start moving slower as they get hungrier, until eventually they become completely immobilised and need to be rescued. Eating different kinds of minerals will visually change your sprite and give you a special effect in a similar way to old golems, but temporary. While transformed, you can't eat any other kind of mineral which would transform you (but can still consume glass). To see the full list of effects, look at the hackmd above. In service of these sprites working I have refactored the `species/offset_features` feature by killing it and delegating that responsibility to limbs instead. Rather than applying an offset to items due to your species, it is due to your weird head or arms. This makes overall more sense to me, but it inflates the code changes in this PR somewhat. It doesn't make a lot of sense to atomise unfortunately because that code also seemed to be entirely unused until I tried to use it in this PR, so you wouldn't be able to tell if my changes broke anything. I might make a downstream sad by doing this. All of the actual numbers in this PR are made up and only loosely tested, it will need some testmerges to gather feedback about whether it sucks or not. Other relevant changes: I reworked how bioscrambling works based off bodypart bodytypes, to automatically exclude golem limbs in either direction. There's really no way to have those work on humans or vice versa. Organs still fly though. |
||
|
|
199aa000d3 |
Demotes Psyker Pirates to Bounty Hunter Duty (#75031)
This PR demotes the Psyker-gang from a pirate team to a fugitive hunting team. For more information on Psyker pirates, please refer to #71650. Stuff this also does in the process: - Gives fugitive hunters their own subfolder in the fugitives antagonist folder, moves some of their stuff into hunter-specific files rather than interlacing it with the rest of the fugitive code. - Moves the hunter backstories to defines, to make reading things easier while I made this change. - Exhaustively moves everything related to psykers from being pirate-oriented to hunter-oriented (typepaths, locations where stuff is defined, etc. There should be nothing left behind related to psykers in anything pirate related). (Tell me if I missed anything somehow). They still get their ship (they even get their own custom psyker-friendly prisoner capsule). They still have a bunch of lethally chambered firearms. They're the same gunrunning nutcases they were before, just as bounty hunters. To assist with basic tasks such as "getting to the station" or "figuring out who the fuck we're supposed to be kidnapping", the psykers have "acquired" a Seer to assist them. They can _try_ to coordinate the psykers and lead them through situations where their impairments put them at too great a disadvantage. If you're one of the psykers, make sure to keep this guy alive at all costs! Why are they called Shikaris instead of hunters? Mariam-Webster says it's a Hindi word for some kind of hunter/tracker, and it sounded like something a bunch of space-junkies would call themselves because they think it sounds cool. They now also come with a slightly different motivation, now that they can't directly threaten the crew for money. Psyker hunters now arrive tasked with a dirty kidnapping job, payment rendered in GORE. ## Why It's Good For The Game Psykers aren't up to the challenge of being pirates. They're bogged down by a number of fundamental issues that render them unable to do anything expected of pirates. As it currently stands, they present about as much threat as you would expect from three blind junkies with guns. Removing them wholesale would be kind of lame. They can function as a bunch of chaotic-neutral gun-toting space-maniacs, but for the purposes of gameplay, keeping them as pirates would be a waste of their talents. Moving them to a lower-stakes role not only moves them to a niche they are more capable of filling, but gives players a more lax environment to get a grip on playing psyker without being overwhelmed. Giving them a seeing-eye role should bring a more unique dynamic to how psykers are played (that is, some semblance of organization rather than blind flailing), and should help get over the mechanical hurdles of being a psyker until better solutions can be made. It shouldn't be too big of an impact on balance considering the psyker gang only has three spawns, while most hunter packs have 4+. |
||
|
|
fe1e9706c1 |
Adds a game log for enslaving (#75038)
## About The Pull Request A mob being enslaved to another is now logged in game logs. This hits sentience potions, guardians, and Golems. This helps admins know through logs who made/used what. ## Why It's Good For The Game I was told that it's pretty hard to tell who made Golems because this type of info isn't logged, so you can't check it post-round. This should help admins with that. ## Changelog 🆑 admin: Enslaving mobs is now logged in game.log /🆑 |
||
|
|
ed8054d82a | Adds a prisoner transport space ruin (#74418) | ||
|
|
4c48966ff8 |
Renames delta time to be a more obvious name (#74654)
This tracks the seconds per tick of a subsystem, however note that it is not completely accurate, as subsystems can be delayed, however it's useful to have this number as a multiplier or ratio, so that if in future someone changes the subsystem wait time code correctly adjusts how fast it applies effects regexes used git grep --files-with-matches --name-only 'DT_PROB' | xargs -l sed -i 's/DT_PROB/SPT_PROB/g' git grep --files-with-matches --name-only 'delta_time' | xargs -l sed -i 's/delta_time/seconds_per_tick/g' |
||
|
|
9e11f73136 |
Lavaland Monster Sprite Update (#74299)
Updates most Lavaland mob sprites, merges some icon files and adjusts the pathing. ## About The Pull Request Updates Most Lavaland Mob Sprites with work provided by Sheets. Merges, splits, and moves a few icon files and icons to adjust for the new icons. Repaths the dmi locations and pixel shifts for the adjusted sprites. Examples:    ## Why It's Good For The Game Better quality sprites are better to look at. Putting sprites that are the same type in the same file is much saner. ## Changelog 🆑 imageadd: added new lavaland sprites, moved some sprites to a new location, adjusted pixel shift for the updated sprites, adjusted the name of some sprites. /🆑 --------- Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> |
||
|
|
966b8e5fd8 | March into Mapness: Meateor (#74070) | ||
|
|
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. /🆑 |
||
|
|
0e70a14d24 |
Adds The Sturdy Shako (HoS Hat) (#74277)
## About The Pull Request Adds a new craftable HoS shako, made from the standard peaked cap and some plasteel and gold.  Moves the HoS cap into a subtype `/obj/item/clothing/head/hats/hos/cap` to avoid catching the beret in the crafting recipe, the base type `/obj/item/clothing/head/hats/hos` is now a generic subtype which should never exist. (Yes there's a TF2 reference included with the hat) ## Why It's Good For The Game Adds an additional level of style for an HoS willing to put a little effort into gathering the required materials. As it is crafted as a one-to-one trade with another headgear there is no additional spare headgear introduced. ## Changelog 🆑 add: The Nanotrasen Costuming Department has released specifications for how to convert the Head of Security's cap into a shako. /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> |
||
|
|
84ab57cad0 |
Traveller's rest and prey pod fixes (#74279)
## About The Pull Request - Traveller's rest had two airlock cyclelinks that did not work, as one of them was on a windoor, so I have removed them. Not playerfacing. - The mob spawner spawned without clothes and runtiming, as instead of an outfit, it had the roboticist's jumpsuit added. I have made a new outfit and used that in a new spawner. Might be too specific of a spawner though. - I have also added a dedicated roboticist spawner, which uses a full outfit. I originally wanted to use this one, but I realized, making this spawn with robotics ID and gear is a pretty big balance change, so I elected not to use that, but I have added it anyways, as it should be useful in the future (and I have already made the sprite). ### Mapping March Ckey to receive rewards: N/A ## Why It's Good For The Game Less warnings during initialization. ## Changelog 🆑 fix: the roboticist in the prey pod now has clothes as intended /🆑 |
||
|
|
83a1ea9f82 |
Fixes infinite ghost role spawners not being infinite (#74090)
## About The Pull Request I love it when we add something and we have like three PRs around the same time touching the same code and none of it conflicts, it's awesome, believe me! Adds the `!infinite_use` to the other check that checked the uses left, to ensure that it still allows infinite spawners to remain infinite. ## Why It's Good For The Game Code that works is always good for the game. ## Changelog 🆑 GoldenAlpharex fix: Ghost role spawners that are set to have infinite uses no longer run out of uses. /🆑 |
||
|
|
4d0125d232 |
Fixes ghost role spawners not allowing you to spawn as more than one ghost role per round (#73986)
## About The Pull Request Turns out https://github.com/tgstation/tgstation/pull/73833 happened before my PR was merged, and somehow miraculously didn't conflict with it. However, it still made it so the ckey was now null, and the way that Git handled the conflict, made it so the variable was now at the wrong spot, and now it was null. Fun times. ## Why It's Good For The Game People gotta be able to spawn in from other spawners, that's the whole point. ## Changelog 🆑 GoldenAlpharex fix: Fixes ghost role spawners not allowing you to spawn from more than one ghost role per round. /🆑 |
||
|
|
1c9990eba4 |
Fixes the issues with ghost role spawners being able to spawn userless bodies (#73636)
## About The Pull Request Turns out there was no verification to ensure that you weren't already in the process of trying to join a ghost role, when clicking on a ghost role spawner. That resulted in people being able to double-click on a spawner and basically, trying to spawn twice... Or thrice... Or even more than that if they're fast. Of course, that's not a good thing, so I made it so you can only try to spawn one time at a time, which includes only getting one prompt at a time. That includes ALL spawners, because I know that bug will otherwise pop up at some point from someone thinking they're clever. I added a CRASH() for the handling of ckey-less ghosts, in case someone tries to do another subtype that somehow manages to bypass all of the checks I already added. That way, they'll know if they fuck up. I also made a second uses check considering there's stoplags in the is_banned() check. Fixes https://github.com/tgstation/tgstation/issues/73619. ## Why It's Good For The Game Having mindless bodies is just not very cash money and it can break spawners to the point of making them go to negative amounts of uses, which isn't very cash money. ## Changelog 🆑 GoldenAlpharex fix: You should only be able to spawn as one ghost role at a time. Close the prompt if you want to spawn as another one. Begone soulless randomgen humans! /🆑 |
||
|
|
06788d6f9d |
Fixes pirates and starfury assailants transferring minds (#73833)
## About The Pull Request Same issue as before, these skipped the spawn step and snowflaked their own creation process. So I split off the create part of attack ghost so these could share. Fixes #73823 , may fix also #73822 but I don't *think* it will, whatever changed spawners a few months ago is a little sus ## Why It's Good For The Game Changeling pirate bad ## Changelog 🆑 Melbert fix: Fixes pirates and starfury assailants keeping minds of past lives /🆑 |
||
|
|
10a0bc88dc |
Broodmothers can guesstimate how grown their eggs are (#73724)
Midwife Spiders (the egg laying ones) can now double-examine their eggs to see an approximation of how fully grown a given set of eggs are. This should make the first 5-10 minutes of playing Broodmother slightly less nerve-wracking. Knowing whether or not your eggs are almost ready can be very important in deciding whether to fight or risk relocating when John Maintcrawler accidentally opens the airlock to your nest. |
||
|
|
8f5b2c75db |
Allows mob spawners to be infinite (#73726)
## About The Pull Request Gives a more 'proper' way for mob spawners to be infinite than just "set a very large number". ## Why It's Good For The Game Useful for admins ## Changelog not really player facing |
||
|
|
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 |
||
|
|
4a7fa58c9f |
Fixes ghost roles keeping antag datums (#73568)
## About The Pull Request I made it so mob spawners transfer existing minds because of golem shells but ghosts have minds on occasion. Disassociates mind before spawning from ghosts. ## Why It's Good For The Game Wizard golems Fixes #73577 ## Changelog 🆑 Melbert fix: Ghost roles from spawners keeping antag datums /🆑 |
||
|
|
2048cea969 |
Don't print a misleading message when not picking a spider. (#73483)
## About The Pull Request Fixes #73468 The admin message in `mob_spawn/ghost_role/attack_ghost` was warning admins any time a ghost role spawner did not create a mob, however clicking a spider egg opens a radial menu. Neglecting to choose one of the options (and closing the menu) does not return a mob, and was implying that some kind of error occurred when this is actually expected behaviour. Also as noted in the comments this probably needn't message admins in the first place, we now log it as a crash instead. ## Why It's Good For The Game We shouldn't print a log message in admin chat for expected behaviour. Logging changes will help diagnose if this was masking an _actual_ bug. ## Changelog 🆑 fix: Clicking a spider egg and then closing the radial menu won't print a message in admin channel informing admins that the egg didn't spawn anything. /🆑 |
||
|
|
e8d209c6f4 |
Fixes runtime in golem body swap, Fixes some hard deletes assocaited with golems and mind masters (#73373)
## About The Pull Request Fixes #73368 Golems didn't mind transfer on body swap until after the body was finished creating, this created an issue as golems also did mind assignment business while creating the body. So the `mind.enslave_to_creator()` part runtime error'd and caused the create to fail, which in turn caused the shell to not be consumed. While sorting this out, I noticed that shells and golems hold a hard reference to their owner. Yep, hard deletes. Changes mind `enslaved_to` to a weakref, changes golem `owner` to a weakref, straight up removes golem `owner` tracking on species because it was ONLY used for card board golems when it could've just grabbed mind master ## Why It's Good For The Game No more infinite golem shells ## Changelog 🆑 Melbert fix: Transferring golem shells no longer make you a free man and also results in infinite golem shells fix: Servant golems are considerably less free fix: Fixes some hard deletes related to mob minds being enslaved to other mobs /🆑 |
||
|
|
10f6825ae3 |
Updates policy to better warn players for any existing antagonist policy (#73408)
# Don't merge this without leading the headmins know so they can update the server configs ### For headmins: The following roles need to be updated: - "Obsession" -> `/datum/antagonist/obessed` - "Heretic" -> `/datum/antagonist/heretic` (Though this one will still work, change it to message them on spawn) - "Headslug Changeling" -> `/datum/antagonist/changeling/headslug` - "Pyroclastic Anomaly Slime" -> `/datum/antagonist/pyro_slime` (Though this one will still work, technically, change it to message them on spawn) ## About The Pull Request So, we have this whole system in the code to allow all mob typepaths, species typepaths, and even antag datum typepaths to have a set policy But we like, don't use it? For some reason we rather set a million `get_policy` calls than use this. They're all stuck in the policy verb and not sent to the player in any obvious. (Also, it's super fragile, which I hate. Change the typepath and the policy silently fails. Maybe someone can change that afterwards) This PR updates that. All antag datums will check in `on_gain` for policy to show to the player if there's any. It doesn't solve the entire issue. Mob policy and species policy is not conveyed to the player in any way BESIDES the policy verb which no one uses. So people have no idea that it's a thing. But it helps a bit. ## Why It's Good For The Game Better ways to convey to players how they should be playing. Also Valentines day, because... it's crazy. ## Changelog 🆑 Melbert config: Policy.json config got updated. The following values need to be updated: config: "Obsession" -> /datum/antagonist/obessed config: "Heretic" -> /datum/antagonist/heretic config: "Headslug Changeling" -> /datum/antagonist/changeling/headslug config: "Pyroclastic Anomaly Slime" -> /datum/antagonist/pyro_slime config: ALL antags in the policy.json file will now get notified of any existing policy set by the admin team, rather than only a handful. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> Co-authored-by: Tim <timothymtorres@gmail.com> |
||
|
|
cbbf7b3613 |
Basic Mob Spiders III: Sgt. Araneus is no longer a bat (#73350)
## About The Pull Request This PR converts giant spiders into basic mobs and resultingly fixes #37793 They _should_ have the same behaviour as their simple mob versions although I can't verify that their movement speeds are _exactly_ the same. It should at least be pretty close. A quirk of spiders is that they had a pretty large `move_to_delay` which made them slow in the hands of AI (because it would just pause for ages between taking steps) and faster in the hands of players, and they often appear in both forms so I had to implement this as a speed modifier based on player control. Additionally this is the first basic mob which can be set on fire. This is currently implemented as a var on `mob/living/basic` but I know there was some annoyance at adding the environment tolerances as vars on there so if desired I can try and extract it out, I'm just not sure how easy it will be. Something else I noticed is that spiders seem to take stamina damage from bug spray... but stamina damage does nothing to either simple _or_ basic mobs. I have left it in for now in case I am missing something, and rebalancing it to do something else would be more like a balance change. Oh also I killed the `mob/basic/retaliate` folder because that isn't a classification that needs to exist or makes sense. ## Why It's Good For The Game We don't want to use simple mobs any more. Sergeant Araneus can finally actually be a spider, instead of being a bat. ## Changelog 🆑 refactor: Spider code has been refactored and AI-controlled spiders may have slightly different movement or reaction times. fix: Basic mobs can now be slowed when they take stamina damage, however currently only spiders actually _can_ take stamina damage. fix: Spiders should now more reliably disable their AI when controlled by a player. fix: Araneus is no longer considered to be a bat and so cannot fly. fix: Araneus is no longer considered to be a bat and so is no longer frightening to people who are scared of the supernatural. /🆑 |
||
|
|
8a1cc5ccca |
Fixes ghost roles trying to spawn people when there /should/ be zero uses left (#73224)
## About The Pull Request By means of making a particularly popular ghost role (do NOT put catgirls on icebox bro you don't know the consequences) I have discovered a strange bug where despite any of the checks that are in place, it will still attempt to spawn more people than the role should allow. I've found the likely caused to be that a lot of people are clicking the role then clicking spawn at once, and the spawner simply does not have time to tell everyone "wait no you can't do that" before it deletes itself from running out of uses. The solution? Even easier than the reservation thing: Subtract uses **BEFORE** spawning the mob, as spawning the mob can take some time, then if it fails to spawn somehow we can refund the uses. ## Why It's Good For The Game Ghost roles spawning in the nullspace spawn room every now and then is a bad thing I think. ## Changelog 🆑 fix: Ghost role spawners will now no longer try and spawn people when they /should/ have been out of uses but due to a bug were not /🆑 |
||
|
|
8ee01d27b3 |
Basic Mob Spiders I: Ability refactor (#73201)
## About The Pull Request This morning a man presented me with a mission  I realised that I can achieve this in merely _three_ pull requests. ...because I'm leaving one that adds new AI until after feature freeze february. This one pulls all of the ability code out of the giant spider mob file and spruces it up a bit in preparation for making them into basic mobs. It removes an ancient "todo" about merging the spider and genetics web abilities by, doing that. Spider abilities no longer extend from a shared and reasonably pointless "innate" root ability and also don't require their owners to be spiders to work properly any more. Also while I was in there I fixed a bug where the "set directive" ability did not actually pass that into the antag datum of a new spider unless they logged out and back in. ## Why It's Good For The Game Code should smell nicer now. Removes an essentially duplicated ability. Clears up some chat log spam which didn't need to be in there. You can actually set an objective for spiders you create as a spider brood mother. I guess you can make spiders-man as an admin by giving spider abilities to other mobs. ## Changelog 🆑 refactor: Tidied up spider ability code, they should all work the same, but please report if they do not. refactor: Spiders and Geneticists now use the same ability to make webs rather than two virtually-identical ones, which should also perform just as it did before this change. fix: Setting a directive as a Spider Midwife should properly pass and announce itself to new spiders. /🆑 |
||
|
|
ff3f61985f |
Adds plasmaman support to mob spawners (#73068)
## About The Pull Request A very minor change but one that will save headache down the line. Adds plasmaman support to mob spawners, meaning they will be guaranteed to get their internals and suit upon spawning from those. Modified the equip proc to be able to automatically turn hand slot internals on without the need for snowflakey open_internals checks everywhere, as that should already handled by the it (shown below). Just modified it to work on hand slots. https://github.com/tgstation/tgstation/blob/4b832e7d01c079e2548940d352fb089bb336ec54/code/datums/outfit.dm#L245-L248 ## Why It's Good For The Game Adds support for present and future mob spawners involving plasmapeople. ## Changelog 🆑 qol: prevents mob spawner plasmamen from spawning without their suit and internals. code: the equip proc can now find internals in the hand slot and automatically open them, allowing for less snowflakey code down the line. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
fd85f5c67f |
Buff scythes, goats, and plantbgone vs PLANT biotypes (#72889)
## About The Pull Request This buffs scythes, goats, and plantbgone vs PLANT biotypes: - Scythes now deal x1.5 damage to venus flytraps (3 hits to kill) - Scythes now target the flower bud vines - Goats now target flower bud vines and deal 15 damage to PLANT biotypes - Goats have a eating sound whenever they bite PLANT biotypes - Plantbgone now does 2 dmg per unit to PLANT biotypes (10 dmg per spray) - Plantbgone now has a 75% chance to remove weeds and deals large damage to flower buds - Weed control crates now come with a pair of leather gloves - Golems are immune to thorn effects - Any kind of thick glove material will prevent thorn effects when attacking - Flower buds will now take x4 damage from fire and sharp weapons (unless they have fire trait) - Regular scythes are now a sharp object Also this fixes a few runtimes with spacevines and nulls. The bane element now accepts `mob_biotypes` bitflags as an argument. ## Why It's Good For The Game Before my changes: - Plant-b-gone was doing 0.4 dmg per unit to PLANT biotypes (2 dmg per spray) - Scythes took 5 hits to kill venus flytraps - Goats only affected podpeople - Flower bud vines were being ignored by weed killing code - Plantbgone only had a 50% chance to remove weeds (and this was very inconsistent due to RNG) - Botanical gloves and thick gloves didn't protect from thorns - Golems were getting pierced by thorns despite having pierce immunity - Flower buds were not taking the x4 damage like they should have been - Regular scythes were not a sharp object, but other scythes (chaplain's, megafauna loot) were sharp This makes the weed killer crate more effective since people were complaining about it being worthless vs vines and flower buds. These changes give people more options to respond to threats vs plants. ## Changelog 🆑 add: Add a pair of leather gloves to weed control crate balance: Mobs with the PLANT biotypes (venus flytraps, pod people, killer tomatoes) are now much weaker vs scythes, goats, and plantbgone. balance: Plantbgone is now more effective at destroying weeds. balance: Regular scythes are now a sharp object fix: Fixed scythes, goats, and plantbgone not affecting flower bud vines. fix: Thick and botanical gloves not protecting from thorns fix: Golems not having pierce immunity from thorns fix: Runtime where vines tried to spread into null turf fix: Runtime where null vines that were destroyed were trying to spread to nearby turfs soundadd: Add eat food sound when goats eat plants code: Improved goat targeting code code: The bane element now accepts `mob_biotypes` bitflags as an argument. /🆑 |
||
|
|
85a0d42b7d |
Better groups for antagonists (#72576)
## About The Pull Request Better categorizes antagonists into groups for the orbit UI, admin traitor panel. Permanently hostile antags were intermixed in the "Alive" section, and it was sometimes tough to see what's going on. To do this, many minor antags needed new antag datums which were added with fluff objectives as a bonus. Group Name | Antags --- | --- Syndicate | Nukies, battlecruiser crew, lone op Extradimensional Abominations | Nightmare⭐, morph⭐, pyro slime⭐ Spaceborne Leviathans | Space dragon, (spawned) carps⭐ Invasive Overgrowth | Venus human traps⭐ Arachnid Infestation | Spiders⭐ Eldritch Horrors | Cult constructs⭐, revenant (⭐ = New antag datum, proper orbit category, new objective text) <details> <summary>Screenshots (outdated)</summary> Antags get more tooltip info  Populating space dragon + carps (now leviathans)  Detail to distinguish job & rank  New categories in action  Organized Traitor Panel  </details> ## Why It's Good For The Game Better UI, observer experience, admin panel. It's now very obvious when something is hostile from the orbit panel. ## Changelog 🆑 qol: The orbit menu now sorts antagonists into groups more effectively. Some get new named groups. admin: Traitor panel should have slightly more sane categories. add: Many minor antagonists now have "objectives". refactor: Refactors code in several antag datums. /🆑 Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
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> |
||
|
|
f62c491ca2 |
adds atmospheric gloves, small resprite of firefighter gear, repaths stupid glove paths (#72736)
## About The Pull Request repaths a lot of gloves off /color because they were incredibly stupid firefighter gear has gotten an update (it doesnt cover hands anymore though, you need something else) firefighter helmets no longer hide your mask or glasses  fixed engine goggles starting with darkness vision to the atmos lockers adds atmospheric gloves, a pair of thick (chunky fingers) gloves that are fireproof and fire protective, slightly shock resistant and let you fireman carry people faster. atmospheric firefighter helmets now are a subtype of welding hardhats, you can enable a welding visor. welding hardhats change mode with right click instead of altclick ## Why It's Good For The Game im not a good spriter but i think this resprite makes them fit nicer with other engi equipment lets me firefighter rp ## Changelog 🆑 add: Atmospheric Gloves, thick gloves that are fully fireproof and fire protective and let you fireman carry people faster. fix: fixes engine goggles starting with darkness vision qol: firefighter helmets can now enable a welding visor qol: welding hardhats change mode with right click instead of altclick balance: firesuits no longer protect your hands /🆑 |
||
|
|
090ff86d31 |
Organizes mining corpses outfits and fixes power tools not spawning on golem corpses. (#72278)
## About The Pull Request Just my average reorganization of outfits into a better order. ID > Uniform > Suit > Backpack > Other clothing in alphabetical order > Pockets > Hands > Others Since I was there, I put some things into ABC order when it made sense, lists with 1 item per line, trailing comma, yadda yadda yadda. Also, as power tools are medium sized now and wouldn't spawn on a corpse, I moved it into their belt slot to close #71885 ## Why It's Good For The Game Easier to clean code, bug fix. ## Changelog 🆑 Guillaume Prata fix: Legion infested golem corpses can drop power tools again (Drill, Jaws, Experimental Welder) but they were moved away from their pockets and into the belt slot. /🆑 Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> |
||
|
|
acb96fee1d |
Refactors memories to be less painful to add and apply, moves memory detail / text to memory subtypes. Adds some new memories to demonstrate. (#72110)
## About The Pull Request So, a huge issue with memories and - what I personally believe is the reason why not many have been added since their inception is - they're very annoying to add! Normally, adding subtypes of stuff like traumas or hallucinations are as easy as doing just that, adding a subtype. But memories used this factory argument passing method combined with holding all their strings in a JSON file which made it just frustrating to add, debug, or just mess with. It also made it much harder to organize new memories keep it clean for stuff like downstreams. So I refactored it. Memories are now handled on a subtype by subtype basis, instead of all memories being a `/datum/memory`. Any variety of arguments can be passed into memories like addcomponent (KWARGS) so each subtype can have their own `new` parameters. This makes it much much easier to add a new memory. All you need to do is make your subtype and add it somewhere. Don't need to mess with jsons or defines or anything. To demonstrate this, I added a few memories. Some existing memories had their story values tweak to compensate. ## Why It's Good For The Game Makes it way simpler to add new memories. Maybe we'll get some more fun ones now? ## Changelog 🆑 Melbert add: Roundstart captains will now memorize the code to the spare ID safe. add: Traitors will now memorize the location and code to their uplink. add: Heads of staff winning a revolution will now get a memory of their success. add: Heads of staff and head revolutionaries who lose their respective sides of the revolution also get a memory of their failure. add: Completing a ritual of knowledge as a heretic grants you a quality memory. add: Successfully defusing a bomb now grants you a cool memory. Failing it will also grant you a memory, though you will likely not be alive to see it. add: Planting bombs now increase their memory quality depending on how cool the bomb is. refactor: Memories have been refactored to be much easier to add. /🆑 |
||
|
|
581828c421 |
Reorganize the outfits under 'mob_spawn' (#72345)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may not be viewable. --> <!-- You can view Contributing.MD for a detailed description of the pull request process. --> ## About The Pull Request I got home, sat on my computer ready to work on an Goliath Infused hermit idea I had, instead, I found more outfits that slipped through the cracks and are not reorganized properly so I'm doing this again! <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> ## Why It's Good For The Game Code improvement readability something <!-- Argue for the merits of your changes and how they benefit the game, especially if they are controversial and/or far reaching. If you can't actually explain WHY what you are doing will improve the game, then it probably isn't good for the game in the first place. --> <!-- If your PR modifies aspects of the game that can be concretely observed by players or admins you should add a changelog. If your change does NOT meet this description, remove this section. Be sure to properly mark your PRs to prevent unnecessary GBP loss. You can read up on GBP and it's effects on PRs in the tgstation guides for contributors. Please note that maintainers freely reserve the right to remove and add tags should they deem it appropriate. You can attempt to finagle the system all you want, but it's best to shoot for clear communication right off the bat. --> <!-- Both 🆑's are required for the changelog to work! You can put your name to the right of the first 🆑 if you want to overwrite your GitHub username as author ingame. --> <!-- You can use multiple of the same prefix (they're only used for the icon ingame) and delete the unneeded ones. Despite some of the tags, changelogs should generally represent how a player might be affected by the changes rather than a summary of the PR's contents. --> |
||
|
|
717e4f435c |
Quirks are passed an incoming client when applied, allowing quirks to read preferences in add and add_unique. Renders visual quirks on the preference menu dummy. (#72158)
## About The Pull Request Closes #72141 Roundstart humans weren't in control of their mob by the time `AssignQuirks` was called. The call chain for roundstart goes `create_characters` -> `equip_characters` -> `AssignQuirks` -> `transfer_characters`. For latejoin, `create_character` -> `transfer_character` -> `AssignQuirks`. I could simply move around the call chain, but that feels much more fragile and more liable to cause other issues to me. So instead, I simply allowed add quirk to be passed a client, so that a client's quirks can be applied to a mob they are not currently inhabiting. In doing this, it became possible to show visual quirks on the prefs dummy, like nearsighted glasses and heterochromia. So I put in a little work to accomplish that as well.  Along side, some refactoring and documentation for quirk datums. ## Why It's Good For The Game People get what they expect on roundstart. ## Changelog 🆑 Melbert qol: The preview dummy in the preferences menu now shows some visual quirks, like Heterochromia or nearsighted. fix: Fixed some quirks which read a preference roundstart not applying the preference. refactor: Refactored some bits of quirk datums and the quirk application process. /🆑 Co-authored-by: Time-Green <timkoster1@hotmail.com> |
||
|
|
100cb71111 |
Turned most syndicate mobs (+ viscerators) into basicmobs (#71871)
## About The Pull Request Turns the syndicate simpleanimals into basicmobs: (+ stormtrooper, + space variants) Base Mob, Knife syndies, pistol syndies, SMG syndies,shotgun syndies, viscerators also changes some instances of the simple_animal path into the basicmob ones Removes civillian syndicates which were useless and also completely unused Also removes mech pilots:  Also, makes the basic targetting datums health check configurable basic attack behavior can now fire in bursts https://user-images.githubusercontent.com/70376633/206766607-cf2e3659-0c5e-4117-9af7-e573e35bdf80.mp4 https://user-images.githubusercontent.com/70376633/206766630-15b4469f-68be-44c7-9394-1f2b6fe07811.mp4 https://user-images.githubusercontent.com/70376633/206766613-69b42457-a03b-449d-a1b8-a5aa556c76e5.mp4 https://user-images.githubusercontent.com/70376633/206766619-5560a178-8d2f-4b22-adf1-22ace6f63a51.mp4 https://user-images.githubusercontent.com/70376633/206766627-e671d064-fd9e-4204-b823-aa2e07f7fc26.mp4 https://user-images.githubusercontent.com/70376633/206766633-108c1574-3554-4bc1-a9ac-8faed0ec4062.mp4 ## Why It's Good For The Game simpleanimal stinks basic mob good syndicate AI was really bad to begin with so here we are ## Changelog 🆑 code: Turned most syndicate mobs into basicmobs, making their AI better and (possibly) more deadlier! del: Removed syndicate mech pilots and syndicate civvies /🆑 Co-authored-by: kawoppi <94711066+kawoppi@users.noreply.github.com> |
||
|
|
9e3a3caae9 |
Fixes HOS Beret (and all of its subtypes) having wrong path and thus not being armored (#72024)
The HoS' beret were not pathed properly so were no longer subtypes of legitimate hos armor, this fixes that. Now the HOS and syndicate berets have had their missing armor and strip delay readded |
||
|
|
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> |
||
|
|
2425531eb2 |
Removes tablets (not PDAs) entirely. (#71507)
## About The Pull Request **Comes with an UpdatePaths!** Removes the tablet subtype, PDAs now replaces them entirely. Nukie and Silicon tablets are now subtypes of the PDA instead, while contractor ones were removed entirely as they didn't do anything and were unused (though it wouldn't be hard to re-add). Nukie PDAs are now the only type of PDA that uses modular_tablets.dmi, which is just larger icons of modular_pda. Each application requires an icon state in both of these, for 2 different sizes, which makes it annoying to make new applications, especially if it can also run on computers/laptops. ### Icons Because Silicon tablets are now a subtype of PDA, they use PDA icons instead of tablet ones. Luckily for us, they already exist in code.  AI's don't use a tablet icon though, so they aren't affected. ## Why It's Good For The Game There's very little difference between tablets and PDAs, PDAs overshadow them in every single way, so at this point I don't see why we should have both of these, and if you compare the two in usefulness and actual in-game use by players, it's a no-brainer than the item all players get roundstart and comes with a messenger should be the one we go with. Also as said in the about section, when making an app you would need to make icon states for the program running for all hardware it can run on, which is Computer, Laptop, PDA, and Tablet. Laptop is just a smaller computer icon PDA is just a smaller tablet icon However, you can't simply shrink the size of the icon, instead you have to completely resprite the same app icon FOUR TIMES for it to not bluescreen on all these different devices. <details> <summary> Here's examples of it </summary> Computer (NOTE: *They share the same icon file as regular computers*) <img src="https://user-images.githubusercontent.com/53777086/203876801-486a8054-489a-4983-bdad-a2599b4dc379.png"/> Laptop <img src="https://user-images.githubusercontent.com/53777086/203876333-58e5d135-f4c6-4a02-8948-1df771e294a4.png"/> Tablet <img src="https://user-images.githubusercontent.com/53777086/203876352-816c7fb1-c681-40b9-99e0-052f49632c7f.png"/> PDA <img src="https://user-images.githubusercontent.com/53777086/203876358-1cf7253d-3c6a-456a-8133-ebf7f0351637.png"/> </details> If we wish to help in simplifying this, we should remove tablet icons entirely, which means 1 less icon to worry about. To do this, we'd need to resprite nukie PDAs, however I am very much not a spriter and never tried GAGS, so I'll leave it to someone else to do. ## Changelog 🆑 del: Tablets are now removed, PDAs are now the base 'tablet'. Silicon and nukie tablets are now PDAs. /🆑 |
||
|
|
d44abccb19 |
Fix allow_spawn check for Ashwalkers and Battlecruiser crew (#71480)
## About The Pull Request Currently, if you fail the allow_spawn test for Ashwalkers or Battlecruiser Crew you will get the deny message even if the check was silent. Meaning every time you open the spawners menu you get "You have exhausted your usefulness to the Necropolis." or "You have already used up your chance to roll as Battlecruiser." All the other allow_spawn checks have a `!silent` check before sending the message so that they only show this message if the player actually clicks the spawner. Also for some reason the ashwalker message is bold and it shouldn't be. ## Why It's Good For The Game Consistency is good, as is not giving the player unnecessary chat messages. ## Changelog 🆑 VexingRaven fix: Ashwalker Eggs and Battlecruiser spawners no longer give you a warning every time you open the spawn menu if you've already spawned as that role once. spellcheck: Ashwalker Egg warning message for having already spawned once is no longer bolded for no reason. /🆑 |