mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 08:37:43 +01:00
deswordflip
365
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
71faa643bf | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-12 | ||
|
|
8ee1cd2474 |
Makes EMP logs less bad (#93841)
## About The Pull Request closes #93805 ## Why It's Good For The Game we actually have almost no emp logging at all lol, not even emp chem reaction, so you barely can track potential griefer? ## Changelog 🆑 admin: EMP logs are improved, additionally chemical EMP reactions are now logged. /🆑 |
||
|
|
d0ca474789 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-05 | ||
|
|
0234874f65 | Krav Maga > Kaza Ruk: Tail sweep criminals (#93773) | ||
|
|
e28e9fbdba | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-23-10-2025 | ||
|
|
348789fa8d |
The Renamening- upgrades UNIQUE_RENAME and moves a lot of renaming implementations under it (#93115)
## About The Pull Request Moves a lot of the unique renaming implementations described in #82664 to the functions given by the `obj_flag` `UNIQUE_RENAME`. `UNIQUE_RENAME` has been given new properties to account for non-standard renaming, these being the `RENAME_NO_DESC` flag that prevents changing the description, the `nameformat()` and `descformat()` procs that, when modified, allow for applying naming formats(i.e. "Body Bag - [input]"), as well as other post-renaming handling such as changing the name of the output plant of a renamed seed, the `rename_checks()` proc that allows for unique naming prevention(such as a locked personal closet), and the `rename_reset()` proc to clean up other possible renamed variables potentially changed in `nameformat()` and `descformat()`. This also adds `/datum/element/tool_renaming` to crayons, which will let them rename anything that has `UNIQUE_RENAME`. I looked through everything with that flag, and I didn't see anything that I don't think should be renameable by a crayon(except things that shouldn't be renamable with pens), so it shouldn't fuck anything up. ## Why It's Good For The Game moves all of the non-honorable mentions in #82664 to the same renaming system, and also moves all of the honorable mentions save for: - plaques, as they only get renamed once and wouldn't benefit from `UNIQUE_RENAME` imo - books, because they're far more than just renaming, and are persistent - paintings, because they're persistent - photos, because they're not normal renaming and they're persistent - endoskeletons, because they're done with a multitool in UI - cardboard IDs, because they're far more than just renaming Additionally, this fixes: - Implanter renaming didn't work because a ! was missing - Clown borg picket sign renaming didn't work because they didn't use the correct arguments This'll make it easier to make renameable objects in the future, as well. ## Changelog 🆑 fix: fixes implanter renaming not working fix: fixes clownborg picket sign renaming not working code: brought most unique renaming implementations under UNIQUE_RENAME /🆑 |
||
|
|
d14e538393 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-15-10-2025 | ||
|
|
bbe729aef7 |
Converts more attackby's to interactions (#93106)
## About The Pull Request Converts the following: - Medical Kiosk - Implant case - Flamethrower - Chemical implant case - Pappercutter Also I've looked at some alt click procs and adjusted some of their returns |
||
|
|
99be7d565e |
Merge branch 'master' of https://github.com/tgstation/tgstation into pupstream-08-19
# Conflicts: # .github/CODEOWNERS # .github/CONTRIBUTING.md # .github/workflows/auto_changelog.yml # .github/workflows/compile_all_maps.yml # .github/workflows/compile_changelogs.yml # .github/workflows/gbp.yml # .github/workflows/gbp_collect.yml # .github/workflows/stale.yml # README.md # SQL/database_changelog.md # _maps/_basemap.dm # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # _maps/map_files/KiloStation/KiloStation.dmm # _maps/wawastation.json # code/__DEFINES/combat.dm # code/__DEFINES/icon_smoothing.dm # code/__DEFINES/inventory.dm # code/__DEFINES/mobs.dm # code/__DEFINES/subsystems.dm # code/__DEFINES/surgery.dm # code/__HELPERS/roundend.dm # code/_globalvars/bitfields.dm # code/_globalvars/lists/mobs.dm # code/_globalvars/traits/_traits.dm # code/_globalvars/traits/admin_tooling.dm # code/_onclick/hud/hud.dm # code/_onclick/hud/human.dm # code/_onclick/hud/screen_objects.dm # code/controllers/subsystem/processing/quirks.dm # code/controllers/subsystem/sprite_accessories.dm # code/controllers/subsystem/statpanel.dm # code/controllers/subsystem/ticker.dm # code/datums/brain_damage/creepy_trauma.dm # code/datums/browser.dm # code/datums/components/crafting/crafting.dm # code/datums/components/echolocation.dm # code/datums/components/leanable.dm # code/datums/dna/blocks/dna_features_block.dm # code/datums/dna/dna.dm # code/datums/emotes.dm # code/datums/map_config.dm # code/datums/mutations/_mutations.dm # code/datums/mutations/chameleon.dm # code/datums/quirks/negative_quirks/allergic.dm # code/datums/records/manifest.dm # code/datums/ruins/icemoon.dm # code/datums/station_traits/_station_trait.dm # code/datums/station_traits/job_traits.dm # code/datums/station_traits/neutral_traits.dm # code/datums/status_effects/debuffs/dna_transformation.dm # code/datums/storage/storage.dm # code/datums/storage/subtypes/bags.dm # code/datums/storage/subtypes/belts.dm # code/datums/storage/subtypes/others/misc.dm # code/datums/storage/subtypes/pockets.dm # code/datums/weather/weather.dm # code/datums/weather/weather_types/ash_storm.dm # code/game/data_huds.dm # code/game/gamemodes/objective.dm # code/game/machinery/computer/communications.dm # code/game/machinery/computer/dna_console.dm # code/game/machinery/computer/orders/order_computer/mining_order.dm # code/game/machinery/computer/records/medical.dm # code/game/machinery/dish_drive.dm # code/game/machinery/dna_infuser/organ_sets/fox_organs.dm # code/game/machinery/doors/airlock.dm # code/game/machinery/doors/firedoor.dm # code/game/machinery/requests_console.dm # code/game/objects/effects/decals/cleanable/blood.dm # code/game/objects/items/climbingrope.dm # code/game/objects/items/devices/scanners/health_analyzer.dm # code/game/objects/items/dualsaber.dm # code/game/objects/items/stacks/sheets/sheet_types.dm # code/game/objects/items/storage/backpack.dm # code/game/objects/items/storage/belt.dm # code/game/objects/items/storage/boxes/clothes_boxes.dm # code/game/objects/items/storage/dufflebags.dm # code/game/objects/items/storage/medkit.dm # code/game/objects/items/storage/toolboxes/weapons.dm # code/game/objects/items/surgery_tray.dm # code/game/objects/items/tools/painter/paintable_decals.dm # code/game/objects/structures/crates_lockers/closets/utility_closets.dm # code/game/objects/structures/girders.dm # code/game/objects/structures/kitchen_spike.dm # code/game/objects/structures/mirror.dm # code/game/objects/structures/tables_racks.dm # code/game/sound/sound.dm # code/game/world.dm # code/modules/admin/admin.dm # code/modules/admin/create_mob.dm # code/modules/admin/topic.dm # code/modules/admin/verbs/admingame.dm # code/modules/admin/verbs/ert.dm # code/modules/antagonists/brother/brother.dm # code/modules/antagonists/cult/cult_armor.dm # code/modules/antagonists/fugitive/hunters/hunter.dm # code/modules/antagonists/space_ninja/space_ninja.dm # code/modules/antagonists/wizard/equipment/spellbook_entries/summons.dm # code/modules/client/preferences.dm # code/modules/client/preferences/language.dm # code/modules/client/preferences/middleware/_middleware.dm # code/modules/client/preferences/species_features/moth.dm # code/modules/client/preferences/species_features/mushperson.dm # code/modules/client/preferences/species_features/pod.dm # code/modules/client/preferences_savefile.dm # code/modules/clothing/head/hat.dm # code/modules/clothing/shoes/boots.dm # code/modules/clothing/shoes/sneakers.dm # code/modules/clothing/suits/utility.dm # code/modules/clothing/under/color.dm # code/modules/clothing/under/jobs/security.dm # code/modules/escape_menu/leave_body.dm # code/modules/hydroponics/grown/replicapod.dm # code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm # code/modules/jobs/job_types/cyborg.dm # code/modules/loadout/categories/pocket.dm # code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm # code/modules/mining/lavaland/mining_loot/megafauna/ash_drake.dm # code/modules/mob/dead/dead.dm # code/modules/mob/living/blood.dm # code/modules/mob/living/blood_types.dm # code/modules/mob/living/carbon/carbon.dm # code/modules/mob/living/carbon/examine.dm # code/modules/mob/living/carbon/human/_species.dm # code/modules/mob/living/carbon/human/dummy.dm # code/modules/mob/living/carbon/human/human.dm # code/modules/mob/living/carbon/human/human_defense.dm # code/modules/mob/living/carbon/human/human_update_icons.dm # code/modules/mob/living/carbon/human/inventory.dm # code/modules/mob/living/carbon/human/species_types/felinid.dm # code/modules/mob/living/carbon/human/species_types/mothmen.dm # code/modules/mob/living/carbon/human/species_types/mushpeople.dm # code/modules/mob/living/living.dm # code/modules/mob/living/living_item_handling.dm # code/modules/mob/living/silicon/ai/ai_say.dm # code/modules/mob/living/silicon/robot/examine.dm # code/modules/mob/living/silicon/robot/robot.dm # code/modules/mob/living/silicon/robot/robot_model.dm # code/modules/mob/mob_say.dm # code/modules/mod/mod_activation.dm # code/modules/mod/modules/_module.dm # code/modules/modular_computers/computers/item/computer.dm # code/modules/power/smes.dm # code/modules/projectiles/gun.dm # code/modules/reagents/chemistry/holder/mob_life.dm # code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm # code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm # code/modules/reagents/chemistry/reagents/medicine_reagents.dm # code/modules/religion/honorbound/honorbound_rites.dm # code/modules/shuttle/mobile_port/shuttle_move_callbacks.dm # code/modules/surgery/bodyparts/_bodyparts.dm # code/modules/surgery/bodyparts/head_hair_and_lips.dm # code/modules/surgery/organs/external/_visual_organs.dm # code/modules/surgery/organs/external/spines.dm # code/modules/surgery/organs/external/tails.dm # code/modules/surgery/organs/external/wings/moth_wings.dm # code/modules/surgery/organs/internal/ears/_ears.dm # code/modules/surgery/organs/internal/eyes/_eyes.dm # code/modules/surgery/surgery_step.dm # code/modules/tooltip/tooltip.html # code/modules/unit_tests/changeling.dm # code/modules/unit_tests/designs.dm # code/modules/unit_tests/screenshot_humanoids.dm # code/modules/unit_tests/screenshots/screenshot_airlocks_icons.png # code/modules/unit_tests/screenshots/screenshot_antag_icons_blobinfection.png # code/modules/unit_tests/screenshots/screenshot_antag_icons_bloodbrother.png # code/modules/unit_tests/screenshots/screenshot_antag_icons_obsessed.png # code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_human.png # code/modules/unit_tests/screenshots/screenshot_husk_body.png # code/modules/unit_tests/simple_animal_freeze.dm # code/modules/vending/medical.dm # code/modules/vending/sovietsoda.dm # config/dynamic.toml # config/maps.txt # config/spaceruinblacklist.txt # icons/map_icons/clothing/_clothing.dmi # icons/map_icons/clothing/head/_head.dmi # icons/map_icons/clothing/head/beret.dmi # icons/map_icons/clothing/mask.dmi # icons/map_icons/clothing/neck.dmi # icons/map_icons/clothing/shoes.dmi # icons/map_icons/clothing/suit/_suit.dmi # icons/map_icons/clothing/under/_under.dmi # icons/map_icons/clothing/under/costume.dmi # icons/map_icons/clothing/under/dress.dmi # icons/map_icons/items/_item.dmi # icons/map_icons/items/encryptionkey.dmi # icons/map_icons/items/pda.dmi # icons/map_icons/objects.dmi # interface/skin.dmf # modular_zubbers/code/modules/storyteller/event_defines/ghostset/alien_infestation.dm # modular_zubbers/code/modules/storyteller/event_defines/ghostset/changeling.dm # modular_zubbers/code/modules/storyteller/event_defines/ghostset/nightmare.dm # modular_zubbers/code/modules/storyteller/event_defines/ghostset/space_dragon.dm # modular_zubbers/code/modules/storyteller/event_defines/ghostset/space_ninja.dm # modular_zubbers/code/modules/storyteller/event_defines/ghostset/spider_infestation.dm # modular_zubbers/code/modules/storyteller/event_defines/major/abductor.dm # modular_zubbers/code/modules/storyteller/event_defines/major/blob.dm # modular_zubbers/code/modules/storyteller/event_defines/major/fugitives.dm # modular_zubbers/code/modules/storyteller/event_defines/major/morph.dm # modular_zubbers/code/modules/storyteller/event_defines/major/pirates.dm # modular_zubbers/code/modules/storyteller/event_defines/major/revenant.dm # modular_zubbers/code/modules/storyteller/event_defines/major/slaughter.dm # strings/pirates.json # strings/traumas.json # tgui/packages/tgfont/icons/nanotrasen_logo.svg # tgui/packages/tgfont/icons/syndicate_logo.svg # tgui/packages/tgui/index.tsx # tgui/packages/tgui/interfaces/AntagInfoBlob.tsx # tgui/packages/tgui/interfaces/AntagInfoGeneric.tsx # tgui/packages/tgui/interfaces/AntagInfoTraitor.tsx # tgui/packages/tgui/interfaces/Orbit/JobIcon.tsx # tgui/packages/tgui/interfaces/PersonalCrafting/constants.ts # tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/MainPage.tsx # tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/QuirksPage.tsx # tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/index.tsx # tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/loadout/ItemDisplay.tsx # tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/loadout/base.ts # tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/loadout/index.tsx # tgui/packages/tgui/interfaces/Vending.tsx # tgui/packages/tgui/interfaces/VotePanel.tsx # tgui/packages/tgui/styles/interfaces/NtosMessenger.scss # tgui/packages/tgui/styles/interfaces/PreferencesMenu.scss # tgui/packages/tgui/styles/main.scss # tools/ci/copy_build_output.sh # tools/maplint/lints/window_spawner.yml # tools/pull_request_hooks/autoChangelog.js |
||
|
|
c51c19aae7 | Alters a significant chunk of the syndicate uplink's explosives, grenades and pyrotechnics options (#91793) | ||
|
|
455bf20488 | Alters a significant chunk of the syndicate uplink's explosives, grenades and pyrotechnics options (#91793) | ||
|
|
75e7ef6def |
Mutation code cleanup, mutations now have sources to avoid concurrency problems. (#91346)
This PR aims to clean or bring up to date portions of code about dna, the dna console and mutations. This includes taking care of or removing some of the awful choices like the pratically useless `datum/mutation/human` pathing, or the class variable, in favor of using sources to avoid potential issues with extraneous sources of a mutation. The files changed are over a hundred just because I removed the `datum/mutation/human` path, but the actual bulk of the code is mainly shared between the datum/dna.dm, _mutations.dm and dna_console.dm. Mutation shitcode is hurting my future plans for infusions a little. Also it's a much needed refactor. Drafted 'till I'm sure it works without issues. 🆑 refactor: Refactored mutation code backend. Report any issue. /🆑 |
||
|
|
14fb86e3e8 |
Mutation code cleanup, mutations now have sources to avoid concurrency problems. (#91346)
## About The Pull Request This PR aims to clean or bring up to date portions of code about dna, the dna console and mutations. This includes taking care of or removing some of the awful choices like the pratically useless `datum/mutation/human` pathing, or the class variable, in favor of using sources to avoid potential issues with extraneous sources of a mutation. The files changed are over a hundred just because I removed the `datum/mutation/human` path, but the actual bulk of the code is mainly shared between the datum/dna.dm, _mutations.dm and dna_console.dm. ## Why It's Good For The Game Mutation shitcode is hurting my future plans for infusions a little. Also it's a much needed refactor. Drafted 'till I'm sure it works without issues. ## Changelog 🆑 refactor: Refactored mutation code backend. Report any issue. /🆑 |
||
|
|
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) /🆑 |
||
|
|
251d23530e |
Changes all uses of notify_ghosts to use the real names of mobs (#90919)
## About The Pull Request Quite simple - this changes every direct mention of a mob in a `notify_ghosts` message to use `[mob.real_name]` instead of just `[mob]` ## Why It's Good For The Game makes things less confusing - ghosts can see easily their actual identity anyways, so it's not like there's much of a reason _not_ to do this. ## Changelog 🆑 qol: Ghost notifications will now use the real names of mobs when something happens (i.e no more "Unknown has completed an ascension ritual!") /🆑 |
||
|
|
37ec7f8054 |
Changes all uses of notify_ghosts to use the real names of mobs (#90919)
## About The Pull Request Quite simple - this changes every direct mention of a mob in a `notify_ghosts` message to use `[mob.real_name]` instead of just `[mob]` ## Why It's Good For The Game makes things less confusing - ghosts can see easily their actual identity anyways, so it's not like there's much of a reason _not_ to do this. ## Changelog 🆑 qol: Ghost notifications will now use the real names of mobs when something happens (i.e no more "Unknown has completed an ascension ritual!") /🆑 |
||
|
|
c9a4060429 |
Makes check_teleport_valid pure & signal clean up (#90738)
- Closes #90704 The following changes were implemented for this - Moved sending signals `COMSIG_MOVABLE_TELEPORTING` & `COMSIG_ATOM_INTERCEPT_TELEPORTING` from `check_teleport_valid` into `do_teleport`. These 2 signals were causing all the side effects - Removed signals `COMSIG_ATOM_INTERCEPT_TELEPORTED` & `COMSIG_MOVABLE_TELEPORTED` as the above 2 signals can do their jobs & block the teleport if needed so these signals became obsolete - Removed define `COMPONENT_BLOCK_TELEPORT` in favour of returning a positive value if teleport was successfully blocked. Having 2 signals located in 2 separate files use this same define doesn't look great. 🆑 code: cleans up teleportation code. `check_teleport_valid` is now a pure function with no side effects /🆑 |
||
|
|
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. /🆑 |
||
|
|
c135b48114 |
Makes check_teleport_valid pure & signal clean up (#90738)
## About The Pull Request - Closes #90704 The following changes were implemented for this - Moved sending signals `COMSIG_MOVABLE_TELEPORTING` & `COMSIG_ATOM_INTERCEPT_TELEPORTING` from `check_teleport_valid` into `do_teleport`. These 2 signals were causing all the side effects - Removed signals `COMSIG_ATOM_INTERCEPT_TELEPORTED` & `COMSIG_MOVABLE_TELEPORTED` as the above 2 signals can do their jobs & block the teleport if needed so these signals became obsolete - Removed define `COMPONENT_BLOCK_TELEPORT` in favour of returning a positive value if teleport was successfully blocked. Having 2 signals located in 2 separate files use this same define doesn't look great. ## Changelog 🆑 code: cleans up teleportation code. `check_teleport_valid` is now a pure function with no side effects /🆑 |
||
|
|
339616ae78 |
You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
## About The Pull Request People can now pet held mothroaches and pugs if they want to, or use items on them, hopefully without causing many issues. After all, it only took about a couple dozen lines of code to make... ...Oh, did the 527 files changed or the 850~ lines added/removed perhaps catch your eye? Made you wonder if I accidentally pushed the wrong branch? or skewed something up big time? Well, nuh uh. I just happen to be fed up with the melee attack chain still using stringized params instead of an array/list. It was frankly revolting to see how I'd have had to otherwise call `list2params` for what I'm trying to accomplish here, and make this PR another tessera to the immense stupidity of our attack chain procs calling `params2list` over and over and over instead of just using that one call instance from `ClickOn` as an argument. It's 2025, honey, wake up! I also tried to replace some of those single letter vars/args but there are just way too many of them. ## Why It's Good For The Game Improving old code. And I want to be able to pet mobroaches while holding them too. ## Changelog 🆑 qol: You can now interact with held mobs in more ways beside wearing them. /🆑 |
||
|
|
753d8e5ba4 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-04a | ||
|
|
52678d41b5 |
Everyone is kung fu fighting: Refactors martial arts / You can have multiple martial arts and swap between them (#89840)
## About The Pull Request Refactors martial arts off the mind. Don't worry the martial arts you learn still transfer with mindswap Instead, they are just tracked on a list on the mob, and they also independently track the datum that created them This fixes a lot of jank with martial arts, like say, having your krav maga gloves transfer across slime clones or something... But it also opens an opportunity: As we track all martial arts available, I added a verb (ic tab) that lets you swap between the ones you know  (Some don't let you swap like that one brain trauma) ## Why It's Good For The Game Aforementioned fixes a lot of jank Recently martial arts have just been up and disappearing and this was entirely spurred on by that bug Probably fixes #84710 (haven't checked) Probably fixes #89247 Probably fixes #89948 Probably fixes #90067 ## Changelog 🆑 Melbert refactor: Refactored martial arts, if you notice any oddities like managing to know two martial arts at once or having your powers disappear, report it! add: If you know multiple martial arts, such as krav maga from gloves and cqc from a book, you can now swap between them at will via a button in the IC tab! /🆑 --------- Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> |
||
|
|
b6b8306fda | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-02a | ||
|
|
9c8954cda5 |
Fix some inverted teleport validation checks (#88967)
## About The Pull Request A bunch of places in code were recently updated to use a helper proc for validating teleportation. Unfortunately a lot of them also got the return value inverted, and would only let you teleport to illegal locations. Most notably this effected the hand teleporter, but also several other items. Fixes #88966 what is a "dull universal force" supposed to be anyway |
||
|
|
d7460f97d7 |
Adds a new area flag, LOCAL_TELEPORT, given to virtual domains and deathmatch arenas. (#88756)
## About The Pull Request Adds a new area flag, LOCAL_TELEPORT. This flag allows teleports ONLY in the same area that the teleport is used. This allows for short range hijinks without enabling long range exploits, and thus it's given to DMs and domains. Changed almost all area_flags & NO_TELEPORT checks to use check_teleport() (as now areas may use local_teleport instead, and this lets them check for multiple things instead) Thus I re-added Void Phase to the heretic scribe in DM and shuffled some stuff around (realizing now i neglected to doublecheck if blade breaking tps you to station. need to check just in case) ## Why It's Good For The Game It sucks you can't use teleporting abilities in temporary areas, so this is a good way to allow this to still happen without opening the way for gamebreaking exploits. ## Changelog 🆑 code: Adds a new area flag, LOCAL_TELEPORT, given to virtual domains and deathmatch arenas. code: Re-added Void Phase to Heretic Scribes in Deathmatch's Ragnarok map. /🆑 |
||
|
|
0e1524c432 |
Writing sound (#87772)
## About The Pull Request completes https://github.com/orgs/tgstation/projects/19/views/1?pane=issue&itemId=85235611 https://github.com/user-attachments/assets/087c88bd-9ddd-4e57-972d-fe66084d19bc ## Why It's Good For The Game maybe now someone will notice you wrote something ## Changelog 🆑 grungussuss sound: writing something now produces sound /🆑 |
||
|
|
e59d8ba64b | Merge commit '179a607a90ad7ec62bdaff4e6fe72af60ee56442' of https://github.com/tgstation/tgstation into upstream-24-10b | ||
|
|
bb70889f6e |
TG Upstream Part 1
3591 individual conflicts Update build.js Update install_node.sh Update byond.js oh my fucking god hat slow huh holy shit we all fall down 2 more I missed 2900 individual conflicts 2700 Individual conflicts replaces yarn file with tg version, bumping us down to 2200-ish Down to 2000 individual conflicts 140 down mmm aaaaaaaaaaaaaaaaaaa not yt 575 soon 900 individual conflicts 600 individual conflicts, 121 file conflicts im not okay 160 across 19 files 29 in 4 files 0 conflicts, compiletime fix time some minor incap stuff missed ticks weird dupe definition stuff missed ticks 2 incap fixes undefs and pie fix Radio update and some extra minor stuff returns a single override no more dupe definitions, 175 compiletime errors Unticked file fix sound and emote stuff honk and more radio stuff |
||
|
|
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
(
|
||
|
|
e2c4ab9900 |
Teleport blocker security implants prevent jaunting (#86597)
## About The Pull Request This extends the teleport blocker security implant's capabilities to block jaunts. All jaunt subtypes (ethereal, ashen passage, shadow walk) are blocked and stun you upon attempting to use them. This took way more trial and error than it should have. ## Why It's Good For The Game This was my initial vision when I added these. I even marketed them as being useful for keeping a wizard or heretic contained, but that turned out to be false advertising. After being served a civil claim under Section 43(a) of the Lanham Act, I have been fined an undisclosed amount of money and am being forced to rectify this. Jokes aside, this was my intent from the get-go, and I'm only just now getting around to making it so. It also just makes sense, because jaunting is basically just teleporting with extra steps. ## Changelog 🆑 Rhials balance: Teleport blocker implants now prevent implantees from jaunting. /🆑 |
||
|
|
4c4930c71d | Merge branch 'master' of https://github.com/tgstation/tgstation into pulls-tg-to-fix-shit | ||
|
|
1880003270 |
Reworks silicon/ai access checking & fixes some ui_act's (#84964)
## About The Pull Request Currently to check for Silicon access, we do: ``if is silicon or is admin ghost or has unlimited silicon privileges or has machine remote in hand`` What has unlimited silicon privileges? Bots, Drones, and admin ghosts. To check for AI access, it just checks for AI instead of silicon, and doesnt check for unlimited silicon privileges. This was kinda silly, so I thought I should make this a little easier to understand. Now all silicon/ai traits come from ``AI_ACCESS_TRAIT`` or ``SILICON_ACCESS_TRAIT``. I made a single exception to keep Admin ghost, since now instead of being a var on the client, we moved it to using the same trait but giving it to the client instead, but since we have to keep parity with previous functionality (admins can spawn in and not have this on, it only works while as a ghost), I kept previous checks as well. No more type checks, removes a silly var on the mob level and another on the client. Now while I was doing this, I found a lot of tgui's ``ui_act`` still uses ``usr`` and the wrong args, so I fixed those wherever I saw them, and used a mass replace for the args. Other changes: - machinery's ``ui_act`` from https://github.com/tgstation/tgstation/pull/81250 had ``isAI`` replaced with ``HAS_AI_ACCESS``, this has been reverted. Machine wands and admin ghosts no longer get kicked off things not on cameras. This was my fault, I overlooked this when adding Human AI. - Human AI's wand gives AI control as long as it's in your hand, you can swap to your offhand. I hope this doesn't end up going horribly, otherwise I'll revert this part. It should let human AIs not have their UI closed on them when swapping to eat food or use their door wand or whatnot. - Bots previously had special checks to scan reagents and be unobservant, I replaced this with giving them the trait. I also fixed an instance of unobservant not being used, so now statues don't affect the basic creature, whatever that is. ## Why It's Good For The Game This is an easier to understand way of handling silicon access and makes these mobs more consistent between eachother. Other than what I've mentioned above, this should have no impact on gameplay itself. ## Changelog 🆑 fix: Statues don't count as eyes to creatures. fix: Human AIs and Admin ghosts no longer get kicked off of machines that aren't on cameranets. /🆑 |
||
|
|
c9e8162a8a |
[MIRROR] Abductors can no longer be converted by conversion antags (#29310)
* Abductors can no longer be converted by conversion antags (#84766) ## About The Pull Request Basically what the title says. Abductors cannot be converted by bloodbrother/revs/cult. They will NOT show up as having a mindshield, however. ## Why It's Good For The Game Abductors are, by design, incredibly strong. You are not meant to be able to win against them, and this is reflected policy-wise by the fact that they're a restricted antagonist. However, this is still a problem when conversion antags get involved. If an abductor becomes a cultist or a revolutionary, then suddenly every other player who isn't also converted has to deal with an abductor without the normal restrictions. It's not fun to play against and in general just shouldn't happen. ## Changelog 🆑 balance: Abductors (the antag, not the species) can no longer be converted by any antagonist. /🆑 * Abductors can no longer be converted by conversion antags --------- Co-authored-by: GPeckman <21979502+GPeckman@users.noreply.github.com> |
||
|
|
f69284be5b |
Abductors can no longer be converted by conversion antags (#84766)
## About The Pull Request Basically what the title says. Abductors cannot be converted by bloodbrother/revs/cult. They will NOT show up as having a mindshield, however. ## Why It's Good For The Game Abductors are, by design, incredibly strong. You are not meant to be able to win against them, and this is reflected policy-wise by the fact that they're a restricted antagonist. However, this is still a problem when conversion antags get involved. If an abductor becomes a cultist or a revolutionary, then suddenly every other player who isn't also converted has to deal with an abductor without the normal restrictions. It's not fun to play against and in general just shouldn't happen. ## Changelog 🆑 balance: Abductors (the antag, not the species) can no longer be converted by any antagonist. /🆑 |
||
|
|
aefec7cb2b |
Corrects 200+ instances of "it's" where it should've been "its" instead (#85169)
## About The Pull Request it's - conjunction of "it" and "is" its - possessive form of "it" grammar is hard, and there were a lot of places where "it's" was used where it shouldn't have been. i went and painstakingly searched the entire repository for these instances, spending a few hours on it. i completely ignored the changelog archive, and i may have missed some outliers. most player-facing ones should be corrected, though ## Why It's Good For The Game proper grammar is good ## Changelog 🆑 spellcheck: Numerous instances of "it's" have been properly replaced with "its" /🆑 |
||
|
|
5f80128fa9 |
Corrects 200+ instances of "it's" where it should've been "its" instead (#85169)
## About The Pull Request it's - conjunction of "it" and "is" its - possessive form of "it" grammar is hard, and there were a lot of places where "it's" was used where it shouldn't have been. i went and painstakingly searched the entire repository for these instances, spending a few hours on it. i completely ignored the changelog archive, and i may have missed some outliers. most player-facing ones should be corrected, though ## Why It's Good For The Game proper grammar is good ## Changelog 🆑 spellcheck: Numerous instances of "it's" have been properly replaced with "its" /🆑 |
||
|
+3 |
fa2ab65f07 |
Missed mirrors (#28919)
Handful of missed mirrors (#3739) * fix duplicate traits * Adds a Contraband trait, and implements contraband as a mechanic to security bounties. (#84003) This PR does a few things but centrally it's all centered around mechanically enforcing what items are and are-not considered contraband in-game. Contraband items are visually indistinguishable from non-contraband. If an item is Contraband, it can only be detected in two ways: * After being scanned by an N-Spect scanner, which is a standard item security item, assuming it still has a charge to do so. * Via a scanner gate, which can now be upgraded with an N-spect scanner to allow for it to scan a person and all their contents for contraband. Contraband items are intended to be determined both logically and through other relevant examine text. However, here's the short list of items that are considered contraband, reserving the right to expand the list. <details> <summary>In hindsight it's kind of a long list.</summary> * Items that have "contraband" or "illegal" in the name or description. * Items that allow for the player to obtain other illegal items, that are NOT particularly stealthy. * This means that a syndicate uplink is NOT considered contraband, as they're typically hidden on your person as something else. * Stealth items under the syndicate uplink, the revolutionary flash, and some mapped in dangerous items that can come from both syndicate and company-aligned resources are not considered dangerous. * Items that are purchased from cargo after emagging or switching to extended cargo range. * Items purchased FROM syndicate uplinks, the wizard knowledge scroll, or other antagonist shops. * Cursed artifacts/tools magically produced by cultists or heretics. * Items purchased from the blackmarket. * Items purchased from the contraband section of vending machines. * Some drugs and overtly dangerous or criminal byproducts. </details> Well, primarily, this is an aid for in-game enforcement of space law. Based on the length of the above list, we have a LONG, LONG list of items in-game that are technically considered, in one way or another, illegal to have on the station, and yet without either metaknowledge of what those items are, or how they're used, security officers lack some of the certainty of how to deal with these kinds of encounters. Additionally to the knowledge aspect of this trait, security officers may now receive a new civilian bounty to collect items that are considered contraband, also giving them an incentive to look for and confiscate contraband that's been found across the station while upholding space law. Security has a bounty for 3 different rechargers, and considering access limitations, most security players aren't going to make this exchange, so I've lowered the required amount down to 1. Adjusted the N-spect scanner's description to match it's new functionality. The Civilian bounty TGUI now has an additional 1 point of padding to make it feel less cramped. https://github.com/tgstation/tgstation/assets/41715314/c3cd4752-b03a-4e0b-959e-1252fcc2369d **Updated as of 6/19/2024:** Additionally, some storage items will block the presence of contraband when going through a contraband aligned scanning gate. These items include the infiltrator modsuit core, storage implant, void cloak, the aptly named smuggler's satchel, and the chameleon kit's backpack. **Updated as of 6/23/2024:** N-spect scanner now has contextual screentips. **Updated as of 6/29/2024:** Scanner gates are now available in all lathes that have a feature specific to how scanner gates function. So, includes cargo (contraband), security (weapons), and medbay (diseases). Originally, this started out as a way to be able to provide more in-character and in-flavor bounties for security officers, because they suck! Most security bounties as they exist right now do the worst possible things from all respective bounties: * They detract away from a job's actual responsibilities as opposed to working with them. * They're best completed while sitting next to your lathe and running items back to the bounty pad. * They exist with such esoteric rarity of high quantity of items that it's miserable to fulfil. As a result, I started work on this as a framework to allow security officers to be further incentivized to collect contraband across the station, either as a result of the gamemode or just through routine patrols across the station. Implementing it as a learning tool for security as well just happened to work out as an additional bonus, and having a function in-game allowing newer or less experienced players to know if an item is considered dangerous or conspicuous also works as a particularly good way to provide information where a player may not know what they're up against. If nothing else, this might be interesting to try, and if not, I'll just snip out the QOL changes from it and we'll see how it goes. Going forward, I am a bit hesitant about the contraband scanner gate mode, and as such, will try working with the admin team to determine if that's a good feature to keep around for game health, while hoping to give it a chance in the fullness of time. 🆑 add: Items spawned via traitor uplinks or are known illegal contraband on the station can now be scanned and identified as such by the N-spect scanners in security. These only applies to overt traitor or antagonist items, and "stealth" items will not be seen as such. add: Scanner gates can now be upgraded by using an N-spect scanner on it to unlock "contraband scanning" mode. add: Security officers can now be offered a bounty to turn in pieces of contraband. add: Some stealthy storage items like storage implants, smuggler's satchels, void cloaks, the infiltrator modsuit, and the chameleon backpack will block the presence of contraband on your person when placed inside. qol: N-spect scanner contextual screentips. balance: Recharger security bounties ask for a quantity of 1, down from 3. qol: security, cargo, and medbay have access to scanner gate boards. /🆑 --------- * Adds six new strange object powers! (#84775) DESIGN CONCEPT: Strange Devices are at their best when they're odd tools which can help a department out, with some strange drawbacks that make them interesting and unique. Foam for the Janitor, Flashbang for Security, Teleporter for tiders, Corgimaker for the chef. They're also ambiguous enough that they can really be used by anyone for silly hijinks. Drink Dispenser: Creates a glass, then fills it up with a random drink. Bioscrambler: After a noticeable warning, bioscrambles people nearby. 33% chance to be used up on use. Recharger: Shocks you, but recharges one random item to max battery. Hugger: Hugs everyone in range as if you had the friendly trait. DImensional: Converts the surroundings to a random material-theme. Each use increases cooldown by two seconds. Disguiser: Drops your clothing to the ground and replaces it with a delete-on-drop costume and a randomly assigned cardboard ID. Removed an unused and unusable shock flag. Removed an unused dumb ghost item. Added a proc that returns a hex color with the # attached. > DESIGN CONCEPT: Strange Devices are at their best when they're odd tools which can help a department out, with some strange drawbacks that make them interesting and unique. Foam for the Janitor, Flashbang for Security, Teleporter for tiders, Corgimaker for the chef. They're also ambiguous enough that they can really be used by anyone for silly hijinks. Request by ArcaneMusic! He wanted new abilities to go along with the new sprites, and approved these. > Removed an unused dumb ghost item. please stop using costume subtypes for OP items. whats the damn point of the subtype if youre just going to screw with it > Added a proc that returns a hex color with the # attached. idk why it didnt have this tbh 🆑 add: Adds six new strange object powers! Drink dispenser, bioscrambler, recharger, hugger, dimensional, disguiser. code: Removed some unused code and items, and added a proc that returns a random #colorstring. /🆑 * [NO GBP] the random spawner loot weight config is not an integer (#84814) Sets `integer` to false. Also a tidbit about the `skew_loot_weight` proc, though loot lists with uneven weights all tend to add a value to all entries so it isn't an issue. The config isn't an integer. N/A * The techweb no longer erroneously refers to MODsuits as exosuits (#84800) At some point, some of the techweb node descriptions were changed, so that it referred to certain modsuits as exosuits. This just changes it back. The term "exosuit" is generally used for mechs, not modsuits. The techweb descriptions should refer to modsuits as modsuits. 🆑 spellcheck: The techweb no longer erroneously refers to MODsuits as exosuits. /🆑 * Adds new hairstyle - Short Bangs 2 (#84804) Adds a new hairstyle called Short Bangs 2. The hairstyle is basically an edit of the existing double buns, except the hair buns themselves are removed. https://github.com/tgstation/tgstation/assets/66234359/38fe3b09-c42b-43e6-9e30-949428aab506 More customization, variety and character flavor is great. Double buns itself is a good hairstyle but some may not like the hair buns out of personal preference or that it can look weird on non-human species like felinids. 🆑 Hardly3D add: Added new hairstyle: Short Bangs 2 /🆑 * Offset render relays for non-offsetting planes to match highest matching render plane (#84184) **Alternate title: "Fix blind people getting so blind they become deaf when going down a flight of stairs"** So 'bout half a week to a week ago I overheard a friend complaining about blind people not seeing runechat on lower multi-z levels. Asked a bit, apparently they'd reported this about half a year ago, and it's still an issue. So in my never-ending hubris I decided to just go and fix it! Now, admittedly? I really _really_ do not get the rendering system we use. The simple options were right out: we can't allow the fullscreens plane to be offset, as this causes issues with looking up/down, or disallow runechat from being offset, which causes issues with runechat from other levels. After poking our very cool and smart rendering guy several times over the course of the last week, this is what we got to: We simply make the rendering relays for non-offsetting plane masters point to the highest rendering plane that matches the target. We do this by offsetting the rendering relays in place, by adjusting their plane and layer values to match the new offset, with a new `offset_relays_in_place(new_offset)` proc called in `/datum/plane_master_group/proc/transform_lower_turfs(...)`. Importantly, we compare the current layer values to what they should've been, so we don't accidentally override relays with custom-set layers. This fixes our issue (as tested on wawastation): <details> <summary>Images</summary>    </details> Fixes #80376. 🆑 fix: You can see runechat above fullscreen overlays on lower multi-z levels again. Rejoice, blind players. Please report any weird rendering layering issues. /🆑 * illegal tech flag got changed * Automatic changelog for PR #84003 [ci skip] * Automatic changelog for PR #84775 [ci skip] * Automatic changelog for PR #84800 [ci skip] * Automatic changelog for PR #84804 [ci skip] * Automatic changelog for PR #84184 [ci skip] * Makes the smoking pipe sprite not give you a phantom stache. (#84898) The smoking pipe currently gives you a phantom stache. Observe, note the black background and know this character has no facial hair.  I basically adjusted the pixels so it'd look better from different directions. This is the new look - approximately.  Smoking pipe is cool for RP but the sprite's fucked. 🆑 image: the smoking pipe's directional looks have been altered to make it less ugly /🆑 (cherry picked from commit |
||
|
|
43e62163fe |
Adds a Contraband trait, and implements contraband as a mechanic to security bounties. (#84003)
## About The Pull Request This PR does a few things but centrally it's all centered around mechanically enforcing what items are and are-not considered contraband in-game. ### What does something being contraband MEAN? Contraband items are visually indistinguishable from non-contraband. If an item is Contraband, it can only be detected in two ways: * After being scanned by an N-Spect scanner, which is a standard item security item, assuming it still has a charge to do so. * Via a scanner gate, which can now be upgraded with an N-spect scanner to allow for it to scan a person and all their contents for contraband. ### What items ARE contraband? Contraband items are intended to be determined both logically and through other relevant examine text. However, here's the short list of items that are considered contraband, reserving the right to expand the list. <details> <summary>In hindsight it's kind of a long list.</summary> * Items that have "contraband" or "illegal" in the name or description. * Items that allow for the player to obtain other illegal items, that are NOT particularly stealthy. * This means that a syndicate uplink is NOT considered contraband, as they're typically hidden on your person as something else. * Stealth items under the syndicate uplink, the revolutionary flash, and some mapped in dangerous items that can come from both syndicate and company-aligned resources are not considered dangerous. * Items that are purchased from cargo after emagging or switching to extended cargo range. * Items purchased FROM syndicate uplinks, the wizard knowledge scroll, or other antagonist shops. * Cursed artifacts/tools magically produced by cultists or heretics. * Items purchased from the blackmarket. * Items purchased from the contraband section of vending machines. * Some drugs and overtly dangerous or criminal byproducts. </details> ### How does this interact with the round? Well, primarily, this is an aid for in-game enforcement of space law. Based on the length of the above list, we have a LONG, LONG list of items in-game that are technically considered, in one way or another, illegal to have on the station, and yet without either metaknowledge of what those items are, or how they're used, security officers lack some of the certainty of how to deal with these kinds of encounters. Additionally to the knowledge aspect of this trait, security officers may now receive a new civilian bounty to collect items that are considered contraband, also giving them an incentive to look for and confiscate contraband that's been found across the station while upholding space law. ### Other minor changes that I rolled into this Security has a bounty for 3 different rechargers, and considering access limitations, most security players aren't going to make this exchange, so I've lowered the required amount down to 1. Adjusted the N-spect scanner's description to match it's new functionality. The Civilian bounty TGUI now has an additional 1 point of padding to make it feel less cramped. https://github.com/tgstation/tgstation/assets/41715314/c3cd4752-b03a-4e0b-959e-1252fcc2369d **Updated as of 6/19/2024:** Additionally, some storage items will block the presence of contraband when going through a contraband aligned scanning gate. These items include the infiltrator modsuit core, storage implant, void cloak, the aptly named smuggler's satchel, and the chameleon kit's backpack. **Updated as of 6/23/2024:** N-spect scanner now has contextual screentips. **Updated as of 6/29/2024:** Scanner gates are now available in all lathes that have a feature specific to how scanner gates function. So, includes cargo (contraband), security (weapons), and medbay (diseases). ## Why It's Good For The Game Originally, this started out as a way to be able to provide more in-character and in-flavor bounties for security officers, because they suck! Most security bounties as they exist right now do the worst possible things from all respective bounties: * They detract away from a job's actual responsibilities as opposed to working with them. * They're best completed while sitting next to your lathe and running items back to the bounty pad. * They exist with such esoteric rarity of high quantity of items that it's miserable to fulfil. As a result, I started work on this as a framework to allow security officers to be further incentivized to collect contraband across the station, either as a result of the gamemode or just through routine patrols across the station. Implementing it as a learning tool for security as well just happened to work out as an additional bonus, and having a function in-game allowing newer or less experienced players to know if an item is considered dangerous or conspicuous also works as a particularly good way to provide information where a player may not know what they're up against. If nothing else, this might be interesting to try, and if not, I'll just snip out the QOL changes from it and we'll see how it goes. Going forward, I am a bit hesitant about the contraband scanner gate mode, and as such, will try working with the admin team to determine if that's a good feature to keep around for game health, while hoping to give it a chance in the fullness of time. ## Changelog 🆑 add: Items spawned via traitor uplinks or are known illegal contraband on the station can now be scanned and identified as such by the N-spect scanners in security. These only applies to overt traitor or antagonist items, and "stealth" items will not be seen as such. add: Scanner gates can now be upgraded by using an N-spect scanner on it to unlock "contraband scanning" mode. add: Security officers can now be offered a bounty to turn in pieces of contraband. add: Some stealthy storage items like storage implants, smuggler's satchels, void cloaks, the infiltrator modsuit, and the chameleon backpack will block the presence of contraband on your person when placed inside. qol: N-spect scanner contextual screentips. balance: Recharger security bounties ask for a quantity of 1, down from 3. qol: security, cargo, and medbay have access to scanner gate boards. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
81f3db19f8 |
[MIRROR] Adds pen clicking, changes most pen typechecks into writing implement checks (#28356)
* Adds pen clicking, changes most pen typechecks into writing implement checks (#84186) ## About The Pull Request Fixes #84170 Adds pen clicking and changes some of edagger and pendriver code to use it instead. Also replaces most pen typechecks to writing implement checks where it makes sense, so now you can rename things with everything you can write with (crayons)  Twisting pen caps (for traitor uplinks) has been moved to ctrl + click instead. * Adds pen clicking, changes most pen typechecks into writing implement checks --------- Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> |
||
|
|
4ac4375faf |
Adds pen clicking, changes most pen typechecks into writing implement checks (#84186)
## About The Pull Request Fixes #84170 Adds pen clicking and changes some of edagger and pendriver code to use it instead. Also replaces most pen typechecks to writing implement checks where it makes sense, so now you can rename things with everything you can write with (crayons)  Twisting pen caps (for traitor uplinks) has been moved to ctrl + click instead. |
||
|
|
df90e547cc |
[MIRROR] Mouse drag & drop refactored attack chain (#28156)
* Mouse drag & drop refactored attack chain * fex --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
b540aaf8ab |
[MIRROR] Afterattack is dead, long live Afterattack (#28128)
* Afterattack is dead, long live Afterattack * wew * fixes --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
b6369a47b4 |
Mouse drag & drop refactored attack chain (#83690)
## About The Pull Request Mouse drag & drop has been refactored into its own attack chain. The flowchart below summarizes it  Brief summary of each proc is as follows **1. `atom/MouseDrop()`** - It is now non overridable. No subtype should ever touch this proc because it performs 2 basic checks a) Measures the time between mouse down & mouse release. If its less than `LENIENCY_TIME`(0.1 seconds) then the operation is not considered a drag but a simple click b) Measures the distance squared between the drag start & end point. If its less than `LENIENCY_DISTANCE`(16 pixels screen space) then the drag is considered too small and is discarded - These 2 sanity checks for drag & drop are applied across all operations without fail **2. `atom/base_mouse_drop_handler()`** - This is where atoms handle mouse drag & drop inside the world. Ideally it is non overridable in most cases because it also performs 2 checks - Is the dragged object & the drop target adjacent to the player?. Screen elements always return true for this case - Additional checks can be enforced by `can_perform_action()` done only on the dragged object. It uses the combined flags of `interaction_flags_mouse_drop` for both the dragged object & drop target to determine if the operation is feasible. We do this only on the dragged object because if both the dragged object & drop target are adjacent to the player then `can_perform_action()` will return the same results when done on either object so it makes no difference. Checks can be bypassed via the `IGNORE_MOUSE_DROP_CHECKS` which is used by huds & screen elements or in case you want to implement your own unique checks **3. `atom/mouse_drop_dragged()`** - Called on the object that is being dragged, drop target passed here as well, subtypes do their stuff here - `COMSIG_MOUSEDROP_ONTO` is sent afterwards. It does not require subtypes to call their parent proc **4. `atom/mouse_drop_receive()`** - Called on the drop target that is receiving the dragged object, subtypes do their stuff here - `COMSIG_MOUSEDROPPED_ONTO` is sent afterwards. It does not require subtypes to call their parent proc ## Why It's Good For The Game Implements basic sanity checks across all drag & drop operations. Allows us to reduce code like this https://github.com/tgstation/tgstation/blob/8c8311e624271a6f6decba8cd643b33b9904534a/code/game/machinery/dna_scanner.dm#L144-L145 Into this ``` if(!iscarbon(target)) return ``` I'm tired of seeing this code pattern `!Adjacent(user) || !user.Adjacent(target)` copy pasted all over the place. Let's just write that at the atom level & be done with it ## Changelog 🆑 refactor: Mouse drag & drop attack chain has been refactored. Report any bugs on GitHub fix: You cannot close the cryo tube on yourself with Alt click like before /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
ff6b41aa07 |
Afterattack is dead, long live Afterattack (#83818)
## About The Pull Request - Afterattack is a very simple proc now: All it does is this, and all it's used for is for having a convenient place to put effects an item does after a successful attack (IE, the attack was not blocked)  - An overwhelming majority of afterattack implementations have been moved to `interact_with_atom` or the new `ranged_interact_with_atom` I have manually tested many of the refactored procs but there was 200+ so it's kinda hard ## Why It's Good For The Game Afterattack is one of the worst parts of the attack chain, as it simultaneously serves as a way of doing random interactions NOT AT ALL related to attacks (despite the name) while ALSO serving as the defacto way to do a ranged interaction with an item This means careless coders (most of them) may throw stuff in afterattack without realizing how wide reaching it is, which causes bugs. By making two well defined, separate procs for handing adjacent vs ranged interactions, it becomes WAY WAY WAY more easy to develop for. If you want to do something when you click on something else and you're adjacent, use `interact_with_atom` If you want to do something when you click on something else and you're not adjacent, use 'ranged_interact_with_atom` This does result in some instances of boilerplate as shown here:  But I think it's acceptable, feel free to oppose if you don't I'm sure we can think of another solution ~~Additionally it makes it easier to implement swing combat. That's a bonus I guess~~ ## Changelog 🆑 Melbert refactor: Over 200 item interactions have been refactored to use a newer, easier-to-use system. Report any oddities with using items on other objects you may see (such as surgery, reagent containers like cups and spray bottles, or construction devices), especially using something at range (such as guns or chisels) refactor: Item-On-Modsuit interactions have changed slightly. While on combat mode, you will attempt to "use" the item on the suit instead of inserting it into the suit's storage. This means being on combat mode while the suit's panel is open will block you from inserting items entirely via click (but other methods such as hotkey, clicking on the storage boxes, and mousedrop will still work). refactor: The detective's scanner will now be inserted into storage items if clicked normally, and will scan the storage item if on combat mode /🆑 |
||
|
|
ae3a8acb8e |
* Turns mush cap into an extorgan
* Trimming the fat * Trimming the fat * Update mushpeople.dm * Adds colorblindness as a mild brain trauma (#76527) What the title says. The brain trauma makes the whole screen monochrome until cured.  I feel like the current pool for mild brain traumas is quite lame, this helps spice it up a bit with something that is quite annoying and distracting but not game breaking (as mild brain traumas should generally be). 🆑 add: Added colorblindness as a mild brain trauma. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> * Fix species `var/hair_color` not being used for, well, hair color (#82168) `var/hair_color` for species was intended to be used as a "this species uses this type of hair color thing" But at some point that got completely lost and now it's only used for sprite accessories This fixes that. That means Slimepeople now have properly slimey hair. And Ethereals are less snowflake once more. 🆑 Melbert fix: Fixed Slimepeople's hair not matching their slimey colors. /🆑 * Revert "Fix species `var/hair_color` not being used for, well, hair color (#82168)" This reverts commit c4cb756. * Revert "Adds colorblindness as a mild brain trauma (#76527)" This reverts commit eb815f5. * Update _species.dm * unused var * Caps list.. * Update mushpeople.dm * Update mushpeople.dm * Update mushpeople.dm * Update mushpeople.dm * Update mushpeople.dm * Attempts to fix CI errors * Update cap.dm * Update _external_organ.dm * Update monkey.dm * Revert "Update monkey.dm" This reverts commit 29f54c8. * Revert "Update _external_organ.dm" This reverts commit 8de5ea7. * Update _external_organ.dm * Revert "Update _external_organ.dm" This reverts commit 644cc56. * Fix CI maybe? * Update cap.dm * Update DNA.dm * Some cleanup/updating to upstream * Update global_lists.dm * Mush * Update mushpeople.dm * Hopefully the last fix * Doing this differently * Update organ.dm * Update organ.dm * Update organ.dm * Update organ.dm * Update organ.dm * OK * Update organ.dm * Update podpeople.dm * maybe * Hm * Hm * Will this break things? * Revert "Will this break things?" This reverts commit bd288c6. * Test * Update organ.dm * Update organ.dm * Revert "Update organ.dm" This reverts commit ca77ff9. * Update organ.dm * . * . * . * Update snail.dm * Monkeys now use height offset (and monkey tail works) (#81598) This PR adds the ability for monkeys to wear any jumpsuit in the game, and adds support for them to wear things like coats, gloves, and shoes (though this cannot be obtained in-game and is solely achieved through admins, which I also improved a bit upon by adding a defined bitfield for no equip flags). This reverts a lot of changes from tgstation/tgstation#73325 - We no longer check height from limbs and such to bring sprites down, instead monkeys now work more similarly to humans, so the entire PR was made irrelevant, and I didn't really want to leave around dead code for the sake of having a human with longer legs. I've now also added support for Dwarfism, which makes monkeys look even smaller. Very minor change but at least now the mutation doesn't feel like it does literally nothing to monkeys (since they can already walk over tables). Here's a few examples of how it can appear in game (purely for demonstration, as it is currently intentionally made impossible to obtain in-game, though if someone wants to change that post-this PR now that support is added, feel free): Tails have been broken for a while now, the only reason you see them in-game is because they are baked into the monkey sprites. This fixes that, which means humans can now get monkey tails implanted into them (hell yeah) and monkeys can have their tails removed (also hell yeah) * Removes unneeded files * Revert "Removes unneeded files" This reverts commit 6469d37. * . * ok * Update tails.dm * Update monkey.dm * Fix monkey screenshot test * Update species.dm * Update reinf_walls.dm * Maintenance --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: Mal <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: vinylspiders <13398309+vinylspiders@users.noreply.github.com> |
||
|
+26 |
55d1c715e5 |
Pulls2 (#27514)
* New docking port sprites (#82729)
* Adds text to lootpanel items [no gbp] (#82722)
## About The Pull Request
Just some qol, this captures a small portion of the item name and fixes
some icon clipping issues
I clipped it at 5 because monke


## Why It's Good For The Game
Handy if youre in a rush and won't upgrade byond to fix the issue
## Changelog
🆑
fix: Lootpanel additions: Condensed item names for the quick of draw
/🆑
* Fixes tgui alert buttons (#82714)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
Been on my mind for a long time
I did this while relatively inexperienced (how do I center a div etc)
Fixes an issue inherent to our stack implementation where reversing the
direction caused strange spacing issues. This effectively reverses the
extra margins in css so it looks identically spaced whether reversed/not
<details>
<summary>before/after</summary>
Before (normal buttons)

Before (large buttons)

After (normal buttons)

After (large buttons)

Long buttons (normal)

Long buttons (large buttons (I am 35 and yet still fight the forces of
chaos))

</details>
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
## Why It's Good For The Game
Looks better, runs smoother, no clipping
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
fix: TGUI Alerts shouldn't have such wonky buttons any more
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* MetaStation: Replaces the tools in the Primary Surgery Theatre with filled surgery trays (#82730)
## About The Pull Request
Replaces the tools on the tables with 2 surgery trays.

## Why It's Good For The Game
Makes surgery a bit less painful in the surgery theatre, Using tools
from a tray is much nicer than having to open the context menu on the
piles of tools on the tables.
## Changelog
🆑
qol: Replaced the surgical tools in the Primary Surgery Theatre with 2
Surgery Trays.
/🆑
* Fixes smart pipe & cryo gas reallocation (#82701)
## About The Pull Request
**1. Smart Pipe Problem**
- Fill a pipe with any gas, plasma for e.g.
- Unwrench the pipe to deconstruct
- The pressure sends you flying but notice plasma is nowhere to be seen
from the now destroyed pipe
**2. Cryo pipe connector problem**
The gas gets reallocated when the object is deleted. We only want this
when its deconstructed not deleted to prevent any side effects
This PR fixes them
## Changelog
🆑
fix: smart pipes release their gases into the air when unwrenched
fix: cryo pipe connector component has no side effects of gas
reallocation when deleted
/🆑
* Fix Primal Instincts (#82741)
## About The Pull Request
#82539 randomly made these two lines switch their AI controllers to idle
rather than on, when the intent was for them to wake up immediately to
do make the mob attack or fight or do something
## Changelog
🆑 Melbert
fix: Primal Instincts and Living Flesh should be a tad more reactive
/🆑
* Fix handcuffing (#82760)
## About The Pull Request
Changed this to an early return but then didn't invert the condition
## Changelog
🆑 Melbert
fix: You can handcuff people with 2 arms and you can no longer handcuff
people with 0 arms
/🆑
* Gets rid of UNIT_TESTS compiler warning (#82695)
## About The Pull Request
Basically every single CI Run is throwing the following warning:
```txt
code/modules/unit_tests/lootpanel.dm:24:warning (unused_var): new_box: variable defined but not used
```
You may find an example here:
https://github.com/tgstation/tgstation/actions/runs/8698627681/job/23855921813#step:9:24
This is pretty silly but I don't really know why we even have this
variable (I assume there's something far more complicated underneath the
surface based on what the unit test is asserting), but assuming it is
important let's just insert a do-nothing procedure to get rid of the
compiler warning while ensuring the unit test is actually operating as
it should.
I also don't really like the fact that this is a warning instead of an
error but let's tackle this problem one step at a time by at least
getting rid of the compiler warning in a quick advance PR while I dwell
on this issue (is there a way to get the Dreamchecker linter to look at
the unit test files? it's caught perfectly fine in the langserver)
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Makes dropdowns better (#82697)
## About The Pull Request
Kind of a pain to work with, confusing people with its prop names (many
such cases!)
After recently discovering deathmatch it's very obvious to me how broken
it is, so I made it less so
(now comes with a complete ui upgrade!)
It now scrolls with the selection and to the selection on open, which
felt like major QoL
<details>
<summary>pics/vids</summary>
In motion

Deathmatch got some UI facelifts


Fixes #75741

</details>
## Why It's Good For The Game
Better UX
Bug fixes
Potential exploit patched (ui validation for ai voice changer)
Fixes #81506
## Changelog
🆑
fix: Dropdowns received some much-needed QoL, like having the scrollbar
follow your selection.
fix: AI voice changer now shows its current voice selection.
fix: Deathmatch screen has been touched up.
fix: Prefs menu has their dropdowns simplified, hopefully fixing issues
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
* Fixes the NT SWAT helmet sprite (#82743)
* Mass Item Creation (#82455)
## About The Pull Request
Have you ever had to click the "Make" button a dozen times for a chef
making soup? I've also had it, so with this PR you can press the button
and everything will repeat itself as long as possible.
## Why It's Good For The Game
Makes life easier for chefs, now they can play chess on their cool
smartphone and craft food. (actually you can transfer it to other items
as well, see for yourself).
* Adds Retain volume flag on the ants reaction (#82718)
Fixes #82575
We'd expect feeding ants to always result in more ants I imagine.
* Borg movement now has sounds (#82704)
## About The Pull Request
adds sound effects to cyborgs when they move
Demo:
https://imgur.com/a/7Mu98pQ
Open to feedback on this sound so please tell me what you think.
## Why It's Good For The Game
a hunk of metal moving at you without any sound is frightening
## Changelog
🆑 grungussuss
sound: cyborgs now have sounds to indicate they are moving
/🆑
* Use cell defined constants for various stuff (#82594)
## About The Pull Request
This re writes most cell power usage cases with 2 defines
`STANDARD_CELL_CHARGE`(Joules) & `STANDARD_CELL_RATE`(Watts) so changing
cell capacity values in the future won't cause discrepancies.
## Changelog
🆑
code: most cell power usages are scaled with defined constants to help
adapt to future changes
/🆑
* Plumbing machinery power & processing tweaks (#82702)
## About The Pull Request
- Plumbing machinery begins processing only when wrenched & ends
processing when unwrenched. The machines plumbing component
`/datum/component/plumbing/process()` already does this but the
underlying machines processing proc for e.g.
`/obj/machinery/plumbing/synthesizer/process()` is always processing
regardless of its wrenched state or not. We can optimize this & save
power when unwrenched
- Fixes #82621. This adds plumbing machines `idle_power_usage` on top of
its `active_power_usage` ensuring it only uses power when actively doing
work, So if your factory is say full of reagents & cannot do any more
work it will use less energy i.e almost enter an stand by mode,
efficiency
- Plumbing grinder chemical will grinds & juice stuff correctly i.e.
prefer grinding over juicing most of the time
## Changelog
🆑
fix: plumbing machinery begins processing only when wrenched & ends when
unwrenched
fix: plumbing machinery uses energy only when wrenched & doing work,
will stop/use less energy when idle
fix: plumbing grinder chemical will grinds & juice stuff correctly i.e.
prefer grinding over juicing for most stuff
/🆑
* Carps migrating through the station no longer idle so they don't get stuck after spawning until someone walks by. (#82744)
## About The Pull Request
Carps migrating through the station no longer idle so they don't get
stuck after spawning until someone walks by.
## Why It's Good For The Game
Bugfix for Carp Migrations.
## Changelog
🆑
fix: Carps migrating through the station no longer idle so they don't
get stuck after spawning until someone walks by.
/🆑
* Alt click no longer conflicts with mech suit [no gbp] (#82758)
## About The Pull Request
Get in the gundam shinji!!!
Context: Mech users hold ALT to disable strafe, which would trigger the
lootpanel to come up while committing war crimes (annoying!)
This prevents the panel from appearing and fixes the previous behavior,
meaning you can alt click your own mech to disable strafing.

It also makes toggling strafe a balloon alert with sound. Parties for
all occupants!!
## Why It's Good For The Game
Fixes #82753
## Changelog
🆑
fix: Mecha pilots are no longer bothered by incessant loot panels while
holding ALT for strafe disable.
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Adds a Wizard-themed map to the deathmatch (#81640)
## About The Pull Request
Deathmatch is severely lacking in HIGH IMPACT MAGIC LARPING. So I added
a big ass wizard arena. The arena itself is based off the wizard den.
Loadouts:
**Wizard:** Standard all-rounder. Got magic missile, jaunt, and
forcewall. Regular gear.
**Pyromancer:** Fire guy. Red robes, fireball, smoke.
**Electromancer:** Zappy guy. Lightning and tesla shock.
**Necromancer:** Is a skeleton. Has Scream for Me and blink.
**LARPer:** Straight from Station & Spessmen. Fake robes and can only
throw lightning and repulse.
**Chuunibyou:** Classic animage. Got chuuni buff and magic cards.
**Battlemage:** Melee fighter. Got some armor and a big hammer with
instant summons.
**Apprentice:** Underpowered until they find a mystery box. Got charge.
**Gunmancer:** Who needs magic when you have guns? Starts with an m1911,
lesser gun summons, and knock.
**Monkeymancer:** Is a monkey. Can summon monkeys and gorillas. Has a
banana.
**Chaosmancer:** Jumbled robes. Starts with a chaos rod. Can rod form
and summon traps for high chaos.
**Funnymancer:** It's just a clown with a banana staff.
The map itself is a pretty standard arena with a long sightline in the
middle. Each participant spawns in their own room complete with a magic
item box. The very southern portion of the ship has a standard mystery
gun box. Soon after the round starts, a hostile gelatinous cube in the
center of the map will break out and attack whoever it sees. Inside its
enclosure is a free death wand. Map has been tested to make sure
deathmatch participants can't escape the deathmatch.
## Why It's Good For The Game
Deathmatch provides a unique opportunity for people to play with
mechanics they will not often get to use. Allowing people to play wizard
for a few minutes shouldn't cause too much harm aside from admin logging
from explosions, which hopefully a fix is in the pipeline for.
## Changelog
:cl:Motho
add: Added wizard-themed deathmatch map.
add: Added mystery wand box.
/🆑
* Makes viewers() defines (#82767)
* Fixes Pseudo circuit delay & some missed cell define usages (#82771)
## About The Pull Request
- Fixes #82688
If the circuit cost is<= 1% of `STANDARD_CELL_CHARGE` then the delay is
5 seconds, if the circuit cost is >= 50% of `STANDARD_CELL_CHARGE` then
delay is 1 minute. All other delay values are interpolated in between
these 2.
- Pseudo circuits don't use power when used on cooldown
- Makes `INSPECTOR_ENERGY_USAGE_*` defines values use standard cell
values
## Changelog
🆑
fix: pseudo circuit adapter computes recharge delay durations correctly
& won't use power when on cooldown
code: uses standard cell defines for N-spect scanner
/🆑
* Lava/Plasma River tiles now immerse you in them (#82736)
## About The Pull Request
This adds the "immerse" element to lava tiles.

It's a tad hard to see because you're super on-fire, but it still looks
nice.
## Why It's Good For The Game
Eye candy, pretty...
## Changelog
🆑 Rhials
qol: Lava and plasma rivers now immerse you in them.
/🆑
* Adds `ALLOW_RESTING` to a bunch of items (#82761)
## About The Pull Request
Allows you to alt-click a bunch of items while resting.
Fixes #82788
## Why It's Good For The Game
Some of these, such as storage, are bugfixes. You shouldn't need to be
standing up to configure a spray can, or change the direction of your
bedsheet
Others are just sensible changes.
## Changelog
🆑 Melbert
fix: You can open bags with alt click while resting again
qol: Many items which previously required you to stand to alt-click now
don't, such as bedsheets and spray cans
/🆑
* Fixes sight range on lootpanel [no gbp] (#82765)
## About The Pull Request
When asked to make lootpanel visible at range they did not just mean
_any range_
AI alt click was a little weird (still is) but now it works
(TM BUG)
Fixes #82768
* Adds Omnitools for engineer and medical cyborgs, reducing on inventory clutter. (#82425)
[This PR is a bounty requested by Ophaq and worked on by
Singul0.](https://tgstation13.org/phpBB/viewtopic.php?f=5&t=36013)
All of the following description in this PR is written by Ophaq as to
what this PR entails:
In this PR, the medical and engineering cyborg's tools are completely
reworked and condensed into an arm similar to the implant a carbon would
get. The tools are shown in a radial wheel around the character to quick
select what is needed instead of looking for it in a cluttered bag of
items. There are a few tools such as the blood filter for the medical
cyborg, as well as the welder, gas analyzer, and t-ray scanner for the
engineering cyborg excluded from the radial wheel. mostly due to their
inherent inmodularity


Each cyborg gets two arms in case the player wishes to have one on the
side to quick swap to, like having a scalpel in one arm and a hemostat
in the other on the hotbar for convenience or just preference. An
upgraded version of the tools has been added to each respective cyborg
upgrade node with somewhat faster action speed. The upgrade replaces the
arms and transforms them into the "advanced" version which is currently
the same sprite as the regular but just a faster and more efficient
version. The sprites for the surgical arm currently look good but may
need replacing later if someone who wishes to resprite them down the
line decides to do so.
As it currently stands, the medical cyborg's magical bag of gadgets
takes up a lot of your screen space and as a player who plays medical A
LOT, this was a MUCH NEEDED quality of life feature.
The amount of clutter in a medical cyborg's bag makes it in my opinion,
hard to see at the bottom of the screen and a nuisance to constantly
close compared to other models. My standard set up for playing medical
cyborg on the hotbar is 1=med analyzer, 2=usually a secondary surgery
tool or injector, and 3=another surgery tool. The flow of gameplay
during surgery ends up being surgery tool, hit 3 and drop it, surgery
tool, repeat or for efficiency using X to swap between the two surgery
tools I need on 2 and 3. This gets tedious especially after so many
hours of playing medical cyborg. I know some people may disagree, but I
think it would help a lot of help to speed up this flow of gameplay
during surgery and declutter.
By turning the medical cyborg's toolset into an omni-surgery tool which
functions like the surgery arm implant's radial wheel, this would
greatly declutter by like an entire row and make things easier on
medical cyborg players. Having a secondary in the bag helps with
efficiency for those players who like having an extra tool on their
hotbar and swapping back and forth would also improve efficiency and
make less swapping by hitting Z needed. Additionally with the upgraded
version as an optional upgrade in the mediborg tech, this also lets them
be on par with players who use advanced tools late game but not at the
level of alien tools where players would obviously out compete a
mediborg in terms of action speed.
Engineering models also benefit from this rework but at a slightly
different and lesser way whereas certain tools are excluded such as the
welder, due to the way they work on refill and the gas scanner and t-ray
scanner not counting as tool components are not included in the arms.
Syndicate versions of the engineering and medical cyborg also get these
arms, unupgraded.
🆑
add: Adds an omnitoolset for both engineering and medical cyborgs,
containing various basic tools
qol: Engineer and Medical module inventory space is now significantly
decluttered
/🆑
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Fixes dropdown displaytext not working for numeric values (#82778)
## About The Pull Request
https://github.com/tgstation/tgstation/pull/82697 broke the prefs menu
downstream; we have a couple of dropdown choices that are numeric but
that make use of `display_names` to map those choices to appropriate
strings.
The code was assuming that `value` would always be a string when calling
`capitalizeFirst(value)`. Basically it should be doing
`display_names[value]` when `display_names` are present.
## Why It's Good For The Game
Fixes an oversight/bug.
## Changelog
🆑
fix: dropdowns that use display_names as an alias for numeric values
will no longer cause tgui bluescreens
/🆑
* [NO GBP] HPLC can purify inverted chems (#82727)
## About The Pull Request
- Fixes #82725
Inverted chems are now coloured green and classified as clean (like
before my general maintenance PR) which means they can be purified
again.
Only chems that are too impure to use & have an inverted chem value are
coloured red in the UI and not when they are just of the inverted type
## Changelog
🆑
fix: HPLC can purify inverted chems and are now coloured green(clean) in
the UI
/🆑
* Lathes compute their local storage size correctly (#82770)
## About The Pull Request
Basically we have to add the material container before we call parent
Initialize(which calls `RefreshParts()`), else the container doesn't get
initialized early and we skip over computing storage sizes
## Changelog
🆑
fix: off station & round start lathes with local storage don't have
infinite storage size.
/🆑
* Arcmining QoL: GPS component to scanned vents and vent(pin)pointer (#82724)
## About The Pull Request
Scanning ore vents will now tag them on GPS so you can find them easily
when you are prepared (and remove them when they are tapped). Also adds
special pinpointer to help with finding unscanned vents in a first
place. And adds missing uranium overlays for scanned vents. Because why
not.
<details>


</details>
## Why It's Good For The Game
While looking at mineral density to find vents is somewhat fun and
entertaining, having some sort of upgrade to make finding them easier
adds a bit of a progression. Also re-finding already scanned vents can
be a bit annoying. You need to fill your backpacks with GPSs and tag
them manually. It is also inconsistent with geysers that are added to
positioning after you scan them. And with tendrils, which are always
visible.
## Changelog
🆑
add: added ventpointer that points toward nearby ore vents and can be
bought with mining points
balance: scanned ore vents can now be found with GPS
fix: fixed ore vents missing overlay icon for uranium
/🆑
* Fix oven tray runtime (#82782)
## About The Pull Request
Fixes a lil typo from the interaction refactors that broke the ability
to load oven trays from containers
## Why It's Good For The Game
squamsh bug
## Changelog
🆑
fix: loading oven trays from serving trays and other containers works
again
/🆑
* Fix flaky test detection (#82790)
- Add missing job pagination.
- Fix multiple jobs being able to fail if they aren't in
`CONSIDERED_JOBS`
* Add utf8 support for state laws button (#82789)
## About The Pull Request
Adds UTF-8 support for state laws HTML page. Now it supports more than
just English
## Why It's Good For The Game
Support for other symbols, such as cyrillic

* Update highest available sound channel (#82780)
Current channels are:
```
```
So, the highest available now is 1013
Updating the thing which everyone forgot for 7 years. Not that many
special channels were added either way
* Revert "Borg movement now has sounds" (#82795)
Reverts tgstation/tgstation#82704
The sound ingame appears much louder than the original author intended.
Not to mention that the sound loops stack for every borg moving near
you.
* Use defines for "General Research" where it's not used (#82785)
## About The Pull Request
There is a define for it, so why not use it?
## Why It's Good For The Game
Defines good
* [READY] the unfuckening of clothing rendering (#79784)
refactors clothing visors to use the same system, including masks being
toggled and stuff like riot helmets toggling using the same system and
welding helmets and such
adds a handler that updates all visuals in slots that an item has
obscured, each visual proc calls that so you no longer have weird shit
happening like having to hardcode a proc for heads where you need to
also update hair, mask, glasses everytime you put on an item
one thing here i could also do is make check_obscured_slots return the
HIDEX flags instead of item slots, because in 99% of cases its hardcoded
to be ran against specific slots (like eye code running it against the
glasses slot), but maintainers didnt seem to like that :/
fuck this 2003 bullshit
theres like several bugs here i fixed but i forgot them all and they are
small
* Allows vv investigate /appearance + better checking image (#82670)
* Fixes Alien Numerical Identifier Transfer System (#82762)
## About The Pull Request
Fixes #82756
I'm not sure what the root cause of the issue is or why it broke so
recently (this has been a thing since #49150) but I went and cleaned up
the code and ensured that we always reset the `name` to the `initial()`
value we have for it if we determine that we need to transfer over the
`numba` from the old xenomorph. This is done by a new proc which is a
lot less convoluted from the old system (always respecting var-edited
names and stuff like that) that should make it flow a lot better and
make it more hardy against double-addition of the `numba` to the name.
## Why It's Good For The Game
Having two numbers in your name is weird, should only have one.
[x] I tested this PR
## Changelog
🆑
fix: Evolved aliens should no longer have two numbers in their name.
/🆑
* [NO GBP] Fixes runtime in advanced camera console (#82699)
## About The Pull Request
We only unset machine if we have a user who has logged in
## Changelog
🆑
fix: Fixes runtime in advanced camera console when power is turned off
/🆑
* Refactors how basic ais do their success/failures (#82643)
* Rocky DLXIII: Fitness to Athletics, Athletics skill influences Boxing against Boxers, Boxing overhaul, Evil Boxing (#82611)
as the only meaningful reward
Basically just a rebranding so that it is more broad in its concept. It
isn't just about peak physique. It's about how you can apply it too.
Reaching Legendary rewards you with the Golden Gloves.
I started it in this pr here
https://github.com/tgstation/tgstation/pull/80635
But this is a more significant overhaul of boxing from the ground up.
Namely, it now is majorly influenced by the Athletics skill, and also
more thoroughly aligns with conventional punching in its current state.
However, a major component of this is that boxing's breadth of mechanics
is only relevant when used against another boxer. Non-boxer targets are
only ever going to get smacked by a stamina punch, as it is currently
(and more or less the same values too). Additionally, boxers cannot
punch someone who is either unconscious or in stamina crit, so it can't
be used to maintain stamcrit.
- Boxing now has a One-Two Punch mechanic. Swapping between the left and
right mouse buttons to punch and maintaining this causes every second
punch to do more damage (to boxers). Breaking this chain by punching
with the same button twice will cause you to lose damage (against
boxers).
- Boxing now can have crits occur below 50 stamina damage (against
boxers). However, to knock someone out clean, the target must be
staggered from a previous crit first. (Or I guess be staggered at all,
maybe their shoelaces were tied or something). Crit probabilities are
determined by adding your Athletics probability skill bonuses to your
unarmed effectiveness, and then reduced by the targets own Athletics
skill bonuses. It is hard for two athletes to knock each other out in
one blow. It is trivial for a legendary boxer to knock out a novice in a
single punch. Cybernetically enhanced boxers are dangerously effective
at boxing.
- Boxers can block other boxers by using throw mode, but the chances of
doing so is based on Athletics skill bonuses. A successful block causes
the attacker to take stamina damage (as does the blocker, but less so).
- Participating in boxing increases the Athletics skill. Your gains are
probably slower than normal training, but you at least get some reward
for doing so. Only relevant if your opponent is a boxer. Get a sparring
partner!
So this is all well and good, but what if you're a scoundrel with no
care for the other person in this equation? Well, that's where Evil
Boxing comes in. Evil Boxing has absolutely no restrictions at all, and
can freely use its boxing abilities against anyone. Even non-boxers. You
can even grab people! Wow, what a scumbag. I bet you even king hit
people. Thankfully, only an admin can make you into an Evil Boxer.
(against boxers)
Both mutations have a flimsy increase to instability of 5 because of how
incredibly particular the bonus is.
Strength now reduces the amount of stamina damage inflicted via
exercising by half. Strength also adds a +2 damage bonus on boxing
punches while boxing against boxers (this doesn't influence normal
unarmed attacks whatsoever, or boxing against nonboxers). Obviously,
evil boxers just get this benefit against everyone because they're
knaves.
Stimmed increases the duration of the exercised status effect by one
factor. (That is, if you have no other modifiers, it will double the
duration on its own)
@Jacquerel was racking their brain trying to come up with an alternative
to the skill rewards of Fitness. At the moment, sprite growth is not
only a really bad bonus (it does literally nothing but make you big, and
thus is actually a detriment due to how intrusive sprite size is with
interaction, and plays weird with other sprite changing effects), but
isn't really all that interesting for all the effort put in.
Problem is, how do you make Fitness meaningful without making it a
powergame mechanic? Simple! You make it applicable to a really niche,
self-contained but still utilized game mechanic that is engaging to
participate in and makes you meaningfully very good in it. AND scratches
that power scaling itch that many players have.
Boxing is reasonably self-contained as is, but pretty bland due to how
old it is. While maintaining that self-contained nature, I hoped to
expand the interactivity of boxing a little bit by giving it a small
mini-game in of itself. And also introduce ways to simulate the idea of
boxing a bit better.
The idea of being an Evil Boxer is funny. For every Rocky, there is a
[Insert Rocky Villain Here that isn't Creed]. But in this case, it's
probably some Syndicate douchebag looking to punch clowns into a coma
and inspire the mime to take up shadowboxing in revenge.
🆑
add: Replaces Fitness with Athletics; same skill, but now more
specifically applicable to boxing.
add: Athletics does not increase sprite size.
balance: Overhauls Boxing to add a lot more depth to the interactions.
Only applicable to other boxers, however. You can still punch the snot
out of non-boxers though. But only up to stamcrit or unconsciousness. No
hitting someone who can't fight back!
balance: Adds Evil Boxing, which is the evil and fucked up version of
boxing that you kill people with and are allowed to flout the sacred
rules of boxing as you please. Everyone is a victim!
/🆑
* Cargo ui refactor -> TS (#82745)
Refactors cargo ui, fixing some visual bugs, just making it look better
in general
Should be no gameplay effect other than it looking better
<details>
<summary>pics</summary>




Fixes #81442

Made a type grabber for backend data in case you want to make your own
typescript uis
`logger.log(getShallowTypes(data))`

Otherwise cargo's data is unreadable
</details>
Any UI over 500 lines should get broken up to reduce cognitive load
~~Any ui in javascript shouldn't exist~~
Cargo UI is better
Typescript
🆑
fix: Cargo's supply console has been upgraded visually.
/🆑
---------
Co-authored-by: EricZilla <81941674+EricZilla@users.noreply.github.com>
Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
* Makes lavaland stone tiles prevent immersion (#82807)
## About The Pull Request
Adds the same trait that lavaproof rods have to the stone tiles, so
things can continue being visually outside of the lava
## Why It's Good For The Game
this shit looks goofy

## Changelog
🆑 FlufflesTheDog
fix: Stone tiles (and things on them) no longer get immersed in lava
/🆑
* Getting up from prone, z movement, and mod de/activation don't do cogwheels (#82794)
Adds `hidden` to getting up (from prone), moving up (z-movement), moving
down (z-movement), and de/activating MODsuits
- Getting up from prone happens very often, makes it a bit hard to
differentiate when people are doing actions or just crawling around.
- If we want feedback for getting up, should just be a chat message.
- Moving up and down is just movement. Only affects using the verbs.
- Same as before: If we want feedback, it should just be a chat message.
- Other methods of moving up/down (IE, ladders) are untouched / retain
their cogwheel.
- De/activating modsuits have their own visual feedback and sound
effects associated. Both feels unnecessary.
🆑 Melbert
qol: Getting up from prone, moving up or down a z-level (not via
ladders, naturally. Like flight), and de/activating your modsuit no
longer shows cogwheel effect
/🆑
* [NO GBP]Inversely scale mechanical favor with STANDARD_CELL_CHARGE. (#82801)
## About The Pull Request
Makes the mechanical sect cell sacrifice favor adjustment inversely
scale with STANDARD_CELL_CHARGE. This reduces it by a factor of 1,000.
## Why It's Good For The Game
So they don't get 1,000 times the favor as intended from a cell.
## Changelog
🆑
fix: Fixes mechanical sect gaining 1,000 times the favor from a cell
sacrifice.
/🆑
* Fix all types of damage to the head causing brain damage (#82763)
## About The Pull Request
5 months ago when I separated this stuff out to its own proc I forgot a
damagetype check.
## Changelog
🆑 Melbert
fix: Only brute damage causes brain damage when applied to the forehead,
rather than all damage types
/🆑
* Converts ListInputModal to actually be a Modal | Adds ListInputWindow which uses it (#82792)
## About The Pull Request
If we say something is a Modal it should actually be a Modal
## Why It's Good For The Game
You can now use this system in other windows if you want.
Fixed the misnomer.
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Higher capacity SMES variant for low maintenance areas; miners can access their maintenance area on mining base, gulag no longer saps all power from the main base (#82713)
## About The Pull Request
Creates a higher capacity version of the SMES unit that spawns in with
super capacity cells, as well as a full version. Places the full version
into all the AI sats (which all have independent grids for the most
part), some remote space ruins and the mining base. These SMES units are
intended for areas where players aren't expected or cannot reasonably be
expected to constantly monitor power usage within the length of a
standard round.
Miners can access their power stations, telecommunications box and
atmospheric station on the mining base. They're really the only people
who care, after all.
The gulag's SMES (also now upgraded) no longer saps power from the main
base due to having its input terminal rigged to the main base power
grid, and thus demanding all power from the grid greedily. To revert
this in-game is a single power cable placed back east of the SMES unit.
## Why It's Good For The Game
The power changes made some of the once largely low-maintenance areas
much more likely to run out of power more quickly than you would expect.
These aren't areas expected to be maintained or monitored by engineering
(probably because they're not easily accessed), and they're just kind of
troublesome to deal with on a round-to-round basis.
Mining had this problem triple-fold. It had significant drain with no
convenient method of installing power generation at all, miners couldn't
access what power generation there was without using their 'skeleton
key' to open the way (only engineers could, and they aren't expected to
come down to mining at all), and even then, there was the gulag SMES
just eating all the power anyway. I'm pretty sure that SMES unit was the
biggest culprit of them all, but I think this conveniently future proofs
these issues for the time being.
## Changelog
🆑
add: Adds a higher capacity SMES unit to lower maintenance areas and
maps.
fix: Miners can actually access and fix their engineering issues on the
lavaland base via the engineering section of the base.
fix: The gulag SMES unit is no longer needlessly draining the entire
power grid of the main mining base.
/🆑
* Revert "Higher capacity SMES variant for low maintenance areas; miners can access their maintenance area on mining base, gulag no longer saps all power from the main base (#82713)"
This reverts commit
|
||
|
+18 |
ba5c112a86 |
Huge Mirror fixes (#27488)
* Fixes incorrect operator usage in mecha code (#82570)
## About The Pull Request
I completely screwed up and told the original PR author of #82415
(
|
||
|
|
a21742ff60 |
Adds ALLOW_RESTING to a bunch of items (#82761)
## About The Pull Request Allows you to alt-click a bunch of items while resting. Fixes #82788 ## Why It's Good For The Game Some of these, such as storage, are bugfixes. You shouldn't need to be standing up to configure a spray can, or change the direction of your bedsheet Others are just sensible changes. ## Changelog 🆑 Melbert fix: You can open bags with alt click while resting again qol: Many items which previously required you to stand to alt-click now don't, such as bedsheets and spray cans /🆑 |