mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-12 16:44:43 +01:00
observer_fix_tm
8 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
d84a87f668 |
Rewrites to fix compiler errors on 516.1670+ (#93801)
## About The Pull Request Fixes all instances of numbers being used as assoc list keys in things that aren't alists, either by turning them into alists or changing the keys to something else. Also adds new macros to support creating global alists, as a few global lists became alists. Most of these are pretty simple and self-explanatory but - The GLOB.huds one necessitated rewriting because code depended on it being a non-assoc list, which it technically was because the defines it used as keys were numbers so BYOND turned it into a regular list, most of this was for loops through all the subtypes of `/datum/atom_hud/data/diagnostic` of which there's only one, so I just changed it to get that type directly by key - NT Frontier used number indexes which it looped through for some reason and also passed to TGUI, changed these to strings and adjusted the TGUI to match, I tested this and it works fine ## Why It's Good For The Game Makes the code compile, I couldn't test everything but I tried to check all usages of affected vars to make sure they wouldn't break from being switched to alists, a TM might be in order just to be sure nothing's fucked ## Changelog 🆑 refactor: rewrote all cases of numbers being used as keys in non-alist associative lists /🆑 |
||
|
|
8b8bcfd674 |
Adds two heavy midround rulesets, mass traitors and mass changelings (#93447)
## About The Pull Request - [ ] I tested this pr Adds "Midround Mass Traitors" and "Midround Mass Changelings" heavy rulesets Midround Mass Traitors will turn a number of the crew into sleeper agents Midround Mass Lings will spawn a number of changeling meteors BY DEFAULT: - Traitors will spawn 2-4 sleeper agents - Lings will spawn 2-3 changeling meteors - They won't run without >=2 candidates - They have no config blacklist (so the HoP can roll mass midround traitor, despite not being able to roll normal midround traitor. However default blacklisted roles like security officers are still blocked) - They're weighted impossible on tier 0, same weight as most midrounds on tier 1, and fairly high on tiers 2 and 3 - They're repeatable but very unlikely to repeat - Significantly higher min pop brackets than their solo counter part ## Why It's Good For The Game Adds more options for lategame antags than big midrounds ## Changelog 🆑 Melbert add: Two new heavy dynamic rulesets: "Midround Mass Traitors" and "Midround Mass Changelings" /🆑 |
||
|
|
721428c65a |
Status Display Automation & NT Logo Change (#93088)
## About The Pull Request - Status Displays update automatically for emergency alerts and show round start logos by default instead of a blank screen. - Tested in game with manual graphics and with triggered events. - There is also a priority system, some emergencies will display temporarily if a higher priority (shuttle call) is in progress. - It also has checks on when something ends, i.e if radiation storm happens, the alert for that goes away after the storm passes instead of staying on the display. - The manual buttons on the comms console to update the screens are still there and work with this. - BLOB file tweaks - All blob features works but with non blocking cleanup as Linter threw errors. - Also found a nicer sprite from AI core to use for the NT logo on the displays since we'll be seeing it on more, the current one is just a bit too bright | Default logo | Alert Level Auto Switch | Events "can" interrupt shuttle call display but only for 30 seconds | |--------|--------|--------| | <img width="443" height="182" alt="image" src="https://github.com/user-attachments/assets/4027d8cc-041a-4e26-8120-742bf38f9c8a" />| <img width="444" height="181" alt="image" src="https://github.com/user-attachments/assets/267363be-7f3a-4b63-a412-ea74c9d23c60" /> | <img width="432" height="172" alt="image" src="https://github.com/user-attachments/assets/842b9bfd-6e32-4833-8c06-42518dd8c0d2" /> | **Nanotrasen Logo Replacement - Left is original - Right is new** <img width="181" height="82" alt="image" src="https://github.com/user-attachments/assets/ac78d1c2-059b-4ab5-9d2c-3e59bec87620" /> ## Why It's Good For The Game - Status displays leave an empty void on the walls in rounds, this adds a bit more value to them - Should make the screens feel busier/more dynamic and the game a little more engaging ## Changelog 🆑 add: Status displays now show logo at round start - Status displays now change more often for alerts and other key events fix: Blob non blocking cleanup - Should have no change in player experience image: Replaces bright blue NT logo with the more subtle slightly animated sprite from AI core, fits nicer. /🆑 --------- Co-authored-by: loganuk <falseemail@aol.com> |
||
|
|
da9eb945fc |
Adds a 1/5 chance for Paradox Clone to spawn two for the price of one (#92855)
## About The Pull Request Paradox Clone ruleset has a 1/5 chance of spawning an additional clone of the same target. This chance is configurable (so server operators can disable it), but the amount of clones it adds is not. The second clone is *not* on a team with the first. Paradox Clone's primary objective has been updated to `Be the only [x] alive`, rather than `Kill [x]`. - [ ] I tested this pr ## Why It's Good For The Game A while back someone suggested "What if Paradox Clone spawned a third clone with the objective to protect the guy instead of kill them" I thought this sounded pretty neat but the idea of spawning an antag that worked against antags seemed to be grounds for problems. So I stole half the idea. This adds a little more variety in Paradox Clone happenings: - Clones have no idea or indication if there are other clones (unless you spawn together - which is not guaranteed), so each clone is less sure of things and has to improvise more - Neither the clones nor the crew can be fully complacent after dealing with one "clone" - More plausible deniability for Genetics or Changelings to mess with people - And yes, even the clones aren't 100% sure if the *other* clone is real or fake, so now they're roped in on the fun ## Changelog 🆑 Melbert add: There's a 1/5 chance that Paradox Clone spawns a second clone if there are enough candidates. Neither clone is aware of or on a team with the other - There can only be one. add: Paradox Clones are now tasked to `Be the only [x] alive`, meaning means of identity cloning (such as Genetics or Changelings) may throw a wrench in your plan. /🆑 |
||
|
|
822a1d3d55 |
Fugitive Hunters spawn again (#92761)
## About The Pull Request Fugitive hunters no longer runtime on their timer check. The `check_spawn_hunters` proc was getting passed the fugitive hunters' backstory (not needed in the proc) instead of the time until their expected spawn. ## Why It's Good For The Game The fugitive hunters are a pretty important part of the fugitive antag. It's like playing hide and seek without any seekers. It sucks. Closes the unresolved part of #92618. |
||
|
|
8476ac925e |
Solo fugitives spawn with a toolbox, like group fugitives do (#92685)
## About The Pull Request Solo fugitives weren't getting their toolbox because `equip_fugitive_leader()` doesn't get called. While this makes sense, seeing as there isn't a "leader" to equip, there isn't actually a reason not to call this for single fugitives. So, `equip_fugitive_leader()` now runs for all fugitive quantities. If someone wants to add more essential equipment for newly spawned fugitives, it should go there alongside the toolbox. ## Why It's Good For The Game Partially handles #92618. ## Changelog 🆑 Rhials fix: Solo fugitives now spawn with a mechanical toolbox, as intended. /🆑 |
||
|
|
39a2434c06 |
Voidwalker Rework | Basic Mob Edition + Bonus Antag (#91646)
## About The Pull Request Reworks the Voidwalker into a basic mob, including a lot of the balance and mechanics! Old (left), new (right)  https://github.com/user-attachments/assets/22d6138f-11aa-4f7a-8600-2565e6578bcf (little outdated) https://youtu.be/cp1E3qPJGX4 (high res mirror) **🟨Voidwalker mob changes🟨** No longer a human species and no more void eater. Instead deals damage by simple unarmed attacks. Instead of dealing brute, the voidwalker does oxygen damage (4-5 hits to knock out) with left-click, and slight brute on right click. Non-human mobs automatically take brute damage instead of oxygen damage. 150 HP 33% burn armor Yes it has hands, but it can only pick up and drop stuff **🟨Window phase🟨**  Instead of needing to smash a window with the void eater, moving through windows simply leaves them passable for 5 seconds. Makes kidnapping a lot easier, but also makes it easier for people to chase you People who used the voided skull also leave windows passable for a short bit. **🟩Cosmic Charge🟩** Standard charge ability, but only lets you charge towards space and works while dragging people **🟩The Vomitwalker🟩** People you kidnapped now occasionally do the nebula vomit, which voidwalkers can use to dive from and into  Diving into it is very fast but also removes the nebula vomit. You can also kidnap people into the vomit (this doesn't remove the vomit). There is also a little UI for tracking this. Clicking it while in space dive teleports you to the next nebula vomit, if there are any.  **🟨Voided people changes🟨** Kidnapped people and people that used the cosmic skull are no longer muted, but take 10% extra brute and occasionally leave behind glass shards when taking a lot of damage. Are no longer obliterated on a second encounter with voidwalkers. Voidwalkers can't hurt people they've already voided (unless they really want to), but instead just knock them out for 30s Also the kidnapped do space vomit as I said earlier. **🟩Sunwalker🟩** Voidwalker variant made for pure murderbone. Has no camo and kindap mechanics, but has a fiery charge, loads of damage and area igniting and people ignition. It's admin, but I might change this later once I've had some more time to think about it.  Other changes: - Voidwindows no longer need to be space adjacent - Unsettle works faster but can't be used in combat anymore - Space camo now grants complete space invisibility - Makes a lot of aspects easily moddable, so we can easily mod it into a moistwalker in-game - Taking a cosmic skull when you already used one gives you the old voidwalker void eater arm. Additional uses just gives you more void eater arms until you run out of hands - I definitely forgot a lot more - I made a cool voidwalker hud! It even has a unique space camo toggle ## Why It's Good For The Game <details> <summary>Lot of text</summary> Voidwalker was basically a snowflaked toghether human species because I didn't know how to sprite, but I was able to work with species and visual effects. Then I realized I can just commission sprites! This also let me just cut out a lot of the snowflake code, because it's no longer a human so half the things I didn't want them to be able to do, they just literally cannot do. Voidwalkers were in a bit of strange spot with kidnapping? There was essentially no incentive, other than "smash spaceman = funny". They also had issues doing, anything? There's surprisingly little space on a space station, especially maps such as tram. Making the voided victims have nebula vomit gives the voidwalker a reason to WANT to kidnap, by giving them a way to appear basically anywhere on the station. I don't think it's too overpowered. Voided people don't vomit that much, it's easily cleanable and diving into it removes them, so they're limited usability. Replacing the brute damage with oxygen damage also kinda... just makes sense? I seriously contemplated letting them do stamina damage for the first iteration, but opted not to do it because stamina damage has so many hooks attached. Oxygen damage doesn't! It's also just incredibly thematic, let's them bypass most armor and makes them more suited to non-letha kidnappings. Space camo making them completely invisible was also long overdue. It was literally just urging people to turn up their gamma and turn down their parallax settings. I thought it was an interesting mechanic, but it's just straight up unfair and doesn't belong in a multiplayer game. They now more frequently leave behind little glass shards, leave particles from nebula vomit they leave from and have more unique sound effects, so attentive (and lucky) people can still deduce if an area is safe-ish. I removed being able to shatter voided people because the mechanic was deeply misunderstood. It was intended to give them a means of removing people if they kept incessently bothering the voidwalker, but people went out of their way to use this to roundremove people they had already voided. The 30s sleep conveys my intention a lot better, and fits better now that the voidwalker benefits from having as many voided people vomitting all over the place. The cosmic charge gives them some much needed survivability. My experiences (in observing voidwalkers, I can never get the roll ;_;) is that they're constantly one mistake away from complete obliteration. The cosmic charge let's them get out quick despite their slow movement speed in gravity. It also makes them stronger when fighting in space. They got 33% burn armor so it's a tiny bit harder to wipe them away in a single laser salvo, while still giving people ample opportunity to fight them off . Also they're like glass or something so it fits thematically. I gave them hands because I thought it was cool, might be a mistake idk </details> ## Changelog 🆑 Time-Green, INFRARED_BACON add: Voidwalker has been throughly reworked! Now you are even less safe! admin: Adds admin-only Sunwalker mob fix: Unsettle doesnt work on yourself anymore fix: Space camo doesnt stop bobbing anymore fix: Voidwalker windows now recharge on kidnap runtime: Fixes healthanalyzers runtiming when scanning mobs without reagent holders /🆑 |
||
|
|
4c277dc572 |
Dynamic Rework (#91290)
## About The Pull Request Implements https://hackmd.io/@tgstation/SkeUS7lSp , rewriting Dynamic from the ground-up - Dynamic configuration is now vastly streamlined, making it far far far easier to understand and edit - Threat is gone entirely; round chaos is now determined by dynamic tiers - There's 5 dynamic tiers, 0 to 4. - 0 is a pure greenshift. - Tiers are just picked via weight - "16% chance of getting a high chaos round". - Tiers have min pop ranges. "Tier 4 (high chaos) requires 25 pop to be selected". - Tier determines how much of every ruleset is picked. "Tier 4 (High Chaos) will pick 3-4 roundstart[1], 1-2 light, 1-2 heavy, and 2-3 latejoins". - The number of rulesets picked depends on how many people are in the server - this is also configurable[2]. As an example, a tier that demands "1-3" rulesets will not spawn 3 rulesets if population <= 40 and will not spawn 2 rulesets if population <= 25. - Tiers also determine time before light, heavy, and latejoin rulesets are picked, as well as the cooldown range between spawns. More chaotic tiers may send midrounds sooner or wait less time between sending them. - On the ruleset side of things, "requirements", "scaling", and "enemies" is gone. - You can configure a ruleset's min pop and weight flat, or per tier. - For example a ruleset like Obsession is weighted higher for tiers 1-2 and lower for tiers 3-4. - Rather than scaling up, roundstart rulesets can just be selected multiple times. - Rulesets also have `min_antag_cap` and `max_antag_cap`. `min_antag_cap` determines how many candidates are needed for it to run, and `max_antag_cap` determines how many candidates are selected. - Rulesets attempt to run every 2.5 minutes. [3] - Light rulesets will ALWAYS be picked before heavy rulesets. [4] - Light injection chance is no longer 100%, heavy injection chance formula has been simplified. - Chance simply scales based on number of dead players / total number off players, with a flag 50% chance if no antags exist. [5] [1] This does not guarantee you will actually GET 3-4 roundstart rulesets. If a roundstart ruleset is picked, and it ends up being unable to execute (such as "not enough candidates", that slot is effectively a wash.) This might be revisited. [2] Currently, this is a hard limit - below X pop, you WILL get a quarter or a half of the rulesets. This might be revisited to just be weighted - you are just MORE LIKELY to get a quarter or a half. [3] Little worried about accidentally frontloading everything so we'll see about this [4] This may be revisited but in most contexts it seems sensible. [5] This may also be revisited, I'm not 100% sure what the best / most simple way to tackle midround chances is. Other implementation details - The process of making rulesets has been streamlined as well. Many rulesets only amount to a definition and `assign_role`. - Dynamic.json -> Dynamic.toml - Dynamic event hijacked was ripped out entirely. - Most midround antag random events are now dynamic rulesets. Fugitives, Morphs, Slaughter Demons, etc. - The 1 weight slaughter demon event is gone. RIP in peace. - There is now a hidden midround event that simply adds +1 latejoin, +1 light, or +1 heavy ruleset. - `mind.special_role` is dead. Minds have a lazylist of special roles now but it's essentially only used for traitor panel. - Revs refactored almost entirely. Revs can now exist without a dynamic ruleset. - Cult refactored a tiny bit. - Antag datums cleaned up. - Pre round setup is less centralized on Dynamic. - Admins have a whole panel for interfacing with dynamic. It's pretty slapdash I'm sure someone could make a nicer looking one.   - Maybe some other things. ## Why It's Good For The Game See readme for more info. Will you see a massive change in how rounds play out? My hunch says rounds will spawn less rulesets on average, but it's ultimately to how it's configured ## Changelog 🆑 Melbert refactor: Dynamic rewritten entirely, report any strange rounds config: Dynamic config reworked, it's now a TOML file refactor: Refactored antag roles somewhat, report any oddities refactor: Refactored Revolution entirely, report any oddities del: Deleted most midround events that spawn antags - they use dynamic rulesets now add: Dynamic rulesets can now be false alarms add: Adds a random event that gives dynamic the ability to run another ruleset later admin: Adds a panel for messing around with dynamic admin: Adds a panel for chance for every dynamic ruleset to be selected admin: You can spawn revs without using dynamic now fix: Nuke team leaders get their fun title back /🆑 |