mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-10 15:45:05 +01:00
master
224 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
de4c3b255d | Merge branch 'master' of github.com:tgstation/tgstation into upstream-2026-06-23 | ||
|
|
75ac9042e1 |
Hides projectile lighting from the right click menu (#96501)
## About The Pull Request Fixes this <img width="294" height="181" alt="dreamseeker_ktDfO4mbM9" src="https://github.com/user-attachments/assets/3150a452-93bc-44a0-895b-e2d02b5ac15a" /> ## Changelog 🆑 fix: Projectile lighting is no longer shown in the right click menu /🆑 |
||
|
|
ebc91067fb |
Drake swoop no longer misleadingly claims you fall into lava if it fails to spawn said lava (#96324)
## About The Pull Request If drake swoop (the one where it creates a box of fire around you) fails to spawn lava underneath it instead creates a fire visual (not an actual hotspot, does not set you on fire) and gives a separate text instead of claiming you fell into nonexistent lava ## Why It's Good For The Game Consistency ## Changelog 🆑 fix: Drake swoop no longer misleadingly claims you fall into lava if it fails to spawn said lava /🆑 |
||
|
|
f601a6ddaf | Merge remote-tracking branch 'tgstation/master' into upstream-6-2-2026 | ||
|
|
64f76f52a9 |
Interface Science | The Mariana Trench of Feature Content (#95857)
## Interface Science You know what the problem is with our features? They're all too easy, too optimized to use. Look at Genetics; we went from a confusing UI that a 14 year old hardcoded with html into byond to a polished UI using tgui, optimized for player comfort, and gameplay has suffered. Too long we have coddled players with fun and easy content, no more I say!!! To fix ss13, I have added a feature with the most awful, unusable UI ever. It's just wires with random sequences that may or may not do something. And yet, you will use it till your fingers bleed and your eyes go white, and you will be grateful. "Thank you coder daddy", you say as you sacrifice yourself to a display of unending, procedurally generated dogshit. <img width="563" height="294" alt="image" src="https://github.com/user-attachments/assets/e56c947f-a40c-4df9-beed-672812357576" /> Or maybe you're a sick little deviant, and you don't respect me. Instead of using my awful UI, you start optimizing. You've forced the secret pulse code, and you're not going to pulse them again and again. You make your own interface by connecting it with signallers, or integrated circuits. Ahhh, you beat me! Damn it, and you're gonna get away with it too. ## About the Pull Request Adds new job content to science. Science spawns with a few "gizmo" devices and can order more through cargo. These gizmo's have random functionalities, like the strange objects you can find in maintenance. These functionalities come with different settings to change how they operate. However, there are no buttons, just wires or a voice interface. You need to solve, for example, a wire puzzle. You just pulse the wires, and if you hear ping the sequence is good, if you hear buzz its bad. Just keep going till you hear a creak sound. If you do a sequence correctly, there are a bunch of randomly generated ways this interacts with the functionality, mimicking real life settings and interactions. Imagine a TV remote with randomized buttons, and you have to map them out again. Once you've mapped the sequences, you can make an interface. For simple ones, you can just make some signaller assemblies. For the best control, you could connect it with a bunch of integrated circuit signallers, and program sequences into an integrated circuit machine. Below is a short video of how the puzzle solving works. (I can't be arsed to figure out how to record tgui, here's a video I made with my phone. Also I had the sequences written down, which I STRONGLY recommend you do.) https://github.com/user-attachments/assets/93f79f0f-df14-4ff9-8096-f079ebae7e91 <details> <summary>Actual details</summary> I have hidden the details to make exploring the feature itself more fun. The whole thing was written to be convoluted, but intuitive. You should be able to hit it with a multitool, and figure out everything from there. It will take a bit to get the gist of it. Nonetheless, for review purposes I have written down the details here. If you're reading this for non-review purposes, you should know I have embedded an internet curse that will at some point in 2026 teleport you 2 meters in a random direction. Continue reading at your own discretion. The gizmo objects is usually generated with 1 or 2 'gizmodes'. 'Gizmodes' contains the fun-ctionality, and holds different operating modes (so dubbed 'gizpulse'). You can't directly select a gizpulse, but instead it generates a bunch of mode selections. For example, a function that toggles lights has two gizpulses: toggle_on and toggle_off. There are four different mode selects: Cycle mode: Adds signal to cycle to the next gizpulse, and to activate the current gizpulse Select mode: Adds a signal for selecting every gizpulse, and a signal to activate whatever the activate gizpulse is Direct activate mode: Adds a signal for selecting every gizpulse, and also immediately activates that gizpulse Cycle-active mode: Cycles to the next mode, and activates it (inconvenient but only has 1 signal to worry about) So a light gizmode with the randomly selected 'select mode' has three signals: select toggle_on, select toggle_off and trigger the currently selected gizpulse. Currently implemented gizmodes: - Lights: toggle on, toggle off - Move: start moving, stop moving - Food printer (its filled with the spongebob grey goop thing): print food (donut or burger) - Mood pulser (AOE): happy pulse, sad pulse, radiation pulse - Mopper: select different reagent, dump onto tile (1/2/3 range), make smoke cloud - Teleporter (5 to 15 tiles, random dir): Teleport self, teleport mobs in range 1, do both - Electric: charge from nearest cell (looks into objects and stuff), magically gain some charge, make lightning, make emp, charge nearby object, defibrillate in an area - Copier (makes fake copies of mobs and objects, visual copy only): scan objects, print objects, erase all copies - Sputter: dump oil and shake, throw self - Bad: explode, explode, explode harder, explode with fire, stab you, warning, make robot spider, breaks your bones, throws a grenade at you, radiation pulses - Some behind the scenes gizmodes (language toggle for voice interface, for example) The voice interface starts with wires, with signals to toggle the language or dump the code words. After that, you can talk to it using the code words similarly to the wire sequence to solve the rest of the gizmodes. </details> I've added two to every map, somewhere in or near the experimentor room. They may ocassionally spawn from a maintenance crate spawner <img width="611" height="331" alt="image" src="https://github.com/user-attachments/assets/3782700f-57d3-4591-9282-e0de590056e1" /> ## Why It's Good For The Game It's really difficult to have "experimentation" type features in the game. It all has to fit into 1h rounds, and people get used to it real quick. The experimentor and strange objects kinda try, but it's just one button and praying a bear doesnt spawn you explodes you. I don't claim to have solved this perfectly, but I think this is fun. You truly have to start experimenting, be systematic and write things down. If you figure out how something works, you can go to the next stage of making it more convenient to use. I think it's really fun to mess around with integrated circuits and USB's, and make, for example, a BCI controlled bluespace launchpad. So I lean into it! There's different settings to account for, and its up to you to make it usable! If you like integrated circuits, you'll love this (maybe). The gizmo functions are aimed at benefiting the station as a whole in some ways, to motivate people to make some fun systems for these to get maximum benefit! A mood pulser near a busy area will make everyone happier! (I do need to add more like these, I got distracted doing stupid shit.) |
||
|
|
21b4095dfd |
[MDB IGNORE] [IDB IGNORE] Upstream Sync - 04/17/2026 (#5453)
Upstream 04/17/2026 fixes https://github.com/Bubberstation/Bubberstation/issues/5549 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com> Co-authored-by: rageguy505 <54517726+rageguy505@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com> Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Co-authored-by: Maxipat <108554989+Maxipat112@users.noreply.github.com> Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com> Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com> Co-authored-by: loganuk <fakeemail123@aol.com> Co-authored-by: Leland Kemble <70413276+lelandkemble@users.noreply.github.com> Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com> Co-authored-by: Lucy <lucy@absolucy.moe> Co-authored-by: siliconOpossum <138069572+siliconOpossum@users.noreply.github.com> Co-authored-by: Isratosh <Isratosh@hotmail.com> Co-authored-by: TheRyeGuyWhoWillNowDie <70169560+TheRyeGuyWhoWillNowDie@users.noreply.github.com> Co-authored-by: Neocloudy <88008002+Neocloudy@users.noreply.github.com> Co-authored-by: Alexander V. <volas@ya.ru> Co-authored-by: ElGitificador <168473461+ElGitificador@users.noreply.github.com> Co-authored-by: Twaticus <46540570+Twaticus@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: Cameron Lennox <killer65311@gmail.com> Co-authored-by: Tim <timothymtorres@gmail.com> Co-authored-by: Iamgoofball <iamgoofball@gmail.com> Co-authored-by: Layzu666 <121319428+Layzu666@users.noreply.github.com> Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com> Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com> Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: John F. Kennedy <54908920+MacaroniCritter@users.noreply.github.com> Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com> Co-authored-by: Josh <josh.adam.powell@gmail.com> Co-authored-by: Josh Powell <josh.powell@softwire.com> Co-authored-by: Yobrocharlie <Charliemiller5617@gmail.com> Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com> Co-authored-by: shayoki <96078776+shayoki@users.noreply.github.com> Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com> |
||
|
|
479ac46740 |
Reworks goliaths, slightly changes watchers/legions/brimdemons/lobstrocities (#96028)
## About The Pull Request Goliaths no longer instantly stun the mobs they hit with their tentacle for full 10 seconds, instead leashing them to the spot they were grabbed at or dragging them towards themselves. The ranged tetris-piece attack has been changed to a full cross which tethers the target preventing them from moving away more than 1 tile, while the line and the ring attacks tether the mob directly to the goliath itself and drag them in. https://github.com/user-attachments/assets/0b566a12-17ae-4a8a-97ac-5734c89c83d4 The tentacles can be manually removed after standing for 6 seconds, or by hitting them for 75 damage total (3 PKC swings, or 5 bayonet hits). They also naturally retract after 10/15 (cross/line and ring) seconds like before. Goliaths themselves have received a massive speed boost, going from 3 second movement delay to 1.2 seconds (150% buff) and no longer can friendly fire with their tentacles (and ancient goliaths have their trophy drop guaranteed) Brimdemons, lobstrocities, watchers and legions also received some changes: - Brimdemons no longer can wound with their beams (they were basically guaranteed to land a nasty burn wound with the initial blast), but are now affected by laser armor and their beam DOT (not the initial 25 burn damage upon firing) has been increased from 5 to 7. Their blasts can now be interrupted by hitting them from their side or from their back - Lobstrocities have had their retreat distance decreased from 8 to 6, making them much less likely to randomly lose aggro on the miner (their aggro range is 9 tiles, meaning that even a single tile of movement on miner's part will result in lobsters losing interest in them when on CD) - Watchers now try to stick to 3-5 (previously 4-6) tiles of distance between themselves and their target, and legions try to maintain 4-6 tiles of distance as opposed to running away completely. This should make fighting both of them more interesting and engaging, and make dealing with them during vents less cancerous. Sprites for the tentacle item and mob overlay are by thgvr from https://github.com/shiptest-ss13/Shiptest/pull/2432 ## Why It's Good For The Game Goliaths are extremely outdated in their attack design, 10 second hardstuns are basically a guaranteed death if there are any other mobs around and aren't very engaging to fight on their own as they are very easy to evade with 3 second movement delays. Change to lobstrocities should just make their AI less jank, and watcher/legion range changes should make them less slippery when fighting with PKC or zero range PKA, or during vent defense. ## Changelog 🆑 SmArtKar, thgvr balance: Goliaths no longer hardstun, but instead bind and drag their targets in with their tentacles. They are, however, much faster now. balance: Brimdemon beams can no longer wound, but deal a bit more DOT damage. Their beams can also be interrupted by hitting them from the side or back in melee. balance: Watchers and legions now try to maintain a few tiles of distance from their targets instead of retreating. fix: Lobstrocity AI should no longer sometimes flee out of their aggro range when retreating. /🆑 |
||
|
|
bff56bf388 |
Jury-Rigged Anomaly Tech: Adds effects to pulsed anomaly cores (#95049)
## About The Pull Request Each type of anomaly core has an effect when pulsed by an assembly, button, or wire. Most of these effects are a weaker version of their respective reactive armor's unique effect (except for pyro and vortex anomalies, which make stealth armor solely because there isn't specific reactive armor for them). In particular: - Pyro anomalies make a 3x3 area of hotspots around themselves. - Gravity anomalies gently pull most unanchored objects in a 2 tile radius. - Flux anomalies make a short range 10 kJ tesla zap that usually doesn't propagate more than a single time. - Bluespace anomalies teleport the object they are connected to up to 4 tiles away. They will teleport out of storage, and they will teleport out of your hands or equipment slots unless they have NODROP. This has a 15 second cooldown, which is longer than reactive teleport armor. - Vortex anomalies do a weaker version of the the vortex thing, but limited to a 1 tile radius around the core. This has a 5 second cooldown, and can potentially destroy the core or what it's attached to. - Bioscrambler anomalies perform a bioscramble pulse in a 1 tile range. This has a 10 second cooldown. - Hallucination anomalies perform a hallucination pulse in a 1 tile range, adding 20 seconds of hallucinations, up to a maximum of 1 minute. This has a 10 second cooldown, so hallucinations from a single pulsed core can stack if you stay in range. - Dimensional anomalies perform a dimensional shift in the same range as the science relic. This has a fixed 15 second cooldown. - Ectoplasmic anomalies haunt a few objects in a 5x5 area around the core for 30 seconds. This has a 60 second cooldown. - Weather anomalies cause a single lightning bolt to strike a random open turf in a 5x5 area around the core. This bolt deals less damage than the reactive weather armor's bolts, and does not have an AOE. ## Why It's Good For The Game Gives both the station and antagonists additional uses for anomaly cores, beyond the ones that are specific items printed by science. As some examples: - A bundle of wired flux anomalies surrounded by tesla coils can provide a decent drip-feed of free power to the station - only on the level of several pacmans, but better than nothing. - Bluespace anomalies give you a manual version of the reactive teleport armor's teleport, but you'll need to get creative in order to actually teleport yourself and not just what you attached the core to. - People who really want to play the bioscrambler lottery can keep doing it after the original anomaly is neutralized. ## Changelog 🆑 add: Anomaly cores now have effects when pulsed by an assembly, button, or wire. These effects are generally weaker versions of the effects of the source anomalies, or of their respective reactive armors, and many have a 50% longer cooldown than said armors. /🆑 |
||
|
|
71faa643bf | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-12 | ||
|
|
29b6d6c129 | Reworks the House Edge's special attack, and some stat adjustment. (#93551) | ||
|
|
d14e538393 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-15-10-2025 | ||
|
|
a2c7c8e57b |
Heretic Antagonist Full Overhaul. (#92119)
## About The Pull Request Heretic has received a complete overhaul. This PR touches nearly every aspect of the antagonist. For readability's sake, not every change is going to be listed in this pull request. For the full list of changes please refer to the design doc: https://hackmd.io/@BiST8PJVRjiwVPY86U3bLQ/B11HyChz1g. Code by Me, @Xander3359 and @Arturlang TGUI by @Arturlang Sprites by OrcaCora and GregorDM Writing bits by @necromanceranne ### Core changes - Cross-pathing has been removed. Main knowledge spells are now exclusive to their path (for the most part). - For every main knowledge unlocked (save for the robes and the blade upgrade), Heretics can choose one option from a draft of 3 random side knowledges (this is a free point). - Heretics can now purchase side knowledges from a new tab, the "Knowledge Shop". Side-knowledges have been divided by tier (Stealth, Defense, Summons, Combat and Main). Tiers are unlocked as you progress toward your main path. - Heretics now gain the grasp and mark upgrade immediately, but their main knowledge choices cost twice as much (except for the first spell, the robes and the blade upgrade). - Path specific robes have been introduced! They come with their own set of quirks. - Each Path has received a passive ability. This passive is upgraded when you first create your robes, and again when you complete the Ritual of Knowledge. - Paths have been rebalanced as a result of the removal of cross-path progression. Cosmic and Moon paths have received soft reworks. - Upon unlocking the path 2nd level or reaching a total of 8 points worth of knowledge, Heretics will lose the ability to blade break (and the limit on blades all together). - Ascension now automatically calls the shuttle with no possibility of a recall. - Late join Heretic has been removed. ### New UI <img width="750" height="635" alt="moon path ui" src="https://github.com/user-attachments/assets/184ef783-5c9c-48a1-a2f7-4807ca93e990" /> ### Knowledge shop <img width="787" height="669" alt="Knowledge shop" src="https://github.com/user-attachments/assets/3dc89b84-8c70-4d47-b612-54396e3ea6e7" /> ### Quality of life //General balance changes - Heretics will now gain X-ray vision for a few seconds when nearby an eldritch essence (this effect has a cooldown). - Ritual of knowledge now requires 1 uncommon item instead of 2. You may now use a stunprod instead of a baton to complete the ritual. Beartraps have been removed from the list of possible reagents. - The maximum number of possible sacrifices required to ascend has been reduced from 6 to 5 while the minimum has been upped to 4. - Codex Cicatrix no longer requires a special pen to be made. ### Passive abilities - Heretics now start with a passive ability. You can find what it does on the path info tab after a path has been selected, and what they gain when upgraded. - Crafting your first set of Eldritch robes will bump your passive to level 2. - Unlocking the 2nd level will subsequently unlock your "Ritual Of Knowledge" - Completing the ritual of knowledge or ascending will net you the final level. ### Path Specific Robes - Armorer's Ritual is no longer a side knowledge. Each path will have their own unique version of the ritual. This is placed after the 2nd spell in the tree. - Robes can no longer be destroyed by fire and acid, grant t4 flash protection (Moth Heretics stay winning) and protection against basic syringes, to bring them on par with other antagonist's armor sets. - The recipe to craft the robes is now a set of armor/vest, a mask (any mask will do now, not just gas masks), plus the unique reagent required for the blades (Plasma for Cosmic, Trash For Rust, match for Ash and so on) - Wearing the robes as a non-heretic may yield some unfortunate side-effects. ### Moon Path Rework Moon path rework. Moon Heretics gain immunity to brain traumas and slowly regenerate brain health. Equipping the moon amulette channels its effects through the moon blade; making it unblockable and cause sanity damage instead of brute. Ring leader's Rise now summons an army of harmless clones that explode when attacked; the explosion briefly stuns non-heretics and cause sanity and brain damage to them. Moon blade can also now be used when pacified and Moon spells are no longer blocked by regular anti magic, only mind magic protection. **Cosmic Path Rework** Cosmic path has received the biggest batch of changes alongside Moon. The path has been dead last in ascension and pickrate (less than 5%) for almost 2 years. It did gain some popularity over the last few months, reaching the highest ascension rate in the game (12%) while mantaining a relatively low pickrate. Cosmic sits in a weird spot, where pretty much every knowledge surrounding the path is either mediocre or, in the case of the ascension, dysfunctional. Yet it has maintained a smidge of relevancy due to how quickly Cosmic heretics can capture and sacrifice targets thanks to Star Touch. As a result, the best course of action would be to rebalance the entirety of the kit; granting the heretic more tools to manipulate space and dictate the flow of a fight, while lessening their ability to end a confrontation by instantly sleeping their opponents. lastly The Star Gazer is now ghost controlled ; And they shoot lazers! <img width="636" height="451" alt="gazer gag 3" src="https://github.com/user-attachments/assets/601d6881-c042-4e42-8ce6-ac90cd27848b" /> ## Why It's Good For The Game ### Ok...but why do we want this? Again, if you want my full reasoning, please check my doc https://hackmd.io/@BiST8PJVRjiwVPY86U3bLQ/B11HyChz1g. To keep it short and concise; Heretic is too complex and unintuitive for its own good. Too impenetrable for new players and too abusable for experienced players. This can be chalked up to a lot of poor design decisions. But ultimately, what I believe being the biggest contributor to the current status of Heretic is the ability to move into different paths, also known as "Cross-Pathing". ### Cross Pathing my beloathed. Cross-pathing, while cool in theory, overcomplicates the antagonist and overloads them with power. Players dealing with the heretic are incapable of working out what a given heretic can do. This also leads to late game heretics having 3 rows Worth of action buttons and virtually no weakness. Over the last year, I've often received the understandable but also kind of unfair accusations of making Heretic too powerful without a clear aim or purpose. My goal with the paths I've reworked over the last year (Rust,Void and Blade) wasn't necessarily to just make them stronger (although that was also part of the goal, as they were paths that were underperforming), but for them to have more interactions with the sandbox and to better live up to the fantasy presented to the player. If an harbringer of frost gets countered by a cup of coffee, we probably messed something up. Unfortunately, the current incarnation of Heretic doesn't really allow for surgical balance changes to specific paths. Every time a knowledge gets buffed, we make every path that can easily tap onto that knowledge stronger by default. It doesn't take a genius to understand why this system is ultimately unsustainable. ### Blade Breaking I feel that after a heretic has reached the near peak of their power, they no longer need the ability to instantly escape any encounter. Check my doc for my full reasoning. ## Less versatile, more specialized paths. By removing cross-pathing, we remove a huge maintainability burden from the antagonist. Paths can now be designed around clearer strengths and weaknesses. They become easier to balance and less of an headache to understand for everyone. It also means we can give paths some needed quality of life quirks without having to worry how such a change might have a knock-on effect for other paths. Ash heretics can finally let loose without dying by their own flames. Cosmic Heretic can go to space without having to carry a modsuit. Moon Heretic can use their abilities without fear of one random trauma ruining their day, and so on. ### What a horrible night to have a curse...., wait how do I curse people again? As of right now the heretic tree has quite a hefty amount of trinkets that pretty much never see use. Partly because the tree itself is a nightmare to navigate. And partly because why would anyone set up an elaborate plan or scheme when they can unleash 2 rows of spell in the span of bunch of seconds. Heretics mostly gravitate towards powers that push them towards greater, more potent combat strength. If it doesn't contribute to killing people quicker, it isn't worth doing for most. And given the opportunity cost associated for taking those powers, they will remain that way so long as there are better choices to be poached. The new draft system encourages Heretics to play more with the tools at their disposal. If you want to go for a specific combo from the side path options, you may now do so by tapping into the knowledge shop. Yes, the shop does include a few knowledges from the other paths. But these are limited to 1 per path, are very expensive and can only be unlocked very late into the shift. ## Drip Of the Mansus The iconic heretic robe is actually sequestered to a side path that is most easily access by only two paths at a time. Since heretic paths are being made to be much more specialized, the most obvious way in which this can be showcased is through an easily identifiable outfit. By using the robes, we can both telegraph WHAT heretic you are looking at, and just how much power they've accumulated and when it is reasonable to take the kid gloves off and treat them as a genuine threat. If a heretic is in their robes, that heretic is now a significantly more prominent danger to the station. It also serves as a useful means for gating some of the more powerful effects of a heretic's path behind the robes, AND enable options for disarming them of that power should they be captured without making it something endemic to their mob. A major problem with heretics is a lack of certainty as to how powerful they have become. A heretics robes is one of the milestones to help players dealing with heretics identify that. ### Will this be 100% fair and balanced? This is a massive overhaul to a pretty complex and bloated antagonist. I've done my best to show the changes to several maintainers and other members of the community for their feedback. But at some point we'll have to see how this behave in the environment to get a feel if something is over or undertuned. (that's my way of saying, yes this is likely gonna require a testmerge or two). What I will say is that I'm not trying to change the core identity of Heretic. Heretics should have the upperhand in single encounters early on, be able to joust a small group of players after they unlock their final spell, and end the round when they ascend. They're a progression antagonist. They should retain their payoff as well as pose a danger as they grow stronger. But if more players feel like they are more reliably able to play the antagonist in more varied and interesting ways, rather than the antagonist largely existing as a measuring stick for 'robustness' due to its elitist design philosophy, then the rework has been a success. There should be something for everyone in the antagonist, as is true for all of our antagonist roles. |
||
|
|
157d88d39d | Visual and balance changes to brimdust sacks and rush glands (#93323) | ||
|
|
17006b220f |
NT researchers make shocking breakthrough in flux anomalogics! Tesla Cannon Resprite / Resound (#92031)
## About The Pull Request  Resprites: Tesla Cannon Tesla Cannon crafting kit ### New SFX / VFX The tesla cannon now uses a new type of beam effect that randomly picks sprite variants for each segment instead of a tracer. This makes the arc look more dynamic and less distorted. Autofire guns can now choose to use a looping sound datum when firing.  #### Balance changes The tesla cannon must now have its stock unfolded before firing, this takes 1.5 seconds and makes the gun bulky. It is still normal sized when folded, and folding it is instant. ### Bug fixes Fixed a bug where looping_sound.stop() would fail to stop sounds. The tesla cannon is an incredibly powerfu ## Why It's Good For The Game ### My reasons for respriting The old sprite was not bad, by all means but I had a few gripes with it. * The old sprite does not incorporate the flux anomaly yellow colour. * The old sprite looks a bit much like a real, professionally produced sci-fi weapon, * The old sprite looks pretty small for such a ultra high dps full auto weapon. * The old inhand is quite indistinct for something that can game end you in like one second. ### My design I think that anomaly items should be very mad science coded and, since anomaly science is by definition a poorly studied field, they should look more like prototypes created by a scientist rather than something professionally made in a factory. ## Changelog 🆑 image: The tesla cannon has new sprites. image: The tesla parts kit has new sprites. image: The tesla cannon has a new shocking beam effect when firing. sound: The tesla cannon has new sounds. balance: The tesla cannon must now be unfolded to fire. fix: looping sounds now stop playing sounds when commaned to do so. /🆑 |
||
|
|
6bc67d2bc6 |
Emitter: The Emitting (#92327)
## About The Pull Request Adds Diode Disks, installable disks that when fitted into an emitter can change its function. * Healing * Stamina damage, and heals the SM slightly at the cost of internal energy * Traitor engi only explosive that damages and supercharges the SM if used that way. Firerate is halved. * Incendiary that slightly damages the SM but has lots of energy * Sanity damaging one that improves SM psi coeff * Magnetic item attracting one that improves SM mol absorption. ## Why It's Good For The Game Fun and unique ways for Engi to use excess power or improve their SM setups. Could also lead to neat engi inventions such as, say, a circuit device that aims and fires a healing emitter at anyone nearby who is damaged. Should also incentivize the researching of useful techs, hence why important medium tier techs are what lock the different disks. ## Changelog 🆑 add: New Diode Disks which allow you to configurate emitters with special functions. add: New Engi & CE exclusive traitor item, a diode disk that causes an emitter to create low radius explosions when it hits things. Note that this will reduce the fire-rate of your emitter. /🆑 --------- Co-authored-by: ThrowawayUseless <notarealemail@emailservice.fake> Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> |
||
|
|
45e76d80fc |
NT researchers make shocking breakthrough in flux anomalogics! Tesla Cannon Resprite / Resound (#92031)
## About The Pull Request  Resprites: Tesla Cannon Tesla Cannon crafting kit ### New SFX / VFX The tesla cannon now uses a new type of beam effect that randomly picks sprite variants for each segment instead of a tracer. This makes the arc look more dynamic and less distorted. Autofire guns can now choose to use a looping sound datum when firing.  #### Balance changes The tesla cannon must now have its stock unfolded before firing, this takes 1.5 seconds and makes the gun bulky. It is still normal sized when folded, and folding it is instant. ### Bug fixes Fixed a bug where looping_sound.stop() would fail to stop sounds. The tesla cannon is an incredibly powerfu ## Why It's Good For The Game ### My reasons for respriting The old sprite was not bad, by all means but I had a few gripes with it. * The old sprite does not incorporate the flux anomaly yellow colour. * The old sprite looks a bit much like a real, professionally produced sci-fi weapon, * The old sprite looks pretty small for such a ultra high dps full auto weapon. * The old inhand is quite indistinct for something that can game end you in like one second. ### My design I think that anomaly items should be very mad science coded and, since anomaly science is by definition a poorly studied field, they should look more like prototypes created by a scientist rather than something professionally made in a factory. ## Changelog 🆑 image: The tesla cannon has new sprites. image: The tesla parts kit has new sprites. image: The tesla cannon has a new shocking beam effect when firing. sound: The tesla cannon has new sounds. balance: The tesla cannon must now be unfolded to fire. fix: looping sounds now stop playing sounds when commaned to do so. /🆑 |
||
|
|
2a7921d436 |
Emitter: The Emitting (#92327)
## About The Pull Request Adds Diode Disks, installable disks that when fitted into an emitter can change its function. * Healing * Stamina damage, and heals the SM slightly at the cost of internal energy * Traitor engi only explosive that damages and supercharges the SM if used that way. Firerate is halved. * Incendiary that slightly damages the SM but has lots of energy * Sanity damaging one that improves SM psi coeff * Magnetic item attracting one that improves SM mol absorption. ## Why It's Good For The Game Fun and unique ways for Engi to use excess power or improve their SM setups. Could also lead to neat engi inventions such as, say, a circuit device that aims and fires a healing emitter at anyone nearby who is damaged. Should also incentivize the researching of useful techs, hence why important medium tier techs are what lock the different disks. ## Changelog 🆑 add: New Diode Disks which allow you to configurate emitters with special functions. add: New Engi & CE exclusive traitor item, a diode disk that causes an emitter to create low radius explosions when it hits things. Note that this will reduce the fire-rate of your emitter. /🆑 --------- Co-authored-by: ThrowawayUseless <notarealemail@emailservice.fake> Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> |
||
|
|
55bcc91ea2 |
Justice mech: Charge attack and code refactor/New blocking system/some balance and sprites! (#91434)
## About The Pull Request New changes for Justice mech - traitor mech that can be created on emaged fabricator(you need robo skillchip to emag it) 1. Charge attack refactor Charged attack is now used not by pressing the action button but on holding right click  While you press right click scope will focus on tile mouse looking for and when you release right button you will charge on this tile (cooldown 5 seconds as before). if your mouse look at position you unable to charge your mouse icon will become red 2. New Justice block Now Justice don't have 60% chance to block any damage. Instead of this rng, justice has 3 engines that orbit around him  Engines can be active and disabled. While all engines active they will block any range projictiles back.  To deactivate engine you need to melee hit mech. When all engines deactivated mech loses its ability to deflect for 10 seconds, after which all cores are recharged and the cycle continues again. Justice can also recharge one engine when pilot hits someone who not in crit.  3. Some balance changes: Mech hp now 300 Mech melee armor now 50 Mech bullet and laser armor now 30 Mech now don't have speed change when you switch safety mod. Instead mech becomes faster in invisibility and slower when holding the right mouse button to charge a charge attack. Invisibility mode now no longer temporary. You can be invisible as long as you want until you attack/ bump with someone/ take damage or turn it off yourself AoE attack from invisibility is now x2 faster  ## Why It's Good For The Game Lots of changes from recived feedback. Basically the most annoying thing was the block chances. Praying on luck to not die from laser spam turned out to be not a very interesting mechanic. Now mech justice requires more strategic actions to destroy it and the mechanics create more fun for both the mech user and those who fight with it. You need to get close to the mech to hit it and only then will you be able to shoot the laser and user of justice has the ability to recharge his cores by attacking enemies (if you don't attack, then you won't be able to recharge the cores (well, only if your other cores are broken)). This all creates more risk reward elements and not just rng. Accordance with block chance changes i also increased HP and armor of Justice to balance the block changes a bit. AoE attack speed was needed simply because 100/100 cases everyone said that the aoe attack is weak and useless because it is almost very easy to get away from it. Changing the charge attack work mechanic is necessary to improve the maneuverability of the mech. pressing the charge button and then getting messages that you chose the wrong direction is very inconvenient and deprives comfortable gameplay and pleasant use of the mech. ## Changelog 🆑 add: Justice mech: New block and charge system! Build and try it now! qol: Justice mech: charge attack is now much more pleasant and convenient to use! balance: Justice mech: Increased HP and armor. balance: Justice mech: Invisibility is now infinite. balance: Justice mech: stealth aoe attack is now 2x faster. refactor: Justice mech: Some code clenup and mechanic improvements. /🆑 --------- Co-authored-by: tgstation-server-ci[bot] <161980869+tgstation-server-ci[bot]@users.noreply.github.com> Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> |
||
|
|
9b28da6e38 |
Justice mech: Charge attack and code refactor/New blocking system/some balance and sprites! (#91434)
## About The Pull Request New changes for Justice mech - traitor mech that can be created on emaged fabricator(you need robo skillchip to emag it) 1. Charge attack refactor Charged attack is now used not by pressing the action button but on holding right click  While you press right click scope will focus on tile mouse looking for and when you release right button you will charge on this tile (cooldown 5 seconds as before). if your mouse look at position you unable to charge your mouse icon will become red 2. New Justice block Now Justice don't have 60% chance to block any damage. Instead of this rng, justice has 3 engines that orbit around him  Engines can be active and disabled. While all engines active they will block any range projictiles back.  To deactivate engine you need to melee hit mech. When all engines deactivated mech loses its ability to deflect for 10 seconds, after which all cores are recharged and the cycle continues again. Justice can also recharge one engine when pilot hits someone who not in crit.  3. Some balance changes: Mech hp now 300 Mech melee armor now 50 Mech bullet and laser armor now 30 Mech now don't have speed change when you switch safety mod. Instead mech becomes faster in invisibility and slower when holding the right mouse button to charge a charge attack. Invisibility mode now no longer temporary. You can be invisible as long as you want until you attack/ bump with someone/ take damage or turn it off yourself AoE attack from invisibility is now x2 faster  ## Why It's Good For The Game Lots of changes from recived feedback. Basically the most annoying thing was the block chances. Praying on luck to not die from laser spam turned out to be not a very interesting mechanic. Now mech justice requires more strategic actions to destroy it and the mechanics create more fun for both the mech user and those who fight with it. You need to get close to the mech to hit it and only then will you be able to shoot the laser and user of justice has the ability to recharge his cores by attacking enemies (if you don't attack, then you won't be able to recharge the cores (well, only if your other cores are broken)). This all creates more risk reward elements and not just rng. Accordance with block chance changes i also increased HP and armor of Justice to balance the block changes a bit. AoE attack speed was needed simply because 100/100 cases everyone said that the aoe attack is weak and useless because it is almost very easy to get away from it. Changing the charge attack work mechanic is necessary to improve the maneuverability of the mech. pressing the charge button and then getting messages that you chose the wrong direction is very inconvenient and deprives comfortable gameplay and pleasant use of the mech. ## Changelog 🆑 add: Justice mech: New block and charge system! Build and try it now! qol: Justice mech: charge attack is now much more pleasant and convenient to use! balance: Justice mech: Increased HP and armor. balance: Justice mech: Invisibility is now infinite. balance: Justice mech: stealth aoe attack is now 2x faster. refactor: Justice mech: Some code clenup and mechanic improvements. /🆑 --------- Co-authored-by: tgstation-server-ci[bot] <161980869+tgstation-server-ci[bot]@users.noreply.github.com> Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> |
||
|
|
d841c9df40 |
[MDB IGNORE] Blood Refactor Chapter 2: Collector's Edition (#91054)
Refactors most of blood handling code untouched by #90593 and completely rewrites all blood decals, components and reagents. - Blood types now have behavioral flags which allow them to control where they leave decals/DNA/viruses. Oil no longer transfers DNA and viruses with it, while podpeople water-blood doesn't leave visible decals on turfs and items, but still can be picked up by DNA scanners. - Multiple blood types have received unique handling - liquid electricity blood now glows in the dark, oil trails are flammable and lube ones are slippery. Oil blood can be restored with fuel, lube with silicon and slime with stable plasma (as normal plasma already passively regenerates their blood), instead of everything using iron. Saline solution only supplements on iron-based blood and won't do anything to help with bloodloss for species who rely on different blood types. (Roundstart this applies only to Ethereals) - All blood logic has been moved away from the blood reagent itself into a blood element that is assigned to the blood reagent by default, and to any reagent that's drawn from a mob as their "blood" (in ``transfer_blood_to``). This means that blood you draw from lizards will be green and have lizard's blood description instead of mentioning red blood cells, Ethereal "blood" will actually contain their DNA and genes, etc. - Refactored all blood decals. Blood states are no more, everything is now handled via blood DNA. Credits to MrMelbert and Maplestation, as a significant amount of code has been taken from https://github.com/MrMelbert/MapleStationCode/pull/436 and many of his followup PRs. Oil and xenomorph splatters are now subtypes of blood, blood drying is now animated, blood trails now curve and can be diagonal. - Rewrote bloodysoles and bloody_spreader components, credits to Melbert again for the former, while latter now makes more sense with its interactions. Bloody soles no longer share blood DNA with your hands. - Ported Melbert's bloody footprint sprites and bot-blood-spreading functionality. - Removed all species-side reagent interactions, instead they're handled by said species' livers. (This previously included exotic blood handling, thus the removal) - Slightly optimized human rendering by removing inbetween overlay holders for clothing when they're not needed. - Blood-transmitted diseases will now get added to many more decals than before. - Cleaned up and partially refactored replica pods, fixed an issue where monkeys/manipulators were unable to harvest mindless pods. - Exotic bloodtype on species now automatically assigns their blood reagent, without the need to assign them separately. - Clown mobs now bleed (with colorful reagent instead of blood during april fools), and so do vatbeasts (lizard blood) - Implemented generic procs for handling bleeding checks, all sorts of scanners now also correctly call your blood for what it is. - Podpeople's guts are now lime-green like their organs, instead of being weirdly greyish like their water-blood. (Their bleeding overlays are still grey, as they're bleeding water) - Slimepeople now can bleed. Their jelly is pale purple in color, but their wound overlays copy their body color. - Injecting/spraying/splashing/etc mob with a reagent preserves its data, so you could theoretically recycle fine wines from someone's bloodstream - Fixed burdened chaplain's sect never actually giving a blessing when applying effects, and giving a blessing when nothing can be healed. Inverted check strikes again. - Closes #91039 A lot of blood here has dried, visually the blood colors are almost exactly the same as before either of the blood refactors.   |
||
|
|
b4061f1800 |
[MDB IGNORE] Blood Refactor Chapter 2: Collector's Edition (#91054)
## About The Pull Request Refactors most of blood handling code untouched by #90593 and completely rewrites all blood decals, components and reagents. - Blood types now have behavioral flags which allow them to control where they leave decals/DNA/viruses. Oil no longer transfers DNA and viruses with it, while podpeople water-blood doesn't leave visible decals on turfs and items, but still can be picked up by DNA scanners. - Multiple blood types have received unique handling - liquid electricity blood now glows in the dark, oil trails are flammable and lube ones are slippery. Oil blood can be restored with fuel, lube with silicon and slime with stable plasma (as normal plasma already passively regenerates their blood), instead of everything using iron. Saline solution only supplements on iron-based blood and won't do anything to help with bloodloss for species who rely on different blood types. (Roundstart this applies only to Ethereals) - All blood logic has been moved away from the blood reagent itself into a blood element that is assigned to the blood reagent by default, and to any reagent that's drawn from a mob as their "blood" (in ``transfer_blood_to``). This means that blood you draw from lizards will be green and have lizard's blood description instead of mentioning red blood cells, Ethereal "blood" will actually contain their DNA and genes, etc. - Refactored all blood decals. Blood states are no more, everything is now handled via blood DNA. Credits to MrMelbert and Maplestation, as a significant amount of code has been taken from https://github.com/MrMelbert/MapleStationCode/pull/436 and many of his followup PRs. Oil and xenomorph splatters are now subtypes of blood, blood drying is now animated, blood trails now curve and can be diagonal. - Rewrote bloodysoles and bloody_spreader components, credits to Melbert again for the former, while latter now makes more sense with its interactions. Bloody soles no longer share blood DNA with your hands. - Ported Melbert's bloody footprint sprites and bot-blood-spreading functionality. - Removed all species-side reagent interactions, instead they're handled by said species' livers. (This previously included exotic blood handling, thus the removal) - Slightly optimized human rendering by removing inbetween overlay holders for clothing when they're not needed. - Blood-transmitted diseases will now get added to many more decals than before. - Cleaned up and partially refactored replica pods, fixed an issue where monkeys/manipulators were unable to harvest mindless pods. - Exotic bloodtype on species now automatically assigns their blood reagent, without the need to assign them separately. - Clown mobs now bleed (with colorful reagent instead of blood during april fools), and so do vatbeasts (lizard blood) - Implemented generic procs for handling bleeding checks, all sorts of scanners now also correctly call your blood for what it is. - Podpeople's guts are now lime-green like their organs, instead of being weirdly greyish like their water-blood. (Their bleeding overlays are still grey, as they're bleeding water) - Slimepeople now can bleed. Their jelly is pale purple in color, but their wound overlays copy their body color. - Injecting/spraying/splashing/etc mob with a reagent preserves its data, so you could theoretically recycle fine wines from someone's bloodstream - Fixed burdened chaplain's sect never actually giving a blessing when applying effects, and giving a blessing when nothing can be healed. Inverted check strikes again. - Closes #91039 #### Examples A lot of blood here has dried, visually the blood colors are almost exactly the same as before either of the blood refactors.   |
||
|
|
bc2215667f |
Re-refactors batons / Refactors attack chain force modifiers (#90809)
Melee attack chain now has a list passed along with it, `attack_modifiers`, which you can stick force modifiers to change the resulting attack This is basically a soft implementation of damage packets until a more definitive pr, but one that only applies to item attack chain, and not unarmed attacks. This change was done to facilitate a baton refactor - batons no longer hack together their own attack chain, and are now integrated straight into the real attack chain. This refactor itself was done because batons don't send any attack signals, which has been annoying in the past (for swing combat). 🆑 Melbert refactor: Batons have been refactored again. Baton stuns now properly count as an attack, when before it was a nothing. Report any oddities, particularly in regards to harmbatonning vs normal batonning. refactor: The method of adjusting item damage mid-attack has been refactored - some affected items include the Nullblade and knives. Report any strange happenings with damage numbers. refactor: A few objects have been moved to the new interaction chain - records consoles, mawed crucible, alien weeds and space vines, hedges, restaurant portals, and some mobs - to name a few. fix: Spears only deal bonus damage against secure lockers, not all closet types (including crates) /🆑 |
||
|
|
5261efb67f |
Re-refactors batons / Refactors attack chain force modifiers (#90809)
## About The Pull Request Melee attack chain now has a list passed along with it, `attack_modifiers`, which you can stick force modifiers to change the resulting attack This is basically a soft implementation of damage packets until a more definitive pr, but one that only applies to item attack chain, and not unarmed attacks. This change was done to facilitate a baton refactor - batons no longer hack together their own attack chain, and are now integrated straight into the real attack chain. This refactor itself was done because batons don't send any attack signals, which has been annoying in the past (for swing combat). ## Changelog 🆑 Melbert refactor: Batons have been refactored again. Baton stuns now properly count as an attack, when before it was a nothing. Report any oddities, particularly in regards to harmbatonning vs normal batonning. refactor: The method of adjusting item damage mid-attack has been refactored - some affected items include the Nullblade and knives. Report any strange happenings with damage numbers. refactor: A few objects have been moved to the new interaction chain - records consoles, mawed crucible, alien weeds and space vines, hedges, restaurant portals, and some mobs - to name a few. fix: Spears only deal bonus damage against secure lockers, not all closet types (including crates) /🆑 |
||
|
|
383e9f8cfd | BSA impact animation (#91085) | ||
|
|
9968f94721 |
Regal Rat cleanup & minor changes (#91012)
## About The Pull Request Since #90505 added another entry to it the Regal Rat Riot ability, which turns maintenance creatures into versions loyal to the rat, has become sort of unmanageable (and to be honest it was a bit gross to start with). Instead of having a big if/else list (which was making the same range check multiple times...) that sets stats on a bunch of mobs, I delegated it to the mobs themselves and instead of changing some stats of the existing mobs we just turn them into a new mob which can be spawned or placed separately by mappers or admins if they want. Other stuff I changed: Riot (the ability which transforms mobs into minions) no longer spawns a mouse if it fails to find anything. Instead you have a chance to fish mice out of disposals bins while digging out trash and items. Domain is now a toggle which activates itself every 6 seconds rather than a button you manually click every 6 seconds. Riot makes a visual effect when used. Rare Pepe randomisation is done via a random spawner instead of the mob modifying a bunch of its own properties in Initialise. A bunch of mobs now automatically follow you after being tamed. I wrote this assuming I was going to add it to the rioted mobs but then didn't end up doing that because you might want them to immediately attack someone. My rule of thumb is that if I think you'd want the mob to attack someone the moment it is befriended I didn't add this and if you wouldn't I did. I changed some of the regal rat minion names, and some of them can now spawn from gold slime which couldn't before. ## Why It's Good For The Game This proc sucked and now it's nicer. As for the other changes; - A tamed mob immediately following you is nice feedback and saves you a click as it's likely to be your first action. Also removes some admin panel shitcode I added. - I changed Domain to a toggle because you generally want to use it on cooldown and someone suggested it on this PR and it sounded like a good idea. - I saw someone in Discord complaining that the previous flow of recruiting rats by hitting Riot with nothing around to summon one, waiting, hitting it again to convert one rat, and waiting again was tedious and annoying which I agree with. This method improves the quality of life by separating these two actions but _also_ as a side effect reduces a regal rat's ability to secretly stockpile 50 rats in a hidden maintenance room because most disposal bins are in slightly more visible areas, they'll actually need to go and make a mess somewhere someone can see them. ## Changelog 🆑 balance: Regal Rats can now grab mice out of disposal bins, and no longer spawn them with the Riot ability. balance: The Riot ability no longer needs to be used once for each slightly different kind of mob in your radius. balance: The Regal Rat Domain ability is now toggled on and off. balance: Several kinds of mob will immediately start following you once tamed. balance: Rats, hostile frogs, and evil snails can be created via gold slime reaction. /🆑 |
||
|
|
179cc3afbb | BSA impact animation (#91085) | ||
|
|
96976c0b9a |
Regal Rat cleanup & minor changes (#91012)
## About The Pull Request Since #90505 added another entry to it the Regal Rat Riot ability, which turns maintenance creatures into versions loyal to the rat, has become sort of unmanageable (and to be honest it was a bit gross to start with). Instead of having a big if/else list (which was making the same range check multiple times...) that sets stats on a bunch of mobs, I delegated it to the mobs themselves and instead of changing some stats of the existing mobs we just turn them into a new mob which can be spawned or placed separately by mappers or admins if they want. Other stuff I changed: Riot (the ability which transforms mobs into minions) no longer spawns a mouse if it fails to find anything. Instead you have a chance to fish mice out of disposals bins while digging out trash and items. Domain is now a toggle which activates itself every 6 seconds rather than a button you manually click every 6 seconds. Riot makes a visual effect when used. Rare Pepe randomisation is done via a random spawner instead of the mob modifying a bunch of its own properties in Initialise. A bunch of mobs now automatically follow you after being tamed. I wrote this assuming I was going to add it to the rioted mobs but then didn't end up doing that because you might want them to immediately attack someone. My rule of thumb is that if I think you'd want the mob to attack someone the moment it is befriended I didn't add this and if you wouldn't I did. I changed some of the regal rat minion names, and some of them can now spawn from gold slime which couldn't before. ## Why It's Good For The Game This proc sucked and now it's nicer. As for the other changes; - A tamed mob immediately following you is nice feedback and saves you a click as it's likely to be your first action. Also removes some admin panel shitcode I added. - I changed Domain to a toggle because you generally want to use it on cooldown and someone suggested it on this PR and it sounded like a good idea. - I saw someone in Discord complaining that the previous flow of recruiting rats by hitting Riot with nothing around to summon one, waiting, hitting it again to convert one rat, and waiting again was tedious and annoying which I agree with. This method improves the quality of life by separating these two actions but _also_ as a side effect reduces a regal rat's ability to secretly stockpile 50 rats in a hidden maintenance room because most disposal bins are in slightly more visible areas, they'll actually need to go and make a mess somewhere someone can see them. ## Changelog 🆑 balance: Regal Rats can now grab mice out of disposal bins, and no longer spawn them with the Riot ability. balance: The Riot ability no longer needs to be used once for each slightly different kind of mob in your radius. balance: The Regal Rat Domain ability is now toggled on and off. balance: Several kinds of mob will immediately start following you once tamed. balance: Rats, hostile frogs, and evil snails can be created via gold slime reaction. /🆑 |
||
|
|
d9cdc4889d | Makes it so that there is an actual tracer on the tesla cannon hitscan beam. (#90979) | ||
|
|
b5b1fed37d | Fixes a couple of directional xenogib sprites that I missed [NO GBP] (#90897) | ||
|
|
9740ea8910 | Makes it so that there is an actual tracer on the tesla cannon hitscan beam. (#90979) | ||
|
|
c9f4c68447 | Fixes a couple of directional xenogib sprites that I missed [NO GBP] (#90897) | ||
|
|
4ba1520df8 |
There will be (colorful) blood: datumizes bloodtypes, greyscales blood sprites, and fixes a lot of inconsistencies with gibs and forensic data (#90593)
## About The Pull Request This PR: - Converts all of the blood types into their own datums, which can be set up to have their own colors, descriptions, and other fun unique properties. For example, the clown blood that is constantly randomizing itself. - Converts all the blood decals into greyscale, which in turn eliminates the need for separate xeno sprites. They both use the same ones now. - Audit of blood splatters/gibs/bodyparts/organs to make sure that they are getting the correct forensic data applied to them. - For the admins: Adds a clown blood smite. My primary goal with was to make the appearance of the new sprites look almost indistinguishable to the original ones. I consider this a "first pass", as in there are still some further refactors I would like to do on the backend side, but am satisfied with it enough to push it forward as a first step towards a better blood system! I didn't want to do too much at once because of A) fatigue and B) easier to test things to make sure I'm not breaking something important this way. This has been test-merged on Nova for over a week now and has been going great, so I finally got around to upstreaming the bones to TG. Although I did test it a bit you may want to TM it just in case I missed some things when copying it over. |
||
|
|
11d82b7995 |
You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
People can now pet held mothroaches and pugs if they want to, or use items on them, hopefully without causing many issues. After all, it only took about a couple dozen lines of code to make... ...Oh, did the 527 files changed or the 850~ lines added/removed perhaps catch your eye? Made you wonder if I accidentally pushed the wrong branch? or skewed something up big time? Well, nuh uh. I just happen to be fed up with the melee attack chain still using stringized params instead of an array/list. It was frankly revolting to see how I'd have had to otherwise call `list2params` for what I'm trying to accomplish here, and make this PR another tessera to the immense stupidity of our attack chain procs calling `params2list` over and over and over instead of just using that one call instance from `ClickOn` as an argument. It's 2025, honey, wake up! I also tried to replace some of those single letter vars/args but there are just way too many of them. Improving old code. And I want to be able to pet mobroaches while holding them too. 🆑 qol: You can now interact with held mobs in more ways beside wearing them. /🆑 |
||
|
|
cced4d3085 |
Sonar Module Adjustments (#90447)
## About The Pull Request Changes the sonar module to use signals instead of processing, meaning it will move much smoother. As a small buff/QOL to the sonar, humans are now colored red compared to non-human mobs.   ## Why It's Good For The Game Makes the sonar a little less tedious & more useful ## Changelog 🆑 Wallem qol: The active sonar module has been slightly tweaked, resulting in smoother updates & a red tinge on highlighted humans. /🆑 |
||
|
|
3d01e86e29 |
There will be (colorful) blood: datumizes bloodtypes, greyscales blood sprites, and fixes a lot of inconsistencies with gibs and forensic data (#90593)
## About The Pull Request This PR: - Converts all of the blood types into their own datums, which can be set up to have their own colors, descriptions, and other fun unique properties. For example, the clown blood that is constantly randomizing itself. - Converts all the blood decals into greyscale, which in turn eliminates the need for separate xeno sprites. They both use the same ones now. - Audit of blood splatters/gibs/bodyparts/organs to make sure that they are getting the correct forensic data applied to them. - For the admins: Adds a clown blood smite. My primary goal with was to make the appearance of the new sprites look almost indistinguishable to the original ones. I consider this a "first pass", as in there are still some further refactors I would like to do on the backend side, but am satisfied with it enough to push it forward as a first step towards a better blood system! I didn't want to do too much at once because of A) fatigue and B) easier to test things to make sure I'm not breaking something important this way. This has been test-merged on Nova for over a week now and has been going great, so I finally got around to upstreaming the bones to TG. Although I did test it a bit you may want to TM it just in case I missed some things when copying it over. |
||
|
|
339616ae78 |
You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
## About The Pull Request People can now pet held mothroaches and pugs if they want to, or use items on them, hopefully without causing many issues. After all, it only took about a couple dozen lines of code to make... ...Oh, did the 527 files changed or the 850~ lines added/removed perhaps catch your eye? Made you wonder if I accidentally pushed the wrong branch? or skewed something up big time? Well, nuh uh. I just happen to be fed up with the melee attack chain still using stringized params instead of an array/list. It was frankly revolting to see how I'd have had to otherwise call `list2params` for what I'm trying to accomplish here, and make this PR another tessera to the immense stupidity of our attack chain procs calling `params2list` over and over and over instead of just using that one call instance from `ClickOn` as an argument. It's 2025, honey, wake up! I also tried to replace some of those single letter vars/args but there are just way too many of them. ## Why It's Good For The Game Improving old code. And I want to be able to pet mobroaches while holding them too. ## Changelog 🆑 qol: You can now interact with held mobs in more ways beside wearing them. /🆑 |
||
|
|
753d8e5ba4 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-04a | ||
|
|
d98f9ed2c7 |
Sonar Module Adjustments (#90447)
## About The Pull Request Changes the sonar module to use signals instead of processing, meaning it will move much smoother. As a small buff/QOL to the sonar, humans are now colored red compared to non-human mobs.   ## Why It's Good For The Game Makes the sonar a little less tedious & more useful ## Changelog 🆑 Wallem qol: The active sonar module has been slightly tweaked, resulting in smoother updates & a red tinge on highlighted humans. /🆑 |
||
|
|
d3d3a12540 |
The big fix for pixel_x and pixel_y use cases. (#90124)
## About The Pull Request 516 requires float layered overlays to be using pixel_w and pixel_z instead of pixel_x and pixel_y respectively, unless we want visual/layering errors. This makes sense, as w,z are for visual effects only. Sadly seems we were not entirely consistent in this, and many things seem to have been using x,y incorrectly. This hopefully fixes that, and thus also fixes layering issues. Complete 1:1 compatibility not guaranteed. I did the lazy way suggested to me by SmArtKar to speed it up (Runtiming inside apply_overlays), and this is still included in the PR to flash out possible issues in a TM (Plus I will need someone to grep the runtimes for me after the TM period to make sure nothing was missed). After this is done I'll remove all these extra checks. Lints will probably be failing for a bit, got to wait for [this update](https://github.com/SpaceManiac/SpacemanDMM/commit/4b77cd487d0a7b6a069df20356b701af5b20489d) to them to make it into release. Or just unlint the lines, though that's probably gonna produce code debt ## Why It's Good For The Game Fixes this massive 516 mess, hopefully. closes #90281 ## Changelog 🆑 refactor: Changed many of our use cases for pixel_x and pixel_y correctly into pixel_w and pixel_z, fixing layering issues in the process. /🆑 --------- Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Co-authored-by: SmArtKar <master.of.bagets@gmail.com> |
||
|
|
b6b8306fda | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-02a | ||
|
|
b8671462a9 |
The Galactic Mineral Market Presents: The Spotlight Station Trait (#89136)
## About The Pull Request ### _**HEY HUSTLERS**_ Do you want to know all about the station's real GDP **_BREADWINNERS_** this shift? Well, look no further than the all new GMM SPOTLIGHT. On select shifts (Where the trait is rolled), the GMM SPOTLIGHT will shine on who's HUSTLING and GRINDING the hardest so YOU CAN ~~know who has enough money to try and mug them~~ LEARN THE SECRETS OF THE CREDIT WHISPERS **AMONG US**. Don't know where these legendary GRIND-O-HOLICS are this very SECOND? Well, the GMM will UPDATE the SPOTLIGHT every 5 minutes, with their IDENTITY MADE KNOWN to all crewmates via the station updates and economic summary newcaster channels. WHAT ARE YOU WAITING FOR? ALIEN JIM KRAMER??? UNLEASH THE SECRETS OF THE HUSTLERS **TODAY**!!! (The original idea for this station trait was given to me by xhorian/@YesterdaysPromise a few months back, so big thanks to him for the inspiration.) Video of it in action: https://discord.com/channels/326822144233439242/326831214667235328/1330408517248614432 ## Why It's Good For The Game This is, obviously, a negative station trait. On shifts where players are working to make lots of personal profit, it can either serve as a badge of honor, or as a target being painted on your back about who has the most money. Still, it's somewhat flavorful, and I think it could be interesting to have happen to a player, where suddenly a beam of light from above ™️ suddenly appears and starts following you. I wouldn't be against giving command some kind of control to let them cancel the effect early by un-subscribing from their newsletter, but it depends on how people feel about this. ## Changelog 🆑 add: Stations in your sector may start with the GMM spotlight, a massive economic broadcast spotlight that will follow the wealthiest crewmate on board until the next paycheck /🆑 |
||
|
|
8d48f8d4d2 |
Fixes an 8 year old bug which colored your HUDs with you (#88667)
## About The Pull Request Partially a port of https://github.com/DaedalusDock/daedalusdock/pull/1163 which is a port of my own code from bitbus Closes #88579 Instead of manually setting hud images and positioning we now can use set_hud_image_state which also updates their position to ensure that they scale with the owner atom. HUDs had RESET_COLOR and RESET_TRANSFORM but no KEEP_APART, so they were stuck with mobs all this time. I replaced RESET_TRANSFORM with PIXEL_SCALE (shouldn't be reserved to mob huds only to be honest) and added KEEP_APART, so that HUDs still scale/rotate with their owner but don't inherit their color. Also fixed the dragon issue, that's where this PR actually started. Closes https://github.com/tgstation/tgstation/issues/45411 ## Why It's Good For The Game I don't want my HUDs to be pretty pink when I make a barbie Clarke. ## Changelog 🆑 refactor: Rewrote some of HUD code so they're no longer colored in their owner's color fix: Space dragons no longer turn invisible when toggling seethrough mode /🆑 |
||
|
|
ab7f1c12d6 |
Implements icon size caching to avoid unnecessary load in updatehealth (#88266)
## About The Pull Request Technically an improved port of https://github.com/DaedalusDock/daedalusdock/pull/651, instead of only storing height over 32 pixels for HUDs we store both pure height and width for the sake of cutting down on icon operation spam (which is pretty costly). Should save us a significant amount of time, cuts down update_health_hud times by 45% and total update_health by 30% which is pretty good for a somewhat hot proc. ## Why It's Good For The Game Our health HUDs constantly fetch icons ***twice*** every update_health, jesus. ## Changelog 🆑 SmArtKar, Kapu code: Implemented caching for icon sizes which should significantly improve mob health performance due to HUDs constantly fetching icons /🆑 |
||
|
|
6585612413 | Fixes invisible atmos fires (#88155) | ||
|
|
f34bd3f5c0 |
Guncode Agony 4.2: Firing Effect Intervallo (#88072)
## About The Pull Request Firing effects now attach themselves to the firer, meaning you don't run over or back from your own muzzle flash if you fire while running. ## Why It's Good For The Game Look better, both when moving into and away from the effect. ## Changelog 🆑 image: Muzzle flash now is attached to your sprite, meaning you won't run over it if you fire while moving /🆑 |
||
|
|
bbb7a41743 |
Guncode Agony 4: The Great Projectile Purge (#87740)
## About The Pull Request ~~Kept you waitin huh!~~ The projectile refactor is finally here, 4 years later. This PR (almost) completely rewrites projectile logic to be more maintainable and performant. ### Key changes: * Instead of moving by a fixed amount of pixels, potentially skipping tile corners and being performance-heavy, projectiles now use raymarching in order to teleport through tiles and only visually animate themselves. This allows us to do custom per-projectile animations and makes the code much more reliable, sane and maintainable. You (did not) serve us well, pixel_move. * Speed variable now measures how many tiles (if SSprojectiles has default values) a projectile passes in a tick instead of being a magical Kevinz Unit™️ coefficient. pixel_speed_multiplier has been retired because it never had a right to exist in the first place. __This means that downstreams will need to set all of their custom projectiles' speed values to ``pixel_speed_multiplier / speed``__ in order to prevent projectiles from inverting their speed. * Hitscans no longer operate with spartial vectors and instead only store key points in which the projectile impacted something or changed its angle. This should similarly make the code much easier to work with, as well as fixing some visual jank due to incorrect calculations. * Projectiles only delete themselves the ***next*** tick after impacting something or reaching their maximum range. Doing so allows them to finish their impact animation and hide themselves between ticks via animation chains. This means that projectiles no longer disappear ~a tile before hitting their target, and that we can finally make impact markers be consistent with where the projectile actually landed instead of being entirely random. <details> <summary>Here is an example of how this affects our slowest-moving projectile: Magic Missiles.</summary> Before: https://github.com/user-attachments/assets/06b3a980-4701-4aeb-aa3e-e21cd056020e After: https://github.com/user-attachments/assets/abe8ed5c-4b81-4120-8d2f-cf16ff5be915 </details> <details> <summary>And here is a much faster, and currently jankier, disabler SMG.</summary> Before: https://github.com/user-attachments/assets/2d84aef1-0c83-44ef-a698-8ec716587348 After: https://github.com/user-attachments/assets/2e7c1336-f611-404f-b3ff-87433398d238 </details> ### But how will this affect the ~~trout population~~ gameplay? Beyond improved visuals, smoother movement and a few minor bugfixes, this should not have a major gameplay impact. If something changed its behavior in an unexpected way or started looking odd, please make an issue report. Projectile impacts should now be consistent with their visual position, so hitting and dodging shots should be slightly easier and more intuitive. This PR should be testmerged extensively due to the amount of changes it brings and considerable difficulty in reviewing them. Please contact me to ensure its good to merge. Closes #71822 Closes #78547 Closes #78871 Closes #83901 Closes #87802 Closes #88073 ## Why It's Good For The Game Our core projectile code is an ungodly abomination that nobody except me, Kapu and Potato dared to poke in the past months (potentially longer). It is laggy, overcomplicated and absolutely unmaintaineable - while a lot of decisions made sense 4 years ago when we were attempting to introduce pixel movement, nowadays they are only acting as major roadblocks for any contributor who is attempting to make projectile behavior that differs from normal in any way. Huge thanks to Kapu and Potato (Lemon) on the discord for providing insights, ideas and advice throughout the past months regarding potential improvements to projectile code, almost all of which made it in. ## Changelog 🆑 qol: Projectiles now visually impact their targets instead of disappearing about a tile short of it. fix: Fixed multiple minor issues with projectile behavior refactor: Completely rewrote almost all of our projectile code - if anything broke or started looking/behaving oddly, make an issue report! /🆑 |
||
|
|
9b40e13f8b |
Makes dust animation look less 2006 (#87435)
## About The Pull Request This was inspired by an effect I saw on Paradise but I sprited my own https://github.com/user-attachments/assets/2130053c-a6ea-48e6-8b62-4c08563fd154 (Todo, make the skeleton appearing less jank) ## Why It's Good For The Game 1. Looks less 2006. 2. The dust sprite will reflect the mob being dusted, since it's literally just Your Sprite. Your clothes, species, etc. 3. All species and all mob types now animate being dusted - from corgi to xenos, from borgs to lizards -, and we can even reuse this effect for items being dusted if we so desire ## Changelog 🆑 Melbert image: The animation for being dusted now takes into account your sprite, rather than being a normal nude spaceman /🆑 |
||
|
|
d5daa9c9b8 |
[NO GBP] Renames mob/camera to mob/eye and makes everything follow suit (#87684)
## Why It's Good For The Game Clarity and consistency regarding DM's systems. Internally, `eye` is used for anything that controls the client's view.  How `eye` is used in DM is consistent with how we use the term, so I figured this would add clarity. Being named mob/camera also makes it unclear exactly what it's doing. The name implies that it would function similar to how mob/camera/ai_eye does, but most of the time it's only used as... an eye. My ulterior reason for this PR is that I want to clean up mob/camera/ai_eye and it's subtypes after this. ## Changelog 🆑 server: mob/camera has been renamed to mob/eye, which may break downstreams /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
692540a7b9 |
Singularity_pull() standartize (#87304)
## About The Pull Request Previous attempt - https://github.com/tgstation/tgstation/pull/87227 `/atom/proc/singularity_pull(obj/singularity/singularity, current_size)` has first arg typed, but other procs were just referencing it as a un-typed variable. Since args are not standartized AND `atom/proc/singularity_pull(obj/singularity/singularity, current_size)` is out-dated, since it can be called by things that has `/datum/component/singularity` - not just by `obj/singularity/singularity` - This PR just adds args to every `proc/singularity_pull()` as follows: `proc/singularity_pull(atom/singularity, current_size)` ## Why It's Good For The Game Standartization ## Changelog No changelog needed |
||
|
|
e59d8ba64b | Merge commit '179a607a90ad7ec62bdaff4e6fe72af60ee56442' of https://github.com/tgstation/tgstation into upstream-24-10b |