mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-06-09 16:21:09 +01:00
7981566da3ee2bee082dbaa5de37b805bbada089
28 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
a9ff046352 |
Administrator Cherrypick (#27405)
* Admin Verb Datums MkIII | Now with functional command bar (#82511) * Modular stuffs * Put some admin jump verbs back into the context menu | sorts area jump list again (#82647) ## About The Pull Request See title. ## Why It's Good For The Game Some admins wanted all the jump verbs back, aswell as making them not AGhost you. Also make the Jump To Area verb use a sorted list again * Hey what if admins were allowed to use the player panel (#82682) Re-adds the player panel verb to the verb panel. * Controller Overview UI (#82739) * Fixes a minor spelling mistake on the admin panel/verb list (#82747) ## About The Pull Request Corrects `inisimin` to `invisimin`. This addresses #82728, but only fixes one of the two issues mentioned ## Why It's Good For The Game -1 spelling mistake ## Changelog 🆑 spellcheck: 'inisimin' verb corrected to 'invisimin' /🆑 * Player Panel-age (#82757) * Admin Forced Mob Rename and Preference Update (#82715) --------- Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> Co-authored-by: chel <64568243+iliyaxox@users.noreply.github.com> |
||
|
|
20c0599ce6 |
Some more mirrors again (#27366)
* Ports additional Felinid ears from Orbstation (#82066) Adds 5 new ear options from Orbstation, originally PRed in lizardqueenlexi/orbstation#360. Sprites by @Or-Fi-S. Big:  Coeurl (FFXIV Miqo'te style):  Fold:  Lynx:  Round:  Also makes it so the code guarantees that custom ears on a felinid actually count as felinid ears and not human ones, as the code wasn't checking properly when preferences were applied. There's probably a cleaner, more permanent way to do this and a refactor is needed somewhere down the line (man that sprite accessories file is getting long huh) but I'll leave that to a more competent coder. More customization options are good also Cobby said I could  🆑 add: Added 5 new Felinid ear options, ported from Orbstation! (Sprites by Or-Fi-S) /🆑 --------- Co-authored-by: _0Steven <jaydondegenerschool@gmail.com> * Standardizes object deconstruction throughout the codebase. (#82280) When it comes to deconstructing an object we have `proc/deconstruct()` & `NO_DECONSTRUCT` Lets talk about the flag first. **Problems with `NO_DECONSTRUCTION`** I know what the comment says on what it should do https://github.com/tgstation/tgstation/blob/b5593bc6930cb60803214869a7b94c84e7baa02c/code/__DEFINES/obj_flags.dm#L18 But everywhere people have decided to give their own meaning/definition to this flag. Here are some examples on how this flag is used **1. Make the object just disappear(not drop anything) when deconstructed** This is by far the largest use case everywhere. If an object is deconstructed(either via tools or smashed apart) then if it has this flag it should not drop any of its contents but just disappear. You have seen this code pattern used everywhere https://github.com/tgstation/tgstation/blob/b5593bc6930cb60803214869a7b94c84e7baa02c/code/game/machinery/constructable_frame.dm#L26-L31 This behaviour is then leveraged by 2 important components. When an object is frozen, if it is deconstructed it should just disappear without leaving any traces behind https://github.com/tgstation/tgstation/blob/b5593bc6930cb60803214869a7b94c84e7baa02c/code/datums/elements/frozen.dm#L66-L67 By hologram objects. Obviously if you destroy an hologram nothing real should drop out https://github.com/tgstation/tgstation/blob/b5593bc6930cb60803214869a7b94c84e7baa02c/code/modules/holodeck/computer.dm#L301-L304 And there are other use cases as well but we won't go into them as they aren't as significant as these. **2. To stop an object from being wrenched ??** Yeah this one is weird. Like why? I understand in some instances (chair, table, rack etc) a wrench can be used to deconstruct a object so using the flag there to stop it from happening makes sense but why can't we even anchor an object just because of this flag? https://github.com/tgstation/tgstation/blob/b5593bc6930cb60803214869a7b94c84e7baa02c/code/game/objects/objs.dm#L368-L369 This is one of those instances where somebody just decided this behaviour for their own convenience just like the above example with no explanation as to why **3. To stop using tools to deconstruct the object** This was the original intent of the flag but it is enforced in few places far & between. One example is when deconstructing the a machine via crowbar. https://github.com/tgstation/tgstation/blob/b5593bc6930cb60803214869a7b94c84e7baa02c/code/game/machinery/_machinery.dm#L811 But machines are a special dual use case for this flag. Because if you look at its deconstruct proc the flag also prevents the machine from spawning a frame. https://github.com/tgstation/tgstation/blob/b5593bc6930cb60803214869a7b94c84e7baa02c/code/game/machinery/_machinery.dm#L820-L822 How can 1 flag serve 2 purposes within the same type? **4. Simply forget to check for this flag altogether** Yup if you find this flag not doing its job for some objects don't be surprised. People & sometimes even maintainers just forget that it even exists https://github.com/tgstation/tgstation/blob/b5593bc6930cb60803214869a7b94c84e7baa02c/code/game/objects/items/piggy_bank.dm#L66-L67 **Solution** These are the main examples i found. As you can see the same flag can perform 2 different functions within the same type and do something else in a different object & in some instances don't even work cause people just forget, etc. In order to bring consistency to this flag we need to move it to the atom level where it means the same thing everywhere. Where in the atom you may ask? .Well, I'll just post what MrMelbert said in https://github.com/tgstation/tgstation/pull/81656#discussion_r1503086862 > ...Ideally the .deconstruct call would handle NO_DECONSTRUCTION handling as it wants, Yup that's the ideal case now. This flag is checked directly in `deconstruct()`. Now like i said we want to give a universal definition to this flag and as you have seen from my examples it is used in 3 cases 1) Make an object disappear(doesn't dropping anything) when deconstructed 2) Stop it from being wrenched 3) Stop it from being deconstructed via tools We can't enforce points 2 & 3 inside `deconstruct()` which leaves us with only case 1) i.e. make the object disappear. And that's what i have done. Therefore after more than a decade or since this flag got introduced `NO_DECONSTRUCT` now has a new definition as of 2024 _"Make an object disappear(don't dropping anything) when deconstructed either via tools or forcefully smashed apart"_ Now i very well understand this will open up bugs in places where cases 2 & 3 are required but its worth it. In fact they could even be qol changes for all we know so who knows it might even benefit us but for now we need to give a universal definition to this flag to bring some consistency & that's what this PR does. **Problem with deconstruct()** This proc actually sends out a signal which is currently used by the material container but could be used by other objects later on. https://github.com/tgstation/tgstation/blob/3e84c3e6dad33c831ac259f52f2f023680e4899b/code/game/objects/obj_defense.dm#L160 So objects that override this proc should call its parent. Sadly that isn't the case in many instances like such https://github.com/tgstation/tgstation/blob/3e84c3e6dad33c831ac259f52f2f023680e4899b/code/game/machinery/deployable.dm#L20-L23 Instead of `return ..()` which would delete the object & send the signal it deletes the object directly thus the signal never gets sent. **Solution** Make this proc non overridable. For objects to add their own custom deconstruction behaviour a new proc has been introduced `atom_deconstruct()` Subtypes should now override this proc to handle object deconstruction. If objects have certain important stuff inside them (like mobs in machines for example) they want to drop by handling `NO_DECONSTRUCT` flag in a more carefully customized way they can do this by overriding `handle_deconstruct()` which by default delegates to `atom_deconstruct()` if the `NO_DECONSTRUCT` flag is absent. This proc will allow you to handle the flag in a more customized way if you ever need to. 1) I'm goanna post the full comment from MrMelbert https://github.com/tgstation/tgstation/pull/81656#discussion_r1503086862 > ...Ideally the .deconstruct call would handle NO_DECONSTRUCTION handling as it wants, but there's a shocking lack of consistency around NO_DECONSTRUCTION, where some objects treat it as "allow deconstruction, but make it drop no parts" and others simply "disallow deconstruction at all" This PR now makes `NO_DECONSTRUCTION` handled by `deconstruct()` & gives this flag the consistency it deserves. Not to mention as shown in case 4 there are objects that simply forgot to check for this flag. Now it applies for those missing instances as well. 2) No more copying pasting the most overused code pattern in this code base history `if(obj_flags & NO_DECONSTRUCTION)`. Just makes code cleaner everywhere 3) All objects now send the `COMSIG_OBJ_DECONSTRUCT` signal on object deconstruction which is now available for use should you need it 🆑 refactor: refactors how objects are deconstructed in relation to the `NO_DECONSTRUCTION` flag. Certain objects & machinery may display different tool interactions & behaviours when destroyed/deconstructed. Report these changes if you feel like they are bugs /🆑 --------- Co-authored-by: san7890 <the@san7890.com> * Makes attempting to refresh the logs not just throw a runtime error (#82432) ## About The Pull Request Really all this seems to be is a mismatch between the tgui and dm side of the menu. https://github.com/tgstation/tgstation/blob/3c71b14df0957749f31fb2e678130daf4cfb3250/tgui/packages/tgui/interfaces/LogViewer.tsx#L71 https://github.com/tgstation/tgstation/blob/3c71b14df0957749f31fb2e678130daf4cfb3250/code/modules/logging/log_holder.dm#L110-L113 Making these line up by renaming `re-render` to `refresh` seems to make it work just fine, and not just throw an error. ## Why It's Good For The Game Life tends to be better when refreshing to see new runtimes doesn't just add its own lovely little runtimes.   And then not show them til you re-open the window cause it doesn't refresh. ## Changelog 🆑 admin: Refresh button on the View Round Logs menu actually works, instead of just adding a runtime to the logs (and not updating them). /🆑 * Creates a "busy" animation for players (#82416) Little indicator above a player when they're currently doing something. <details> <summary>vids</summary> Perspective: You are the moth  Hides under runechat  </details> Todo: - [x] Feedback? - [x] Sneaky params so it doesn't spoil your stealth run - [x] Possible refactor - [x] Probably missed some "sneaky" actions - [x] coggers <details> <summary>sound on:</summary> https://github.com/tgstation/tgstation/assets/42397676/ad71c567-0202-4158-ba50-c2946375f988 </details> 🆑 jlsnow301, infraredbaron add: Added a new UI element over players that are interacting, building, etc. /🆑 --------- Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: san7890 <the@san7890.com> * New operative reinforcement option: Intelligence Overwatch Agent (#82307) ## About The Pull Request Introducing a new Nuclear Operative reinforcement option: The Overwatch Intelligence Agent. Equipped with multi-hudglasses, they have an advanced camera console, station alerts, and bodycams of every operative! If something can be known, they will know about it. They can also remotely pilot your ship. Finally, everyone can ride in the Steel Rain without getting stuck on the station! This role spawns in the formerly unused outpost just north of the nukie base. With a few shelves of supplies and some tools in the back room, they can set up their workplace however they like. This also gives them something to work on while they wait for the operatives to gear up.  As you can see, it's rather cramped and the lights are quite dim in the backroom. Set it up however you like, this is how I did mine:  Total price? 12 TC per agent. It might get a bit cramped, but you could buy a second to make sure the first guy doesn't get lonely! This turned into a 30-commit ugly because the bodycams were originally meant to be accomplished via a refactoring of the spyglass kit. Big mistake that made me shelve the project -- until Melbert's simple bodycam component conveniently did exactly what I needed in a much simpler way. ## Why It's Good For The Game Having a "guy in the chair" for your kickass murder operator squad enables more brainy strategizing, and is thematically sound. Also, nukies have the opportunity to bring in another player to participate in the fun! ## Changelog 🆑 Rhials add: Nuclear Operatives now purchase an Intelligence Agent, who can watch cameras and bodycams, move the shuttle, and provide radio support. Only 12 Telecrystals! /🆑 * re-adds list of components for admins to remove (#82461) ## About The Pull Request The list of components on a mob when admins try to remove one didn't actually show them, now it does.  ## Why It's Good For The Game Messing with components/elements on mobs are such a pain, in this case was broken entirely.  ## Changelog 🆑 admin: Removing components button now lists components to remove /🆑 * Reboots the CNS Rebooter Implant. (#82441) ## About The Pull Request The CNS Rebooter Implant will now pull you out of stuns and stamcrit, while granting you a few seconds of stun immunity, comes with a 60 seconds cooldown ## Why It's Good For The Game The CNS Rebooter Implant is a strong candidate for the absolute worst implant in the game, it caps your stuns at 4 seconds (which is plenty of time to get murdered) and does nothing to prevent stamina damage, for something accessible in one of the latest research nodes and in the nukie uplink it should perform better than it does now. Besides, the game is in dire need for more tools to keep the stun meta at bay, and this is a good place to start. This PR makes it so the rebooter will bail you out stamcrit every 60 seconds, along with giving you a few seconds of immunity to run away or get a couple of hits in. ## Changelog 🆑 balance: CNS Rebooter Implant will now pull you out of stamcrit and grant you a few seconds of stun immunity /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> * Fix "Aheal" for ears deafness (#82448) ## About The Pull Request Make the admin button "Aheal" and Magic Wand of Healing (resurrection) actually full heal carbon's Ears. File _ears.dm contains timer variable "deaf" that should be updated to 0 after complete healing. But I think this must be properly code-refactored because looks like it's just duplicates(?) standart variable "damage" for organ type. ## Why It's Good For The Game Aheal - means FULLY HEAL. ## Changelog 🆑 fix: aheal now properly heals ears deafness /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> * Medipens can't have reagents removed from them anymore. (#82451) ## About The Pull Request This will be needed for https://github.com/tgstation/tgstation/pull/82449 because this removes the machine's ability to make infinite chems. Basically in https://github.com/tgstation/tgstation/pull/29139 they removed medipen's ability to have reagents injected into them, but never removed the ability to take reagents out. You could take a syringe, remove all chemicals from a medipen, put the main ingredient in a medipen refiller, then refill. You could do this right now on live servers with an epipen for infinite formaldehyde. This doesn't affect the hypospray. ## Why It's Good For The Game Removes a way of infinitely making reagents with a medipen refiller and also removes a dumb mechanic. You could take all chemicals out of an EHMS autoinjector, which removes the visual and feedback tell to the target that they've been injected, and even with 0 chemicals they get the disease anyways. You could buy medipens as a miner, take the chemicals out, and put them in a syringe or pill that you can inject yourself instantly with. You can take otherwise hard-to-get chemicals like fungal TB's 2-use cure injector, and make 40 cure pills instead. ## Changelog 🆑 fix: You can no longer take chemicals out of medipens with a syringe. /🆑 * Search string in catalogs in char prefs (#82423) * actually just removes stamina damage and knockdown from punches (#82400) removes punch knockdowns and stamina damage from them knockdown punches were also around the time disarm could just hardstun you to RNG this is dumb so we remove that also watermelon supposedly wanted to remove stamina damage from punches so idk about that anyway so this is a problem because you could be randomly floored by sheer luck through thick plates of metal and is overall not a very fun thing to play against especially with northstar gloves resolves unfun RNG by removing knockdowns and does something watermelon wanted by removing stam damage from it 🆑 balance: punches no longer knock down or deal stamina damage /🆑 * Fix slime `check_item_passthrough` effect (#82484) ## About The Pull Request This proc expects a user but is not passed one. ## Changelog 🆑 Melbert fix: Items will properly pass through slime on occasion /🆑 * Basic mobs now use z-level turnoff instead of simple (#82469) ## About The Pull Request On one compile of MetaStation, I saw that there's 45 basic mobs on the station, 256 on lavaland (the number growing from tendrils), and 59 in all other z levels combined. While we do expect Lavaland to be visited every round, at least it won't be running during the times when no one is there, but even more importantly, space exploration is something not done every round, so we don't have any reason to waste our resources on AIs that will never be interacted with. Simple animals had an easy solution to this: If no one is on the Z level, their AI turns off If someone is on the Z level, they are idle unless needed. The last simple animals that exists right now are bots, megafauna, geese, gondolas, and some minor ones like mimic, zombie, dark wizard, soulscythe, etc. Point is, we're very much nearly done going through all simple animals, so this code is being wasted just to ensure things like cleanbots won't work if no one is on the z level, something I doubt happens often, so I took their code and made it work for basic mobs instead. I could've done both but I thought it would look very bad, and maybe this is a good incentivize to get more basic mob conversions. There's one major change here and it's that we're missing the "Idle" mode, some basic mobs like the Lavaland village seems to be made with intent that they'll be running even if players aren't around, so this sets up a future PR that makes idle AI easier to add, and I want to make sure those cases are taken into account. ## Why It's Good For The Game We don't need to always be processing these basic mobs, and sets us in the future to hopefully also implement idle AIs. ## Changelog 🆑 balance: Basic mob AIs with no mobs on the Z level now stop. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> * adds preferences to transhumanist (#82435) ## About The Pull Request You may remember this, that's because I accidentally deleted it before while trying to change things. Anyways! Adds drop-down selections and new options to transhumanist. also fixes a minor typo Previously, you could choose your replaced limb by taking prosthetic limb, setting what you want changed, and then switching to transhumanist, since they used the same preference previously. ## Why It's Good For The Game Transhumanist felt strange because it was hypothetically a voluntary operation, but the augmentation clinic just spun the wheel on what you got replaced. From a role-playing perspective, being unable to choose is uninteresting and confusing. Also it always says your limb being was being replaced with a robotic arm and that annoyed me. Now that you are able to select your replacement part, I've added two new options, the robotic voice box, good for a more prominent change then a limb that will be hidden for most of a round, and flashlight eyes, for when you are truly committed to being rushed directly to robotics seeing the bright future ahead of humanity! ## Changelog 🆑 add: Transhumanist now allows you to select your augmentation add: Transhumanist can now provide a robotic voice box, or flashlight eyes spellcheck: Transhumanist's roundstart text has been re-written to not be wrong /🆑 --------- Co-authored-by: san7890 <the@san7890.com> * Watcher wreaths; Normal and Icewing varieties (#82457) Adds Watcher Wreaths. An item that makes it look like you have a slightly floating thorn crown that you can make from some of their material parts (and the icewing crusher trophy for the icewing variant). The wreath has emissives. They don't do anything mechanically, they're just for show.    I really like the whole thing with turning lavaland monsters into trophies and cosmetics. Going down and coming back up looking like someone who just crawled through a horror movie and took some souvenirs is great. Stuff like the trophy accessories, bone and drake armor and many of the various lavaland items have this quality, and it always amuses me when a tech sees a dressed up miner and just goes 'holy shit, where did you get that'? Drip is the ultimate reward for playing miner. Nobody can tell me otherwise. this is the endgame every miner craves. And I crave a goddamn crown made from the broken remains of my enemies. 🆑 add: Watcher wreaths. Made from the mangled remains of a watcher, now a handsome accessory for you to wear a few inches behind your head. Comes in Normal and Icewing variants. add: Some bounties for the two variants of watcher wreaths. /🆑 * CHEAP_HYPOTENUSE() no longer makes the differences between the coordinates absolute. (#82468) ## About The Pull Request CHEAP_HYPOTENUSE() no longer absolutes the differences between the coordinates. ## Why It's Good For The Game It gets squared so it doesn't need to be done. * Neutered symptoms no longer activate (#82467) ## About The Pull Request Stops activation of all neutered symptoms in a advanced disease. ## Why It's Good For The Game Closes https://github.com/tgstation/tgstation/issues/68944 ## Changelog 🆑 fix: Narcolepsy is no longer activated while neutered. /🆑 * Fixes the color matrix editor (#82478) ## About The Pull Request It was sending back stringified numbers as inputs. This came from a typescript cleanup pr from sync (#82000) and was ultimately caused by a... I think misunderstanding of how the color list works (#67967) ## Why It's Good For The Game Works like a charm now, which is good cause I use it a lot ## Changelog 🆑 fix: The color matrix editor now works properly again /🆑 * Hats no longer cover mouths (#82498) * Fixes banned/days remaining preferences display for non-dynamic ruleset antagonists. (#82506) * Reverts reversion: tgui will 516 or else (#82527) ## About The Pull Request Context: #82522 Apparently you cant just stuff the byond helper functions into an external js file, but if you do, byond won't even let you know its a problem until the servers crash and you have to run `bin/clean` just to unbork your entire repo This reimplements the changes from #82473 without: - moving the byond helper functions externally - causing a tooltip render issue in panel ## Why It's Good For The Game 516 prep (again this time) * Final Objective: Battle Royale (#82258) ## About The Pull Request Adds a new final objective option with a classic premise; the forced battle to the death. The concept is that the Syndicate will provide you with an implanter tool you can use on an arbitrary number of crew members. Once you have at least 6 (though there is no ceiling) you can activate the implants to start the Battle Royale and broadcast the perspectives of everyone you implanted live to the entertainment monitor. After activation these implants cause you to explode upon death. If at the end of 10 minutes, more than one person remains unexploded then all of the remaining implants will detonate simultaneously. Additionally, one of the station's departments (Medbay, Cargo, Science, or Engineering) will be chosen as the arena. If after 5 minutes pass you're not within that department (or if you leave it after that time has passed) then you will be killed. The Syndicate plan on both using the recorded footage to study Nanotrasen technology, and also to sell it as an underground blood sport, and so have employed a pirate broadcasting station to provide colour commentary. The implantation is silent, however it requires you and your target to be adjacent and stood still for one and a half seconds. Once implanted, it will occasionally itch and eventually signal to the implantee that something is up, so once you start implanting someone you're on a soft timer until you are given away. You can also implant yourself if you want to do that for some reason. Removing an implant from someone has a 70% chance of setting it off instantly, but it _is_ possible. If the implant is exposed to EMP, this value is randomised between 0 and 100%. You could also try doing surgery while the patient is wearing a bomb suit or something, that puzzle is for you to solve and I'm not going to tell you the answers. I'm sure you'll think of ones I haven't. ## Why It's Good For The Game Adds a somewhat more down-to-earth but still hopefully exciting and threatening option which should let people mess around with the sandbox. The mutual death element provides some roleplaying prompts; nothing actually _forces_ you to fight apart from fear of death and it may be possible to find other ways to survive, or perform some kind of solidarity behaviour with your fellow contestants. Maybe you'll try that but one of your fellow contestants just wants to be the last survivor anyway. Maybe you'll pretend you're setting up some kind of mutual survivorship thing in order to make sure you're the sole survivor. Gives some people to watch on the bar TV channel. The crew apparently love playing Deathmatch while dead so we might as well enable doing it while alive. Also I'm going to follow this up with a separate PR to remove the Space Dragon objective and it felt like it'd be a good idea to do one out one in ## Changelog 🆑 add: Adds a new Final Objective where you force your fellow crew to fight to the death on pain of... death. /🆑 --------- Co-authored-by: _0Steven <jaydondegenerschool@gmail.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com> Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: EnterTheJake <102721711+EnterTheJake@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Artemchik542 <32270644+Artemchik542@users.noreply.github.com> Co-authored-by: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com> Co-authored-by: Skeleton-In-Disguise <49223093+Skeleton-In-Disguise@users.noreply.github.com> Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> Co-authored-by: Bilbo367 <163439532+Bilbo367@users.noreply.github.com> Co-authored-by: FlufflesTheDog <piecopresident@gmail.com> Co-authored-by: AnturK <AnturK@users.noreply.github.com> Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
306b828631 |
[MIRROR] Polishing the greyscale modify menu's lackluster support for non-atom targets. [MDB IGNORE] (#22965)
* Polishing the greyscale modify menu's lackluster support for non-atom targets. (#77322) ## About The Pull Request So, I've been recently told that Skyrat uses the greyscale modify menu for loadouts, and the new ui state kinda borked it. I honestly haven't taken the possibility that the target could be anything but a subtype of `/atom` (and still work) into account because much of the code assumes the target is an atom. It's kinda crappy. Also I hadn't noticed we've an `unlocked` variable, which makes `vv_mode` var superflous, so i'm going to remove the latter. * Polishing the greyscale modify menu's lackluster support for non-atom targets. * I hope I won't have to get back and edit out the ability to modify the alpha on clothes for this --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com> |
||
|
|
e99862325b |
[MIRROR] [NO GBP] Actually fixing the greyscale_modify_menu. [MDB IGNORE] (#22823)
* [NO GBP] Actually fixing the greyscale_modify_menu. (#77208) ## About The Pull Request EDIT: So, I've to admit and bow my head: #77165 fucked up because I hadn't properly tested the code. However, this time around, I can assure you it's been tested. ## Why It's Good For The Game Fixing my mistakes. This will fix #77246 ## Changelog N/A. * [NO GBP] Actually fixing the greyscale_modify_menu. --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
369edffafe |
[MIRROR] Fixing the greyscale modify menu not sanitizing inputs. [MDB IGNORE] (#22756)
* Fixing the greyscale modify menu not sanitizing inputs. (#77165) ## About The Pull Request exactly what it reads on the tin. Also the ui is now anchored to the target and uses their state unless a specific one is set, so that it'll correctly close or be unusable if the mob user is incapacitated or too far. ## Why It's Good For The Game this will fix #70444. ## Changelog 🆑 fix: Fixing some jank with the a greyscale modify menu, like inputs not being sanitized. /🆑 * Fixing the greyscale modify menu not sanitizing inputs. --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
a97aab7642 |
[MIRROR] Refactors bardrone area based godmode into an element [MDB IGNORE] (#22419)
* Refactors bardrone area based godmode into an element (#76619) Let's this be used for more than just bardrones and for more than just the exit shuttle in the future * Refactors bardrone area based godmode into an element --------- Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> |
||
|
|
c4a58bb0c6 |
[MIRROR] Cleans up/renames as private some internal var definitions, removes some fucked uses of internal list vars [MDB IGNORE] (#21679)
* Cleans up/renames as private some internal var definitions, removes some fucked uses of internal list vars (#75769) ## About The Pull Request [Improves the documentation of DCS lists, removes old list of callback docs that no longer apply](https://github.com/tgstation/tgstation/commit/c3821d9f5ffaeaa4772f927c819da0c1de0ca27c) [Adds a second signal register to decal rotating, adds a trait to objects under a tile. STOP DIRECTLY READING HIDDEN LISTS I SWEAR TO GOD](https://github.com/tgstation/tgstation/commit/6b3f97a76a6f7d24ab952739a1561633922994e1) [Removes direct reads of the timer list, they were redundant mostly](https://github.com/tgstation/tgstation/commit/14fcd9f8a6d1b2d42ec6df3493ebc76fe7c12032) [Please stop directly reading/modifying the traits list to ensure your dna rot follows the brain](https://github.com/tgstation/tgstation/commit/ec0e5237ec2b7c3b7806cb993670acc8ce388bdc) [Marks internal datum lists as well internal with _](https://github.com/tgstation/tgstation/pull/75769/commits/57c6577ff61629b8ea792ee37ec4f2490a8e2865) [57c6577](https://github.com/tgstation/tgstation/pull/75769/commits/57c6577ff61629b8ea792ee37ec4f2490a8e2865) Does the same to _clear_signal_refs() in hopes of keeping people from touching it ## Why It's Good For The Game They pissed me off. Users should not be touching these lists, especially in ways that make assumptions about their structure and are thus prone to breaking if that ever changes. Most of these are close to zero cost changes, using a wrapper to solve the problem, or just yeeting it Two aren't, Decals with a direction have gained a second signal register on init, and things that sit underfloor (cables/pipes) now get a trait when inserted there. This should have a minimal impact on memory/init time, bugging @ Mothblocks about it just in case * Cleans up/renames as private some internal var definitions, removes some fucked uses of internal list vars * fix --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: ghost sheep <sheepwiththemask@gmail.com> |
||
|
|
f7c26bbf25 |
515 Compat (#17465)
* ONLY SKYRAT CHANGES * ACTUALLY SKYRAT CHANGES * yolo, revert later * Update alternate_byond_versions.txt Co-authored-by: AnturK <AnturK@users.noreply.github.com> |
||
|
|
f47d2c57fa |
[MIRROR] Fixes checking if the client is a turf [MDB IGNORE] (#11784)
* Fixes checking if the client is a turf (#65166) * Fixes checking if the client is a turf Co-authored-by: adamsong <adamsong@users.noreply.github.com> |
||
|
|
092e534e75 |
[MIRROR] TGUI list conversions + bug fixes [MDB IGNORE] (#10355)
* TGUI list conversions + bug fixes * Fixing conflicts * Maintaining a few modular files while we're at it... Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com> |
||
|
|
c5d3946d74 |
[MIRROR] Adds Datum Tagging for admins [MDB IGNORE] (#10185)
* Adds Datum Tagging for admins (#62982) * Adds Datum Tagging for admins Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com> |
||
|
|
fa519bdde3 |
[MIRROR] cleanup _HELPERS/_lists.dm and all the necessary files [MDB IGNORE] (#8783)
* cleanup _HELPERS/_lists.dm and all the necessary files * Epbic Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com> Co-authored-by: Gandalf <jzo123@hotmail.com> |
||
|
|
f1c39adacd |
Added component manipulation on objects (#60771) (#7682)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com> Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com> |
||
|
|
b4e301d655 |
Changes the input list in VV add component to tgui_input_list() (#60755) (#7665)
* Changes the input list in VV add component to tgui_input_list * fuck Co-authored-by: Thunder12345 <stewart@critar.demon.co.uk> Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com> Co-authored-by: Thunder12345 <stewart@critar.demon.co.uk> |
||
|
|
7d1d0e1fad |
[MIRROR] Refactors most spans into span procs (#6315)
* Refactors most spans into span procs * AA * a * AAAAAAAAAAAAAAAAAAAAAA * Update species.dm Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> Co-authored-by: Gandalf <jzo123@hotmail.com> |
||
|
|
c3a1b78d8f |
[MIRROR] Adds greyscale color selection to vending machines (#5814)
* Adds greyscale color selection to vending machines * conflicts? Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com> Co-authored-by: KathrinBailey <53862927+KathrinBailey@users.noreply.github.com> |
||
|
|
bc6c285adb |
[MIRROR] Advanced Greyscale Sprite Generation (#4792)
* Advanced Greyscale Sprite Generation (#58112) * Nonfunctional greyscale code * Functional greyscale sprites via filter Probably going to set the icon instead later * Switches to greyscale json config * Adds the reference layer type and converts the other canister types * Working previews * Adds readme * Fixes overlays and breaking * Removes old canister sprites * Removes an unused var * Fixes tgui lints * Removes a bunch of the old canister icon states Yeah I need to fix relabeling as well * Removes some debug sprites * Sorts canister type list and breaks up base shader step * Removes an unnecessary preview hack * Makes prototype canister greyscale * Properly sizes the ui * Fills in the canister map sprite * Adds some more warnings to layers * Makes broken overlay more prominent * Removes a preview var that isn't needed anymore * Cleans up client ref in Destroy * Cleans up the tgui window a bit * Update GreyscaleModifyMenu.tsx * Animates the canister falling over * Removes a commented out line that's no longer needed Co-authored-by: Aleksej Komarov <stylemistake@ gmail.com> * Advanced Greyscale Sprite Generation Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com> Co-authored-by: Aleksej Komarov <stylemistake@ gmail.com> |
||
|
|
b332b46b65 |
[MIRROR] Remove hideous inline tab indentation, and bans it in contributing guidelines (#3394)
* Remove hideous inline tab indentation, and bans it in contributing guidelines * a Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> Co-authored-by: Gandalf2k15 <jzo123@hotmail.com> |
||
|
|
ea7677aedb |
[MIRROR] Enables 514 testing on master, Removes all reliance on extools outside of maptick (#3224)
* Enables 514 testing on master, Removes all reliance on extools outside of maptick (#56724) * Uses 514's map_cpu var when it's available * Uses auxtools for the debugger, to supply cross verison compatibility * Nukes extools reference tracking, reinstates the old ref tracking system * Enables 514 testing on master, Removes all reliance on extools outside of maptick Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
4209fbf095 |
[MIRROR] Fixes admin add component log (#286)
* Fixes admin add component log (#52840) * Fixes admin add component log Co-authored-by: AnturK <AnturK@users.noreply.github.com> |
||
|
|
903f2d7450 |
Reference tracking (#52403)
* ref tracking * legacy * legacy procs * fixes * tweaks * clarity comments * wth |
||
|
|
331365b422 |
Adds reference tracking (#51467)
About The Pull Request Adds extools-powered reference tracking. Includes a couple procs that retrieve the back and forward references of a datum - Back references let you see what is referencing your object and potentially preventing it from garbage collecting, and forward ones show you what your object in turn references. Also made a cool GUI to inspect and follow these references. The tracking adds some overhead to all variable sets and list operations. Init time is increased by ~15%. I haven't actually benched it so it might impact the actual game less. Why It's Good For The Game no lagging caused by hard dels scanning the entire planet (once coders fix them) |
||
|
|
c20a04543b |
Port of Replays from Yogstation (#48579)
* demos (ported from yogstation) rustg update + write with no format use external hook for logging use proper log vars fix + clarifying comment don't start the log release build of rust-g fix something caught by the lint Update code/__DEFINES/subsystems.dm Co-Authored-By: Jordan Brown <Cyberboss@users.noreply.github.com> Update code/controllers/subsystem/demo.dm Co-Authored-By: JJRcop <jrubcop@gmail.com> Update code/controllers/subsystem/demo.dm Co-Authored-By: JJRcop <jrubcop@gmail.com> moves hooks out of a dedicated file len = 0 to Cut(), remove semicolons untyped loop * updated rust_g * 513 updates |
||
|
|
9e34b3d6a1 |
Supports named arguments in AddComponent and AddElement (#49098)
AddComponent/AddElement now support named arguments. This requires passing around an argument list instead of using actual proc args which a bit gross but we can blame byond for forcing this. InheritComponent uses mirrored init arguments instead of an argument list which means no more accessing it via index to get to the same arguments as in init. As a small bonus I restructured dcs defines to be a bit more manageable. Mainly just splits them into separate files and gives them their own folder. |
||
|
|
938e66f62c |
Adds sorting to most input() lists (#47117)
* Adds sorting to most input() lists. * Sorted some global lists, added more input sorting * Should now use correct sort everywhere. * compiles * Last fixes. |
||
|
|
159d2ec79d | Allows proper application of arguments to components via dropdown (#47112) | ||
|
|
6300b2a534 | AT YOUR OWN RISK | ||
|
|
c6d710d40e |
VV refactors 2 - Actually not indefinitely WIP (#45217)
About The Pull Request The thing other than ruining maps that I was working on Refactors VV to use a more standard way of doing topic dropdown options rather than a huge if/else chain Marking datums is now a right click option Moves a few files around too/few procs Why It's Good For The Game Makes it easier to add more VV dropdown options in the future, and moving href list keys to defines make misspelling them harder. Changelog cl add: Oh yeah also added a "return value of proccall" option for VV var editing. refactor: View Variables has been refactored. It should now be easier to make VV dropdown options. /cl |