-
Notifications
You must be signed in to change notification settings - Fork 64
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
09-10 merge #108
Merged
Merged
09-10 merge #108
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…[MDB IGNORE] (#24135) * Fake moustaches are now poorly slapped on top of what you're wearing (#78776) Another "+1 line changed" banger ![moustache](https://github.com/tgstation/tgstation/assets/68878861/8f0cc5ee-97a5-4a64-8ac5-ae3b387760e6) ## About The Pull Request Bumps up the worn layer of fake moustache and it's italian subtype to 4. Note that NOMASK inv flag will still prevent them from appearing. ## Why It's Good For The Game - Paper-thin disguises amuse me - Chef fashion - Groucho maxxing - A victory for good taste ![obraz](https://github.com/tgstation/tgstation/assets/68878861/5f792a8e-5bd0-40ab-a49d-095502fe9812) ## Changelog :cl: add: Fake moustaches are now poorly slapped on top of what you're wearing /:cl: * Fake moustaches are now poorly slapped on top of what you're wearing --------- Co-authored-by: Likteer <[email protected]>
…DB IGNORE] (#24136) * Bleeding has been subtly broken for 3+ years, let's fix that yeah? (#78783) ## About The Pull Request the `drip` argument was being passed an inverted value. Broke in tgstation/tgstation#56056 ## Changelog :cl: fix: Blood once again appears as small drops instead of splatters during minor bleeding. /:cl: * Bleeding has been subtly broken for 3+ years, let's fix that yeah? --------- Co-authored-by: Kapu1178 <[email protected]>
…nges (#23733) * [TEST-MERGE FIRST] Wound refactor number two: Full synthetic support * Wound refactor two compatability (#23618) * Delam emergency procedure moth (#23483) * safety moff * delta/whitespace/examine * icebox * moff poster * moff poster * Update DelamProcedure.tsx * Update scram.dm * sound plays during warning * remove nightshift, theres already a global proc * scrubber hint * missed that define * Apply suggestions from code review Co-authored-by: Bloop <[email protected]> * covered by ui_interact * Update modular_skyrat/modules/delam_emergency_stop/code/scram.dm Co-authored-by: Bloop <[email protected]> * Update modular_skyrat/modules/delam_emergency_stop/code/scram.dm --------- Co-authored-by: Bloop <[email protected]> Co-authored-by: GoldenAlpharex <[email protected]> * Automatic changelog for PR #23483 [ci skip] * Automatic changelog compile [ci skip] * [non modular] disables TG "hold up" for the foreseeable future (#23607) Update gun.dm * Automatic changelog for PR #23607 [ci skip] * [MIRROR] Desouls Hivelord [MDB IGNORE] (#23609) * Desouls Hivelord (#78213) ## About The Pull Request ![dreammaker_RJz4brjobM](https://github.com/tgstation/tgstation/assets/7483112/e5e4a3e9-ea6b-47f9-887c-3339d24d3fa8) Replaces the sprite of the hivelord with a new one, in my continuing quest to annihilate the old asteroid mob sprites. A (never completed) asteroid mob resprite was actually my first PR, this one is my 200th. I am also planning on fucking with basic mob versions of these mobs some time but the sprites can be atomised out. In addition to replacing the old-ass MSPaint sprites, this PR also adds a short death animation effect to the hivelord brood (from hivelords or legions) which looks nicer than them just vanishing instantly upon death. Look at this video for an example of the animation: https://www.youtube.com/watch?v=cKaskN5-y2A ## Why It's Good For The Game Looks nicer. ## Changelog :cl: image: Hivelords have a new sprite. image: Hivelord and Legion brood have a death animation. /:cl: * Desouls Hivelord --------- Co-authored-by: Jacquerel <[email protected]> * Automatic changelog for PR #23609 [ci skip] * [MIRROR] Updates chem factory tank sprites [MDB IGNORE] (#23608) * Updates chem factory tank sprites (#78209) Updates chem factory tank sprites. * Updates chem factory tank sprites --------- Co-authored-by: Wallem <[email protected]> * [MIRROR] Rice Dough can be made in a beaker [MDB IGNORE] (#23611) * Rice Dough can be made in a beaker (#78062) ## About The Pull Request Rice dough can be made in a beaker using 20u of Rice Flour and 10u of Water. 10u of Rice Flour is made from 5u of Rice and 5u of Flour. Rice dough can still be crafted manually using the crafting menu and the original recipe. ## Why It's Good For The Game Cooks can sometimes get swamped with work, especially on a high-pop shift or when there are no botanists. By making rice dough more convenient to make, cooks don't need to spend as much time in the crafting menu. Rice Flour is made from mixing equal parts Rice and Flour. Since no recipe other than Rice dough uses both Rice and Flour in it's Recipe, it should be fine to turn those regents into the intermediate reagent "Rice Flour". Fixes #77966 ## Changelog :cl: qol: Rice Dough may be made in beaker instead of being crafted, but the rice and flour must be added first /:cl: * Rice Dough can be made in a beaker --------- Co-authored-by: blueDev2 <[email protected]> * Automatic changelog for PR #23608 [ci skip] * Automatic changelog for PR #23611 [ci skip] * f * awda * unused type!!! * Apply suggestions from code review Co-authored-by: GoldenAlpharex <[email protected]> * oh hey unused defines! bye --------- Co-authored-by: lessthanthree <[email protected]> Co-authored-by: Bloop <[email protected]> Co-authored-by: GoldenAlpharex <[email protected]> Co-authored-by: SkyratBot <[email protected]> Co-authored-by: Changelogs <[email protected]> Co-authored-by: RatFromTheJungle <[email protected]> Co-authored-by: Jacquerel <[email protected]> Co-authored-by: Wallem <[email protected]> Co-authored-by: blueDev2 <[email protected]> * aa * fsegf * im confused * ASSwdadzxd * a * break to fix shuytyyhdg * aaaasdfggh * a * ack * a little more * AA * a readme * a lil colder * another touchup * ack * msucle * a * one * tada * ack * a * fuck! * some packs and medicine * a * more * it only makes sense * readme update * woo * and now, we map it in * me when * Apply suggestions from code review Co-authored-by: Bloop <[email protected]> * j * fix ci * Apply suggestions from code review Co-authored-by: Zephyr <[email protected]> * o;l * SPACE * AAAAAAAAAAAAAAAAAAAAAH * Apply suggestions from code review Co-authored-by: Bloop <[email protected]> * j * Apply suggestions from code review Co-authored-by: Bloop <[email protected]> * Apply suggestions from code review Co-authored-by: Bloop <[email protected]> * y * a * dwadwa * Just fixing this typo you missed * And found another instance of this same block of code * change the way burns work * thick clothing now blocks reagents * cock * uyjujy * a * yjhf * awdawdawd * remove stacking buffs + make electrical damage worse * whoops * FUCK * adwdad * AAAA * oh the misery * this'd be cool * warn * a * i think it needs a lil buff * Apply suggestions from code review Co-authored-by: GoldenAlpharex <[email protected]> * asd * I LOVE COMPILING AND NOT HAVING ERROSR --------- Co-authored-by: lessthanthree <[email protected]> Co-authored-by: Bloop <[email protected]> Co-authored-by: GoldenAlpharex <[email protected]> Co-authored-by: SkyratBot <[email protected]> Co-authored-by: Changelogs <[email protected]> Co-authored-by: RatFromTheJungle <[email protected]> Co-authored-by: Jacquerel <[email protected]> Co-authored-by: Wallem <[email protected]> Co-authored-by: blueDev2 <[email protected]> Co-authored-by: Zephyr <[email protected]>
…] (#24137) * Fixes an issue with COMSIG_MOB_ABILITY_STARTED for spells (#78775) ## About The Pull Request The signal `COMSIG_MOB_ABILITY_STARTED` is used by both cooldown actions and spells, which are a subtype of cooldown actions. However, cooldown actions pass two values, `src` and the action's target. Spells only passed `src`, even though its the exact same signal. This caused issues with the ability telegraph component, as it has to interrupt the casting of spells and actions to add a delay, and most if not all spells won't work without the target being passed with the signal. Closes #78715. ## Why It's Good For The Game It caused bugs and is just bad design in general. ## Changelog :cl: fix: Ice whelps can now use spells given to them by admins, and people who have polymorphed into ice whelps can now polymorph back to normal. /:cl: * Fixes an issue with COMSIG_MOB_ABILITY_STARTED for spells --------- Co-authored-by: GPeckman <[email protected]>
… IGNORE] (#24138) * Moves silicon camera (photos, not mob cameras) out of click code (#78774) ## About The Pull Request Atomized from the swing branch. Moves silicon camera (taking photos, not mob camera stuff) out of their core click code. It now uses click intercepts. (There's an argument to be made to use signals rather than click intercept as it's rather antiquated but w/e.) - [x] I tested this PR ## Why It's Good For The Game Makes it easier to unifiy click a bit more in the future. Reduces surface area of a feature. ## Changelog :cl: Melbert qol: AI, cyborg, and PAI camera (photo taking) behavior now uses balloon alerts and has sound effects associated refactor: Refactored AI, cyborg, and PAI camera (photo taking) code fix: fixed being unable to print photos as a cyborg when below 50% toner, even though photos only take 5% /:cl: * Moves silicon camera (photos, not mob cameras) out of click code --------- Co-authored-by: MrMelbert <[email protected]>
* Fixes the HEAL_NEGATIVE_MUTATIONS revive flag (#78768) ## About The Pull Request There is a flag for the revive proc called `HEAL_NEGATIVE_MUTATIONS`. It is supposed to make the revive heal negative and minor negative (e.g. chav, medieval) mutations, but not positive mutations. However, it was bugged and wouldn't heal any mutations. This PR just fixes it. Closes #43547. ## Why It's Good For The Game Its a bugfix. ## Changelog :cl: fix: Adminheal will now properly clear negative mutations as intended. /:cl: * Fixes the HEAL_NEGATIVE_MUTATIONS revive flag --------- Co-authored-by: GPeckman <[email protected]>
shutters/firelocks
* Basic Mob Flesh Worm (#78744) ## About The Pull Request Fixes #68614 Converts the Flesh Worm (Armsy) into a Basic Mob. Most of its behaviour has been moved into a component which we can use to make arbitrary mobs into linked lists of mobs. To accomplish this I added a signal which is sent when you call any `adjustXLoss` proc, let me know if my implementation is "calling the same signal from several places" by a backdoor, I wanted to avoid registering to 6 signals but I'll change it if I must. While I was here I killed the unused "lesser" variant because we stopped using it. Resultingly, Ascended Armsy doesn't need to distinguish itself by inflating the sprite, so it doesn't. This means that now flesh worms are using their sprites as intended to be displayed, but if people really miss all of its segments being poorly scaled by the byond engine then I guess I can restore it. ## Why It's Good For The Game ![dreamseeker_p8vOpZGXII](https://github.com/tgstation/tgstation/assets/7483112/3389d3a9-16cd-4e1e-938e-dfa18d0da0af) ## Changelog :cl: refactor: Flesh Worms are now basic mobs. Please report any unexpected behaviour. sprite: Flesh Worms are a little bit slimmer. /:cl: * Basic Mob Flesh Worm --------- Co-authored-by: Jacquerel <[email protected]>
* Adds sanity checking to the tippable component (#78771) ## About The Pull Request The tippable component doesn't actually have any sanity checking for if the tippable thing has already been tipped. This means that if two people try to tip something over at the same time, it will appear untipped but be immobilized as though it were tipped. The sprite will also stay permanently flipped until the bug is preformed again. Now that doesn't happen. Closes #64232. ## Why It's Good For The Game As funny as it is to see upside-down borgs running around, its still a bug. ## Changelog :cl: fix: Borgs will no longer become permanently upside-down if tipped over by multiple people at the same time. /:cl: * Adds sanity checking to the tippable component --------- Co-authored-by: GPeckman <[email protected]>
* The AI can no longer turn off shapeshifted robots (#78766) ## About The Pull Request If you shapeshifted into a robot (beepsky, ED-209, etc.) using the shapechange spell or other means, silicons could just turn you off. Now all shapeshifted robots are considered to be emagged, meaning that silicons can't interact with them. Closes #44505. ## Why It's Good For The Game Bugfixes good ## Changelog :cl: fix: The AI can no longer turn you off if you shapeshift into a robot. /:cl: * The AI can no longer turn off shapeshifted robots --------- Co-authored-by: GPeckman <[email protected]>
* QoL improvements to the mob damage unit tests (#78748) ## About The Pull Request This is something that I meant to do because it was a minor annoyance as I was creating the tests but I never got around to it. Because many of the failures occurred in procs it could be difficult to pinpoint the exact line of the test where they were failing. It would just be the line within the proc, and not the line where the proc was called. So you'd have to sort of infer which one it was from the values of `x` and `y` in `Expected x to be equal to y`. Now each test failure will have a brief description and a line number where `apply_damage()` / `verify_damage()` actually got called to make it clearer. Like shown below. ![Code_r6N3XSAb3m](https://github.com/tgstation/tgstation/assets/13398309/92ac5a91-3c3f-4b3b-90de-09fe0d9891f1) ## Why It's Good For The Game Just a small QoL update for coders. Some typos fixed, too. ## Changelog Nothing player facing though. * QoL improvements to the mob damage unit tests --------- Co-authored-by: Bloop <[email protected]>
* Bad food has bad food reagent again (#78747) still on break so i didn't think too hard about this one ## About The Pull Request Prevents food interactions from clearing the resulting food's reagents if the result is a bad recipe. Blackbox logging is also iffy here, some of them log it even if the resulting food is a burned mess, some don't. It's weird! ## Why It's Good For The Game Fixes #78400 <details><summary>Makes one car moth happy</summary> ![no habla espanol](https://github.com/tgstation/tgstation/assets/75863639/a3f26acb-3a7c-44a6-a4de-2b67e4d56230) </details> Did you know the appendix has bad_food reagent in it? https://github.com/tgstation/tgstation/blob/699d09ca33e807f9100689c3ab5fbec3916186ee/code/modules/surgery/organs/internal/appendix/_appendix.dm#L5-L15 ## Changelog :cl: fix: fixed bad food not having bad food reagents /:cl: * Bad food has bad food reagent again --------- Co-authored-by: Sealed101 <[email protected]>
… [MDB IGNORE] (#24146) * fish analyzers can also be used to perform fish scanning experiments. (#78745) ## About The Pull Request I recently read of someone being confused that they couldn't use them to perform fish-related experiments, so I thought it would be a good idea to add that. Also, I've converted the related misc supply pack to a goodie one, like other fishing supplies. ## Why It's Good For The Game It makes sense, and a fair amount of players doesn't even know experiments exists until they play the scientist role a couple times. ## Changelog :cl: add: Fish analyzers can now be used to perform fish scanning experiments. balance: They can now be singularly bought as a goodie pack for 125 cr each, instead of a crate of three for 500 cr. /:cl: * fish analyzers can also be used to perform fish scanning experiments. --------- Co-authored-by: Ghom <[email protected]>
…) [MDB IGNORE] (#24147) * [NO GBP] Fixes silent catwalks over otherwise silent turfs (open space, chasms) (#78742) ## About The Pull Request Exactly what it reads on the tin. ## Why It's Good For The Game Fixes #78646. ## Changelog :cl: fix: Fixed silent catwalks. /:cl: * [NO GBP] Fixes silent catwalks over otherwise silent turfs (open space, chasms) --------- Co-authored-by: Ghom <[email protected]>
* Organ harvester file cleanup (#78728) ## About The Pull Request Replaces every single/double letter variable I could find in `code\game\machinery\harvester.dm` with a more descriptive variable name. I hope, anyway. Also replaces a typecheck section with just writing a better loop. ## Why It's Good For The Game Uuuuuuh. Code.... readability.... and maintainability? I think? ## Changelog Not player-facing. * Organ harvester file cleanup --------- Co-authored-by: Vladin Heir <[email protected]>
…high caliber hand cannon by making it HITSCAN [MDB IGNORE] (#24149) * Makes the Regal Condor realistically simulate being shot dead with a high caliber hand cannon by making it HITSCAN (#78674) ## About The Pull Request The Regal Condor come with a magazine and ammo already inside. The recipe for the magazine now no longer needs TC, but does need donk pockets (sponsored murder gear, you see) and a hell of a lot more materials per magazine (you're looking at like 40 sheets of various materials all up). It also needs you to make the Condor first. But it comes preloaded with ammo. The Condor is 1 whole TC more expensive. Also needs some metal. The old recipe is there in spirit. The Regal Condor and the magazines come with 10mm Reaper bullets. They're high damage. They're high AP. They are also hitscan. ## Why It's Good For The Game Apparently people don't like the Condor. Too much effort for not enough reward. After all, revolvers exist. 'It must be a joke' they say! 'It's joke content! I went to all that effort to make it for nothing! That slut Anne tricked us!' **Wrong, bitch.** If you want the Condor to make you shit yourself the moment someone with it appears on the screen, then fine! ### **You get what you fucking deserve.** ## Changelog :cl: balance: Despite earlier reports suggesting that the famous lethality of the Regal Condor was largely a myth, there has been rumors that the gun has once again started to display its true killing potential on any station that it 'manifests'. /:cl: * Makes the Regal Condor realistically simulate being shot dead with a high caliber hand cannon by making it HITSCAN --------- Co-authored-by: necromanceranne <[email protected]>
* Jungle-Generator Usability Fixes, Geode Patchups (#78669) ## About The Pull Request Firstly; Patches some remaining chasm baseturfs on the Geode Pirate Shuttle by implementing a new subtype of jungle rocks and dark dirt that's safe for use in space. Secondly; makes the (unused here, but I'm making use of it elsewhere and I've been told someone else is, too) jungle generator have a lot less (possibly no) recursive atmosdiffs. Jungle mineral turfs now produce an open turf with the correct atmos composition, and jungle chasms are brought in-line as well. Thirdly; the redundant layer of grilles have been removed from the Geode, as they were being spawned already by the window spawner. Additionally rotates the geode's blast doors because they rotate now and it'd look weirder half the time otherwise. ~~On a related note: I really don't like the direction of the docking port being off of standard for everything that isn't an arrivals shuttle, but uhh. Catch me when I'm willing to deal with shuttlecode again, lmao.~~ ## Why It's Good For The Game Significantly lessens recursive atmospheric overhead if either the geode spawns *or* the jungle generator ever gets used here. ## Changelog :cl: fix: It is no longer possible to chasm yourself on the geode. Again. /:cl: * Jungle-Generator Usability Fixes, Geode Patchups --------- Co-authored-by: BluBerry016 <[email protected]>
… IGNORE] (#24151) * The laser carbine, a full-auto sidegrade to the normal laser gun (#78685) ## About The Pull Request This PR adds the laser carbine, a new fully-automatic laser weapon that can be ordered from cargo. A crate of 3 can be ordered from cargo for 1800 credits, locked behind armory access. Here is a video demonstration: https://github.com/tgstation/tgstation/assets/21979502/6f7fecec-ccb6-4a65-8027-21ab887fb91d Now, I'm sure people are very concerned about the balance implications of this new weapon. Let me give you some hard numbers: The gun deals 10 damage per shot, and has a capacity of 40 shots with a fully charged cell. This means that it has, at most, 400 damage per charge, which is exactly the same as a normal laser gun. In terms of DPS, it can put an unarmored human in crit roughly as fast a laser gun. It is meant to be a sidegrade, not an upgrade to the normal laser gun. It also has considerably lower wound bonus. During testing, when all 40 shots were fired into an unarmored human, it dealt tier 1 burn wounds with the occasional tier 2. I never observed a single tier 3 burn wound during any of my tests. Here's a picture of the different sprites (The last one is animated just like the normal laser gun): ![laser_carbines](https://github.com/tgstation/tgstation/assets/21979502/75c88c8a-aa8a-481d-994d-86850fcdbb9b) ## Why It's Good For The Game For a long time, there has been a strong push to make crew-available weapons almost entirely energy based. This trend has been contentious, to say the least. Many people prefer ballistic weapons over energy weapons. After spending some time on a different codebase, one where autorifles are still completely available to order from cargo, no emag needed, I think I might know why (or at least part of the reason). Part of what I find satisfying about some ballistics is the fact that they fire quickly and automatically. Energy weapons might be more enjoyable to use if automatic energy weapons are also an option. ## Changelog :cl: add: The laser carbine, a weak but fully automatic sidegrade to the normal laser gun, can now be ordered from cargo. /:cl: --------- Co-authored-by: Jacquerel <hnevard@ gmail.com> * The laser carbine, a full-auto sidegrade to the normal laser gun --------- Co-authored-by: GPeckman <[email protected]> Co-authored-by: Jacquerel <hnevard@ gmail.com>
…[MDB IGNORE] (#24157) * allows janitor keys to be stored in janitor wintercoats and janibets (#78724) ## About The Pull Request the janitor access key could not be stored on their belt, or their wintercoat slot, which felt off to me. so i added it to both of them, and added the janicart key to the coat slot as well. i figure if one can fit, the other probably can too. ## Why It's Good For The Game convenient, less cumbersome storage for items that you want to keep both close to your person, and accessible for easy use. ## Changelog :cl: qol: allows janitor keys to be stored in janitor wintercoats and janibets /:cl: * allows janitor keys to be stored in janitor wintercoats and janibets --------- Co-authored-by: Lamb <[email protected]>
* Fix ID card examine runtime (#78785) ## About The Pull Request This always expects to return a list, even if empty. But this early returned before the parent call, meaning it didn't return the empty list (from parent) as expected. ## Changelog :cl: Melbert fix: Fixed an error from reading an ID card closely when you can't read /:cl: * Fix ID card examine runtime --------- Co-authored-by: MrMelbert <[email protected]>
* Dogs now flee from mobs with tongs (#78797) AI dogs with the dog controller behaviour will flee from a target with tongs in hand. Untested because I literally cannot play byond. ## Why It's Good For The Game https://www.youtube.com/watch?v=cXIAZtwvgz0 ## Changelog :cl: oranges add: Dogs now react to centrist grillers more realistically /:cl: * Dogs now flee from mobs with tongs --------- Co-authored-by: oranges <[email protected]>
* offical to official (#78762) ## About The Pull Request Fixes "offical" to "official" in several locations - admin fax panel, admin newscaster, art patron text, a photocopier template, and a corgi tail pin item description. Adds this common misspelling to the check_grep.sh ci tool. ## Why It's Good For The Game I have corrected the typo manually every single time I have sent a fax from Central Command. ## Changelog :cl: spellcheck: "offical" has been officially corrected to "official" in several official locations. /:cl: * offical to official --------- Co-authored-by: Isratosh <[email protected]>
* fixed wierd TGUI crash (#78778) ## About The Pull Request There is a weird bug, that happens if you're writing your first PDA message to someone, and his PDA gets destroyed (abus/cryo/blows up), your messenger app will recieve unfixable TGUI error, due to being unable to recieve recipient name. So i added another check on TGUI side of app ¯\_(ツ)_/¯ ## Why It's Good For The Game Your PDA's wont stuck in TGUI blue screen of death, if someone went to cryo during you writing a message to him. ## Changelog :cl: fix: fixed a PDA's messenger TGUI issue with handling of destroyed recipients. /:cl: * fixed wierd TGUI crash --------- Co-authored-by: ReezeBL <[email protected]>
* Adjust ID card assignment line (#78801) ## About The Pull Request Adjusts and realigns the assignment overlay to match the new ID cards, centering it with the new logo placement. Before: ![id_cards_before](https://github.com/tgstation/tgstation/assets/83487515/6f134710-f438-4c81-8b93-8e0dbf67b47f) After: ![id_cards_fixed](https://github.com/tgstation/tgstation/assets/83487515/243a3df0-a169-4fd1-b29d-7736c314008a) ## Changelog :cl: LT3 image: Text alignment on ID cards slightly adjusted /:cl: * Adjust ID card assignment line * skyrat edits * Update clothing_facility.dmm --------- Co-authored-by: lessthanthree <[email protected]>
* Renames prison intercoms (#78781) ## About The Pull Request This renames prison intercoms to "receive-only intercom" ## Why It's Good For The Game It's rare a day goes by that I don't see someone confused about why these intercoms "aren't working.", and if it comes up in conversation, most sec players don't seem to be aware either. There's already a note about the intercoms being receive-only in the examine text, but apparently it largely goes unnoticed. This change should make it very clear, at a glance, that players should not expect to be able to transmit using these intercoms. It'd probably also be a good to grey out or hide the transmit button but this is what I can do and makes it obvious to everyone. ## Changelog :cl: qol: "prison" intercoms have been renamed to "receive-only" intercoms to make it clearer they cannot transmit. /:cl: * Renames prison intercoms --------- Co-authored-by: YehnBeep <[email protected]>
* Added slapcrafting to tech shells (#78746) ## About The Pull Request Added slapcrafting to tech shells. Untested! ## Why It's Good For The Game Easier to make 'em ## Changelog :cl: qol: Added slapcrafting to unloaded tech shells, click on them with ingredients to quickly craft your shell. /:cl: * Added slapcrafting to tech shells --------- Co-authored-by: carlarctg <[email protected]>
…cabinets [MDB IGNORE] (#24158) * adds directional helpers for empty fire axe and mech removal crowbar cabinets (#78722) ## About The Pull Request title. it's mostly so they can be used conveniently in areas you don't want to put fireaxes, but do want an empty cabinet for reasons. ## Why It's Good For The Game more flexible options for mappers, more convenient than making directional variants yourself. it's what the helper is for ## Changelog :cl: qol: gives empty fireaxe and mech removal crowbars cabinets directional helpers /:cl: * adds directional helpers for empty fire axe and mech removal crowbar cabinets --------- Co-authored-by: Lamb <[email protected]>
* Frosty's factions are now defines (#78792) ## About The Pull Request Saw that Frosty the Snowman's factions were strings instead of defines, so I have made them use defines. ## Why It's Good For The Game Defines are much safer and cleaner than using strings. ## Changelog Nothing player facing * Frosty's factions are now defines --------- Co-authored-by: Profakos <[email protected]>
… updates its GPS tag [MDB IGNORE] (#24169) * Tendril Tagging - scanning necropolis tendrils with a mining analyzer updates its GPS tag (#78738) ## About The Pull Request Makes it so that if you wave a mining analyzer over a necropolis tendril (kinda like a geyser), its GPS tag is updated with a code for what it spawns and a numerical designation. Unlike geyser scanning, this awards no points, and is solely for figuring out what tendril spawns what fauna. <details> <summary>Screenshots in the dropdown:</summary> ![image](https://github.com/tgstation/tgstation/assets/31829017/888f19f9-2291-4349-995a-2821e99da375) ![image](https://github.com/tgstation/tgstation/assets/31829017/d847e88e-a8ae-4a18-ae57-aed248343457) ![image](https://github.com/tgstation/tgstation/assets/31829017/d9646dad-70b6-4e92-8b5d-ce5eed873869) Updated: now on the `structure/spawner` level, allowing it to cover icemoon spawners. ![image](https://github.com/tgstation/tgstation/assets/31829017/73cc2972-1c34-485d-8b70-a04f44a92bcd) Updated again: now it has an associated examine thing. ![image](https://github.com/tgstation/tgstation/assets/31829017/44027082-3672-4033-b603-de1a0c3d2af2) </details> Also removes the redundant `gps` variable because it got componentalized. ## Why It's Good For The Game I think being able to know what one of fifteen eerie signals is spawning without having to memorize which one is spawning which thing at what coordinate, or just vaguely going "oh so that's where the legion tendril was today". ## Changelog :cl: qol: Miners can now tag monster spawners (necropolis tendrils, animal dens, demonic portals, and netherworld links) by using their mining scanner on it, which updates their GPS tag (and/or gives them one) to give it a numerical designation and a short identifier for what it's spawning. /:cl: --------- Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com> * Tendril Tagging - scanning necropolis tendrils with a mining analyzer updates its GPS tag --------- Co-authored-by: Hatterhat <[email protected]> Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>
* pdas now use their cells more (#78580) ## About The Pull Request So one aspect of PDAs that I quite liked previously was managing and upgrading your power. This was lost when all cell parts got removed, mostly, and now I'd like to re-add it. PDAs and Tablets now use more power each second it's on Programs being active/idle now take charge too. And all this now takes ``seconds_per_tick`` into account. Screenshots of APC use before and after having 6 programs open at once ![image](https://github.com/tgstation/tgstation/assets/53777086/14699ae7-19a7-4eb6-a211-5944cc1867d0) ![image](https://github.com/tgstation/tgstation/assets/53777086/804fedde-0d5a-43a9-9e61-34139257a16f) PDA default power cells have a max charge of 1000, each cell use is around ``1.00970340315`` power, which is ``1.01013789399`` w/ 2 programs in idle and 1 active program (which is what PDAs are capable of). This means it takes about 990 ticks to fully drain your power, or about 50 minutes, at max use. This is completely blasted away the moment you put anything beyond a t1 cell inside of it, which is unfortunate but what can you do about tiered parts being so poor. The problem of no public PDA chargers are alleviated by tgstation/tgstation#78600 ### Update The PDA flashlight being on now also drains the battery 25% times faster. PDA running out of charge now also turns the flashlight off. ## Why It's Good For The Game You may or may not have to actually charge your PDA once in a round now, maybe. I liked this part of tablets and would like to see it brought back, managing your power to use your apps is important to ensure you're not just using all apps 24/7 Because this also adds the functionality to add/remove power cells again, it opens up to some minor little pranks/messing with people that isn't completely destroying their tools, as well as some minor upgradeability. ## Changelog :cl: balance: You can now remove and replace power cells from PDAs (with screwdriver). balance: PDAs now drain their power cells harder, and also take into account active programs & their flashlight being on. balance: PDAs running out of charge now turn their flashlights off. /:cl: * pdas now use their cells more * reduce power usage * Update computer.dm --------- Co-authored-by: John Willard <[email protected]> Co-authored-by: lessthanthree <[email protected]>
…ignal [MDB IGNORE] (#24222) * changes COMSIG_GLOB_LIGHT_MECHANISM_COMPLETED into a more versatile signal (#78832) ## About The Pull Request COMSIG_GLOB_LIGHT_MECHANISM_COMPLETED is now COMSIG_GLOB_PUZZLE_COMPLETED the light puzzle thingamajig now uses that puzzle doors on init register this signal, which means if the signal is sent all doors with the ID passed with the signal would open ## Why It's Good For The Game this means we can use the signal for more pieces such as cool buttons or pressure plates that open doors or whatever else that registers the signal or you could like make a component that does puzzle stuff like making a mob send it on death and mappers can change puzzle_id to link stuff together ## Changelog :cl: code: COMSIG_GLOB_LIGHT_MECHANISM_COMPLETED is now COMSIG_GLOB_PUZZLE_COMPLETED /:cl: * changes COMSIG_GLOB_LIGHT_MECHANISM_COMPLETED into a more versatile signal --------- Co-authored-by: jimmyl <[email protected]>
…out of uses [MDB IGNORE] (#24221) * Prevent a runtime in malf AI's overload machine ability when it runs out of uses (#78829) shifts the uses adjustment after unsetting the ability from the AI's click to prevent a runtime here `owner` would be `null` and scream cats because the ability would delete itself when running out of uses, thus deleting the owner and whatnot. i mean i guess we could just replace `owner` with `on_who` maybe but eh https://github.com/tgstation/tgstation/blob/5e21011aabd978dccf2f98dc7f0638e4c8831f38/code/datums/actions/innate_action.dm#L69-L76 runtime ``` [2023-04-01 08:10:00.141] runtime error: Cannot read null.client - proc name: unset ranged ability (/datum/action/innate/proc/unset_ranged_ability) - source file: innate_action.dm,72 - usr: W.A.R.D.E.N. (/mob/living/silicon/ai) - src: Overload Machine (/datum/action/innate/ai/ranged/overload_machine) - usr.loc: the floor (33,138,2) (/turf/open/floor/circuit/green) - call stack: - Overload Machine (/datum/action/innate/ai/ranged/overload_machine): unset ranged ability(W.A.R.D.E.N. (/mob/living/silicon/ai), "<span class=\'danger\'>Overcha...") - Overload Machine (/datum/action/innate/ai/ranged/overload_machine): do ability(W.A.R.D.E.N. (/mob/living/silicon/ai), the chem dispenser (/obj/machinery/chem_dispenser)) - Overload Machine (/datum/action/innate/ai/ranged/overload_machine): InterceptClickOn(W.A.R.D.E.N. (/mob/living/silicon/ai), "icon-x=17;icon-y=19;left=1;but...", the chem dispenser (/obj/machinery/chem_dispenser)) - W.A.R.D.E.N. (/mob/living/silicon/ai): check click intercept("icon-x=17;icon-y=19;left=1;but...", the chem dispenser (/obj/machinery/chem_dispenser)) - W.A.R.D.E.N. (/mob/living/silicon/ai): ClickOn(the chem dispenser (/obj/machinery/chem_dispenser), "icon-x=17;icon-y=19;left=1;but...") - the chem dispenser (/obj/machinery/chem_dispenser): Click(the shuttle floor (155,97,2) (/turf/open/floor/mineral/plastitanium), "mapwindow.map", "icon-x=17;icon-y=19;left=1;but...") - the chem dispenser (/obj/machinery/chem_dispenser): Click(the shuttle floor (155,97,2) (/turf/open/floor/mineral/plastitanium), "mapwindow.map", "icon-x=17;icon-y=19;left=1;but...") - /datum/callback/verb_callback (/datum/callback/verb_callback): Invoke() - world: push usr(W.A.R.D.E.N. (/mob/living/silicon/ai), /datum/callback/verb_callback (/datum/callback/verb_callback)) - /datum/callback/verb_callback (/datum/callback/verb_callback): InvokeAsync() - Input (/datum/controller/subsystem/verb_manager/input): run verb queue() - Input (/datum/controller/subsystem/verb_manager/input): fire(0) - Input (/datum/controller/subsystem/verb_manager/input): fire(0) - Input (/datum/controller/subsystem/verb_manager/input): fire(0) - Input (/datum/controller/subsystem/verb_manager/input): ignite(0) - Master (/datum/controller/master): RunQueue() - Master (/datum/controller/master): Loop(2) - Master (/datum/controller/master): StartProcessing(0) ``` * Prevent a runtime in malf AI's overload machine ability when it runs out of uses --------- Co-authored-by: Sealed101 <[email protected]>
* [NO GBP] you can hit tendrils in melee again (#78856) ## About The Pull Request adds an `else . = ..()` to spawner's attackby check so you can just break them with your crusher in case you need to be rid of it ## Why It's Good For The Game sometimes you just need to melee a spawner ## Changelog :cl: fix: Necropolis tendrils and other mining mob spawners can be hit in melee again. /:cl: --------- Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com> * [NO GBP] you can hit tendrils in melee again --------- Co-authored-by: Hatterhat <[email protected]> Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>
…kipped over [MDB IGNORE] (#24218) * Gives gibbing from too much blood an infinite range so it can't get skipped over (#78813) ## About The Pull Request Makes the range where gibbing from too much blood extend to infinity Also adds a message for swelling so there's more warning before you gib ## Why It's Good For The Game Fixes #78786 It also fixes a wizard exploit apparently. ## Changelog :cl: fix: fixed gibbing from having too much blood not working in some cases /:cl: * Gives gibbing from too much blood an infinite range so it can't get skipped over --------- Co-authored-by: BlueMemesauce <[email protected]>
…24217) * Fix bitrunning drinking glass using the wrong subtype (#78845) ## About The Pull Request This drinking glass subtype was runtiming like crazy because it didn't have `base_container_type` set, meaning it ~failed the vibe check~ couldn't properly update its sprite according to the glass styles. ![image](https://github.com/tgstation/tgstation/assets/51863163/b9410fa4-e8ec-417f-ac41-e8986c754c34) Swapped it out for a subtype of `filled`. Because it's a glass that starts filled. ## Changelog :cl: Melbert fix: Virtual Drink Glasses now look correct. /:cl: * Fix bitrunning drinking glass using the wrong subtype --------- Co-authored-by: MrMelbert <[email protected]>
* Fix TTS runtime from wearing bread (#78850) ## About The Pull Request Surprise, this just assumed a mob's mask is, well, a mask. But you can wear many non-mask things in your mask, such as bread or roses. ## Changelog :cl: Melber fix: Wearing bread (or roses, or other non-mask things) no longer prevents you from TTS speaking. /:cl: * Fix TTS runtime from wearing bread --------- Co-authored-by: MrMelbert <[email protected]>
* Fixes runtime on initalizing science programs (#78842) Datums don't have location, so there's no z level to search here. * Fixes runtime on initalizing science programs --------- Co-authored-by: AnturK <[email protected]>
* Fixes camera ref cleanup in alarms processing (#78839) Not every alarm area has cameras. * Fixes camera ref cleanup in alarms processing --------- Co-authored-by: AnturK <[email protected]>
* General code maintenance for Reagents (#78637) ## About The Pull Request 1. Moved global procs inside of `code/modules/reagents/chemistry/holder.dm` that are not tied to `datum/reagent` to it's own dedicated global list file `code/_globalvars/lists/reagents.dm` these procs initialized global lists so it makes sense to move them here and also reduces the size of this file a.k.a code organization 2. Moved global lists inside `code/_globalvars/lists/objects.dm` that are related to reagents also to `code/_globalvars/lists/reagents.dm`. Now all global reagent lists are located in this 1 file a.k.a code organization 3. Other code improvements for reagent code & its holder include - removed a ton of unused procs - removed unused vars and local defines - replaces `!` with `QDELETED()` in place of some target objects - throws stack trace if you pass an invalid reagent path to some procs - Heavy auto doc for a lot of procs 4. Adds a lot of sanity checks on numbers related to reagents i.e. whenever a reagent is added/removed/transferred etc 3 sanity checks are done on those numbers - We first check is the number valid via the `ISFINITE()` macro. This macro wasn't used as much as it needs to be so it is added in some missing places. If not a stack trace is thrown - The number if it relates to reagents volumes must be greater than `CHEMICAL_QUANTISATION_LEVEL` define so we don't deal with 0 or very small/negative numbers - The number is then quantized i.e. we do `round(amount, CHEMICAL_QUANTISATION_LEVEL)` so we don't deal with numbers having 10 decimal places or something like that - Replaced `CHEMICAL_VOLUME_MINIMUM` with `CHEMICAL_QUANTISATION_LEVEL` so we can use the same constant everywhere 5. Addresses one of the issues presented in #31206. One way this occurred was when multiple reagents was put in a beaker and then a dropper was used to transfer them. Because multiple reagents were to be equally divided by their volumes when sucked up by the dropper some rounding was done causing fractional errors. That has been improved although not completely fixed cause there is a chance for it to occur when for example an odd number of reagents are transferred between the beaker and dropper. Another instance where it can occur is when very small volumes are being transferred. When this happens `update_total()` removes these reagents before they can be transferred causing missing amounts. 6. Numbers were being rounded in inconsistent ways for e.g. in some places it was rounded with the correct quantization constant https://github.com/tgstation/tgstation/blob/30782f817db5aef2d388af335f4c70b88c74b93b/code/modules/reagents/chemistry/holder.dm#L264 But in other places it gets rounded with a different constant https://github.com/tgstation/tgstation/blob/30782f817db5aef2d388af335f4c70b88c74b93b/code/modules/reagents/chemistry/holder.dm#L653 We should be using the 1 constant `CHEMICAL_QUANTISATION_LEVEL` for all these places so we don't get different values. so the rounding was added in multiple places but we use `FLOOR()` instead so we don't get values greater than the volume of reagent available. ## Changelog :cl: code: moved some global procs and vars related to reagents to its own dedicated file. removed some unused procs and macros code: heavy auto docs for a lot of procs refactor: adds reagent sanity and bound check code refactor: multiple reagents are more uniformly distributed when transferring them between beakers or dropper & in every other reagent dependent operation /:cl: --------- Co-authored-by: Jacquerel <hnevard@ gmail.com> * General code maintenance for Reagents --------- Co-authored-by: SyncIt21 <[email protected]> Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Dels a bad stack trace from stoned effect (#78843) ## About The Pull Request This is a bad stack trace, the reagent application makes no effort in ensuring non-carbons get the effect applied. https://github.com/tgstation/tgstation/blob/ce51db06ef9dd10ac4fc68907a5a0319ad22e51e/code/modules/reagents/chemistry/reagents/drug_reagents.dm#L48-L50 So rather than crashing, we'll just `return FALSE` to tell the status effect not to apply. * Dels a bad stack trace from stoned effect --------- Co-authored-by: MrMelbert <[email protected]>
…d objects [MDB IGNORE] (#24206) * Adds supermatter attackby_hit typecache to deal with similarly-handled objects (#78779) ## About The Pull Request Adds a typecache for objects that are similarly handled in the attackby_hit proc I decided to omit cigarette from the list since it has so much custom code. I could just check to see if the item is a cigarette, but I don't think that is very readable. ## Why It's Good For The Game Makes interaction more efficient, also because a maintainer said so ## Changelog :cl: code: made an eensy teensie weensie change to some supermatter boilerplate /:cl: --------- Co-authored-by: FinancialGoose <92416224+TheBoondock@ users.noreply.github.com> Co-authored-by: carlarctg <53100513+carlarctg@ users.noreply.github.com> Co-authored-by: orange man <61334995+comfyorange@ users.noreply.github.com> Co-authored-by: Cruix <ianjturk@ gmail.com> Co-authored-by: Cruix <discoveryian2@ gmail.com> Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@ users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@ users.noreply.github.com> Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> Co-authored-by: Tim <timothymtorres@ gmail.com> Co-authored-by: Jacquerel <hnevard@ gmail.com> Co-authored-by: Emmett Gaines <ninjanomnom@ gmail.com> Co-authored-by: nikothedude <59709059+nikothedude@ users.noreply.github.com> Co-authored-by: BluBerry016 <50649185+unit0016@ users.noreply.github.com> Co-authored-by: flopp / Daniel Ast <75865592+RunKittenzRComing@ users.noreply.github.com> Co-authored-by: Wallem <66052067+Wallemations@ users.noreply.github.com> Co-authored-by: Changelogs <action@ github.com> * Adds supermatter attackby_hit typecache to deal with similarly-handled objects --------- Co-authored-by: admeeer <[email protected]> Co-authored-by: FinancialGoose <92416224+TheBoondock@ users.noreply.github.com> Co-authored-by: carlarctg <53100513+carlarctg@ users.noreply.github.com> Co-authored-by: orange man <61334995+comfyorange@ users.noreply.github.com> Co-authored-by: Cruix <ianjturk@ gmail.com> Co-authored-by: Cruix <discoveryian2@ gmail.com> Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@ users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@ users.noreply.github.com> Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> Co-authored-by: Tim <timothymtorres@ gmail.com> Co-authored-by: Jacquerel <hnevard@ gmail.com> Co-authored-by: Emmett Gaines <ninjanomnom@ gmail.com> Co-authored-by: nikothedude <59709059+nikothedude@ users.noreply.github.com> Co-authored-by: BluBerry016 <50649185+unit0016@ users.noreply.github.com> Co-authored-by: flopp / Daniel Ast <75865592+RunKittenzRComing@ users.noreply.github.com> Co-authored-by: Wallem <66052067+Wallemations@ users.noreply.github.com> Co-authored-by: Changelogs <action@ github.com>
…GNORE] (#24213) * Fixes void cloak not making suit store slot items unstrippable (#78841) Signal handlers have a fixed first argument. * Fixes void cloak not making suit store slot items unstrippable --------- Co-authored-by: AnturK <[email protected]>
…osed mobs [MDB IGNORE] (#24212) * Fixes salt, flour, corn starch, and saltwater not sanity checking exposed mobs (#78846) ## About The Pull Request These procs cast the exposed mob to carbon so they could affect wounds, but non-carbon mobs can be exposed to reagents. * Fixes salt, flour, corn starch, and saltwater not sanity checking exposed mobs --------- Co-authored-by: MrMelbert <[email protected]>
…24211) * Fixes images getting displayed as an appearance in vv (#78861) I forgot to include this in the check >.> :cl: fix: Images are once more displayed as images in vv instead of as an appearance /:cl: * Fixes images getting displayed as an appearance in vv --------- Co-authored-by: Emmett Gaines <[email protected]>
* Improves many areas of CentCom (#78687) ## About The Pull Request Centcom is better ## Why It's Good For The Game It's because because, as we all know, the better something is, the better it is. ## Changelog :cl: Fazzie qol: NT's logo on Centcom's landing pad looks better qol: Centcom's Cargo and other rooms had their items rearanged to look marginally better. Like you're every gonna see them! fix: The Thunderdome on Centcom now has up-to-date cooking machinery /:cl: * Improves many areas of CentCom --------- Co-authored-by: Fazzie <[email protected]>
* Fixes setting prebuilt shutter ids with multiool (#78838) Most mapped in ids are text not numbers, which would runtime here. * Fixes setting prebuilt shutter ids with multiool --------- Co-authored-by: AnturK <[email protected]> Co-authored-by: Pinta <[email protected]>
* Fixed Meta disposals. (#78819) ## About The Pull Request Fixes #78811 The sorting helper for disposals on Meta was missing, causing garbage to infinitely loop around the station instead of being thrown into disposals. This has been rectified. ## Why It's Good For The Game Infinite disposals loops are bad unless they're on purpose. ## Changelog :cl: fix: Metastation disposals will no longer infinitely loop garbage around the station. /:cl: * Fixed Meta disposals. --------- Co-authored-by: lizardqueenlexi <[email protected]>
* Fixes the Syndicate insurgent bundle * fixes another case of an equipment option being the wrong subtype
* separation of lmb and rmb is absolute * buh --------- Co-authored-by: Hatterhat <[email protected]>
* Warm donk-pockets once again have omnizine in them * Modular * Fixes modular paths --------- Co-authored-by: GPeckman <[email protected]> Co-authored-by: Giz <[email protected]>
* Pipe gas visuals (#78217) ## About The Pull Request Primarily this pr is all about getting pipes to have a visual display for the gas within them. A couple other things of note have been done to make that easier though: - A sprite generator that outputs to a dmi has been made for all pipe variants and the layers. This is because I didn't want to work with hundreds of pipe sprites just to do minor changes. In the future I would like to generate things like this during a github action but for the moment this is just a helper you can use for generating the pipe dmi files. - Some minor reorganization of the code in the pipe dm file. - Some doc comments on things that bothered me ## Why It's Good For The Game Gives a bit of visual feedback when working with pipes that should hopefully make people more comfortable around them if they can easily see if the pipes are empty or are filled with an unknown gas mixture. Can also serve as a warning to those keeping an eye out for things like plasma floods. :cl: ninjanomnom add: Pipes now have a colored visual display that shows their contents at a glance. /:cl: ~~The colors for gases could stand to be better, if anyone wants to suggest alternatives to what I've used please do as I put only a bare minimum of thought into each choice.~~ I've switched to using the gas colors defined in tgui constants. ![dreamseeker_2023-09-26_07-32-56](https://github.com/tgstation/tgstation/assets/1234602/0a3a5636-c9b9-4046-83b9-0d116f8232d1) * Pipe gas visuals --------- Co-authored-by: Emmett Gaines <[email protected]>
* Bitrunning hotfix 3 * Update netpod.dm * Fixes modular paths * Fixes modular paths * Moves the food a bit --------- Co-authored-by: Jeremiah <[email protected]> Co-authored-by: Bloop <[email protected]>
fixes bitrunners not being part of cargo on sensors
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
49e1bad