mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-15 01:54:52 +01:00
masterfixes
137 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
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> |
||
|
|
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) | ||
|
|
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. /🆑 |
||
|
|
b5b1fed37d | Fixes a couple of directional xenogib sprites that I missed [NO GBP] (#90897) | ||
|
|
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 /🆑 |
||
|
|
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 /🆑 |
||
|
|
e59d8ba64b | Merge commit '179a607a90ad7ec62bdaff4e6fe72af60ee56442' of https://github.com/tgstation/tgstation into upstream-24-10b | ||
|
|
96c0c0b12c |
Fish infusion (#87030)
## About The Pull Request I'm adding a new infusion ~~(actually four, but two of them are just holders for specific organs tied to a couple fish traits)~~ to the game. As the title says, it's about fish. The infusion is composed of three primary organs, plus another few that can be gotten from fish with specific traits. The primary organs are: - Gills (lungs): Instead of breathing oxygen, you now need to stay wet or breathe water vapor. - fish-DNA infused stomach: Can safely eat raw fish. - fish tail: On its own, it only speeds you up on water turfs, but it has another effect once past the organ set threshold. It also makes you waddle and flop like a fish while crawling (I still gotta finish sprites on this one) Other organs are: - semi-aquatic lungs: A subtype of gills from fish with the 'amphibious' trait, falls back on oxygen if there's no water. Can also be gotten from frogs, axolotl and crabs. - fish-DNA infused liver: From fish with the 'toxic' trait. Uses tetrodotoxin as a healing chem instead of a toxin. Also better tolerance to alcohol if you want to drink like a fish (ba dum tsh). - inky tongue: From fish with the 'ink production' trait. Gives mobs the ability to spit ink on a cooldown, blinding and confusion foes temporarily. The main gimmick of this infusion revolves around being drenched in water to benefit from it, In the case you get the gills organ, this also becomes a necessity, to not suffocate to death (alternatively, you can breathe water vapor, without any benefit). To enable the bonus of the organs set, three organs need to be infused. They can be gills, stomach, tail and/or liver, while the inky tongue doesn't count towards it. Once the threshold is reached, the following bonus are enabled: - Wetness decays a lot slower and resists fire a bit more. - Ink spit becomes stronger, allowing it to very briefly knock down foes. - Fishing bonuses and experience - Resistance to high pressures - Slightly expanded FOV - drinking water and showers mildly heal you over time. - for felinids: You won't hate getting sprayed by water or taking a shower. - While wet: - - If the fish tail is implanted, crawling speed is boosted. - - You no longer slip on wet tiles. - - You also become slippery when lying on the floor. - - You get a very mild damage resistance and passive stamina regeneration, and cool down faster. - - You resist grabs better. - - get a very weak positive moodlet. - However, being dry will make you quite squisher, especially against fire damage, slower and give you a modest negative moodlet. While working on it, I've also noticed a few things that explained why tetrodotoxin (TTX) did jackshit at low doses, because livers have a set toxin tolerance value, below which, any amount of toxin does nothing. Also I've felt like reagents like multiver & co were a bit too strong against a reagent that's supposed to work at very low doses, with slow metabolization, so I've added a couple variables to buff TTX a bit, making it harder to purge and resistant to liver toxin tolerance (also added a bit of lungs damage). ## Why It's Good For The Game I wanted to take a shot at coding a DNA infusion and see how chock-full I could make it. DNA infusions are like a middle point between "aha, small visual trinket" and organs with generally ok effects. I seek to make something a bit more complex ~~(also tied to fishing ofc because that's more or less the recurrent gag of my recent features)~~ primaly focused around the unique theme of being strong when wet and weaker when dry. EDIT: The PR is now ready, have a set of screenshots of the (fairly mid) fish tails (and gills, barely visible) on randomly generated spessman and one consistent joe:  ## Changelog 🆑 add: Added a new infusion to the game: Fish. Its main gimmick revolves around being stronger and slippery when wet while weaker when dry. balance: Buffed tetrodotoxin a little against liver tolerance and purging reagents. /🆑 |
||
|
|
3f0b4abb8d |
Replaces world.icon_size (and some magic numbers) with defines (#86819)
## About The Pull Request All usages of world.icon_size in code have been replaced with new `ICONSIZE_X`, `ICONSIZE_Y` and `ICONSIZE_ALL` defines depending on context Replaces some "32" magic numbers with the defines A few bits of code have been modified to split up x/y math as well ## Why It's Good For The Game Magic number bad, code more readable, code more flexible and I'm told there's an access cost to doing world.icon_size so minor performance gains ## Changelog 🆑 tonty code: made some code relating to the world's icon size more readable /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
58501dce77 |
Reorganizes the sound folder (#86726)
## About The Pull Request <details> - renamed ai folder to announcer -- announcer -- - moved vox_fem to announcer - moved approachingTG to announcer - separated the ambience folder into ambience and instrumental -- ambience -- - created holy folder moved all related sounds there - created engineering folder and moved all related sounds there - created security folder and moved ambidet there - created general folder and moved ambigen there - created icemoon folder and moved all icebox-related ambience there - created medical folder and moved all medbay-related ambi there - created ruin folder and moves all ruins ambi there - created beach folder and moved seag and shore there - created lavaland folder and moved related ambi there - created aurora_caelus folder and placed its ambi there - created misc folder and moved the rest of the files that don't have a specific category into it -- instrumental -- - moved traitor folder here - created lobby_music folder and placed our songs there (title0 not used anywhere? - server-side modification?) -- items -- - moved secdeath to hailer - moved surgery to handling -- effects -- - moved chemistry into effects - moved hallucinations into effects - moved health into effects - moved magic into effects -- vehicles -- - moved mecha into vehicles created mobs folder -- mobs -- - moved creatures folder into mobs - moved voice into mobs renamed creatures to non-humanoids renamed voice to humanoids -- non-humanoids-- created cyborg folder created hiss folder moved harmalarm.ogg to cyborg -- humanoids -- -- misc -- moved ghostwhisper to misc moved insane_low_laugh to misc I give up trying to document this. </details> - [X] ambience - [x] announcer - [x] effects - [X] instrumental - [x] items - [x] machines - [x] misc - [X] mobs - [X] runtime - [X] vehicles - [ ] attributions ## Why It's Good For The Game This folder is so disorganized that it's vomit inducing, will make it easier to find and add new sounds, providng a minor structure to the sound folder. ## Changelog 🆑 grungussuss refactor: the sound folder in the source code has been reorganized, please report any oddities with sounds playing or not playing server: lobby music has been repathed to sound/music/lobby_music /🆑 |
||
|
|
9a9b428b61 |
Wallening Revert [MDB Ignore][IDB Ignore] (#86161)
This PR is reverting the wallening by reverting everything up to
|
||
|
|
4b4e9dff1d |
Wallening [IDB IGNORE] [MDB IGNORE] (#85491)
## What's going on here Kept you waitin huh! This pr resprites most all walls, windows and other "wall adjacent" things to a 3/4th perspective, technical term is "tall" walls (we are very smart). If you're trying to understand the technical details here, much of the "rendering tech" is built off the idea of split-vis. Basically, split a sprite up and render it on adjacent turfs, to prevent seeing "through" walls/doors, and to support seeing "edges" without actually seeing the atom itself. Most of the rest of it is pipelining done to accommodate how icons are cut. ## Path To Merge Almost* all sprites and code is done at this point. There are some things missing both on and off the bounty list, but that will be the case forever unless we force upstream (you guys) to stop adding new shit that doesn't fit the style. I plan on accepting and integrating prs to the current working repo <https://github.com/wall-nerds/wallening> up until a merge, to make contribution simpler and allow things like bounties to close out more easily This pr is quite bulky, even stripping away map changes it's maybe 7000 LOC (We have a few maps that were modified with UpdatePaths, I am also tentatively pring our test map, for future use.) This may inhibit proper review, although that is part of why I am willing to make it despite my perfectionism. Apologies in advance. Due to the perspective shift, a lot of mapping work is going to need to be done at some point. This comes in varying levels of priority. Many wallmounts are offset by hand, some are stuck in the wall/basically cannot be placed on the east/west/north edges of walls (posters), some just don't look great good in their current position. Tests are currently a minor bit yorked, I thought it was more important to get this up then to clean them fully. ## What does it look like?       ## Credits <details> <summary>Historical Mumbojumbo</summary> I am gonna do my best to document how this project came to be. I am operating off third party info and half remembered details, so if I'm wrong please yell at me. This project started sometime in late 2020, as a product of Rohesie trying to integrate and make easier work from Mojave Sun (A recently defunct fallout server) with /tg/. Mojave Sun (Apparently this was LITERALLY JUST infrared baron, that man is insane) was working with tall walls, IE walls that are 48px tall instead of the normal 32. This was I THINK done based off a technical prototype from aao7 proving A it was possible and B it didn't look like dogwater. This alongside oranges begging the art team for 3/4th walls (he meant TGMC style) lead to Rohesie bringing on contributors from general /tg/, including actionninja who would eventually take over as technical lead and Kryson, who would define /tg/'s version of the artstyle. Much of the formative aspects of this project are their work. The project was coming along pretty well for a few months, but ran into serious technical issues with `SIDE_MAP`, a byond map_format that allows for simpler 3/4th rendering. Due to BULLSHIT I will not detail here, the map format caused issues both at random with flickering and heavily with multiz. Concurrent with this, action stepped down after hacking out the rendering tech and starting work on an icon cutter that would allow for simpler icon generation, leaving ninjanomnom to manage the project. Some time passed, and the project stalled out due to the technical issues. Eventually I built a test case for the issues we had with `SIDE_MAP` and convinced lummox jr (byond's developer) to explain how the fuckin thing actually worked. This understanding made the project theoretically possible, but did not resolve the problems with multi-z. Resolving those required a full rework of how rendering like, worked. I (alongside tattle) took over project development from ninjanomnom at this time, and started work on Plane Cube (#69115), which when finished would finally make the project technically feasible. The time between then and now has been slow, progressive work. Many many artists and technical folks have dumped their time into this (as you can see from the credits). I will get into this more below but I would like to explicitly thank (in no particular order) tattle, draco, arcanemusic, actionninja, imaginos, viro and kylerace for keeping the project alive in this time period. I would have curled up into a ball and died if I had to do this all myself, your help has been indispensable. </details> <details> <summary>Detailed Credits</summary> Deep apologies if I have forgotten someone (I am sure I have, if someone is you please contact me). I've done my best to collate from the git log/my memory. Thanks to (In no particular order): Raccoff: Being funny to bully, creating threshold decals for airlocks aa07: (I think) inspiring the project ActionNinja: Laying the technical rock we build off, supporting me despite byond trying to kill him, building the icon cutter that makes this possible ArcaneMusic: Artistic and technical work spanning from the project's start to literally today, being a constant of motivation and positivity. I can't list all the stuff he's done Armhulen: Key rendering work (he's the reason thindows render right), an upbeat personality and a kick in the ass. Love you arm Azlan: Damn cool sprites, consistently Ben10Omintrix: You know ben showed up just to make basic mobs work, he's just fuckin like that man BigBimmer: A large amount of bounty work, alongside just like, throwing shit around. An absolute joy to work with Capsandi: Plaques, blastdoors, artistic work early on CapybaraExtravagante: Rendering work on wall frames Draco: SO MUCH STUFF. Much of the spritework done over the past two years is his, constantly engaged and will take on anything. I would have given up if not for you Floyd: Early rendering work, so early I don't even know the details. Enjoy freedom brother Imaginos16: A guiding hand through the middle years, handled much of the sprite review and contribution for a good bit there Iamgoofball: A dedication to detail and aesthetic goals, spends a lot of effort dissecting feedback with a focus on making things as good as they can be at the jump Infrared: Part of the impetus for the project, made all the xenomorph stuff in the MS style Jacquerel: A bunch of little upkeep/technical things, has done so much sprite gruntwork (WHY ARE THERE SO MANY PAINTING TYPES) Justice12354: Solved a bunch of error sprites (and worked out how to actually make prs to the project) Thanks bro! Kryson: Built the artstyle of the project, carrying on for years even when it was technically dying, only stopping to casually beat cancer. So much of our style and art is Kryson KylerAce: Handled annoying technical stuff for me, built window frame logic and fully got rid of grilles. LemonInTheDark: Rendering dirtywork, project management and just so much fucking time in dreammaker editing sprites Meyhazah: Table buttons, brass windows and alll the old style doors Mothblocks: Has provided constant support, gave me a deadline and motivation, erased worries about "it not being done", gave just SO much money to fill in the critical holes in sprites. Thanks moth MTandi: Contributed art despite his own blackjack and hookers club opening right down the road, I'm sorry I rolled over some of your sprites man I wish we had finished earlier Ninjanomnomnom: Consulted on gags issues, kept things alive through some truly shit times oranges: This is his fault Rohesie: Organized the effort, did much of the initial like, proof of concept stuff. I hope you're doin well whatever you're up to. san7890: Consulting on mapper UX/design problems, being my pet mapper Senefi: Offsetting items with a focus on detail/the more unused canidates SimplyLogan: Detailed map work and mapper feedback, personally very kind even if we end up talking past each other sometimes. Thank you! SpaceSmithers: Just like, random mapping support out of nowhere, and bein a straight up cool dude Tattle: A bunch of misc project management stuff, organizing the discord, managing the test server, dealing with all the mapping bullshit for me, being my backup in case of bus. I know you think you didn't do much but your presence and work have been a great help Thunder12345: Came out of nowhere and just so much of the random bounties, I'm kind of upset about how much we paid him Time-Green: I hooked him in by fucking with stuff he made and now he's just doin shit, thanks for helping out man! Twaticus: Provided artistic feedback and authority for my poor feeble coder brain, believed in the project for YEARS, was a constant source of ❤️ and affirmation unit0016: I have no god damn idea who she is, popped out of nowhere on the github one day and dealt with a bunch of annoying rendering/refactoring. Godspeed random furry thank you for all your effort and issue reports Viro: A bunch of detailed spriting moving towards 3/4ths, both on and off the wallening fork. If anyone believed this project would be done, it was viro Wallem: Artistic review and consultation, was my go-to guy for a long time when the other two spritetainers were inactive Waltermeldon: Cracked out a bunch of rendering work, he's the reason windows look like not dogwater. Alongside floyd and action spent a TON of time speaking to lummox/unearthing how byond rendering worked trying to make this thing happen ZephyrTFA: Added directional airlock helpers, dealt with a big fuckin bugaboo that was living in my brain like it was nothing. Love you brother And finally: The Mojave Sun development team. They provided a testbed for the idea, committed hundreds and hundreds of hours to the artstyle, and were a large reason we caught issues early enough to meaningfully deal with them. Your work is a testament to what longterm effort and deep detailed care produce. I hope you're doing well whatever you're up to. Go out with a bang! </details> ## Changelog 🆑 Raccoff, aa07, ActionNinja, ArcaneMusic, Armhulen, Azlan, Ben10Omintrix, BigBimmer, Capsandi, CapybaraExtravagante, Draco, Floyd, Iamgoofball, Imaginos16, Infrared, Jacquerel, Justice12354, Kryson, KylerAce, LemonInTheDark, Meyhazah, Mothblocks, MTandi, Ninjanomnom, oranges, Rohesie, Runi-c, san7890, Senefi, SimplyLogan, SomeAngryMiner, SpaceSmithers, Tattle, Thunder12345, Time-Green, Twaticus, unit0016, Viro, Waltermeldon, ZephyrTFA with thanks to the Mojave Sun team! add: Resprites or offsets almost all "tall" objects in the game to match a 3/4ths perspective add: Bunch of rendering mumbo jumbo to make said 3/4ths perspective work /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: = <stewartareid@outlook.com> Co-authored-by: Capsandi <dansullycc@gmail.com> Co-authored-by: ArcaneMusic <hero12290@aol.com> Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com> Co-authored-by: SomeAngryMiner <53237389+SomeAngryMiner@users.noreply.github.com> Co-authored-by: KylerAce <kylerlumpkin1@gmail.com> Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: Runi-c <5150427+Runi-c@users.noreply.github.com> Co-authored-by: Roryl-c <5150427+Roryl-c@users.noreply.github.com> Co-authored-by: tattle <article.disaster@gmail.com> Co-authored-by: Senefi <20830349+Peliex@users.noreply.github.com> Co-authored-by: Justice <42555530+Justice12354@users.noreply.github.com> Co-authored-by: BluBerry016 <50649185+unit0016@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com> Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com> Co-authored-by: Rob Bailey <github@criticalaction.net> Co-authored-by: MMMiracles <lolaccount1@hotmail.com> |
||
|
|
6f7494fd09 |
[MIRROR] New Traitor mech: Justice. (#28628)
* New Traitor mech: Justice. (#84097) ## About The Pull Request Adds new mech that can be created from emaged fabricator. To craft this mech you need: 1. Emag Fabricator to recive Justice disgine(done this, fabricator will emit a text and sound signal that can reveal you). 2. You need to craft it like any other mech but you also need 8 telecrystals to finish constraction. 3. To board a mech you need syndicate access (traitor can get it by purchasing an agent card). About Mech: Video: https://youtu.be/QwJfO_lbLK0 Text: Health 200 Damage 60 Only melee attacks(can't attach range weapons(can't attach anything in his arms at all)) Block chanse 60 Speed - in safty mode 2.5 in combat mode 4.5 Attack effects: In addition to damage, it has a 50 percent chance of cutting off an arm or leg (does not put you to sleep or give a knockdown effect when hit like regular combat mechs do). If a target in crit or stun makes a finishing attack instead of a regular attack, the mech says an epic phrase and after a second cuts off the target's head by dashing through the target. Special actions(can't be used if mech in safty mode): Invisability - Makes the mech invisible for 20 seconds. If the mech is pushed or collides with someone or if the pilot presses the invisibility button again, the mech will no longer be invisible and will go into a 5 second cooldown (the same will happen after 20 seconds). If you attack in invisibility, then instead of a normal attack the mech will make an AoE 3x3 attack 1 second after pressing (the attack will be accompanied by a sound and visual effect and for a second the mech will not be able to move, which gives enemies time to run away from the attack). Upon completion AoE attack, everyone( except peoples in crit and in stunned condition) in a 3x3 radius will receive 35 damage and a 25 chance of having one of their limbs cut off. Charge Attack - Mech makes a dash towards the cursor at a distance of up to 7 cells, breaking all obstacles in its path. If the obstacle is a living person (and he is not in crit and is not stunned) then he will receive 35 damage and a 25 chance of cutting off a limb. Cooldown 5 Seconds. P.S. Also added emag_act on fabricator so you can put any new secret traitor mechs on it. Also made the sounds of mech melee attacks to vars so that it would be more convenient to change them. Also fix a runtime error where if you set something in the mech's max_equip_by_category to 0, the mech UI panel doesn't load. ## Why It's Good For The Game Adds a traitor mech with fun and interesting mechanics. This is a new mech with new unique abilities that turns the battle with you into a boss fight. ## Changelog 🆑 add: New traitor mech: Justice. Emag fabricator to get it. /🆑 --------- Co-authored-by: Jacquerel <hnevard@ gmail.com> * New Traitor mech: Justice. --------- Co-authored-by: Xackii <120736708+Xackii@users.noreply.github.com> Co-authored-by: Jacquerel <hnevard@ gmail.com> |
||
|
|
82f92cb983 |
New Traitor mech: Justice. (#84097)
## About The Pull Request Adds new mech that can be created from emaged fabricator. To craft this mech you need: 1. Emag Fabricator to recive Justice disgine(done this, fabricator will emit a text and sound signal that can reveal you). 2. You need to craft it like any other mech but you also need 8 telecrystals to finish constraction. 3. To board a mech you need syndicate access (traitor can get it by purchasing an agent card). About Mech: Video: https://youtu.be/QwJfO_lbLK0 Text: Health 200 Damage 60 Only melee attacks(can't attach range weapons(can't attach anything in his arms at all)) Block chanse 60 Speed - in safty mode 2.5 in combat mode 4.5 Attack effects: In addition to damage, it has a 50 percent chance of cutting off an arm or leg (does not put you to sleep or give a knockdown effect when hit like regular combat mechs do). If a target in crit or stun makes a finishing attack instead of a regular attack, the mech says an epic phrase and after a second cuts off the target's head by dashing through the target. Special actions(can't be used if mech in safty mode): Invisability - Makes the mech invisible for 20 seconds. If the mech is pushed or collides with someone or if the pilot presses the invisibility button again, the mech will no longer be invisible and will go into a 5 second cooldown (the same will happen after 20 seconds). If you attack in invisibility, then instead of a normal attack the mech will make an AoE 3x3 attack 1 second after pressing (the attack will be accompanied by a sound and visual effect and for a second the mech will not be able to move, which gives enemies time to run away from the attack). Upon completion AoE attack, everyone( except peoples in crit and in stunned condition) in a 3x3 radius will receive 35 damage and a 25 chance of having one of their limbs cut off. Charge Attack - Mech makes a dash towards the cursor at a distance of up to 7 cells, breaking all obstacles in its path. If the obstacle is a living person (and he is not in crit and is not stunned) then he will receive 35 damage and a 25 chance of cutting off a limb. Cooldown 5 Seconds. P.S. Also added emag_act on fabricator so you can put any new secret traitor mechs on it. Also made the sounds of mech melee attacks to vars so that it would be more convenient to change them. Also fix a runtime error where if you set something in the mech's max_equip_by_category to 0, the mech UI panel doesn't load. ## Why It's Good For The Game Adds a traitor mech with fun and interesting mechanics. This is a new mech with new unique abilities that turns the battle with you into a boss fight. ## Changelog 🆑 add: New traitor mech: Justice. Emag fabricator to get it. /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
16c66010c9 |
[MIRROR] /icons/ folder cleansing crusade part 3 (#27859)
* /icons/ folder cleansing crusade part 3 * fixes --------- Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
8eb3b51ad9 |
/icons/ folder cleansing crusade part 3 (#83420)
## About The Pull Request In my effort to make the /icons/ folder cleaner and more intuitive instead of having to rely on recalling names of stuff and looking them up in code to find them for poor sods such as myself, plus in spurt of complusion to organize stuff, here goes. I've tracked all changes in commit descriptions. A lot still to be done, but I know these waves go over dozens of files making things slow, so went lighter on it. Destroyed useless impostor files taking up space and cleaned a stray pixel on my way. ## Why It's Good For The Game Cleaner /icons/ file means saner spriters, less time spent. Stray pixels and impostor files (ones which are copies of actually used ones elsewhere) are not good. ## Changelog 🆑 image: Cleaned a single stray pixel in a single frame of a bite telegraphing accidentaly found while re-organizing the files. /🆑 |
||
|
|
ae3a8acb8e |
* Turns mush cap into an extorgan
* Trimming the fat * Trimming the fat * Update mushpeople.dm * Adds colorblindness as a mild brain trauma (#76527) What the title says. The brain trauma makes the whole screen monochrome until cured.  I feel like the current pool for mild brain traumas is quite lame, this helps spice it up a bit with something that is quite annoying and distracting but not game breaking (as mild brain traumas should generally be). 🆑 add: Added colorblindness as a mild brain trauma. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> * Fix species `var/hair_color` not being used for, well, hair color (#82168) `var/hair_color` for species was intended to be used as a "this species uses this type of hair color thing" But at some point that got completely lost and now it's only used for sprite accessories This fixes that. That means Slimepeople now have properly slimey hair. And Ethereals are less snowflake once more. 🆑 Melbert fix: Fixed Slimepeople's hair not matching their slimey colors. /🆑 * Revert "Fix species `var/hair_color` not being used for, well, hair color (#82168)" This reverts commit c4cb756. * Revert "Adds colorblindness as a mild brain trauma (#76527)" This reverts commit eb815f5. * Update _species.dm * unused var * Caps list.. * Update mushpeople.dm * Update mushpeople.dm * Update mushpeople.dm * Update mushpeople.dm * Update mushpeople.dm * Attempts to fix CI errors * Update cap.dm * Update _external_organ.dm * Update monkey.dm * Revert "Update monkey.dm" This reverts commit 29f54c8. * Revert "Update _external_organ.dm" This reverts commit 8de5ea7. * Update _external_organ.dm * Revert "Update _external_organ.dm" This reverts commit 644cc56. * Fix CI maybe? * Update cap.dm * Update DNA.dm * Some cleanup/updating to upstream * Update global_lists.dm * Mush * Update mushpeople.dm * Hopefully the last fix * Doing this differently * Update organ.dm * Update organ.dm * Update organ.dm * Update organ.dm * Update organ.dm * OK * Update organ.dm * Update podpeople.dm * maybe * Hm * Hm * Will this break things? * Revert "Will this break things?" This reverts commit bd288c6. * Test * Update organ.dm * Update organ.dm * Revert "Update organ.dm" This reverts commit ca77ff9. * Update organ.dm * . * . * . * Update snail.dm * Monkeys now use height offset (and monkey tail works) (#81598) This PR adds the ability for monkeys to wear any jumpsuit in the game, and adds support for them to wear things like coats, gloves, and shoes (though this cannot be obtained in-game and is solely achieved through admins, which I also improved a bit upon by adding a defined bitfield for no equip flags). This reverts a lot of changes from tgstation/tgstation#73325 - We no longer check height from limbs and such to bring sprites down, instead monkeys now work more similarly to humans, so the entire PR was made irrelevant, and I didn't really want to leave around dead code for the sake of having a human with longer legs. I've now also added support for Dwarfism, which makes monkeys look even smaller. Very minor change but at least now the mutation doesn't feel like it does literally nothing to monkeys (since they can already walk over tables). Here's a few examples of how it can appear in game (purely for demonstration, as it is currently intentionally made impossible to obtain in-game, though if someone wants to change that post-this PR now that support is added, feel free): Tails have been broken for a while now, the only reason you see them in-game is because they are baked into the monkey sprites. This fixes that, which means humans can now get monkey tails implanted into them (hell yeah) and monkeys can have their tails removed (also hell yeah) * Removes unneeded files * Revert "Removes unneeded files" This reverts commit 6469d37. * . * ok * Update tails.dm * Update monkey.dm * Fix monkey screenshot test * Update species.dm * Update reinf_walls.dm * Maintenance --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: Mal <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: vinylspiders <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
42f6f57dc0 |
[MIRROR] Replaces even more deciseconds with SECONDS (#27205)
Replaces even more deciseconds with SECONDS Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: Waterpig <wtryoutube@seznam.cz> |
||
|
|
9723b4b317 |
Replaces even more deciseconds with SECONDS (#82438)
## About The Pull Request
Using these search regexes:
Ending in 0:
`addtimer\((.*),\s?(\d{1,3})0\b\)`
replacement:
`addtimer($1, $2 SECONDS)`
Two digit ending in odd:
`addtimer\((.*), (\d)([1-9])\)$`
replacement:
`addtimer($1, $2.$3 SECONDS)`
Single digit ending odd:
`addtimer\((.*), ([1-9])\)$`
replacement:
`addtimer($1, 0.$2 SECONDS)`
## Why It's Good For The Game
Code readability
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
|
||
|
|
651e480576 |
[MIRROR] Temporary bees animate on death and no longer produce corpses (#26683)
* Temporary bees animate on death and no longer produce corpses (#81714) ## About The Pull Request I requested this as a change on the Hive Head PR but Ghommie didn't notice and merged it anyway so I had to do it myself instead of forcing the underclass to do it for me 😔  Anyway now bees created by the "beesplosion" reaction and by the Hive Head changeling power no longer produce corpses, and have a death animation. ## Why It's Good For The Game It looks better. It was weird that the bees would create corpses if killed but not if they expired. ## Changelog 🆑 image: adds a visual effect for hive head bees despawning /🆑 * Temporary bees animate on death and no longer produce corpses --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |