mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-19 12:05:59 +01:00
master
158 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
de4c3b255d | Merge branch 'master' of github.com:tgstation/tgstation into upstream-2026-06-23 | ||
|
|
98edacce96 |
Fixes runtime when breaking a moneybot without money (#96474)
## About The Pull Request holochip w/ 0 credits ## Why It's Good For The Game Runtime ## Changelog 🆑 fix: fixed a runtime when breaking a moneybot without money /🆑 |
||
|
|
21b4095dfd |
[MDB IGNORE] [IDB IGNORE] Upstream Sync - 04/17/2026 (#5453)
Upstream 04/17/2026 fixes https://github.com/Bubberstation/Bubberstation/issues/5549 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com> Co-authored-by: rageguy505 <54517726+rageguy505@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com> Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Co-authored-by: Maxipat <108554989+Maxipat112@users.noreply.github.com> Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com> Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com> Co-authored-by: loganuk <fakeemail123@aol.com> Co-authored-by: Leland Kemble <70413276+lelandkemble@users.noreply.github.com> Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com> Co-authored-by: Lucy <lucy@absolucy.moe> Co-authored-by: siliconOpossum <138069572+siliconOpossum@users.noreply.github.com> Co-authored-by: Isratosh <Isratosh@hotmail.com> Co-authored-by: TheRyeGuyWhoWillNowDie <70169560+TheRyeGuyWhoWillNowDie@users.noreply.github.com> Co-authored-by: Neocloudy <88008002+Neocloudy@users.noreply.github.com> Co-authored-by: Alexander V. <volas@ya.ru> Co-authored-by: ElGitificador <168473461+ElGitificador@users.noreply.github.com> Co-authored-by: Twaticus <46540570+Twaticus@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: Cameron Lennox <killer65311@gmail.com> Co-authored-by: Tim <timothymtorres@gmail.com> Co-authored-by: Iamgoofball <iamgoofball@gmail.com> Co-authored-by: Layzu666 <121319428+Layzu666@users.noreply.github.com> Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com> Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com> Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: John F. Kennedy <54908920+MacaroniCritter@users.noreply.github.com> Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com> Co-authored-by: Josh <josh.adam.powell@gmail.com> Co-authored-by: Josh Powell <josh.powell@softwire.com> Co-authored-by: Yobrocharlie <Charliemiller5617@gmail.com> Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com> Co-authored-by: shayoki <96078776+shayoki@users.noreply.github.com> Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com> |
||
|
|
4eadf5caf7 |
The big tooltype_act de-cargo-cult-ing (#95408)
## About The Pull Request Removes a lot of cargo cult copypasta with `default_deconstruction_screwdriver`, `default_deconstruction_crowbar`, and to a lesser extent `default_pry_open` and `default_change_direction_wrench` ALL you gotta do now if you want your machine to have an openable panel or be deconstructible with a crowbar is this ```dm /obj/machinery/dish_drive/screwdriver_act(mob/living/user, obj/item/tool) return default_deconstruction_screwdriver(user, tool) /obj/machinery/dish_drive/crowbar_act(mob/living/user, obj/item/tool) return default_deconstruction_crowbar(user, tool) ``` `default_deconstruction_screwdriver` no longer directly sets `icon_state`, requiring the user pass in the open and closed icon states. Now, it just calls `update_appearance`, and everything that once passed the icon state now uses `base_icon_state` and `update_icon_state`. ## Why It's Good For The Game Many of these procs were terribly overcomplicated and difficult to work with for what should be a relatively simple action Streamlining it makes it easier for coders to understand and work with ## Changelog 🆑 Melbert refactor: A majority of machines had their screwdriver/crowbar/wrench interactions rewritten, report any oddities like being unable to open a machine's panel or deconstruct a machine /🆑 |
||
|
|
de6a6ac46e |
Fixes conditionally added actions not appearing on player HUDs (#95624)
## About The Pull Request Fuckup from the refactor, this should give the action to the mob not the owner of the action. Fixes purple raptors, ninja katanas, etc ## Changelog 🆑 fix: Fixed conditionally added actions not appearing on player HUDs /🆑 |
||
|
|
0917d44cc8 |
Audits and cleans up Trigger() parent calls (#95548)
## About The Pull Request ``/datum/action/proc/Trigger(mob/clicker, trigger_flags)`` has a lot of children, many of which use mixed ``. = ..()`` or no parent calls at all. https://github.com/tgstation/tgstation/blob/d65ee47f6ebd0384d463a1f2a044c321ff2d912f/code/datums/actions/action.dm#L163-L170 This PR attempts to standardize all the children procs to call parent in a uniform way, or cements that they *shouldnt* call parent for whatever reason. ## Why It's Good For The Game Base proc calls are important, yanno? The base proc has the action button signals and availability proc on it, so its technically possible for children procs of trigger() to have check_flags enabled, but never blocked (i.e AB_CHECK_CONSCIOUS, AB_CHECK_HANDS_BLOCKED). Some children procs have IsAvailable on them, but its possible they can be skipped over if a coder is not paying attention. This reduces that risk. |
||
|
|
38c8884d3c |
Adds a boolean type to circuits (#95487)
## About The Pull Request A substantial number of number circuit ports, input and output alike, effectively act as boolean flags. That is, they are either input ports that only care about whether the value is or is not zero, or they are output ports that can only output zero or one. This PR adds a boolean datatype, and converts all these ports to booleans. Anything can be connected to a boolean input port, effectively setting the port to the truthiness of the input. Booleans can be connected to number and signal ports, as they all use numbers as their underlying values. ## Why It's Good For The Game Having a proper boolean datatype makes the affected ports a bit more intuitive to compute with. ## Changelog 🆑 qol: Many circuit components have had ports that effectively act as boolean inputs or outputs converted into a new boolean datatype. /🆑 --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> |
||
|
|
2711d6d038 |
Rewrites BCI implanters to use item_interaction (#95377)
## About The Pull Request One more refactor, one less attackby ## Changelog 🆑 refactor: Rewrote BCI implanters to use item_interaction /🆑 |
||
|
|
f0fc690db8 |
Rewrites dispenser bots to use item_interaction (#95375)
## About The Pull Request Cleans up the code, swing combat will be real one day ## Changelog 🆑 refactor: Rewrote dispenser bots to use item_interaction /🆑 |
||
|
|
17f597a2e8 |
Adds the circuit implant (#95023)
## About The Pull Request The circuit implant is, as the name suggests, an implant that can contain an integrated circuit. It's similar in concept to the BCI, but differs from it in the following ways: - Has a capacity of 12 components, compared to the BCI's 25 - Can be inserted into basic mobs - Does not set off Body Purists' disdain for cybernetics - Cannot use the target interceptor, thought listener, or overlay components - Cannot force the user to speak/emote - the speech component simply makes the implant itself speak like it does in other shells The circuit implant can be printed from the component printer upon researching advanced shells. Only one circuit implant can be inserted into a mob at once. As a little code standardization bonus, implant case interaction has been refactored into an `item_interaction`. ## Why It's Good For The Game Implants seem like an interesting way for circuits to be utilized. Not only do they provide a body-purist-friendly way to have an internal circuit, they also give most basic mobs a way to interact with the circuit ecosystem. Additionally, them being implants implantable with an implanter provides an easier method for a circuit to be forced upon someone in a way that isn't as easy to remove as just dropping the item. |
||
|
|
00ccf0c6b5 |
Merge remote-tracking branch 'tgstation/master' into upstream-feb12-2026
# Conflicts: # .github/CODEOWNERS # .github/workflows/compile_changelogs.yml # .github/workflows/stale.yml # SQL/database_changelog.md # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # code/__DEFINES/atom_hud.dm # code/__DEFINES/inventory.dm # code/__DEFINES/mobs.dm # code/__DEFINES/species_clothing_paths.dm # code/__DEFINES/subsystems.dm # code/__DEFINES/surgery.dm # code/__HELPERS/global_lists.dm # code/_globalvars/lists/maintenance_loot.dm # code/_globalvars/traits/_traits.dm # code/controllers/subsystem/minor_mapping.dm # code/controllers/subsystem/processing/quirks.dm # code/controllers/subsystem/shuttle.dm # code/datums/components/palette.dm # code/datums/components/surgery_initiator.dm # code/datums/diseases/advance/advance.dm # code/datums/hud.dm # code/datums/mood.dm # code/datums/mutations/chameleon.dm # code/datums/quirks/negative_quirks/nyctophobia.dm # code/datums/status_effects/debuffs/debuffs.dm # code/datums/status_effects/debuffs/drunk.dm # code/datums/status_effects/debuffs/slime/slime_leech.dm # code/datums/weather/weather.dm # code/game/data_huds.dm # code/game/objects/items.dm # code/game/objects/items/devices/scanners/health_analyzer.dm # code/game/objects/items/frog_statue.dm # code/game/objects/items/rcd/RLD.dm # code/game/objects/items/robot/items/hypo.dm # code/game/objects/items/stacks/medical.dm # code/game/objects/items/stacks/wrap.dm # code/game/objects/items/storage/garment.dm # code/game/objects/items/tools/medical/defib.dm # code/game/objects/items/weaponry.dm # code/game/objects/items/weaponry/melee/misc.dm # code/game/objects/structures/crates_lockers/closets/secure/security.dm # code/game/objects/structures/curtains.dm # code/game/objects/structures/dresser.dm # code/game/objects/structures/girders.dm # code/game/objects/structures/maintenance.dm # code/game/objects/structures/mirror.dm # code/modules/admin/greyscale_modify_menu.dm # code/modules/admin/verbs/light_debug.dm # code/modules/antagonists/ashwalker/ashwalker.dm # code/modules/antagonists/heretic/knowledge/starting_lore.dm # code/modules/antagonists/ninja/ninjaDrainAct.dm # code/modules/art/paintings.dm # code/modules/client/preferences.dm # code/modules/client/verbs/ooc.dm # code/modules/clothing/head/wig.dm # code/modules/events/disease_outbreak.dm # code/modules/holodeck/holo_effect.dm # code/modules/jobs/job_types/head_of_security.dm # code/modules/jobs/job_types/security_officer.dm # code/modules/library/skill_learning/generic_skillchips/point.dm # code/modules/mining/lavaland/ash_flora.dm # code/modules/mining/lavaland/mining_loot/megafauna/ash_drake.dm # code/modules/mob/dead/new_player/new_player.dm # code/modules/mob/living/basic/guardian/guardian.dm # code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm # code/modules/mob/living/carbon/carbon.dm # code/modules/mob/living/carbon/human/human.dm # code/modules/mob/living/carbon/human/human_defines.dm # code/modules/mob/living/carbon/life.dm # code/modules/mob/living/living.dm # code/modules/mob/living/living_defines.dm # code/modules/mob/mob.dm # code/modules/mob_spawn/ghost_roles/mining_roles.dm # code/modules/mod/mod_control.dm # code/modules/mod/modules/modules_general.dm # code/modules/modular_computers/computers/item/computer_ui.dm # code/modules/paperwork/paper.dm # code/modules/paperwork/paperbin.dm # code/modules/power/lighting/light.dm # code/modules/projectiles/guns/energy/kinetic_accelerator.dm # code/modules/projectiles/projectile.dm # code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm # code/modules/reagents/chemistry/reagents/food_reagents.dm # code/modules/reagents/chemistry/reagents/other_reagents.dm # code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm # code/modules/research/xenobiology/crossbreeding/_clothing.dm # code/modules/research/xenobiology/crossbreeding/prismatic.dm # code/modules/surgery/advanced/brainwashing.dm # code/modules/surgery/advanced/lobotomy.dm # code/modules/surgery/amputation.dm # code/modules/surgery/blood_filter.dm # code/modules/surgery/bodyparts/_bodyparts.dm # code/modules/surgery/brain_surgery.dm # code/modules/surgery/cavity_implant.dm # code/modules/surgery/coronary_bypass.dm # code/modules/surgery/gastrectomy.dm # code/modules/surgery/healing.dm # code/modules/surgery/limb_augmentation.dm # code/modules/surgery/organ_manipulation.dm # code/modules/surgery/revival.dm # code/modules/surgery/sleeper_protocol.dm # code/modules/surgery/surgery_helpers.dm # code/modules/surgery/surgery_step.dm # code/modules/unit_tests/_unit_tests.dm # code/modules/unit_tests/designs.dm # code/modules/unit_tests/icon_state_worn.dm # code/modules/unit_tests/screenshots/screenshot_antag_icons_cultist.png # code/modules/unit_tests/screenshots/screenshot_antag_icons_headrevolutionary.png # code/modules/unit_tests/screenshots/screenshot_antag_icons_provocateur.png # code/modules/unit_tests/screenshots/screenshot_husk_body.png # code/modules/unit_tests/screenshots/screenshot_husk_body_missing_limbs.png # icons/map_icons/clothing/head/_head.dmi # icons/map_icons/clothing/shoes.dmi # icons/map_icons/items/_item.dmi # icons/mob/huds/hud.dmi # icons/mob/inhands/64x64_lefthand.dmi # icons/mob/inhands/64x64_righthand.dmi # icons/obj/machines/computer.dmi # tgui/packages/tgui/interfaces/OperatingComputer.jsx # tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/MainPage.tsx # tgui/packages/tgui/interfaces/PreferencesMenu/types.ts # tgui/packages/tgui/interfaces/SurgeryInitiator.tsx # tools/icon_cutter/check.py |
||
|
|
aedc5bae7a |
allowed is now signals based instead of hardcoded slots (#94871)
## About The Pull Request ID cards/MMI mech access/simple mob access/pAIs now use signals instead of checking specific slots with mob checks. We do this through mob's ``get_access`` proc that collects all access a mob has with a collect_access signal. ## Why It's Good For The Game It looks cleaner and we no longer individually check `check_access` for every single item that may have access. It's cleaner to put it all together and check in one go with all the access we've got. This also makes it easier to add items that hold access that aren't necessarily IDs but you want to be able to open stuff with. ## Changelog 🆑 refactor: ID checking for access has been reworked, please make a bug report if anything that's supposed to grant access is not working. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
6e9f2ccfc0 |
Merge remote-tracking branch 'tgstation/master' into upstream-12-15
# Conflicts: # .github/workflows/compile_all_maps.yml # .github/workflows/run_integration_tests.yml # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # code/_onclick/hud/credits.dm # code/controllers/subsystem/networks/id_access.dm # code/datums/diseases/advance/advance.dm # code/datums/diseases/advance/symptoms/heal.dm # code/game/machinery/doors/door.dm # code/game/objects/structures/crates_lockers/closets/secure/medical.dm # code/game/objects/structures/crates_lockers/closets/secure/security.dm # code/modules/antagonists/malf_ai/malf_ai_modules.dm # code/modules/jobs/job_types/_job.dm # code/modules/loadout/categories/accessories.dm # code/modules/loadout/loadout_helpers.dm # code/modules/loadout/loadout_items.dm # code/modules/loadout/loadout_preference.dm # code/modules/mob/living/silicon/robot/robot_defense.dm # code/modules/mod/mod_theme.dm # code/modules/projectiles/ammunition/energy/laser.dm # code/modules/reagents/reagent_containers/cups/drinks.dm # code/modules/shuttle/mobile_port/variants/supply.dm # code/modules/surgery/organs/internal/eyes/_eyes.dm # code/modules/unit_tests/screenshots/screenshot_antag_icons_heretic.png # icons/hud/screen_full.dmi |
||
|
|
d25c6201f4 |
Standerdizing currency symbols Part 2 (#94259)
## About The Pull Request Converts almost all non-constant, non-tgui usages of all variantions of "credit" and "cr" Everything seems in order, tested most the currencies. <img width="905" height="119" alt="image" src="https://github.com/user-attachments/assets/3fa005a7-a114-426c-9646-b81f68bc2dec" /> <img width="255" height="128" alt="image" src="https://github.com/user-attachments/assets/14c83b54-4fd9-4bee-838f-5b1c03939d9a" /> ## Why It's Good For The Game Same justification as https://github.com/tgstation/tgstation/pull/94128 Just easier to mantain/adjust the grammer/names of our money ## Changelog 🆑 spellcheck: minor cleanup on some usecases of "credits" /🆑 |
||
|
|
49d2f1f3c9 |
Adds the Modular Suit (Or Portable Suit) (#93776)
## About The Pull Request First, boring stuff. The "Modsuit equipment" techweb node has been split into two nodes, with the additional node containing the more civilian MODules (And the new plating), and costing 20 points. A new "Perfumer" MODule has been added(not printable anywhere, but in the new suit by default) that just cleans you. The MODsuit being added has been added to the LawDrobe's premium section, for 300 credits. Now, the real addition. This adds a MODsuit that is a modular suit, that is to say, a suit, tie, shoes and glasses. The glasses aren't actually real flash-proof sunglasses by default, but the welding protection module can be added. The suit is obviously not space-proof, and offers no protection to anything but biohazards. The suit has 10 complexity max, due to the fact that most modules don't have a point on it. This is subject to change. The pre-made one also has the stamp and paper dispenser MODules pre-installed, which are both now activateable via the neck slot. The suit control unit is the tie. ## Why It's Good For The Game Have you ever been called to court, but you didn't have a nice suit, so the judge holds you in contempt and sends you to jail? Well, never again. Gone are the days that you cause two innocent boys to almost be executed for a crime they didn't commit simply because you don't have a nice suit. With the Moonraker Conglomerate's newest export in your hands, you'll never be the less formal one ever again. No matter the occasion, you're never more than a few moments away from self-representing. Video of the fit: https://github.com/user-attachments/assets/44d08ca8-9ae1-4887-81e6-cec11792132e It's the same look as a suit jacket, white tie, sunglasses and laceup shoes. You must get a matching jumpsuit of your own. I think it's neat, and it's a damn shame that there's not a single MODsuit that isn't just head gloves suit shoes. All these MODules which are activateable from head, mask or glasses, and no suits that allow it. Missed opportunity, I'd say. Also, lawyer buff. Need I say more? ## Changelog 🆑 add: Added a modular SUIT, a deployable, one-piece three-piece suit. Purchasable from the LawDrobe. balance: The MODsuit equipment techweb node has been split in two, with an offshoot for civilian MODules. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
9b282a850e | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync | ||
|
|
d2f34e33be |
moves abstract_type up to datum, spawners wont spawn them (#92909)
## About The Pull Request moves all implementations (im aware of) for "Im a parent type dont spawn me please" to the datum layer to standardized behavior adds a standerized proc for filtering out "bad" items that we dont want spawning. applies to it the subtype vendor, gifts, and a new spawner and mystery box for a random gun (neither playerfacing) "port" of https://github.com/shiptest-ss13/Shiptest/pull/4621 https://github.com/user-attachments/assets/22f6f0b2-b44e-411a-b3dc-6b97dc0287aa small warning: I dont have EVERY abstract type defined right now but, ive done a good enough job for now. Im tired of data entry rn ## Why It's Good For The Game standardizing behavior. Might be a micro hit to performance however having this lets us not rely on icon state to determine whether something is a parent type and makes it much easier to tell something is a parent type (could be applied further to things like admin spawning menus and things like that). need feedback on if this is actually good for the game. ## Changelog 🆑 add: Soda cans show up in the silver slime drink table. add: Examine tag for items that are not mean to show up ingame. refactor: Standardizes how gifts rule out abstract types. fix: gifts no longer check if something has an inhand, massively expanding the list of potential items. /🆑 |
||
|
|
d9cf82b14d |
Fixes circuit gun recharging issue (#92483)
## About The Pull Request This is a pull request which fixes issue #92227. ## Why It's Good For The Game Closes #92227 which makes circuit guns more confusing than they should be ## Changelog 🆑 fix: fixes circuit gun not recharging it's internal cell when an integrated circuit is inserted /🆑 |
||
|
|
63d9cdebe2 |
Fixes circuit gun recharging issue (#92483)
## About The Pull Request This is a pull request which fixes issue #92227. ## Why It's Good For The Game Closes #92227 which makes circuit guns more confusing than they should be ## Changelog 🆑 fix: fixes circuit gun not recharging it's internal cell when an integrated circuit is inserted /🆑 |
||
|
|
1c0ac21cb4 |
Fixes the issue of usr pointing to admins by making Trigger pass down clicker (#92354)
## About The Pull Request
Fixes the issue of usr pointing to admins by making Trigger pass down
clicker, as usr is fucky and can be passed down by other unrelated
procs. Fun.
Added the clicker arg to all usages of Trigger as well
Also changes isobserver check in antagonist ui_act code that prevents
observers from clicking UI's instead to check if the ui.user is
owner.current
## Why It's Good For The Game
Fixes admins giving heretic to people opening the heretic UI for the
admin instead
(cherry picked from commit
|
||
|
|
0bc42d6940 |
Fixes the issue of usr pointing to admins by making Trigger pass down clicker (#92354)
## About The Pull Request Fixes the issue of usr pointing to admins by making Trigger pass down clicker, as usr is fucky and can be passed down by other unrelated procs. Fun. Added the clicker arg to all usages of Trigger as well Also changes isobserver check in antagonist ui_act code that prevents observers from clicking UI's instead to check if the ui.user is owner.current ## Why It's Good For The Game Fixes admins giving heretic to people opening the heretic UI for the admin instead |
||
|
|
7c0ce5435a |
Gibs you leave are now based on your biotype/chest bodypart, improves gibber VFX (#91421)
## About The Pull Request * When gibbing mobs, spawned gib type is now based on mob's biotypes if they're not a carbon, or their chest (or first) bodypart if they are, rather than requiring a proc override for every single mob. This means that a few robotic mobs no longer drop meaty gibs, and that gibbing androids now produces cyborg gibs instead of a meaty surprise, plus they should no longer runtime when trying to gib a robot. Gibs also are now spawned around the gibber and streak outwards instead of magically teleporting a few tiles away, for some visual flair. * Fixed meat not overriding blood DNA on blood_walk component which made xeno and lizard meat leave behind orange trails instead of proper lime/dark green blood colors (due to them keeping human meat DNA). * Brightened up the gibber blood overlay I've missed, so it should be consistent with old blood colors now. * Also cleaned up the gibspawner code. ## Why It's Good For The Game Biotype/chest changes should make devs lives easier and gameplay a bit more consistent, and streaking just makes the process look slightly better. ## Changelog 🆑 add: Androids and fully augmented humans now drop robotic gibs instead of meat add: Improved gibber VFX fix: Fixed gibber overlays being darker than intended fix: Fixed xenomorph and lizard meat leaving orange trails behind code: Improved gibs and gibspawner code /🆑 |
||
|
|
eb69c087f1 |
Gibs you leave are now based on your biotype/chest bodypart, improves gibber VFX (#91421)
## About The Pull Request * When gibbing mobs, spawned gib type is now based on mob's biotypes if they're not a carbon, or their chest (or first) bodypart if they are, rather than requiring a proc override for every single mob. This means that a few robotic mobs no longer drop meaty gibs, and that gibbing androids now produces cyborg gibs instead of a meaty surprise, plus they should no longer runtime when trying to gib a robot. Gibs also are now spawned around the gibber and streak outwards instead of magically teleporting a few tiles away, for some visual flair. * Fixed meat not overriding blood DNA on blood_walk component which made xeno and lizard meat leave behind orange trails instead of proper lime/dark green blood colors (due to them keeping human meat DNA). * Brightened up the gibber blood overlay I've missed, so it should be consistent with old blood colors now. * Also cleaned up the gibspawner code. ## Why It's Good For The Game Biotype/chest changes should make devs lives easier and gameplay a bit more consistent, and streaking just makes the process look slightly better. ## Changelog 🆑 add: Androids and fully augmented humans now drop robotic gibs instead of meat add: Improved gibber VFX fix: Fixed gibber overlays being darker than intended fix: Fixed xenomorph and lizard meat leaving orange trails behind code: Improved gibs and gibspawner code /🆑 |
||
|
|
c9792d0633 |
Fixes assembly shells not using power from the wire/button they are attached to. (#91384)
## About The Pull Request How did I miss how `COMSIG_SHELL_ATTACH_CIRCUIT` was handled? ## Why It's Good For The Game Makes a circuit shell actually do what I claim it does. Fixes #90786 ## Changelog 🆑 fix: Fixes assembly shells not taking power from machines/mechs/borgs instead of needing a cell when attached to such things. Did you know this was supposed to be a feature, but didn't work for who-knows-how-long? /🆑 |
||
|
|
73828ecff5 |
Fixes assembly shells not using power from the wire/button they are attached to. (#91384)
## About The Pull Request How did I miss how `COMSIG_SHELL_ATTACH_CIRCUIT` was handled? ## Why It's Good For The Game Makes a circuit shell actually do what I claim it does. Fixes #90786 ## Changelog 🆑 fix: Fixes assembly shells not taking power from machines/mechs/borgs instead of needing a cell when attached to such things. Did you know this was supposed to be a feature, but didn't work for who-knows-how-long? /🆑 |
||
|
|
796583b7f6 |
Adds the Color component to circuitry (#3894)
## About The Pull Request Adds a new component to circuitry that allows the designer to change the color of text outputted by the speech and BCI core components. Unlocked on the circuitry node. BCI Core and Speech components are given a new input: "Color" as a string. > Said string is checked against a global key:value pair list to verify that it is a valid span. This list is cherry picked and very easy to modify later on if anyone wishes to add more spans to the list later on. > Current colors: > Default, none > Green, common > Purple, science > Yellow, command > Red, sec > Blue, medical > Orange, engineering > Brown, cargo > Maroon, syndicate > Pink, ai ## Why It's Good For The Game This was made on request of a few people who do circuitry alot and tend to have the same feedback; "You hear a robotic voice..." message being easily missed and wanted to add some color to it, rather than hardcoding the color I added a new component so that people would have the freedom to change their text based off of circuits and other logic in their creations. ## Proof Of Testing <details> <summary>Screenshots/Videos</summary> BCI Brain Computer example with dropdown:  Colors:          </details> ## Changelog 🆑 add: Added a new circuit: Color component /🆑 |
||
|
|
bc2215667f |
Re-refactors batons / Refactors attack chain force modifiers (#90809)
Melee attack chain now has a list passed along with it, `attack_modifiers`, which you can stick force modifiers to change the resulting attack This is basically a soft implementation of damage packets until a more definitive pr, but one that only applies to item attack chain, and not unarmed attacks. This change was done to facilitate a baton refactor - batons no longer hack together their own attack chain, and are now integrated straight into the real attack chain. This refactor itself was done because batons don't send any attack signals, which has been annoying in the past (for swing combat). 🆑 Melbert refactor: Batons have been refactored again. Baton stuns now properly count as an attack, when before it was a nothing. Report any oddities, particularly in regards to harmbatonning vs normal batonning. refactor: The method of adjusting item damage mid-attack has been refactored - some affected items include the Nullblade and knives. Report any strange happenings with damage numbers. refactor: A few objects have been moved to the new interaction chain - records consoles, mawed crucible, alien weeds and space vines, hedges, restaurant portals, and some mobs - to name a few. fix: Spears only deal bonus damage against secure lockers, not all closet types (including crates) /🆑 |
||
|
|
5261efb67f |
Re-refactors batons / Refactors attack chain force modifiers (#90809)
## About The Pull Request Melee attack chain now has a list passed along with it, `attack_modifiers`, which you can stick force modifiers to change the resulting attack This is basically a soft implementation of damage packets until a more definitive pr, but one that only applies to item attack chain, and not unarmed attacks. This change was done to facilitate a baton refactor - batons no longer hack together their own attack chain, and are now integrated straight into the real attack chain. This refactor itself was done because batons don't send any attack signals, which has been annoying in the past (for swing combat). ## Changelog 🆑 Melbert refactor: Batons have been refactored again. Baton stuns now properly count as an attack, when before it was a nothing. Report any oddities, particularly in regards to harmbatonning vs normal batonning. refactor: The method of adjusting item damage mid-attack has been refactored - some affected items include the Nullblade and knives. Report any strange happenings with damage numbers. refactor: A few objects have been moved to the new interaction chain - records consoles, mawed crucible, alien weeds and space vines, hedges, restaurant portals, and some mobs - to name a few. fix: Spears only deal bonus damage against secure lockers, not all closet types (including crates) /🆑 |
||
|
|
3015abf751 |
Moneybots are no longer capable of crashing the economy (or your game) (#90814)
## About The Pull Request 1. Moneybots round to the nearest 1 credit. 2. Moneybots have a 0.5 second cooldown between being able to dispense credits. 3. Moneybots won't dispense more than 50 credits on a tile. ## Why It's Good For The Game The economy, fools! ## Changelog 🆑 Melbert qol: Moneybots round to the nearest 1 credit. qol: Moneybots have a 0.5 second cooldown between being able to dispense credits. qol: Moneybots won't dispense more than 50 credits on a tile. /🆑 |
||
|
|
11d82b7995 |
You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
People can now pet held mothroaches and pugs if they want to, or use items on them, hopefully without causing many issues. After all, it only took about a couple dozen lines of code to make... ...Oh, did the 527 files changed or the 850~ lines added/removed perhaps catch your eye? Made you wonder if I accidentally pushed the wrong branch? or skewed something up big time? Well, nuh uh. I just happen to be fed up with the melee attack chain still using stringized params instead of an array/list. It was frankly revolting to see how I'd have had to otherwise call `list2params` for what I'm trying to accomplish here, and make this PR another tessera to the immense stupidity of our attack chain procs calling `params2list` over and over and over instead of just using that one call instance from `ClickOn` as an argument. It's 2025, honey, wake up! I also tried to replace some of those single letter vars/args but there are just way too many of them. Improving old code. And I want to be able to pet mobroaches while holding them too. 🆑 qol: You can now interact with held mobs in more ways beside wearing them. /🆑 |
||
|
|
8e0750a6c3 |
Refactors MODsuit module rendering and allows overslotted parts to show items they overslot when unsealed (#90414)
MODsuit modules now render on the part they're attached to, that being first part if required_slots is set, otherwise defaulting to the control module. Instead of using icon ops and a cache, module masking (used by armor boosters and insignias) will instead render the module on all parts, each overlay alpha filtered using the worn piece as the mask. To do this we also migrate modules to separate_worn_overlays, which fixes the issue where they'd always get painted the same color as the back piece, ignoring use_mod_colors's value (which is FALSE by default). So now modules that inherit MOD's color like armor booster will be painted accordingly to their piece. This also means that modules actually layer properly, and don't go ontop of items that they should be under. Additionally, whenever gloves or boots overslot an item, the overslotted item will still render underneath them if they're unsealed. Because it looks weird when your gloves disappear when you extend your MODsuit ones.  Look at that hip look, she'd have bare hands and ankles without this PR. Closes #90370 Fixes a bunch of visual jank that looks weird, and overslotting displaying overslotted item is just behavior you'd expect normally. 🆑 add: When a MODsuit piece overslots an item, it will now render beneath that piece as long as its unsealed. refactor: Refactored how MODsuit modules are rendered, report any bugs on GitHub! /🆑 |
||
|
|
337f7b025f |
Moneybots are no longer capable of crashing the economy (or your game) (#90814)
## About The Pull Request 1. Moneybots round to the nearest 1 credit. 2. Moneybots have a 0.5 second cooldown between being able to dispense credits. 3. Moneybots won't dispense more than 50 credits on a tile. ## Why It's Good For The Game The economy, fools! ## Changelog 🆑 Melbert qol: Moneybots round to the nearest 1 credit. qol: Moneybots have a 0.5 second cooldown between being able to dispense credits. qol: Moneybots won't dispense more than 50 credits on a tile. /🆑 |
||
|
|
339616ae78 |
You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
## About The Pull Request People can now pet held mothroaches and pugs if they want to, or use items on them, hopefully without causing many issues. After all, it only took about a couple dozen lines of code to make... ...Oh, did the 527 files changed or the 850~ lines added/removed perhaps catch your eye? Made you wonder if I accidentally pushed the wrong branch? or skewed something up big time? Well, nuh uh. I just happen to be fed up with the melee attack chain still using stringized params instead of an array/list. It was frankly revolting to see how I'd have had to otherwise call `list2params` for what I'm trying to accomplish here, and make this PR another tessera to the immense stupidity of our attack chain procs calling `params2list` over and over and over instead of just using that one call instance from `ClickOn` as an argument. It's 2025, honey, wake up! I also tried to replace some of those single letter vars/args but there are just way too many of them. ## Why It's Good For The Game Improving old code. And I want to be able to pet mobroaches while holding them too. ## Changelog 🆑 qol: You can now interact with held mobs in more ways beside wearing them. /🆑 |
||
|
|
b49553bdf4 |
Refactors MODsuit module rendering and allows overslotted parts to show items they overslot when unsealed (#90414)
## About The Pull Request MODsuit modules now render on the part they're attached to, that being first part if required_slots is set, otherwise defaulting to the control module. Instead of using icon ops and a cache, module masking (used by armor boosters and insignias) will instead render the module on all parts, each overlay alpha filtered using the worn piece as the mask. To do this we also migrate modules to separate_worn_overlays, which fixes the issue where they'd always get painted the same color as the back piece, ignoring use_mod_colors's value (which is FALSE by default). So now modules that inherit MOD's color like armor booster will be painted accordingly to their piece. This also means that modules actually layer properly, and don't go ontop of items that they should be under. Additionally, whenever gloves or boots overslot an item, the overslotted item will still render underneath them if they're unsealed. Because it looks weird when your gloves disappear when you extend your MODsuit ones.  Look at that hip look, she'd have bare hands and ankles without this PR. Closes #90370 ## Why It's Good For The Game Fixes a bunch of visual jank that looks weird, and overslotting displaying overslotted item is just behavior you'd expect normally. ## Changelog 🆑 add: When a MODsuit piece overslots an item, it will now render beneath that piece as long as its unsealed. refactor: Refactored how MODsuit modules are rendered, report any bugs on GitHub! /🆑 |
||
|
|
589cf0a904 |
Refactors how item actions are handled (#89654)
## About The Pull Request This PR tackles our piss-poor item action handling. Currently in order to make an item only have actions when its equipped to a certain slot you need to override a proc, which I've changed by introducing an action_slots variable. I've also cleaned up a ton of action code, and most importantly moved a lot of Trigger effects on items to do_effect, which allows actions to not call ui_action_click or attack_self on an item without bypassing IsAvailible and comsigs that parent Trigger has. This resolves issues like jump boots being usable from your hands, HUDs being toggleable out of your pockets, etc. Also moved a few actions from relying on attack_self to individual handling on their side. This also stops welding masks/hardhats from showing their action while you hold them, this part of the change is just something I thought didn't make much sense - you can use their action by using them in-hand, and flickering on your action bar can be annoying when reshuffling your backpack. Closes #89653 ## Why It's Good For The Game Makes action handling significantly less ass, allows us to avoid code like this ```js /obj/item/clothing/mask/gas/sechailer/ui_action_click(mob/user, action) if(istype(action, /datum/action/item_action/halt)) halt() else adjust_visor(user) ``` |
||
|
|
4dd6cdeb72 |
Refactors how item actions are handled (#89654)
## About The Pull Request This PR tackles our piss-poor item action handling. Currently in order to make an item only have actions when its equipped to a certain slot you need to override a proc, which I've changed by introducing an action_slots variable. I've also cleaned up a ton of action code, and most importantly moved a lot of Trigger effects on items to do_effect, which allows actions to not call ui_action_click or attack_self on an item without bypassing IsAvailible and comsigs that parent Trigger has. This resolves issues like jump boots being usable from your hands, HUDs being toggleable out of your pockets, etc. Also moved a few actions from relying on attack_self to individual handling on their side. This also stops welding masks/hardhats from showing their action while you hold them, this part of the change is just something I thought didn't make much sense - you can use their action by using them in-hand, and flickering on your action bar can be annoying when reshuffling your backpack. Closes #89653 ## Why It's Good For The Game Makes action handling significantly less ass, allows us to avoid code like this ```js /obj/item/clothing/mask/gas/sechailer/ui_action_click(mob/user, action) if(istype(action, /datum/action/item_action/halt)) halt() else adjust_visor(user) ``` |
||
|
|
90b67b0541 |
A Small Circuit Expansion: Wallmounts, Undertiles, and Wire Bundles (#89122)
## About The Pull Request
This PR adds several circuit features, and changes several
assembly-related features to make them a bit more logical in how they
work. Included are the following changes/additions:
- Assemblies and wires have been refactored with vars that describe
their behavior:
- Assemblies have an `assembly_behavior` bitflag instead of a
`attachable` var. This var has 3 flags:
- `ASSEMBLY_INPUT`: The assembly is able to pulse the wire it is
attached to.
- `ASSEMBLY_TOGGLE_ARMED`: On activation, the assembly toggles whether
it can pulse the wire it is attached to.
- `ASSEMBLY_FUNCTIONAL_OUTPUT`: On activation, the assembly does
something other than just toggling whether it's armed.
- Wires have a `wires_behavior` bitflag with 3 flags:
- `WIRES_INPUT`: The object the wires are attached to does something
when the wires are pulsed.
- `WIRES_TOGGLE_ARMED`: The object the wires are attached to can
activate assemblies attached to those wires, and is fine if all that
activating that assembly does is toggle whether it's armed.
- `WIRES_FUNCTIONAL_OUTPUT`: The object the wires are attached to
expects that assemblies attached to its wires do something other than
toggling themselves when activated.
- Buttons can only accept assemblies with `ASSEMBLY_FUNCTIONAL_OUTPUT`.
- Pressure plates can now accept any assembly with
`ASSEMBLY_FUNCTIONAL_OUTPUT`, not just signalers. Assembly shells
attached to pressure plates will draw power from the powernet if the
pressure plate is under a tile.
- Adds a new circuit component - the wire bundle.
- This component gives the circuit a number of wires corresponding to
the size of the shell.
- Each wire has a corresponding port on the component that can pulse,
and receive pulses from, that wire.
- A circuit can only have one wire bundle component.
- Assembly shells cannot be attached to these wires, and no wires will
be created if the component is added to an assembly shell.
- Available with roundstart tech.
- Adds two new shells.
- The wallmounted shell is a large shell that can be hung on walls, and
uses power from the area it's placed in.
- Frame icon:

- Constructed icon:

- The undertile shell is a small shell that only works when fit under a
floor tile, but uses power from the area it's placed in.

- Both shells support usb cables.
- The above shells are available with the Advanced Shells techweb node.
## Why It's Good For The Game
The wire bundle component complements the functionality of the assembly
shell by allowing circuits to use assemblies directly in their logic.
The wallmounted and undertile shells provide ways of placing circuits
that don't necessarily take up space for machines. The undertile shell
is particularly useful for relaying usb component data over wirenets.
Pressure plates being able to accept assemblies other than signalers
expands their uses significantly.
## Changelog
🆑
refactor: Wires and assemblies have been refactored to have
directionality to them. This mostly makes it so that assemblies can only
be attached to wires it would make sense for them to be attached to.
qol: Pressure plates can now also accept igniters, condensers, flashes,
assembly shells, and door controllers.
add: Undertile circuit shells. They only work when placed under floor
tiles, but support USB cables and use APC power instead of cell power.
add: Wallmounted circuit shells. Large shells that support USB cables
and use APC power instead of cell power.
add: Wire bundle component. Adds a number of wires to the circuit
proportional to the capacity of the shell, allowing you to use
assemblies in circuit logic.
/🆑
|
||
|
|
f057705c4f |
machine board naming convention pass (#88888)
## About The Pull Request Adjusts a bunch of machine board names to comply with the general machine board naming patterns I see. First pass just removed a bunch of errant (Machine Board)s that were still on board names despite them being automatically appended on initialization, second pass set some board designs to actually have "Board" on the end to specify that it's a board and not a whole machine. ## Why It's Good For The Game Machine board naming consistency is probably good, actually. ## Changelog 🆑 spellcheck: A handful of machine boards should no longer have two (Machine Board)s showing up in their name. spellcheck: Boulder machinery boards are now labeled as boards from autolathes/circuit imprinters. /🆑 --------- Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com> |
||
|
|
a54009fd67 |
Circuit Wirenet Components + Assembly Shell Tweaks (#88593)
## About The Pull Request Assembly shells now use power from whatever machine/borg/mech/modsuit they are attached to the wires of, instead of their own power cell, when appropriate. As for the meat of this PR, circuit wirenet components function like NTnet and NFC components, but their signals are transmitted across whatever cable network the shell (or in the case of assembly shells, the machine or button it's inserted into) is connected to. These components are available with roundstart tech. ## Why It's Good For The Game Provides a somewhat intuitive way to make circuit networks that aren't dependent on external factors to continue functioning. NTnet components require a functional NTnet relay, which usually means they need telecomms to be working. NFC components have a range limit, and you need to provide a specific reference to the circuit being communicated with. Wirenet components, on the other hand, just need the shell to be anchored (or for assembly circuits, the thing whose wire it is attached to), and for the shell to have a cable under it. Also might indirectly provide a reason to use cable layers other than the default one. ## Changelog 🆑 add: Adds circuit wirenet components, allowing data to be transmitted and received over cable networks. qol: When attached to a machine, mech, modsuit, or borg, assembly circuit shells will use power from those instead of the circuit's own cell. /🆑 |
||
|
|
2e4d70afe5 |
Updates href uses for 516 (#88699)
## About The Pull Request Was just scrolling through the Paradise github since they seem to have more work done for 516 to see if there's anything I can port over, found this and thought why not. Ports parts of https://github.com/ParadiseSS13/Paradise/pull/25105 Specifically, updaing all hrefs to use the internal ``byond://``, and adding it to grep. ## Why It's Good For The Game More work towards 516. ## Changelog Nothing player-facing. |
||
|
|
6272b3680c |
You can use a fishing rod to snatch organs during organ manipulation surgery (feat organs sanity fix) (#87774)
## About The Pull Request This allows you to use a fishing rod during the "manipulate organs" step of the aforementioned surgery to snatch organs from a target. Unlike other fish sources, this one has a negative fishing difficulty of -20, which when summed with the default minigame difficulty should still result in a negative difficulty. In layman terms, this means the minigame is skipped here (unless you're wearing some clunky stuff like insulated or boxing gloves). It also has a wait time of 8 to 13 seconds versus the more random standard 3 to 25 seconds. A small side-effect of this is that explosions during the "manipulate organs" step will basically disembowel you, but it kinda fits anyway. By the by, because of this, there is a tiny chance bluespace fishing rods can yield you random organs. Worry not, they're newly generated, so you won't be snatching it from another player by accident (at least for now). ## Why It's Good For The Game It adds more possible weird and rare shenanigans involving surgery. ## Changelog 🆑 Add: You can use a fishing rod to snatch organs during organ manipulation surgery /🆑 |
||
|
|
778ed9f1ab |
The death or internal/external organ pathing (ft. fixed fox ears and recoloring bodypart overlays with dye sprays) (#87434)
## About The Pull Request This PR kills the abstract internal and external typepaths for organs, now replaced by an EXTERNAL_ORGAN flag to distinguish the two kinds. This PR also fixes fox ears (from #87162, no tail is added) and mushpeople's caps (they should be red, the screenshot is a tad outdated). And yes, you can now use a hair dye spray to recolor body parts like most tails, podpeople hair, mushpeople caps and cat ears. The process can be reversed by using the spray again. ## Why It's Good For The Game Time-Green put some effort during the last few months to untie functions and mechanics from external/internal organ pathing. Now, all that this pathing is good for are a few typechecks, easily replaceable with bitflags. Also podpeople and mushpeople need a way to recolor their "hair". This kind of applies to fish tails from the fish infusion, which colors can't be selected right now. The rest is just there if you ever want to recolor your lizard tail for some reason. Proof of testing btw (screenshot taken before mushpeople cap fix, right side has dyed body parts, moth can't be dyed, they're already fabolous):  ## Changelog 🆑 code: Removed internal/external pathing from organs in favor of a bit flag. Hopefully this shouldn't break anything about organs. fix: Fixed invisible fox ears. fix: Fixed mushpeople caps not being colored red by default. add: You can now dye most tails, podpeople hair, mushpeople caps etc. with a hair dye spray. /🆑 |
||
|
|
2c7c76a53d |
Fixes BCI messaging and circuit laser pointers (#86978)
## About The Pull Request Closes #86968 Closes #86969 ## Changelog 🆑 fix: Fixed BCIs sending messages twice and circuit laser pointers sometimes failing to work /🆑 |
||
|
|
58501dce77 |
Reorganizes the sound folder (#86726)
## About The Pull Request <details> - renamed ai folder to announcer -- announcer -- - moved vox_fem to announcer - moved approachingTG to announcer - separated the ambience folder into ambience and instrumental -- ambience -- - created holy folder moved all related sounds there - created engineering folder and moved all related sounds there - created security folder and moved ambidet there - created general folder and moved ambigen there - created icemoon folder and moved all icebox-related ambience there - created medical folder and moved all medbay-related ambi there - created ruin folder and moves all ruins ambi there - created beach folder and moved seag and shore there - created lavaland folder and moved related ambi there - created aurora_caelus folder and placed its ambi there - created misc folder and moved the rest of the files that don't have a specific category into it -- instrumental -- - moved traitor folder here - created lobby_music folder and placed our songs there (title0 not used anywhere? - server-side modification?) -- items -- - moved secdeath to hailer - moved surgery to handling -- effects -- - moved chemistry into effects - moved hallucinations into effects - moved health into effects - moved magic into effects -- vehicles -- - moved mecha into vehicles created mobs folder -- mobs -- - moved creatures folder into mobs - moved voice into mobs renamed creatures to non-humanoids renamed voice to humanoids -- non-humanoids-- created cyborg folder created hiss folder moved harmalarm.ogg to cyborg -- humanoids -- -- misc -- moved ghostwhisper to misc moved insane_low_laugh to misc I give up trying to document this. </details> - [X] ambience - [x] announcer - [x] effects - [X] instrumental - [x] items - [x] machines - [x] misc - [X] mobs - [X] runtime - [X] vehicles - [ ] attributions ## Why It's Good For The Game This folder is so disorganized that it's vomit inducing, will make it easier to find and add new sounds, providng a minor structure to the sound folder. ## Changelog 🆑 grungussuss refactor: the sound folder in the source code has been reorganized, please report any oddities with sounds playing or not playing server: lobby music has been repathed to sound/music/lobby_music /🆑 |
||
|
|
a4328ae1f9 |
Audits tgui_input_text() for length issues (#86741)
Fixes #86784
## About The Pull Request
Although some of the issues found were a direct result from #86692
(
|
||
|
|
3690bd3d8a |
Add distance output to direction circuit component, resizes several shells (#86577)
## About The Pull Request The direction component outputs the direction of an entity if it's within 7 tiles of the circuit. Since it already checks the distance, I added distance as one of its outputs. Besides that, I did a pass over the generics and shells and resized many of them. Most I resized to be small or tiny, except for the airlock shell, which I set to be bulky because it's a whole ass door. The shells I didn't touch remain at 'normal' size. 1) All handheld shells set to small, compact remote set to tiny 2) all components and the generic of the circuit set to tiny 3) drone shell set to small 4) airlock shell set to bulky ## Why It's Good For The Game Returning the distance spares any would be circuiteers from having to do a labyrinthine set of calculations to determine distance themselves. Making most circuits more portable makes them more attractive for people to tote around. ## Changelog 🆑 Bisar qol: The 'direction' circuit component now also returns the distance of its target. balance: Most circuit shells and the generic component and generic circuit have had their size reduced. balance: The airlock circuit shell has had its size increased. /🆑 --------- Co-authored-by: Metekillot <ubuntu@ip-172-26-7-23.us-east-2.compute.internal> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
9a9b428b61 |
Wallening Revert [MDB Ignore][IDB Ignore] (#86161)
This PR is reverting the wallening by reverting everything up to
|
||
|
|
891394181f |
Computer console sounds (#85358)
## About The Pull Request https://github.com/user-attachments/assets/b756bc49-70f0-4c86-8b04-5f0566d606a2 I've made the sound really quiet (quieter than most other sounds in the game) so it shouldn't be too annoying, there is 7 variants of the clicks so ear fatigue shouldn't strike too bad. ## Why It's Good For The Game Clicky sounds release a dopamine surge for players and gives you audio feedback when you're doing something, it also triggers when someone is else working at a computer which tells you that they're using it. ## Changelog 🆑 grungussuss sound: computers now make clicky clacky sounds /🆑 |
||
|
|
095f7e3b70 |
Death of mutant bodyparts AND external organs (#85137)
## About The Pull Request Removes mutant bodyparts and external organs from the game completely Digitgrade behaviour was mutant bodypart for no reason Cat ears now work with the bodyparts overlay system, same as all the other external organs (since all their behaviour is now just on /organ It doesn't remove all the /external types, but moves all behaviour to /organ. I'll follow up with a PR wiping all the /external organ types, but it's just conflict heaven so not this PR I've also streamlined a lot of duplicate/weird species regeneration code Melbert did the same PR as well but due to a lack of time (?) I have absorbed his PR to double nuke mutant bodyparts ## Why It's Good For The Game Frees us from the chain of unmodular code, and kills my greatest nemesis (after the shuttle meteor murder bug) ## Changelog 🆑 Time-Green and MrMelbert Refactor: External organ behaviour has been moved to /organ, ears now use the same system as the other organs Refactor: Mutant bodyparts are dead! This likely does not mean much to the average person but it's very dear to me code: Improves digitgrade handling in preference code /🆑 I have absorbed #85126, using Melberts code to improve and add some missing changes. Mainly improving the functioning of preferences and digitgrade legs. I didn't take over the hairstyle improvements. --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
fd0ac2c533 |
Fixes circuit drone pixel/shadow offsets (#85940)
## About The Pull Request Lil guy no longer flies above ground with his shadow on the turf below him  ## Changelog 🆑 fix: Fixed circuit drone pixel/shadow offsets /🆑 |