Commit Graph

776 Commits

Author SHA1 Message Date
shayoki f601a6ddaf Merge remote-tracking branch 'tgstation/master' into upstream-6-2-2026 2026-06-03 01:23:54 -05:00
Wisemonster e93488eb69 Gives QM locker a flash (#96233) 2026-05-28 13:18:11 -04:00
Tim 054653de87 Add a "Prison Block" holodeck map (#96032)
## About The Pull Request
This adds a new "Prison Block" holodeck simulation, accessible only when
the holodeck safeties are disabled (or emagged). The layout features
four functional jail cells with holographic flashers, a security desk,
evidence lockers, an electric death chair, and camera/record consoles.

<img width="288" height="320" alt="StrongDMM-2026-05-10 20 22 24"
src="https://github.com/user-attachments/assets/f32da2c6-9281-4681-b415-4eac5d9bf167"
/>

## Why It's Good For The Game
While many departments have dedicated holodeck programs, Security
currently lacks a specialized simulation. By placing a functional brig
within an emagged simulation, we create opportunities for emergent
scenarios:
- Antagonists now have more non-lethal options to detain and hold
personnel
- Security now has a backup brig during station emergencies
- Power cuts, EMPs, or AI intervention can trigger instant prison breaks
- With the press of a button, switching the simulation can transform it
into a death trap for everyone inside

This creates high-tension gameplay for both the captors and the
captives.

The electric chair was only used in the pirate shuttle (ruin?) and
didn't work properly, so it needed some code updates. Also, I did not
like how insulated gloves prevented electric shocks from working, so I
made it bypass insulation.

I had to add holodeck versions of brig lockers and security windoors so
now any ID can open windoors/lockers. People cannot open
windoors/lockers without an ID, so you must strip them of their ID when
imprisoning them, otherwise they can just walk out.

## Changelog
🆑
map: Added a "Prison Block" holodeck simulation, accessible via the
disabled safety/emagged menu.
code: Fixed electric chairs to work, and they now bypass insulation from
gloves when executing a mob.
code: Added holodeck versions of brig lockers and windoors that allow
anyone with a station ID card to access them.
/🆑
2026-05-23 20:41:43 +02:00
Alexis 5c5a636485 Merge branch 'master' into upstream-feb12-2026 2026-03-02 07:42:16 -05:00
Manatee 79b1019458 Ports the Holotool from yogstation (#5252)
## About The Pull Request
Ports the Experimental Holotool from yogstation. An RD item that is all
the tools in a compact package.
## Why It's Good For The Game
RD has nothing interesting except the armor that kills you if you use
it, and many people dont because of that. This gives a unique,
interesting item that is useful to their kit, much like the CMO's hypo.
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>

<img width="273" height="314" alt="image"
src="https://github.com/user-attachments/assets/7111c679-928c-4069-a4d9-ab93588d9daf"
/>

<img width="127" height="83" alt="image"
src="https://github.com/user-attachments/assets/86346c30-3ae3-449d-b40a-3c26b05f6949"
/>


</details>

## Changelog
🆑
add: The RD now has an Experimental Holotool! It starts in their locker.
/🆑
2026-02-21 15:34:19 +01:00
nevimer 00ccf0c6b5 Merge remote-tracking branch 'tgstation/master' into upstream-feb12-2026
# Conflicts:
#	.github/CODEOWNERS
#	.github/workflows/compile_changelogs.yml
#	.github/workflows/stale.yml
#	SQL/database_changelog.md
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	code/__DEFINES/atom_hud.dm
#	code/__DEFINES/inventory.dm
#	code/__DEFINES/mobs.dm
#	code/__DEFINES/species_clothing_paths.dm
#	code/__DEFINES/subsystems.dm
#	code/__DEFINES/surgery.dm
#	code/__HELPERS/global_lists.dm
#	code/_globalvars/lists/maintenance_loot.dm
#	code/_globalvars/traits/_traits.dm
#	code/controllers/subsystem/minor_mapping.dm
#	code/controllers/subsystem/processing/quirks.dm
#	code/controllers/subsystem/shuttle.dm
#	code/datums/components/palette.dm
#	code/datums/components/surgery_initiator.dm
#	code/datums/diseases/advance/advance.dm
#	code/datums/hud.dm
#	code/datums/mood.dm
#	code/datums/mutations/chameleon.dm
#	code/datums/quirks/negative_quirks/nyctophobia.dm
#	code/datums/status_effects/debuffs/debuffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/slime/slime_leech.dm
#	code/datums/weather/weather.dm
#	code/game/data_huds.dm
#	code/game/objects/items.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/frog_statue.dm
#	code/game/objects/items/rcd/RLD.dm
#	code/game/objects/items/robot/items/hypo.dm
#	code/game/objects/items/stacks/medical.dm
#	code/game/objects/items/stacks/wrap.dm
#	code/game/objects/items/storage/garment.dm
#	code/game/objects/items/tools/medical/defib.dm
#	code/game/objects/items/weaponry.dm
#	code/game/objects/items/weaponry/melee/misc.dm
#	code/game/objects/structures/crates_lockers/closets/secure/security.dm
#	code/game/objects/structures/curtains.dm
#	code/game/objects/structures/dresser.dm
#	code/game/objects/structures/girders.dm
#	code/game/objects/structures/maintenance.dm
#	code/game/objects/structures/mirror.dm
#	code/modules/admin/greyscale_modify_menu.dm
#	code/modules/admin/verbs/light_debug.dm
#	code/modules/antagonists/ashwalker/ashwalker.dm
#	code/modules/antagonists/heretic/knowledge/starting_lore.dm
#	code/modules/antagonists/ninja/ninjaDrainAct.dm
#	code/modules/art/paintings.dm
#	code/modules/client/preferences.dm
#	code/modules/client/verbs/ooc.dm
#	code/modules/clothing/head/wig.dm
#	code/modules/events/disease_outbreak.dm
#	code/modules/holodeck/holo_effect.dm
#	code/modules/jobs/job_types/head_of_security.dm
#	code/modules/jobs/job_types/security_officer.dm
#	code/modules/library/skill_learning/generic_skillchips/point.dm
#	code/modules/mining/lavaland/ash_flora.dm
#	code/modules/mining/lavaland/mining_loot/megafauna/ash_drake.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/basic/guardian/guardian.dm
#	code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm
#	code/modules/mob/living/carbon/carbon.dm
#	code/modules/mob/living/carbon/human/human.dm
#	code/modules/mob/living/carbon/human/human_defines.dm
#	code/modules/mob/living/carbon/life.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob/living/living_defines.dm
#	code/modules/mob/mob.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mod/mod_control.dm
#	code/modules/mod/modules/modules_general.dm
#	code/modules/modular_computers/computers/item/computer_ui.dm
#	code/modules/paperwork/paper.dm
#	code/modules/paperwork/paperbin.dm
#	code/modules/power/lighting/light.dm
#	code/modules/projectiles/guns/energy/kinetic_accelerator.dm
#	code/modules/projectiles/projectile.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/food_reagents.dm
#	code/modules/reagents/chemistry/reagents/other_reagents.dm
#	code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
#	code/modules/research/xenobiology/crossbreeding/_clothing.dm
#	code/modules/research/xenobiology/crossbreeding/prismatic.dm
#	code/modules/surgery/advanced/brainwashing.dm
#	code/modules/surgery/advanced/lobotomy.dm
#	code/modules/surgery/amputation.dm
#	code/modules/surgery/blood_filter.dm
#	code/modules/surgery/bodyparts/_bodyparts.dm
#	code/modules/surgery/brain_surgery.dm
#	code/modules/surgery/cavity_implant.dm
#	code/modules/surgery/coronary_bypass.dm
#	code/modules/surgery/gastrectomy.dm
#	code/modules/surgery/healing.dm
#	code/modules/surgery/limb_augmentation.dm
#	code/modules/surgery/organ_manipulation.dm
#	code/modules/surgery/revival.dm
#	code/modules/surgery/sleeper_protocol.dm
#	code/modules/surgery/surgery_helpers.dm
#	code/modules/surgery/surgery_step.dm
#	code/modules/unit_tests/_unit_tests.dm
#	code/modules/unit_tests/designs.dm
#	code/modules/unit_tests/icon_state_worn.dm
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_cultist.png
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_headrevolutionary.png
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_provocateur.png
#	code/modules/unit_tests/screenshots/screenshot_husk_body.png
#	code/modules/unit_tests/screenshots/screenshot_husk_body_missing_limbs.png
#	icons/map_icons/clothing/head/_head.dmi
#	icons/map_icons/clothing/shoes.dmi
#	icons/map_icons/items/_item.dmi
#	icons/mob/huds/hud.dmi
#	icons/mob/inhands/64x64_lefthand.dmi
#	icons/mob/inhands/64x64_righthand.dmi
#	icons/obj/machines/computer.dmi
#	tgui/packages/tgui/interfaces/OperatingComputer.jsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/MainPage.tsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/types.ts
#	tgui/packages/tgui/interfaces/SurgeryInitiator.tsx
#	tools/icon_cutter/check.py
2026-02-12 23:50:09 -05:00
Fghj240 d5102b2030 Void stamp integration - the stampening (#94359)
## About The Pull Request

Void stamp added to bureaucracy loot spawners, a new box that contains a
granted, denied, and void stamp found in the lawdrobe, hop locker,
bureaucracy crate, mod stamper module, and the paperwork implant gets a
stamp that can cycle between 3 different ones like the mod stamp.

## Why It's Good For The Game

Finally the void stamp is obtainable

## Changelog

🆑
add: The void stamp is now obtainable
add: The lawdrobe now sells a box of stamps
add: The head of personnel's locker now contains a box of stamps
fix: The mod stamper module is now visible
/🆑

---------

Co-authored-by: Fghj240 <fakeemail@notrealemail.com>
2026-01-08 18:31:15 +00:00
mcbalaam 3799968eb3 feat: new floppy disk sprites; most disks are now under the /item/disk type; adds disk stacking, uqinue styling and wrapping (#94112)
## About The Pull Request

Floppy disks received a sprite upgrade, as well as unique wraps:

<img width="364" height="150" alt="image"
src="https://github.com/user-attachments/assets/0ac433e3-7432-4c06-bec2-aeae00b6852f"
/>

<img width="786" height="527" alt="image"
src="https://github.com/user-attachments/assets/0f36bd0d-0362-4431-8131-49060a2fe348"
/>

You can now stack floppy disks! They also scatter around when thrown.
The video also showcases new styling options with a selection of
stickers! You can also write something on the disk instead of selecting
an icon:


https://github.com/user-attachments/assets/ff0a8542-9d79-4108-ae46-672ca5d620a2

MOST disks now inherit the `/item/disk` type to properly stack and do...
stuff. An updatepaths script included.

## Why It's Good For The Game

Old school is cool. Stacking disks makes them feel more authentic, while
styling allows for more crearivity!

## Changelog

🆑
add: New unique wraps for floppy disks
qol: Floppy disks can now be stacked
image: New sprites and stickers for floppy disks
map: Added and ran an updatepaths script
refactor: Most disks are now under the base disk item type
/🆑

---------

Co-authored-by: The-Tyrant <tyrantofgaming@gmail.com>
2026-01-04 08:52:18 +13:00
Bloop acaae89cf6 Removes some cargo culty global lists that don't need to be global lists (#94531)
## About The Pull Request

Not really sure why these were there storing the lists in memory
permanently, when these just get consumed anyway. People copy paste them
all over it seems so I'm going to put a stop to that.

## Why It's Good For The Game

Cleans up like 7 years of cargo cult.

## Changelog

Not player-facing
2025-12-19 10:14:57 -05:00
nevimer 6e9f2ccfc0 Merge remote-tracking branch 'tgstation/master' into upstream-12-15
# Conflicts:
#	.github/workflows/compile_all_maps.yml
#	.github/workflows/run_integration_tests.yml
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	code/_onclick/hud/credits.dm
#	code/controllers/subsystem/networks/id_access.dm
#	code/datums/diseases/advance/advance.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/game/machinery/doors/door.dm
#	code/game/objects/structures/crates_lockers/closets/secure/medical.dm
#	code/game/objects/structures/crates_lockers/closets/secure/security.dm
#	code/modules/antagonists/malf_ai/malf_ai_modules.dm
#	code/modules/jobs/job_types/_job.dm
#	code/modules/loadout/categories/accessories.dm
#	code/modules/loadout/loadout_helpers.dm
#	code/modules/loadout/loadout_items.dm
#	code/modules/loadout/loadout_preference.dm
#	code/modules/mob/living/silicon/robot/robot_defense.dm
#	code/modules/mod/mod_theme.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/reagents/reagent_containers/cups/drinks.dm
#	code/modules/shuttle/mobile_port/variants/supply.dm
#	code/modules/surgery/organs/internal/eyes/_eyes.dm
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_heretic.png
#	icons/hud/screen_full.dmi
2025-12-15 18:12:29 -05:00
Tim 46e1f8ff27 Fix closets, crates, and drawers missing material tags (#94273)
## About The Pull Request
This adds custom material lists to closets and crates so it shows what
materials they are made out of when examined.

## Why It's Good For The Game
<img width="603" height="494" alt="dreamseeker_XhFtjANMiX"
src="https://github.com/user-attachments/assets/c31e0789-75ce-40d6-a56d-a52f6490da68"
/>

## Changelog
🆑
fix: Fix closets, crates, and drawers missing material tags
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2025-12-09 21:52:03 +01:00
Alien c0686c63f0 Captain gets a command megaphone (#94322) 2025-12-06 17:32:56 +01:00
Ghom 0b0c5ea91e Unit test material checks are now performed on all crafting recipes by default. All stack recipes now transfer mats to the results (#92620)
## About The Pull Request
Extends the part of the crafting unit test that ensures consistency
between the total mats of the components of a recipe (or rather, the
result of said recipe) and a generic instance of the same type as its
result, previously only implemented on food recipes.

## Why It's Good For The Game
This ensures a degree of consistency with the material composition of
various objects in the game. I couldn't do it in the original PR as that
one was too big already and it took months to get it merged, and have
the relative bugs fixed.

Currently a WIP as I slowly deal with the unit test reports.

## Changelog

🆑
refactor: Follow-up to the crafting/material refactor from months ago.
All objects crafted with stacks now inherit their mat composition (not
necessarily the effects and color) by default, while previously only a
few things like chair, sinks and toilets did. Report any object looking
or behaving weirdly as a result.
fix: The material composition of ammo boxes is no longer a 1/10 of what
it's supposed to be. It was a shitty hack to make it harder to recycle
empty ammo boxes. Instead, they lose materials as they're emptied now.
/🆑
2025-12-02 18:29:01 -05:00
Alien 99fcd710e5 Warden can open the lethal injection locker (#94247)
## About The Pull Request

The access of the injection locker matches the rest of the room and
warden can open it (not normal officers)

## Why It's Good For The Game

It makes no sense why this one method of execution specifically is only
for HOS and captain. Warden can already shoot it open with lasers or
shoot the guy being executed with lasers so it's not like it's
powercreep or smth.

## Changelog
🆑
balance: The lethal injection locker is now accessible by the warden.
/🆑
2025-12-02 10:23:58 -05:00
Nick 595b9c00b3 Removes Defibrillators from being printable, and adds cmo compact defib as a spy objective. (#94182)
## About The Pull Request
This PR removes Defibrillators from being printable in the techlathe.
Which means the Compact belt becomes CMO exclusive item.
And adds a objective for spies to steal compact belt because it feeds it
into the black market, which other antags can maybe buy and emagg it to
turn it into a reasonable weapon
This pr also makes it so the baseline of roundstarting defibs is 4

## Why It's Good For The Game
Years ago we made defibrillators never printable, and there was no way
to get them unless it was trough cargo, and later we added it to the
techlathe which immediatly voided the cargo crate.
Medical starts with 4 defibrillators medbay usually uses 2, and then the
other 2 go to medical borgs (and theres not really ever a real reason to
print out another since you got plenty).

We also have spefific upgrade modules for medical cyborgs which is
voided by just printing a defib and inserting it into the medical borgs.

TL;DR order it from cargo either 1 using your departmental budget, 2
using your free ordering console, or 3 just from cargo

## Changelog
🆑 ezel
add: Compact Defibrillator is now a Spy objective
balance: Compact Defib is CMO exclusive again
balance: you can no longer print Defibrillators in techlathe (purchase
them via cargo if needed)
sprite: CMO compact defib now looks unique from other ones
map: catwalk defibs trimmed to 4 instead of 6
map: metastation defib added from 3 to 4
map: wawastation defib added from 3 to 4
map: tramstation defib added from 3 to 4
map: nebulastation defibs trimmed from 6 to 4
/🆑
2025-12-01 00:17:21 -05:00
nevimer baf3837ae8 Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts:
#	_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm
#	_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	_maps/map_files/tramstation/tramstation.dmm
#	code/_onclick/hud/new_player.dm
#	code/datums/components/squashable.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/datums/diseases/chronic_illness.dm
#	code/datums/status_effects/buffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/stamcrit.dm
#	code/game/machinery/computer/crew.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/wall_mounted.dm
#	code/game/turfs/closed/indestructible.dm
#	code/modules/admin/view_variables/filterrific.dm
#	code/modules/antagonists/heretic/influences.dm
#	code/modules/cargo/orderconsole.dm
#	code/modules/client/preferences.dm
#	code/modules/events/space_vines/vine_mutations.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/carbon/human/death.dm
#	code/modules/mob/living/carbon/human/species_types/jellypeople.dm
#	code/modules/mob/living/damage_procs.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mob_spawn/mob_spawn.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/projectiles/guns/ballistic/launchers.dm
#	code/modules/projectiles/guns/energy/laser.dm
#	code/modules/reagents/chemistry/machinery/chem_dispenser.dm
#	code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/medicine_reagents.dm
#	code/modules/surgery/healing.dm
#	code/modules/unit_tests/designs.dm
#	icons/mob/inhands/items_lefthand.dmi
#	icons/mob/inhands/items_righthand.dmi
#	tgui/packages/tgui/interfaces/ChemDispenser.tsx
2025-11-29 22:49:21 -05:00
Alien 267d31d531 Adds a bandolier to the warden's locker (#94130)
## About The Pull Request

PR title

## Why It's Good For The Game

Warden is the weapons guy and even starts with a super cool unique
shotgun. Bandoliers are roundstart items (can be bought from bartender's
vendor when they arent using it or arent preset, can be crafted by
killing five monkeys which there are plenty of) so this just removes the
hastle of having to go get it.

## Changelog
🆑
balance: The warden starts with a bandolier in their locker
/🆑

Co-authored-by: John Doe <markkavalerov87@gmail.com>
2025-11-25 19:46:03 -07:00
necromanceranne d76d2f5438 Laser Gun Update: Deep Lore, Gun Variety, Pew Pew (#93520)
## About The Pull Request

Updates the laser gun into four proper subtypes: Standard, Pistol, Rifle
and Carbine.

<img width="229" height="210" alt="image"
src="https://github.com/user-attachments/assets/12c03076-8ebf-4d87-8c98-6a8cce6821db"
/>

Current sprites are pending a palette change.

**Standard:** Functions as you would expect. Same as ever.

**Pistol**: Lower charge, 20 force, normal sized, recharges faster.

**Carbine**: 15 force, 26 mag, two round burst. Projectiles flight
slightly faster. Cannot dual-wield.

**Rifle**: 20 force. 40 mag. Two round burst. EMP resistant (not
immune). Projectiles fly slightly faster. Cannot dual-wield (not that
you need to).

All but the rifle can be sourced from cargo. You can also buy the sovl
version of the laser gun if you're especially nostalgic.

### Armory Changes

The Armory now can potentially spawn either pistols, carbines or
standard. The weighting leans closer to spawning carbines and standard
as opposed to pistols.

### Lore Dump

The laser line of weapons now all have lore. That rich, deep lore that
every game needs and is totally not important at all to the meat and
potatoes of the game. I'm paid by the hour ($0.00)

### Code Tidying

Lasers are old and a total mess code-wise so we've tidied up while we're
here.

## Why It's Good For The Game

Variety is the spice of life and also some of these weapons could have
used a face lift. Especially the laser carbine. Both functionaltiy wise
and appearance wise.

A bit of randomness in the armory means some rounds might have unique
outcomes compared to others. Sometimes, items in cargo don't see
particularly much use, so peppering in a few random potential deviations
can maybe nudge people to utilize variant gear on future rounds.

I'm obsessed with writing too much information. I blame Hatterhat.

## Changelog
🆑
add: Three variants of the laser gun; Carbine (replacing the existing
one), Pistol and Rifle! Find it (possibly) in your armory today!
balance: The armory laser guns might be different variants of the laser
gun, rather than always being the standard. The standard is the same as
ever, even if it looks different.
add: If you care, the sovl version is available as a goodie. And in the
hands of pirates...
spellcheck: Lore! LORE FOR LASER GUNS! LOOOORE! Examine laser guns
closely and you might learn more about them.
balance: The new set of laser guns come with brand new sprites.
/🆑

---------

Co-authored-by: StaringGasMask <62149527+Exester509@users.noreply.github.com>
2025-11-20 22:21:16 -05:00
Nick b7a54117ad Removes advanced health analyzer from CMO (#94017)
## About The Pull Request
This PR removed the health analyzer from cmo roundstart gear

## Why It's Good For The Game
Its a tech bypass and encourages heads to research stuff to the
department can do their work better plus cmo like the ce who lost his
tools get alot other QoL tools which give them the edge as a head

## Changelog
🆑 Ezel
balance: Cmo no longer starts with a advanced health analyzer
/🆑
2025-11-20 10:24:44 -05:00
Roxy e28e9fbdba Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-23-10-2025 2025-10-23 17:38:23 -04:00
Aliceee2ch ee388c204f More love to paramedic: revamping/adding paramedic offices, new access and more! (#93457)
## About The Pull Request

most of info in changelog, here i'll pin some screenshots. 
(also didnt touch catwalk on purpose since its medbay in process of
rework)

<details><summary>Screenshots</summary>


### Example of paramedic dispatch area, before it was used only on 2
maps:
<img width="479" height="490" alt="image"
src="https://github.com/user-attachments/assets/ca6f0ba6-93ed-4386-a94d-63b90985ef27"
/>
   
### Example of how I changed pallete to match paramedic outfit: dark
color mixed with blue
<img width="479" height="490" alt="image"
src="https://github.com/user-attachments/assets/e7acef94-2fd3-4fb4-9abf-5b83fd5cd738"
/>

### Icebox
<img width="463" height="320" alt="image"
src="https://github.com/user-attachments/assets/3e12aa10-caac-4b6e-89e8-81690d979150"
/>

(moved chem storage south)
<img width="534" height="476" alt="image"
src="https://github.com/user-attachments/assets/863a0644-520b-40a7-9deb-f1174b252757"
/>


### Tramstation
<img width="518" height="504" alt="image"
src="https://github.com/user-attachments/assets/f410f6c8-e2ee-423e-838c-03643ea1499f"
/>

(removed elevator and replaced with some public atmos equipment)
<img width="353" height="727" alt="image"
src="https://github.com/user-attachments/assets/df635bb5-5692-4367-b2b6-7c8df3c6c9a4"
/>

(theres new hall to replace the elevator path)
<img width="857" height="725" alt="image"
src="https://github.com/user-attachments/assets/15d12685-c9a0-44b5-a916-41766b12677c"
/>


### New locker that has all kind of stuff for emergencies!
<img width="186" height="155" alt="image"
src="https://github.com/user-attachments/assets/c1e40fd6-44f7-48e0-a5e4-ecb9fc562627"
/>


</details>

## Why It's Good For The Game

Since paramedic got more attention now, I feel it would be wise to
separate paramedic content (jaws and medical suit) from general medbay
and doctors.
<img width="382" height="135" alt="image"
src="https://github.com/user-attachments/assets/750e0d4c-7011-41e5-8ec4-d5f05f6c3515"
/>

For locker part: I think paramedic should have own locker with all kind
of emergency items/drip items instead of bloating items on the tables.


## Changelog

🆑
add: Added new medical access for paramedics.
map: Added paramedic dispatch on: TramStation and IceBox, removed
elevator from Tram and moved chemstorage on IceBox.
map: Paramedic dispatch area is used on every paramedic office now.
map: Medical MODsuit and Jaws of Recovery moved to paramedic office.
map: Redesigned northern medbay on MetaStation.
sprite: Paramedic locker was added.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2025-10-22 23:37:24 +00:00
Roxy d14e538393 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-15-10-2025 2025-10-15 19:34:41 -04:00
MrMelbert e85674d366 Unified CMO blues slightly, updates garment bags slightly, updates CMO locker contents slightly (#93321)
## About The Pull Request

### CMO palette update

Before - after

<img width="533" height="324" alt="image"
src="https://github.com/user-attachments/assets/c8a843a6-875d-4796-8c62-d24dd509147b"
/>

Logical follow up to #93313 and #91902

CMO now has a backpack which matches their teal palette rather than
re-using the medical doctor's blue backpack

CMO now starts with white sneakers instead of blue sneakers

### Garment bag update

Garment bags can hold backpacks, duffels, etc. 

However they CANNOT store backpacks which have ANY contents, so no risk
of storage nesting memes here.

### Misc

Removed the defib mount from the CMO's closet

Minor bugfix for being unable to swap storage positions of items which
were instantiated in a storage

## Why It's Good For The Game

- Much like the Paramedic, the CMO has had many cooks which have not
always been on the same page, so this makes their sprite a bit more
coherent.

- Heads with unique packs just tossed them in their closet which is
pretty spammy given we have four variants now. Putting them in the
garment back makes sense.

- Defib mount in CMO's locker hasn't been necessary for a while now that
all treatment centers spawn with defib mounts.

- Bugfix.

## Changelog

🆑 Melbert
image: CMO now has unique backpack/satchel/etc. sprites which matches
their teal palette.
image: CMO spawns with white sneakers instead of blue sneakers.
qol: Garment bags can hold empty backpacks/satchels/etc.
del: Defib mount removed from CMO's locker.
fix: Items stocked in a storage item by default can be
mouse-drag-swapped like any other item.
/🆑
2025-10-13 00:16:49 +02:00
xPokee b308ee9d78 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-09-24 10:13:01 -04:00
Hatterhat c0f8e7bb5c Multiload Second Pass (ft. Speedloaders Will Be Real In 2025) (#92854)
## About The Pull Request
Gets, yet again, more granular with multiload capabilities, by
introducing `AMMO_BOX_MULTILOAD_OUT_LOADED`; ammo boxes flagged with
this can speed-load ammo boxes that are currently inside another gun,
like revolver cylinders or internal magazines.

To accomodate for this, the previous flag that covered this,
`AMMO_BOX_MULTILOAD_OUT` can no longer speedload into currently loaded
magazines (e.g. internal magazines, including revolver cylinders).

Also implements a base type for speedloaders, moving .38 and .357
speedloaders along with .310 stripper clips to this type, instead of
being ammo boxes. Also features an UpdatePaths script for mappers, which
is why there's so many files touched - repathing is a pain.

Also also adds fancy types for ammo boxes, magazines, and speedloaders,
which isn't particularly player-facing.

Also also also makes the lionhunter ammo strip for the lionhunter rifle
visually three rounds only instead of being perpetually half-full (or
half-empty, depending on your pessimism).

## Why It's Good For The Game

The hypothetical case of "ammo box that holds shotgun ammo" should
probably... not... teleport as much of its ammo as possible into a
tube-fed shotgun, but should probably still be okay at reloading
magazines that actually go into shotguns. Or something.

More relevant, reloading BR-38 magazines with speedloaders, while funny,
probably also shouldn't be teleporting in six fresh rounds.

## Changelog

🆑
balance: General ammo boxes (not speedloaders, not stripper clips) can
no longer multiload into currently loaded magazines (revolver cylinders,
internal magazines).
balance: Speedloaders are now a separate type from ammo boxes, and can
only multiload into currently loaded magazines e.g. revolver cylinders.
qol: Ammo boxes, magazines, and speedloaders now have fancier types for
spawning in by admins.
sprite: Lionhunter ammo clips are visually smaller now.
/🆑

---------

Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
2025-09-20 08:10:35 +10:00
FalloutFalcon 0b677b689a generic parent type for both sabre sheaths (#92300)
## About The Pull Request
puts both the grass and normal sabre sheath types under a shared parent
type for shared behavior.
considered subtyping the storage datum but it seemed overkill. can do if
requested.
## Why It's Good For The Game
less copy paste. good if someone wants to add a clay-more sheath for
similar (believe that exists somewhere downstream), would have done it
myself but no sprites.
## Changelog
N/A
2025-07-30 17:37:32 -04:00
FalloutFalcon d74f9ae8d5 generic parent type for both sabre sheaths (#92300)
## About The Pull Request
puts both the grass and normal sabre sheath types under a shared parent
type for shared behavior.
considered subtyping the storage datum but it seemed overkill. can do if
requested.
## Why It's Good For The Game
less copy paste. good if someone wants to add a clay-more sheath for
similar (believe that exists somewhere downstream), would have done it
myself but no sprites.
## Changelog
N/A
2025-07-25 20:14:26 -06:00
SmArtKar 5833b6429c Allows attaching breath masks and tanks to operating tables (#91112)
## About The Pull Request

Air tanks (ones that can slot into tank holders) and breath masks
(normal, surgical and muzzle, which has been repathed to be a subtype of
breath masks instead of being a subtype of a muzzle, for some reason)
can now be attached to operating tables, and removed using
wrenches/screwdrivers respectively.
Right-clicking on an operating table with a mask attached will put it in
your hand akin to defib paddles (similarly snapping back if you walk
away). Dragging the table with an attached tank onto the person lying on
it will attempt to connect their internals to the attached tank.

Also since I had to adjust the table sprite, its lights now change color
based on whenever there's an active patient and an active operating
computer.

##### This is a commission for Improvedname/Ezel

## Why It's Good For The Game

Anesthetics are incredibly clunky to use, as either the person
themselves, or you as a surgeon, need to equip the tank onto whoever is
being operated on, then equip and activate the mask. This should make
them a bit less tedious, so maybe they'll actually see some use.

## Changelog
🆑
add: You can now attach anesthetic tanks and breathing masks to surgical
tables.
/🆑
2025-06-15 15:53:25 -04:00
SmArtKar 7f693d1395 Allows attaching breath masks and tanks to operating tables (#91112)
## About The Pull Request

Air tanks (ones that can slot into tank holders) and breath masks
(normal, surgical and muzzle, which has been repathed to be a subtype of
breath masks instead of being a subtype of a muzzle, for some reason)
can now be attached to operating tables, and removed using
wrenches/screwdrivers respectively.
Right-clicking on an operating table with a mask attached will put it in
your hand akin to defib paddles (similarly snapping back if you walk
away). Dragging the table with an attached tank onto the person lying on
it will attempt to connect their internals to the attached tank.

Also since I had to adjust the table sprite, its lights now change color
based on whenever there's an active patient and an active operating
computer.

##### This is a commission for Improvedname/Ezel

## Why It's Good For The Game

Anesthetics are incredibly clunky to use, as either the person
themselves, or you as a surgeon, need to equip the tank onto whoever is
being operated on, then equip and activate the mask. This should make
them a bit less tedious, so maybe they'll actually see some use.

## Changelog
🆑
add: You can now attach anesthetic tanks and breathing masks to surgical
tables.
/🆑
2025-06-09 16:29:02 +01:00
MrMelbert 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)
/🆑
2025-05-22 21:30:07 -04:00
MrMelbert 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)
/🆑
2025-05-19 13:32:12 +10:00
Ghom 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.
/🆑
2025-04-29 18:22:44 -06:00
Ghom 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.
/🆑
2025-04-23 20:18:26 +00:00
nevimer 12d995aeea Squashed commit of the following:
commit cb550ab79badae3ffd493dcee24d96f7ad146ed6
Merge: 732416f01d8 2fac5d45a6
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Mon Apr 14 14:40:04 2025 -0400

    Merge branch 'master' into upstream-25-04a

commit 2fac5d45a6
Author: Arturlang <24881678+Arturlang@users.noreply.github.com>
Date:   Mon Apr 14 01:11:47 2025 +0100

    bring back heretic mute ghoul maxhp to 135 HP (#3464)

    ## About The Pull Request
    bring back heretic mute ghoul maxhp to 135 HP, these are the changes
    made in
    https://github.com/Bubberstation/Bubberstation/pull/2972
    ## Why It's Good For The Game
    otherwise flesh heretic is really sad
    ## Proof Of Testing
    numbers change, no need
    ## Changelog
    no cl

    ---------

    Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>

commit e9c4522c27
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 14 01:59:19 2025 +0200

    Automatic changelog for PR #3453 [ci skip]

commit 2d595eba4f
Author: shellspeed1 <46614774+shellspeed1@users.noreply.github.com>
Date:   Sun Apr 13 16:58:54 2025 -0700

    Fixes bitrunning sim having cybersun comms and also makes sure persistence borgs have correct key (#3453)

    ## About The Pull Request

    What it says on the tin
    ## Why It's Good For The Game

    Its best to not let bitrunners ghost spawns talk on comms
    ## Proof Of Testing

    I just did my last cpa today, I'll test this later. Besides its 3 lines
    with just an item swaped.
    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑
    fix: Bitrunning sims no longer have comms access
    fix: Borgs given the persistence access upgrade no longer default to
    interdyne and get cybersun comms instead
    /🆑

    Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>

commit 394e8d64d4
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 23:24:50 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 49141446bf
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 14 00:18:15 2025 +0200

    Automatic changelog for PR #3497 [ci skip]

commit 0332c060a8
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sun Apr 13 18:17:52 2025 -0400

    Xenoarch Machine QOL (#3497)

    <!-- 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

    A little treat for xenoarch
    - The xenoarch bag can now hold broken items and useless relics in
    addition to strange rocks
    - You can use the bag on both the researcher and the recoverer to dump
    the contents in
    - The digger and the researcher make a sound now

    ## Why It's Good For The Game

    A bag that holds only one type of item is annoying, you get a lot of the
    other two items too

    ## Proof Of Testing

    <!-- Compile and run your code locally. Make sure it works. This is the
    place to show off your changes! We are not responsible for testing your
    features. -->
    <details>
    <summary>Screenshots/Videos</summary>

    ![image](https://github.com/user-attachments/assets/e314f9e2-efd3-4e4a-a7ea-412c674f88bf)

    </details>

    ## 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 its 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. -->

    🆑
    qol: the xenoarch bag can now hold broken items and useless relics
    qol: you can use the bag on the researcher and the recoverer to dump
    items in
    sound: the digger and researcher now make a sound when they complete a
    cycle
    /🆑

    <!-- 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. -->

    <!-- By opening a pull request. You have read and understood the
    repository rules located on the main README.md on this project. -->

commit 2b8c074406
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 19:47:30 2025 +0200

    Automatic changelog for PR #3498 [ci skip]

commit e613940ada
Author: nevimer <77420409+nevimer@users.noreply.github.com>
Date:   Sun Apr 13 13:47:04 2025 -0400

    restores RCD vending, moves RCD's to lockers (#3498)

    ## About The Pull Request
    moves RCD's from engineers backpacks to their lockers roundstart - to
    accommodate the stowaway change aswell as keep a tab on infinite station
    resources.
    ## Why It's Good For The Game

    Above point

    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑
    balance: reenabled the RCD vendors and moved RCD's from spawning in
    backpacks to lockers.
    /🆑

commit 732416f01d8ccc6e082cbdbeb60b30c461d8e965
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sun Apr 13 03:03:20 2025 -0400

    these use GMM prices and thus fluctuate

commit 99f097d67faf17569711d670d5891103d96932b1
Merge: 790b64602cd 945479a622
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sun Apr 13 02:12:01 2025 -0400

    Merge branch 'master' into upstream-25-04a

commit 945479a622
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sun Apr 13 00:59:23 2025 -0400

    Fix hot spring runtime related to duplicate elements (#90555)

    If something is mapped to spawn in on a hot spring tile, the tile will
    add the immerse element in `/turf/open/water/Entered` before
    `Initialize` runs, and when it does there's no check if the element has
    already been added, unlike other spots where the immerse element is
    added. This fixes that by adding a check on the call in `Initialize`.

commit 3472fddc11
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Sun Apr 13 04:16:19 2025 +0000

    Automatic TGS DMAPI Update (#2743)

    This pull request updates the TGS DMAPI to the latest version. Please
    note any changes that may be breaking or unimplemented in your codebase
    by checking what changes are in the definitions file:
    code/__DEFINES/tgs.dm before merging.

    Full changelog can be found
    [here](https://raw.githubusercontent.com/tgstation/tgstation-server/gh-pages/changelog.yml).

    - Added compatibility with SpacemanDMM's `redefined_proc` lint. (#2058
    Cyberboss)
    #tgs-dmapi-release

    Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>

commit e5630753ae
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 05:53:13 2025 +0200

    Automatic changelog for PR #3481 [ci skip]

commit ac3fea9660
Author: chestlet <98193039+chestlet@users.noreply.github.com>
Date:   Sat Apr 12 20:52:34 2025 -0700

    Nova Port: RB-MK2 GUI Rework (#5136) (#3481)

    ## About The Pull Request
    A significant [rework of the RB-MK2
    GUI](https://github.com/NovaSector/NovaSector/pull/5136) that I did over
    on Nova. The one you guys have now is painful to use in comparison so
    let's get it up to snuff.

    ## Why It's Good For The Game
    More information makes the RB-MK2 easier to use and teach in character.
    With how the GUI is currently, it gives no intuitive explanation for
    what it's doing. You can't tell what's going on with it.

    ## Proof Of Testing

    <details>
    <summary>Screenshots/Videos</summary>

    https://github.com/user-attachments/assets/7a178ac2-df8e-40d3-a6f3-b6aa617b69fd

    </details>

    ## Changelog
    🆑 Chestlet
    admin: Improved RB-MK2 logging so admins have a full trace of exactly
    what happened with it.
    fix: Corrected 'tritium usage' math in the RB-MK2.
    code: We've noticed that the Radioscopical Bluespace Reactor Mark Two
    blueprints provided to our stations came with antiquated firmware. This
    issue has been rectified. (Significant rework of the RB-MK2 GUI)
    /🆑

commit 071fcd84a8
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 05:48:58 2025 +0200

    Automatic changelog for PR #3495 [ci skip]

commit 0a5f60a36c
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 23:48:24 2025 -0400

    Xenoarch machines cleanup (#3495)

    ## About The Pull Request

    Clean up the code for xenoarch machines some because it made me sad.
    - Changes `attackby`'s to `item_interaction`
    - Keep a list of xenoarch items in contents instead of storing them in
    **an instance of `/obj/item` (yes the abstract concept of an item)**
    - Add context tips for all item interactions and removes that info from
    examine text
    - Switched a list to `static`
    - Add assoc list of `broken_item` types to reward pools instead of
    having a nightmare ladder of `istype` checks

    ## Why It's Good For The Game

    Fixes #3442

    ## Proof Of Testing

    Scout's honor

    ## Changelog
    🆑
    qol: xenoarch machines have context tooltips now
    fix: fixed xenoarch diggers not working
    /🆑

commit 16f02c756b
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 05:34:54 2025 +0200

    Automatic changelog for PR #3441 [ci skip]

commit ede9fc1646
Author: Bombermansam <Bombermansam@yahoo.com>
Date:   Sat Apr 12 23:34:09 2025 -0400

    [Modular] Adds crowbars to standard borg models that do not have them (#3441)

    ## About The Pull Request
    Adds crowbars to standard borg models that do not have them.
    ## Why It's Good For The Game
    This is a QOL addition, it should not affect balance.

    Half the borg models in the game do not have crowbars and can get stuck
    behind doors if the power fails which is no fun for anyone. This fixes
    it.
    ## Proof Of Testing
    It compiles and was tested locally.
    <details>
    <summary> Screenshots </summary>

    ![dreamseeker_18bfQxpDIz](https://github.com/user-attachments/assets/2dfc12f4-33a1-4ce9-8440-3ea4a098d6e9)

    ![dreamseeker_42TYSMAdVu](https://github.com/user-attachments/assets/5d71bf3f-d20e-47a1-b75e-ece7a10014b0)

    ![dreamseeker_NHBJgPvAtz](https://github.com/user-attachments/assets/56930158-73bb-4917-bb6d-ed6b09ff54aa)

    ![dreamseeker_p9yVo1VNaF](https://github.com/user-attachments/assets/761615e7-dad6-4086-a408-c2fca10f3d58)

    </details>

    ## Changelog
    🆑
    add: Adds Crowbars to Service, Medical, Clown, Sec and Peacekeeper borgs
    /🆑

commit 8e4d6f7052
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 05:32:18 2025 +0200

    Automatic changelog for PR #3491 [ci skip]

commit 0cdf875cec
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 03:32:09 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit c6f88a026e
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 23:31:16 2025 -0400

    Fix HEV armor not fully initializing (#3491)

    ## About The Pull Request

    `ADD_TRAIT`/`REMOVE_TRAIT` don't take lists you need to use a proc for
    that

    ## Why It's Good For The Game

    Fixes #3484

    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    ![image](https://github.com/user-attachments/assets/c11c26f8-2f80-44c8-8f94-513155b7f316)

    </details>

    ## Changelog
    🆑
    fix: fixed HEV suit not turning on properly
    /🆑

commit f93466e6ab
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 05:18:39 2025 +0200

    Automatic changelog for PR #3486 [ci skip]

commit 952a110077
Author: ariaworld <143797359+ariaworld@users.noreply.github.com>
Date:   Sun Apr 13 05:18:04 2025 +0200

    [FIX?] - Brings robotic brain surgery in line with organic brain sugery/lobotomy after the recent update (#3486)

    ## About The Pull Request
    As title!
    ## Why It's Good For The Game
    I originally opened this as an issue because I wasn't sure if this was
    intended, it's why I labeled it as [FIX?]
    Currently organic brain surgery heals the previous tiers of traumas as
    well which makes sure there's no leftover traumas left and also removes
    the RNG re-roll, applying a status effect instead. This PR brings the
    robotic surgery/lobotomy in line with the organic one in a few ways:

    1. Robotic blessed lobotomy now requires holy water as well (just like
    organic)
    2. Fix posibrain surgery now cures TRAUMA_RESILIENCE_SURGERY traumas as
    well
    3. Reticulate splines surgery now cures TRAUMA_RESILIENCE_SURGERY and
    TRAUMA_RESILIENCE_LOBOTOMY traumas as well
    4. Replaced RNG prob(75) roll with the 15-minute status effect that was
    added to organic brain surgery.

    This should balance/fix the robotic brain surgery to the recent change
    that was done to the organic brain surgery. Only issue is the fact how
    the original surgery was coded: there was no RNG roll for fix posibrain
    surgery, while the normal organic surgery did.
    Please feel free to close this PR if this was an intended feature/there
    are issues with potential balance arguments.
    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>
    (It compiles, very simple code just handles surgery steps)
    </details>

    ## Changelog
    🆑 Goku
    balance: Robotic blessed lobotomy now also requires holy water (just
    like the organic surgery)
    balance: Robotic blessed lobotomy requires liquid solder instead of
    Palladium Synthate Catalyst
    fix: Fix posibrain surgery now also cures surgery-tier brain traumas
    balance: Reticulate splines surgery now also cures lower tier brain
    traumas (surgery and lobotomy)
    balance: Replaced advanced robotic brain surgery RNG roll with the
    15-minute vulnerability status effect that was added to organic brain
    surgery
    /🆑

    ---------

    Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>

commit 790b64602cd2e59b8397c4fe2451d2c14bddb546
Merge: 7d39bddbcb2 5e1b40cf89
Author: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Date:   Sat Apr 12 20:13:11 2025 -0700

    Merge branch 'master' into upstream-25-04a

commit 5e1b40cf89
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 05:08:22 2025 +0200

    Automatic changelog for PR #3492 [ci skip]

commit 5e94554873
Author: ariaworld <143797359+ariaworld@users.noreply.github.com>
Date:   Sun Apr 13 05:07:55 2025 +0200

    [FIX] Fixes Wooden shelves turning into metal racks when broken. (#3492)

    ## About The Pull Request
    Title!
    ## Why It's Good For The Game
    Bugfix, my immersion was ruined
    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    ![shelf](https://github.com/user-attachments/assets/0bdb3fd2-0b85-4672-a02f-0772a4cb4f20)

    </details>

    ## Changelog
    :cl:Goku
    fix: Fix wooden shelves turning into metal rack parts when broken.
    /🆑

commit 7fed3cb7e4
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 05:07:00 2025 +0200

    Automatic changelog for PR #3493 [ci skip]

commit 2d38b200a0
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Sat Apr 12 20:06:37 2025 -0700

    Allow hypospray in medical pouch (#3493)

    ## About The Pull Request

    Adds hypospray and cable to the allowed list of items in the medical
    pouch

    ## Why It's Good For The Game

    Commonly held items, other reagent containers are accepted but hypo is
    missing.

    ## Changelog

    🆑 LT3
    qol: The medical pouch can now hold hyposprays and cable coil
    /🆑

commit 7d39bddbcb2e775207a4a3e72a3940f9fbf3b0f1
Merge: fde55e27444 bb642474217
Author: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Date:   Sat Apr 12 17:25:22 2025 -0700

    Merge branch 'upstream-25-04a' of https://github.com/Bubberstation/Bubberstation into upstream-25-04a

commit fde55e2744421b10f115724f70f3db8339b13df0
Author: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Date:   Sat Apr 12 17:25:20 2025 -0700

    screenshots

commit cfa0c20656
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 01:39:06 2025 +0200

    Automatic changelog for PR #3478 [ci skip]

commit 0397536620
Author: CatoChristopherMrow <johnmaddentickeledmyrear@gmail.com>
Date:   Sat Apr 12 19:38:42 2025 -0400

    Makes tackle gloves reskinnable (#3478)

    ## About The Pull Request
    Makes tackle gloves reskinnable to their blue, red, and black variants.
    ## Why It's Good For The Game
    Stops basic sec gear forcing you to either wear clashing colors or not
    get the benefit of standard equipment. Viva la matching colors.
    ## Proof Of Testing
    Works on my machine
    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑 UvvU
    add: Tackle gloves are now reskinnable.
    /🆑

    ---------

    Co-authored-by: Ian Yanik <Iwantpornspam@gmail.com>

commit 42b725836a
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sat Apr 12 23:24:45 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit bb642474217244fd233372d9c68cb4bab5f871f7
Merge: 72beef087ea c872e81588
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Sat Apr 12 16:10:29 2025 -0700

    Merge branch 'master' into upstream-25-04a

commit 72beef087ea8a1b291e286b09a0eb5a6713ba255
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 15:26:15 2025 -0400

    this now returns an icon path not an icon object

commit 4e85c985ee77a37b44dcef393b815a04421463b7
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 15:08:12 2025 -0400

    broken dmi

commit c872e81588
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sat Apr 12 07:45:40 2025 +0200

    Automatic changelog for PR #3490 [ci skip]

commit 27801b991c
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 01:45:17 2025 -0400

    Fix admin chat buttons to cancel/refund storyteller events not working (#3490)

    ## About The Pull Request

    The chat messages that get sent when a storyteller event is about to run
    try to call `Topic` on the scheduled event datum but there isn't
    actually a `Topic` proc defined for them

    ## Why It's Good For The Game

    It's mean to trick admins with fake buttons

    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    ![image](https://github.com/user-attachments/assets/41d0df79-3220-4b8e-8f86-63df97b2d540)

    </details>

    ## Changelog
    🆑
    admin: the cancel and refund buttons in storyteller event notifications
    will actually do something now
    /🆑

commit bb14605128db2b1b5390d60b28665ed0ceae154a
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 01:06:39 2025 -0400

    im tired

commit 1245d5145e4f41d63dbe983355ef4619b6441655
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 00:40:09 2025 -0400

    what if the world was made of pudding

commit 7011b910d3bfaa0dba4a3d118721ad1d42a7625c
Merge: b8c00cbd266 e9ede320c9
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 00:31:56 2025 -0400

    Merge branch 'master' into upstream-25-04a

commit b8c00cbd2660017d578f07ce20c3732dcfcdb60f
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 00:31:01 2025 -0400

    silence linters

commit 3a3ea510ed12812fba0d97f545bf87749c16831a
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 00:00:12 2025 -0400

    the economy is in shambles

commit 0a3e17e897b270dc19a63038b8e99e15ff9242ce
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 23:43:06 2025 -0400

    missing icons

commit fefc1348f722cf26bb407e6f7a5ba98184867fba
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 23:24:46 2025 -0400

    no override for this

commit 952f2a7502d972093e1f86bd9fa20bf3ea9788bf
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 23:16:07 2025 -0400

    shotgun icon states

commit 8e256d21c2bdfd2136f60705a3b5f7600ca6c9e7
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 23:02:28 2025 -0400

    no icon

commit 60164e1a4c038661d41bbb25a1e0e536147455a2
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 22:39:35 2025 -0400

    fucking capital letters?

commit 1e395535db671e61ce6514c35928a900d61a3570
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 22:28:06 2025 -0400

    GRRRRRR

commit 68e35b0068388eb94d1c9ec5b865787b1cdc300a
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 21:19:15 2025 -0400

    wrong

commit 9f8c9499f2890fad3c479d42c12888b1e0c55a3a
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 20:59:17 2025 -0400

    just put your icons anywhere who gives a shit

commit f6bc1091867a3b234f2634e8cb120eae5b0053d9
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 19:58:40 2025 -0400

    buh

commit edc876bff750ddce0593e917f5a68de02383c55e
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 19:49:32 2025 -0400

    added our GAGS configs to deploy

commit e9ede320c9
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 11 23:23:21 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit c726e4ee2d231d48334d43b8ce42d8b4e70b52b0
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 18:50:04 2025 -0400

    fixed recipe foodtypes

commit 9e23291b14371e4703a38ae1711b1fe5b75cbf37
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 18:24:53 2025 -0400

    Fix changelogs

commit bb8477826614c6e81285c5586de07ee26686c6b1
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 17:59:23 2025 -0400

    number of args changed for inject

commit f00ed38c1d
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 11 11:03:02 2025 +0200

    Automatic changelog for PR #3456 [ci skip]

commit 29b3c8daba
Author: aKromatopzia <94389683+aKromatopzia@users.noreply.github.com>
Date:   Fri Apr 11 17:02:38 2025 +0800

    Smolraptor Updates (#3456)

    ## About The Pull Request
    Adds blue and red sec smolraptors, makes janitor an alt of service

    ![Screenshot_50](https://github.com/user-attachments/assets/a5be3ed8-75da-4939-937c-0261dfcb1953)

    ## Proof Of Testing
    it works

    ## Changelog

    🆑
    add: sec smolraptors
    image: fixes some errors in smolraptors
    /🆑

commit 7c0978a47f
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 11 08:21:22 2025 +0200

    Automatic changelog for PR #3463 [ci skip]

commit 04fd2b0a8a
Author: ArrisFairburne <arrisfairburne@gmail.com>
Date:   Fri Apr 11 02:20:59 2025 -0400

    Synth brain PDAs now have departmental PDA apps pre-installed (#3463)

    ## About The Pull Request

    Synth brains now start with your department's apps pre-installed. For
    example, Scientist synths now start with NT Science Hub. They also now
    have double the storage space compared to the basic PDA.

    ## Why It's Good For The Game

    Convenience.
    Also, synth PDAs have sort of existed in a weird limbo where (at least,
    from my point of view having talked to some others) most synth players
    just don't actually use one of the defining features of their race
    because normal PDAs are largely better and more convenient, hopefully
    this change emphasizes their abilities.
    The doubled brain storage space is just so that synth brain PDAs can
    comfortably house whatever programs come with being a dept. head.
    Balance wise, I doubt it will affect anything (what could you even do
    with the extra storage space, short of the dept. head apps? basic crew
    apps fit comfortably on the basic PDA limit, synths can't be emagged for
    expensive syndie apps, and synths can't store files on their brain via
    disks).

    ## Proof Of Testing

    (image taken after I spawned as RD; this is the synth brain PDA)

    ![image](https://github.com/user-attachments/assets/9a4dc579-f5a3-4df2-ad39-17aace34a250)

    ## Changelog
    🆑
    qol: Synthetic crew now spawn in with PDA apps relevant to their work
    station.
    bal: Synthetic crew brain PDAs now have 128 max capacity points (was
    previously 64)
    /🆑

commit eaa6352aff
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 11 08:20:28 2025 +0200

    Automatic changelog for PR #3471 [ci skip]

commit 02f3cfdb00
Author: ariaworld <143797359+ariaworld@users.noreply.github.com>
Date:   Fri Apr 11 08:20:05 2025 +0200

    [MAPPING]: Change Kilo Station dorms area type from Locker to Dorms. (#3471)

    ## About The Pull Request
    Makes sure Kilo Station's dorms area actually is a Dorms area.
    ## Why It's Good For The Game
    Other stations' dorms are inside actual Dorms areas, effectively
    granting protection from events like sudden brain trauma/heart attack,
    but Kilo Station didn't have this, they were classified as lockers
    instead.
    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    ![e](https://github.com/user-attachments/assets/ae6e79db-d68f-4895-a661-e5fa5b0383de)
    </details>

    ## Changelog
    :cl:Goku
    map: Kilo Station's Dormitories area type is now classified as
    dormitories, not as a Locker room.
    /🆑

commit 5266275bc4
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 11 07:03:33 2025 +0200

    Automatic changelog for PR #3485 [ci skip]

commit 0a38cf2824
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 01:03:07 2025 -0400

    Fix examine menu character preview being tiny (#3485)

    ## About The Pull Request

    Upstream fixed the tiny character preview but it requires a little tweak
    on implementations

    ## Why It's Good For The Game

    I can't see the blorbo

    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    ![image](https://github.com/user-attachments/assets/48961934-05ed-4cfe-b025-26628bea661c)

    </details>

    ## Changelog
    🆑
    fix: fixed character preview in the examine window being tiny
    /🆑

commit 3fc7296b82
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 11 06:23:15 2025 +0200

    Automatic changelog for PR #3483 [ci skip]

commit 1d52e91fd0
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 00:22:51 2025 -0400

    Fix double box on vote results chat message (#3483)

    ## About The Pull Request

    There's a redundant override in `vote.dm` to enclose the vote results in
    a purple examine box, this is the default way votes are displayed now so
    it's making vote results appear as a box within a box

    ## Why It's Good For The Game

    Looks wrong

    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>
    Before:

    ![image](https://github.com/user-attachments/assets/e85781f3-ee68-4581-8a26-42aa577479f9)

    After:

    ![image](https://github.com/user-attachments/assets/b9ffda2a-950b-42e3-b476-c3b62dadd9a0)

    </details>

    ## Changelog
    🆑
    fix: fixed vote results in chat having an extra box around them
    /🆑

commit ab74044fc6
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 11 06:20:31 2025 +0200

    Automatic changelog for PR #3363 [ci skip]

commit cb06f207d3
Author: Kepteyn <94123167+Kepteyn@users.noreply.github.com>
Date:   Fri Apr 11 05:20:07 2025 +0100

    Just a couple more hotel rooms (#3363)

    ## About The Pull Request

    This adds four (and a half) new infinidorm hotel rooms -- A bar themed
    one, for when you want bar RP that's less public; a nightclub themed
    one; an space themed one for the spaceophilliacs who want to bang in
    space (or an airlock), and finally an oasis themed one, with a day and a
    night version.

    It also fixes the lights in the Library room, given we're no longer
    downstreaming from Skyrat, and it adds a template dmm that should make
    it easier for people to add new rooms should they wish - the plaque on
    the floor represents the spawn point.

    ## Why It's Good For The Game

    This adds even more variety to the infinidorm room options for people to
    roleplay in as a ghost. Or to _roleplay_ in. The bar one in particular
    provides an option for people who want to do a bar RP with some friends
    without getting pesky interruptions from their fellow human beings who
    feel the need to start a gunfight in the bar.

    ## Proof Of Testing

    All the new hotel rooms and the library have been tested in game, and
    are working quite nicely! The template map does not show up as an option
    in-game, as it exists to help mappers.

    ## Screenshots
    <details>
    <summary>Foxbar</summary>

    ![Untitled](https://github.com/user-attachments/assets/ae28e61e-c7db-4b77-8134-82e49ceced3a)

    </details>
    <details>
    <summary>Nightclub</summary>

    ![Untitled](https://github.com/user-attachments/assets/fcc200f1-59e9-402e-aa64-5d97bced377d)

    </details>

    <details>
    <summary>EVA</summary>

    ![Untitled](https://github.com/user-attachments/assets/d2f08b34-921b-4a1c-9c7a-927e04113b8c)
    _The floor is, infact, fake space, and is surrounded by a fake-space
    wall. You will survive nude in space here. Spacesuits still provided._
    </details>

    <details>
    <summary>Oasis</summary>

    ![Untitled](https://github.com/user-attachments/assets/38a9c04b-57c9-4b65-8208-f57abe526eab)
    _Only one is shown for brevity's sake, as the only difference between
    day and night versions is the strength of the external lighting_

    </details>

    <details>
    <summary>Template</summary>

    ![Untitled](https://github.com/user-attachments/assets/9630b870-21d5-47d2-aecf-40d343458451)
    _The template room. The bluespace border must be indestructible solid in
    some form, while the dark grey flooring represents the wall's location
    on the defautl Hilbert room. The door is located where the default door
    is on it, and the plaque on the ground shows where the player will
    spawn_

    </details>

    ## Changelog

    🆑
    add: Added infinidorms: Fox Bar; The Nightclub; EVA; and Oasis (day and
    night versions)
    add: Added a mapping template for creating new infinidorms at
    modular_skyrat\modules\hotel_rooms
    fix: modified the lights of the Library infinidorm so it's not so damn
    dark.
    /🆑

commit 700856e3c5
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 10 23:25:40 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 02353b9ec2
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 11 01:05:38 2025 +0200

    Automatic changelog for PR #3475 [ci skip]

commit f1722bb1c6
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Thu Apr 10 16:05:12 2025 -0700

    Disable lean reset on direction change (#3475)

    ## About The Pull Request

    Edits TG's lean component to perform the same as the pixel shift
    component

    ## Why It's Good For The Game

    Consistent shifting movement

    ## Changelog

    🆑 LT3
    qol: Leaning no longer resets with directional change
    /🆑

commit 4a5c80e1813ecaf7d26ddeabf2593d2b44c86dcb
Merge: b908b32d387 ada9345244
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Thu Apr 10 10:46:20 2025 -0700

    Merge branch 'master' of https://github.com/Bubberstation/Bubberstation into upstream-25-04a

commit ada9345244
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 10 19:16:21 2025 +0200

    Automatic changelog for PR #2896 [ci skip]

commit 472893ae5e
Author: Manatee <74586965+MajManatee@users.noreply.github.com>
Date:   Thu Apr 10 12:15:56 2025 -0500

    Tarkon Tweaks and Xeno Changes (#2896)

    ## About The Pull Request

    Update as of 01/26

    So that was a lie

    Anyways I completely remade tarkon, which is what I ORIGNIALLY wanted to
    do, but used a lot of the pre-existing tarkon assets to do so, to
    maintain the same feel.

    Some NEW NEW features (as the project grew in scope) include:

    Med/RND/Engineering are now separate "Islands" like charlie (tarkon was
    always meant to be like that anyhow
    Each one has a few xenos, and a new "Emergency power generator"
    Scanning this with the new (not a ripoff) Hack-C tool will call in a
    repair drone (Original content) to repair it, and it needs to be
    defended from the xenos it alerts.
    Sucsesfully completing a defence will reward sickass weapons and gear
    you wouldn't normally ever get to see, making further areas easier, and
    a key for the final area.
    Once all 3 keys are obtained, and the areas are re-secured, you can go
    to the boss area and clear out the AI sat / command zone.

    A bitrunning server to allow them to make their own bitden (it's the
    first prototype, and the rest must be researched so it's not
    shift-start)

    more floor safes with various things like some ore thumpers and two
    bluespace beakers

    Crates! Someone misfiled a crate of goodies and it got sent here! These
    orders should be delivered to their owners! I'm sure they would
    appreciate it! Probably...

    A Recycler (Amazing)

    A produce order console! Now you can actually cook whatever you want!
    And it gives you a reason to sell stuff for money!

    more stuff, lots more stuff. things keep getting added the longer it
    takes for this to be looked at.

    Also adds three new variants of xenobio, and two new variants of the
    cargo bay. One cult (we miss you cult), one carp, and a monkey themed
    xenobio.

    ## Why It's Good For The Game
    Part 1 of my attempt to make tarkon feel better to play. The overall
    gameplay was very "Meta" and didn't really give you any reason to clear
    out xenos or the threats. Who knows what might come next.
    Tarkon was pretty stale. A bit of new stuff might be nice. plus a reason
    to use their shuttle is good.

    Furthermore, tarkon WILL run on solar, so if you REALLY don't want to,
    you don't HAVE to go and clear everything out.

    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    ![image](https://github.com/user-attachments/assets/f707090e-426c-4d63-b171-8fdfa33a0489)

    ![image](https://github.com/user-attachments/assets/26b97663-53c4-49b5-827d-484b6aae9b38)

    ![image](https://github.com/user-attachments/assets/94d03e35-8a44-4d39-b8e7-5fa1a722ff8e)

    ![image](https://github.com/user-attachments/assets/a865263b-6e62-409e-a537-7c5e157e21f7)

    ![image](https://github.com/user-attachments/assets/7d8edb71-5dec-469b-9a39-fe3f1305b127)

    ![image](https://github.com/user-attachments/assets/1bae535a-82e3-43f9-93a0-d2983e011ea7)

    ![image](https://github.com/user-attachments/assets/2ad382a1-58e8-4846-a575-2e4bc732216d)

    ![image](https://github.com/user-attachments/assets/2a41c51c-d447-413f-a4f2-3c272c8ddd15)

    ![image](https://github.com/user-attachments/assets/aaae91bd-aec4-4f0d-93c8-857e63416562)

    ![image](https://github.com/user-attachments/assets/4e89da8d-bbc7-4084-bb8d-353ec032ca4c)

    I did test it, and run the wave defense, it DOES work.
    </details>

    ## Changelog
    🆑
    add:  BUNCH of new tarkon things!
    map: Tarkon QOL changes
    /🆑

    ---------

    Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
    Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com>

commit b908b32d387ffe9a2b40d2d25a03cd04c2e62868
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Thu Apr 10 08:35:37 2025 -0700

    Compiletimes done

commit a9601004a82714a72f62e9b5db07d2adde27c0c3
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Thu Apr 10 08:35:26 2025 -0700

    We are so comically stupid

commit 0f8d37991f
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 10 00:05:02 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 31897a95e9
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 10 01:54:47 2025 +0200

    Automatic changelog for PR #3468 [ci skip]

commit 385b734424
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 10 01:54:32 2025 +0200

    Automatic changelog for PR #3470 [ci skip]

commit 0903ee683e
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Wed Apr 9 19:54:20 2025 -0400

    Fix shuttles no longer making sounds or (un)bolting doors (#3468)

    ## About The Pull Request

    The code for these things got lost in an upstream because shuttle code
    got split into multiple files

    ## Why It's Good For The Game

    Fixes #3251

    ## Proof Of Testing

    I tested it and the shuttle went bwwwwrrmmmmm pshewww and the door bolts
    went chk

    ## Changelog
    🆑
    fix: fixed shuttles missing landing/take off engine sounds
    fix: fixed shuttles not bolting/unbolting their doors when moving
    /🆑

commit e5b57bc08c
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Wed Apr 9 16:54:09 2025 -0700

    Fix meow emote for cat tongues (#3470)

    ## About The Pull Request

    Fixes the meow emote to use the correct emote if you have a cat tongue

    ## Why It's Good For The Game

    MEOW.

    ## Changelog

    🆑 LT3
    fix: Mobs with cat tongue get their alternate meow sound back
    /🆑

commit 204ea57363
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Wed Apr 9 23:23:16 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit ce5944e0733f4c5985e2e48878a02c0c35463d0a
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 9 08:19:09 2025 -0700

    6 compiletime errors left

commit d1905c44f5
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Wed Apr 9 14:03:13 2025 +0200

    Automatic changelog for PR #3461 [ci skip]

commit 6c3bc53604
Author: Odairu <39929315+Odairu@users.noreply.github.com>
Date:   Wed Apr 9 08:02:51 2025 -0400

    Deathmatch now stores and reapplies your respawn timer prior to being spawned (#3461)

    ## About The Pull Request
    Title
    ## Why It's Good For The Game
    item number TWO on the list
    ## Proof Of Testing

    ![image](https://github.com/user-attachments/assets/3f6fd5d7-1d62-41a5-9c97-3178585f350a)
    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑
    code: deathmatch doesn't reset your respawn timer
    /🆑

commit f890cb36b9265f011a187b4f332812590838292c
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 9 01:45:20 2025 -0700

    some color stuff

commit fb849a2a8ebc2166915cfbec1e850510678b2f22
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 9 01:38:18 2025 -0700

    Fixes

commit 381d77fa68707cc5315b698474df026c2103166c
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 9 01:20:20 2025 -0700

    We love guncode and refactors!!!!

commit f30bb6ca01319218795e4004219938aa3d976eb3
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 9 01:00:40 2025 -0700

    I love cherry picking!!!

commit 6677a4c7bbe3c7536276178c841290a489d0a4a9
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 9 01:00:27 2025 -0700

    so apparently some dumbass on nova reused the turret flag bitfield and it only now runtimes

commit 7acc721baadbdea3d3795a45b9837cfeb4fd4fd0
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 9 00:58:48 2025 -0700

    Martials and arcade rework updates

commit bf9f393204fe7d40d5e57e76db870eb1a32aed25
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 9 00:47:58 2025 -0700

    This might break taur icons, remember to test once we compile

commit 3bc256cb16ca2e85b78830345bba0a487f49fc17
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 9 00:41:03 2025 -0700

    Several varchanges from tg

commit 76f5dc1b5f
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Tue Apr 8 23:23:40 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 538049c4cd4960d2c81c43f2e387896049fb02c7
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Tue Apr 8 20:00:59 2025 +0200

    reagent applicators fixes

commit df43e50d68419d2f24bd62eef0432bda8394cc7d
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Tue Apr 8 19:56:27 2025 +0200

    Some missed merge fixes

commit 0f0838bb35
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Tue Apr 8 09:27:36 2025 +0200

    Automatic changelog for PR #3399 [ci skip]

commit 234a410586
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Tue Apr 8 09:27:29 2025 +0200

    Automatic changelog for PR #3397 [ci skip]

commit 722b51eb07
Author: Iamgoofball <iamgoofball@gmail.com>
Date:   Tue Apr 8 02:27:12 2025 -0500

    [MODULAR] Removes the 60 round Sol drum from being printable in Security (#3399)

    ## About The Pull Request

    Removes the 60 round Sol drum from being printable in Security

    ## Why It's Good For The Game

    After discussing magazine size standardization, this came up and to be
    100% honest, the crew does not need LMG ammo capacity on any of their
    guns. Even though it's illegal contraband to use(yes, Illegal Tech is
    still fuckin' Illegal lol), it's still a lot of ammo capacity that we
    don't really want the crew to have.

    ## Proof Of Testing

    Just deleting a research design.

    ## Changelog

    🆑
    del: Removes the 60 round Sol drum from being printable in Security
    /🆑

    ---------

    Co-authored-by: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>

commit 3e7223b959
Author: Iamgoofball <iamgoofball@gmail.com>
Date:   Tue Apr 8 02:27:06 2025 -0500

    [MODULAR] Puts the Sol/Carwo/Romulus/Szot/Trappiste gun magazine sizes in line with /tg/ standards (tiny for everything but rifles which are normal) (#3397)

    ## About The Pull Request

    Puts the Sol/Carwo/Romulus/Szot/Trappiste gun magazine sizes in line
    with /tg/ standards (tiny for everything but rifles which are normal)

    ## Why It's Good For The Game

    Size inconsistencies between items results in confused players; it's
    good to keep this sort of thing synced up so that we're not having
    players ask why one pistol magazine fits in a box while another pistol
    magazine doesn't fit in a box when the air tank that's bigger than both
    of them does fit in the box.

    If I find other guns with weird weight classes I'll fix those too.

    ## Proof Of Testing

    Single-line changes, weight classes is a proven working system already.

    ## Changelog
    🆑
    qol: Puts the Sol/Carwo/Romulus/Szot/Trappiste gun magazine weight
    classes in line with /tg/ standards for magazine weight classes (tiny
    for everything but rifles or larger which are normal)
    /🆑

commit 7b420bb680
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 7 22:16:23 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit f30b0d5df0
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Tue Apr 8 00:12:44 2025 +0200

    Automatic changelog for PR #3452 [ci skip]

commit aa4901b571
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Mon Apr 7 15:11:59 2025 -0700

    Map vote is called automatically on blob/nukies/etc. round end (#3452)

    ## About The Pull Request

    Triggers the automatic map vote when the round is about to end due to a
    station threat, if it hasn't happened.

    ## Why It's Good For The Game

    Saves it delaying the next round if no admin catches it in time, causing
    a delay as the vote and another restart needs to occur.

    ## Changelog

    🆑 LT3
    admin: Map vote is automatically triggered near the conclusion of
    station ending threats
    fix: Only a single announcement is sent when the shuttle is called,
    fixing the overlapping sounds
    /🆑

commit a6845577bd
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 7 21:55:15 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit bf8c0ef85f
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 7 23:49:40 2025 +0200

    Automatic changelog for PR #3459 [ci skip]

commit 28e4e2cd42
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Mon Apr 7 17:49:12 2025 -0400

    Refactor changelog handling to separate files (#3459)

    ## About The Pull Request

    This rewrites how our actions handle changelogs, and rewrites a bunch of
    the changelog TGUI (in a separate file cause I don't feel like
    massacring the upstream one). The gist of it is that our actions will
    now create autochangelog files with bubber in the name, our changelog
    compile will only compile those autochangelogs (not upstream ones if
    they happen to be in there), and the compile will be done into separate
    bubber changelog files in `html/changelogs/bubber_archive`. In game, the
    UI will pull both archive files (upstream and ours) and combine them in
    the changelog list, putting the codebase logo next to each change to
    distinguish which one it's from.

    ~~NOTE: I'm opening this as a draft because I'm going to try and reset
    our tg changelogs and then reapply all our historical changelogs into
    the new bubber archive files, I'm just putting this up now so the code
    can be reviewed and shit~~ done

    ## Why It's Good For The Game

    For players this makes it easier to distinguish where a change came
    from, and for developers this means we don't need to worry about
    breaking the changelog when we do an upstream pull, we can completely
    ignore it and just pull everything, and our tg archive files will be 1:1
    with upstream with no shit from us added in.

    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    ![image](https://github.com/user-attachments/assets/ac8a96f9-dcb3-43f0-8d36-faf610f3a7e0)

    </details>

    ## Changelog

    🆑 TealSeer, LT3
    refactor: refactored how changelogs are generated and displayed
    /🆑

    ---------

    Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>

commit 7de99181db
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Mon Apr 7 17:44:07 2025 -0400

    Rename Autochangelog (#3462)

    the refactor is about to merge this isnt gonna be included otherwise

commit 0ed680f2aa
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 7 23:36:02 2025 +0200

    Automatic changelog for PR #3457 [ci skip]

commit 0f13b89457
Author: Odairu <39929315+Odairu@users.noreply.github.com>
Date:   Mon Apr 7 17:35:25 2025 -0400

    30 minute grace period to respawn (world time, not round time) (#3457)

    ## About The Pull Request
    from when the server starts to 30 minutes after, respawning is free of
    charge
    ## Why It's Good For The Game
    item #1 on the list
    ## Proof Of Testing
    it works dude trust me
    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑
    code: respawn enabled until 30 min (world time)
    /🆑

commit 99cb23f3c5
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 7 18:30:45 2025 +0200

    Automatic changelog for PR #3434 [ci skip]

commit 697d89abf3
Author: pixelkitty286 <78038207+pixelkitty286@users.noreply.github.com>
Date:   Mon Apr 7 11:30:19 2025 -0500

    Cleans up and reorganizes some of the borg code (#3434)

    ## About The Pull Request
    This PR reorganizes and cleans up some of the borg code and separates
    sprite defines and borg defines once more but this time correctly.

    Also fixes some small bugs with foot steps with chameleon module.

    Moved some borg model specific trait procs into their own file.
    ## Why It's Good For The Game
    Makes it more organized so we don't have one HUGE file containing all
    the sprite defines and borg model code

    ## Proof Of Testing
    It's all back end. Compile test was last done late march.

    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑
    fix: chameleon model foot steps
    code: moved many of the borg defines to their correct _defines file and
    folder
    /🆑

commit 74985f40fc
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 7 10:28:15 2025 +0200

    Automatic changelog for PR #3447 [ci skip]

commit d58cf909af
Author: Jinshee <96621959+Jinshee@users.noreply.github.com>
Date:   Mon Apr 7 01:27:49 2025 -0700

    Change podperson eye color (Again (Thanks Upstream)) (#3447)

commit cb3052e6ea
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 7 02:04:52 2025 +0200

    Automatic changelog for PR #3448 [ci skip]

commit c29d36ada5
Author: sippykot <sippythekot@outlook.com>
Date:   Mon Apr 7 02:04:27 2025 +0200

    Fish Ass: ports over large shark tails from CHOMP (#3448)

    ## About The Pull Request

    see title
    if you want to see who made the sprites, follow the accreditation chain:
    https://github.com/CHOMPStation2/CHOMPStation2/pull/9926

    it doesn't fully use all the sprites, because our system here is so much
    clunkier to use - if someone wants they can probably bash out several
    more tail variants by copying and rearranging the existing sprites

    ## Why It's Good For The Game

    people wanted them, gushed over them in #suggestions, and then no one
    did anything, so...
    also, 🦈

    ## Proof Of Testing

    yeah i compiled it, they finally showed up in game, thanks #coder-longue

    ## Changelog

    🆑
    add: 4 new tail options
    image: new tail sprites
    /🆑

    ---------

    Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>

commit fa6845f9e6
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 6 23:22:10 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 55fd8dd1f7
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 7 01:01:20 2025 +0200

    Automatic changelog for PR #3426 [ci skip]

commit 16f6d07548
Author: Odairu <39929315+Odairu@users.noreply.github.com>
Date:   Sun Apr 6 19:00:55 2025 -0400

    Shadekin NV and movespeed rebalance (#3426)

    ## About The Pull Request
    title + nerf movespeed in the light
    ## Why It's Good For The Game
    still can't see shit (nv trait is 4.5, bumping it up to 15)
    ## Proof Of Testing
    it werks
    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑
    balance: shadekin nv buffed from 4.5/100 to 15/100
    balance: shadekin move a bit slower in the light
    /🆑

commit d2f96730ba
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 6 22:16:10 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit c7def946b6
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 6 17:39:00 2025 +0200

    Automatic changelog for PR #3450 [ci skip]

commit f833f3edc4
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sun Apr 6 11:38:26 2025 -0400

    Fix persistence medbots speaking on syndicate frequency (#3450)

    ## About The Pull Request

    Make them speak on cybersun frequency

    ## Why It's Good For The Game

    Fixes #3446

    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    ![image](https://github.com/user-attachments/assets/05dc7869-8904-4005-be2a-d59301daef13)

    </details>

    ## Changelog

    🆑
    fix: fixed persistence medbots speaking on wrong radio frequency
    /🆑

commit 17b620b48e
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 6 10:19:15 2025 +0200

    Automatic changelog for PR #3438 [ci skip]

commit bfb9c9e2b5
Author: pixelkitty286 <78038207+pixelkitty286@users.noreply.github.com>
Date:   Sun Apr 6 03:18:52 2025 -0500

    Nerfs super syndicat and makes it no longer a freedom implant. (#3438)

    ## About The Pull Request
    - This PR makes the new syndicat ears item have a 1 minute cool down
    when used and the normal ears have the same thing.

    - This also ports a fix that was done on monkey station:
    https://github.com/Monkestation/Monkestation2.0/pull/6017

    ## Why It's Good For The Game
    - After watching a round on here and getting complaints about this from
    SPLURT I understand now why 20 seconds is too short for such a item like
    this if your gonna be a cat your gonna be a cat for a long while.

    - Also to quote monkey station:
    "It will make the cat not able to bypass any security non-lethal means,
    which in turns mean security won't be forced to lethal them everytime
    they see it."

    ## Proof Of Testing
    Should work only changed the time values.

    Edit: Compiled and tested locally

    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑
    balance: Super cat ear cool downs are longer and removed the freedom
    implant function.
    /🆑

commit 4ed70fa4c7
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 6 10:18:17 2025 +0200

    Automatic changelog for PR #3451 [ci skip]

commit 65331b085f
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sun Apr 6 04:17:45 2025 -0400

    Fix invisible sprites on security HUD nightvision goggles (#3451)

    ## About The Pull Request

    Upstream changed NV goggles to have different icon states for on and off
    and we dont have that so I reverted it to the tg sprite

    ## Why It's Good For The Game

    Fixes #3383

    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    ![image](https://github.com/user-attachments/assets/77943197-de8f-409a-86c3-bad205888054)

    </details>

    ## Changelog

    🆑
    fix: fixed sechud nv goggles being invisible when off
    /🆑

commit 8aad924f76
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 6 10:16:18 2025 +0200

    Automatic changelog for PR #3443 [ci skip]

commit 3bd5803844
Author: Swift <jackwars4@gmail.com>
Date:   Sun Apr 6 03:15:53 2025 -0500

    Removes tackle buff for having cat ears (#3443)

    ## About The Pull Request

    Title, manual revert of #1513

    ## Why It's Good For The Game

    Tackle chance could be brought to 100% and people have reportedly been
    exploiting this fact.

    ## Proof Of Testing

    I think it will complie

    ## Changelog

    :cl:Swiftfeather
    balance: Cat ears no longer provide a tackle bonus
    /🆑

commit 89594c8547
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 6 00:56:59 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit b4af64b182
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 6 02:25:40 2025 +0200

    Automatic changelog for PR #3370 [ci skip]

commit 0e684db68a
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Sat Apr 5 17:24:44 2025 -0700

    Update various sound prefs for 516 compatibility (#3370)

    ## About The Pull Request

    Updates our various sound prefs to be functional post upstream/516.

    ## Why It's Good For The Game

    We can control sound as expected again.

    ## To-Do

    - [x] Conditional preference sounds
    - [x] Jukebox sound toggle
    - [x] Jukebox volume override

    ## Changelog

    🆑 LT3
    fix: Sound prefs that went missing post-516 are restored
    add: Jukebox volume slider in game preferences
    /🆑

    ---------

    Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>

commit 60e73702c6
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sat Apr 5 07:14:09 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 9a36823173
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sat Apr 5 09:02:26 2025 +0200

    Automatic changelog for PR #3425 [ci skip]

commit 1ab85fd206
Author: Odairu <39929315+Odairu@users.noreply.github.com>
Date:   Sat Apr 5 03:02:02 2025 -0400

    Spices up vulpkanin [bounty] (#3425)

    ## About The Pull Request
    Changes vulpkanin in several ways:
    - Peanutbutter gives a mood buff
    - Chocolate deals toxin damage while inside you
    - innate hardened soles
    - innate night vision
    - hunger will drain twice as fast
    - higher sensitivity to flashes
    ## Why It's Good For The Game
    vulpkanin are literally human but fluffy, they don't even have lore in
    the species selector (lol) also I'm being paid
    ## Proof Of Testing

    ![image](https://github.com/user-attachments/assets/8860340c-e6c4-4ad9-81ac-89a60f7645eb)

    ![image](https://github.com/user-attachments/assets/3a497358-64f1-4f37-a8c4-e289c7a84734)

    ![image](https://github.com/user-attachments/assets/d6dec08b-c0a6-4d75-8715-2f66791a9cd4)
    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑
    add: several vulpkanin species buffs/debuffs
    /🆑

    ---------

    Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>

commit 4da0397b16
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sat Apr 5 08:54:22 2025 +0200

    Automatic changelog for PR #3396 [ci skip]

commit 1ed1187fca
Author: Jinshee <96621959+Jinshee@users.noreply.github.com>
Date:   Fri Apr 4 23:53:57 2025 -0700

    Slug Scream! (#3396)

    ## About The Pull Request

    Adds a new scream, "Slug". Sound file ripped from Splurt

    ## Why It's Good For The Game

    Expression is the best thing that this video game medium can offer.

    ## Proof Of Testing

    https://github.com/user-attachments/assets/147be9dc-98c2-4ee4-bc76-762331710143

    ## Changelog

    🆑
    sound: Slug Scream sound added to *scream choices
    /🆑

commit 66e28121d4
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sat Apr 5 08:53:15 2025 +0200

    Automatic changelog for PR #3431 [ci skip]

commit 88a238b93c
Author: Bombermansam <Bombermansam@yahoo.com>
Date:   Sat Apr 5 02:52:48 2025 -0400

    Allows players to be sad like raptors (#3431)

    ## About The Pull Request
    Adds a Sad Kweh emote from the two unused raptor sound files.
    ## Why It's Good For The Game
    You can now sad birdly.
    ## Proof Of Testing
    It compiles and was tested locally.

    https://github.com/user-attachments/assets/bc5f31fb-ad12-4026-be94-d28d2db542df

    ## Changelog
    🆑
    add: *skweh emote to be sad
    /🆑

commit 4a93b42977
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sat Apr 5 08:51:43 2025 +0200

    Automatic changelog for PR #3432 [ci skip]

commit f51c4d7942
Author: Bombermansam <Bombermansam@yahoo.com>
Date:   Sat Apr 5 02:51:18 2025 -0400

    Silicons can now Yip (#3432)

    ## About The Pull Request
    Silicons can now emit a singular yip so they can express their inner
    kobold but not too much.
    ## Why It's Good For The Game
    Silicons can yipyip but not yip. This fixes it.
    ## Proof Of Testing
    It compiles and was tested locally.
    </details>

    ## Changelog
    🆑
    fix: Silicons can now yip.
    /🆑

commit 14ec8a0440
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sat Apr 5 08:43:03 2025 +0200

    Automatic changelog for PR #3437 [ci skip]

commit e05fe31faa
Author: Odairu <39929315+Odairu@users.noreply.github.com>
Date:   Sat Apr 5 02:42:41 2025 -0400

    Adds more flavor to shadekin empathy (#3437)

    ## About The Pull Request
    BASED ON SANITY SHADEKIN EMPATHY WILL:
    -Take more or less time to send
    -At lowest levels of sanity the message starts to break down some
    -Be a different color in chat
    ## Why It's Good For The Game
    Shadekin empathy is communication through FEELINGS so it being
    better/worse based on how you're FEELING makes sense (to me)
    ## Proof Of Testing

    ![image](https://github.com/user-attachments/assets/2c539f7b-7edc-43c1-9c28-f8da4606dc17)
    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑
    balance: shadekin empathy is better/worse based on mood
    /🆑

    ---------

    Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>

commit 457754c461
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sat Apr 5 06:38:05 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit c3fe3d31ba
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Fri Apr 4 23:16:53 2025 -0700

    You can cuff people to the tram rails #90293 (#3445)

    ## About The Pull Request

    https://github.com/tgstation/tgstation/pull/90293

    ![image](https://private-user-images.githubusercontent.com/7483112/427767772-688e23ff-93df-4f51-990c-4bc475d344fb.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NDM4MjY2MzAsIm5iZiI6MTc0MzgyNjMzMCwicGF0aCI6Ii83NDgzMTEyLzQyNzc2Nzc3Mi02ODhlMjNmZi05M2RmLTRmNTEtOTkwYy00YmM0NzVkMzQ0ZmIuZ2lmP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDQwNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTA0MDVUMDQxMjEwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MDBiNTNhZGRjYjY5YWRmMjQyZTM4YjY3MGM3MGMyZTIzM2I4MDkwMGYwNTEwODc2YmE0YWE1ZGFiMDJjZWI1MyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.6w2hr_2ruJTsAcXoAlcbsZe5bM3ii83iBQk7aDQhvMs)

    Handcuffed people can be buckled to the tram rails.
    If the tram hits them then they will die badly.
    If they're not shockproof and are buckled to a powered rail, it will zap
    them repeatedly for a little bit of damage (but not a lot because you
    probably want them to die from something else).
    Unbuckling someone from a powered rail is also pretty dangerous.

    While doing this I fucked around a bit with how the "is the tram deadly"
    calculation worked because I didn't like how a deadly tram cuts your
    head off but does literally no other damage. Now it pulverises and
    beheads you.

    ## Why It's Good For The Game

    ![image](https://github.com/user-attachments/assets/dd851dda-56b0-41c9-b6aa-26c9db0b9a28)

    ---------

    Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>

commit 3c1c05052f
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 4 23:23:13 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 0287fe4d0b
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 4 21:54:53 2025 +0200

    Automatic changelog for PR #3440 [ci skip]

commit 6d081fe0da
Author: Bombermansam <Bombermansam@yahoo.com>
Date:   Fri Apr 4 15:54:30 2025 -0400

    [Modularized] Nugget Boxes and Foodpacks can now be placed into paper sacks. (#3440)

    ## About The Pull Request
    Nugget Boxes and Foodpacks can now be placed into paper sacks.
    ## Why It's Good For The Game
    You can now live out your minimum wage dreams as a fast food worker a
    Chick'fil'a. To quote someone that wanted this "I can now fastfoodmax as
    a chef".

    Food packs can also be placed into paper sacks because it makes sense.
    ## Proof Of Testing
    It compiles and was tested locally.

    ![dreamseeker_WxYzmwbDrn](https://github.com/user-attachments/assets/9b6e4e8e-fa71-48c3-8bbc-b533e3b3e65e)

    I would like to praise [lessthnthree](https://github.com/lessthnthree)
    for their remarkable patience in teaching me how to properly modularize
    code. Really, thank you so much!

    </details>

    ## Changelog
    🆑
    add: Makes Nugget Boxes and Food packs small
    /🆑

    ---------

    Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>

commit 0824cb07ba
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 3 20:19:08 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 9d8a54be49
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 3 22:14:42 2025 +0200

    Automatic changelog for PR #3433 [ci skip]

commit 45477353d2
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 3 22:14:33 2025 +0200

    Automatic changelog for PR #3403 [ci skip]

commit b6b6fbfba4
Author: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
Date:   Thu Apr 3 14:14:17 2025 -0600

    Job Spawn borgs prioritize linking to the malf AI (#3433)

    ## About The Pull Request

    So there's this little quirk where late join cyborgs will auto link to
    whatever AI has the least cyborgs. This changes that.

    This adds a priority: Malf AI > AI cores

    Also this deletes an unused file I noticed.

    ## Why It's Good For The Game

    Every cyborg that spawns in the game during an active malf round should
    always connect to the malf AI if it's available.

    ## Proof Of Testing

    It works

    ## Changelog

    🆑
    balance: Cyborgs now auto link in a priority system. Malf > AI cores >
    Suit AIs / Cards
    /🆑

commit 1f3aedc6c1
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Thu Apr 3 13:14:07 2025 -0700

    Fix brain trauma surgery (#3403)

    ## About The Pull Request

    Fixes the highest level of trauma surgery leaving leftover traumas.
    Applies a status effect instead of the random roll of a new trauma.

    ## Why It's Good For The Game

    Having to do lobotomy surgery over and over until you hit the 25% RNG to
    make it successfully go away isn't a good gameplay experience. Better to
    just apply a status effect for a while instead.

    ## Changelog

    🆑 LT3
    fix: Lobotomy/blessed lobotomy should correctly remove all surgery based
    traumas
    balance: Lobotomy/blessed lobotomy now provides a predictable status
    effect instead of a trauma RNG roll
    /🆑

commit 95d97cf4a2
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 3 18:50:51 2025 +0200

    Automatic changelog for PR #3429 [ci skip]

commit 3c30dfbaff
Author: Jinshee <96621959+Jinshee@users.noreply.github.com>
Date:   Thu Apr 3 09:50:24 2025 -0700

    Shadekin Ear Gradient (#3429)

    ## About The Pull Request
    Adds a new ear type: Shadekin Gradient
    ## Why It's Good For The Game

    Makes Healer happy

    ## Proof Of Testing

    ![image](https://github.com/user-attachments/assets/16b3910e-68fa-4caf-8678-2e1f4632ecd9)

    ![image](https://github.com/user-attachments/assets/c3f7eb88-24b2-4aed-804a-075df5917517)

    ## Changelog

    🆑
    add: Added new ear type: Shadekin Gradient
    /🆑

    ---------

    Co-authored-by: Jinshee <manastra2536@gmail.com>

commit 3dd8af584e
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 3 06:33:08 2025 +0200

    Automatic changelog for PR #3415 [ci skip]

commit c83b14b15d
Author: Jinshee <96621959+Jinshee@users.noreply.github.com>
Date:   Wed Apr 2 21:32:45 2025 -0700

    Porting New Bug Customization + IPC Screens (#3415)

commit d9d40def4c
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 3 02:35:34 2025 +0200

    Automatic changelog for PR #3387 [ci skip]

commit a154dd9d97
Author: Jinshee <96621959+Jinshee@users.noreply.github.com>
Date:   Wed Apr 2 17:35:10 2025 -0700

    Fixes Waggingtail Sprite for Shadekin tails + Ringtail (#3387)

    ## About The Pull Request

    All of the shadekin tails, ringtail included, had incorrectly assigned
    dmi files for their wagging state, causing them to go invisible. This,
    simply, fixes that.

    ## Why It's Good For The Game

    I love fixing sprites!

    ## Proof Of Testing

    https://github.com/user-attachments/assets/186f7dc6-4b78-4e9e-968e-fcbdae40bf2f

    ## Changelog

    🆑
    fix: fixed wagging state for all shadekin tails and ring tail (long)
    /🆑

commit ba3fa0684c
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Wed Apr 2 21:56:26 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 70143cdadb
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Wed Apr 2 23:52:41 2025 +0200

    Automatic changelog for PR #3419 [ci skip]

commit ad62db6f9b
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Wed Apr 2 14:52:18 2025 -0700

    Adds pipe carp (#3419)

    ## About The Pull Request

    A Ferocious, highly aggressive fish that thrives in the depths of shoddy
    engineering work. Drawn to poorly sealed pipes, mismatched connectors,
    and hastily patched atmospherics, these creatures feast on structural
    incompetence with alarming efficiency.

    ## Changelog

    🆑 LT3
    add: Added new carp variant: carpmospheric technician
    /🆑

commit dab0ff6a09
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Wed Apr 2 11:40:26 2025 +0200

    Automatic changelog for PR #3423 [ci skip]

commit 27027d5ceb
Author: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
Date:   Wed Apr 2 03:40:00 2025 -0600

    take two: Reverts the disaboot apirl fools (#3423)

    ## About The Pull Request

    Apirl fools code cleanup. Was a funny meme, but I don't think they
    should happen next year.

    ## Changelog

    🆑
    del: Disaboots have been removed from apirl fools.
    /🆑

commit 1c08269f2a
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Wed Apr 2 03:08:41 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit c43c9d01ed
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Tue Apr 1 19:38:12 2025 -0700

    [TM ONLY] let me send long ass subtler messages to my heart's content (TGUI payload chunking) (#3406)

    ## About The Pull Request

    (https://github.com/tgstation/tgstation/pull/90295)

    ## Changelog

    🆑 Y0SH1M4S73R
    code: Any tgui message that would be too big to send to the server is
    now split into chunks and sent in sequence. This fixes several issues,
    such as...
    fix: It is once again possible to save large amounts of text on paper at
    once.
    /🆑

    ---------

    Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
    Co-authored-by: Y0SH1M4S73R <y0sh1m4s73r@gmail.com>
    Co-authored-by: Lucy <lucy@absolucy.moe>

commit c96d028562
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Wed Apr 2 04:35:29 2025 +0200

    Automatic changelog for PR #3420 [ci skip]

commit e22c174b35
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Wed Apr 2 04:35:09 2025 +0200

    Automatic changelog for PR #3407 [ci skip]

commit 43a4b964b1
Author: plsleavemealon <106043510+plsleavemealon@users.noreply.github.com>
Date:   Tue Apr 1 21:35:04 2025 -0500

    Ethereal Powercell Bugfix (#3420)

    ## About The Pull Request

    Fixes ethereal powercells from 20kj back to 220kj which is what they
    used to be.

    ## Why It's Good For The Game

    It is what it used to be, and with the present vanilla values you have
    to recharge yourself once every ~5 minutes or so or suffer a huge mood
    debuff. And if you are entombed, you will suffer death after ~10 minutes
    if you do not recharge.

    ## Proof Of Testing

    ## Changelog

    🆑
    fix: fixed ethereals powercell back to bubbers values
    /🆑

commit 3068303ae3
Author: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
Date:   Tue Apr 1 20:34:46 2025 -0600

    Reverts "Adds crew monitors to Advanced biotech and lathes" (#3407)

    ## About The Pull Request

    This removes the handheld crew monitor from the medical lathe.

    ## Why It's Good For The Game

    Alright, I just want to start out with all sources of the handheld crew
    monitor after this PR
    - Paramedics spawn with them
    - Blueshield (command only)
    - The medical vendor premium section.
    - Borg upgrades

    Overall while there's been a lot of QOL to the crew monitor which I
    enjoy, it's all gradually made it so deaths are very noticable and often
    times with someone in medical 1 second later running towards an active
    fight to drag corpses away.

    - I think overall we have a sort of medical omnipresence issue,
    especially with an easy research destroying a level of scarcity with the
    hand held crew monitor.

    Anyone can print it if they have the materials and access to the lathe
    versus only a few existing outside of the paramedic starting with them.

    This PR of course is not going to fully tackle it. It's not going to
    stop a paramedic constantly staring at sensors or the medical console
    beeping when someone's in crit. But this aims to get less eyes on
    sensors, mostly the ability for everyone in medical to have a little
    screen to pull out and see the live feed without actively moving to a
    console.

    Overall I think we have this issue (a lot of it being administrative)
    where every single death must be immedietly found and the person revived
    in 10 minutes. This won't fully tackle that, but if the solution is we
    must bloat a ton of antag abilities and items to combat sensors then I
    think we have too many eyes on sensors.

    ## Proof Of Testing

    ![image](https://github.com/user-attachments/assets/9d845341-7441-4beb-bb61-579b01222190)

    ## Changelog

    🆑
    del: Removes the handheld crew monitor from the medical lathes.
    /🆑

commit c9cca3fbef
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Tue Apr 1 23:24:18 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit de81adcb6d
Author: Waterpig <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 2 00:55:25 2025 +0200

    Makes the roundend mapvote not rerun after it gets called the first time (#3418)

    ## About The Pull Request

    See name
    ## Why It's Good For The Game

    Fixes #3395
    ## Proof Of Testing

    It worked I did test it

    ## Changelog
    Nothing player facing, basically allows us to cancel the vote once it
    initializes

commit b36c477460
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Tue Apr 1 18:35:54 2025 -0400

    Fix every fucking piece of maint loot being skub (#3412)

    ## About The Pull Request
    the override should append to the global maint loot list not replace it

    ## Why It's Good For The Game
    I'm anti-skub

    ## Proof Of Testing

    I did this PR from my phone in bed because there's no power
2025-04-14 15:51:24 -04:00
Waterpig 753d8e5ba4 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-04a 2025-04-08 18:58:45 +02:00
Joshua Kidder 21f71c37f1 Updates door remote accesses + descriptions, implements logic for area-specific remote operation, moves remote definitions to the top of control_wand file (#90079)
## About The Pull Request

This updates door remote accesses to match the accesses of their owner
-- research remote = RD access, and so on. However, the Captain's door
remote does not inherit this increased access, and is still relegated to
command areas like the bridge, AI upload, etc.

As well, it implements a logic for a given "domain" per remote holder,
based on high-security areas that are iconic of the given role. As such,
even though they may have access to the Vault, no other Head besides the
Captain can open the Vault with their remote, the head remotes (beside
security) can't open the brig (Captain didn't have access anyway), and
so on. The restricted areas and the remote with authority to open that
area are as follows:

**Captain**
- The whole station
- Note: Still restricted by the remote access, which is: Bridge, Vault,
AI Upload, Teleporter, Gateway, Captain's Office, EVA

Head of Personnel
- Gets no special "domain" for their remote, but otherwise receives
HoP's round-start access

Head of Security
- Security

Chief Engineer
- Gets no special domain, because no other Head roundstart trims receive
access to the CE's high-security areas of Engine or Atmospherics
(besides Captain, who has a neutered remote already)

Research Director
- AI Upload, AI Core

Chief Medical Officer
- No special domain for the same reason as Chief Engineer; no other
heads have unmitigated medical access


Also updated remote descriptions with allusions to stereotypes/jokes for
a given head (Captain's authority is dubious, QM is not a Real Head,
Security remote was stolen from HoS by resentful Warden, HoP disappears
more than Carmen Sandiego, CMO shouldn't have a medical license, RD is
absolutely jacked)

Finally, moved the remote definitions to be above the sheer cliff of the
ranged interaction proc in the control_wand file.


## Why It's Good For The Game

Makes remote access have parity with the access of their respective head
of staff, while at the same time allowing other Heads of Staff to retain
their own control over doors in their department areas.
## Changelog
🆑 Bisar
balance: Door remotes now match the access of their owner (except for
the Captain, whose remote access is unchanged). Door remotes, however,
respect the high security area control of other remotes; as such, even
if a Head can enter an area like the brig, only the Security remote
works to open the entrance.
/🆑
2025-03-26 01:33:19 +01:00
Majkl-J b6b8306fda Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-02a 2025-02-20 00:00:19 -08:00
necromanceranne 8be248363c Moves the compact combat shotgun back into the warden's locker (#88854)
## About The Pull Request

What it says on the tin. Also updates the theft objective appropriately.

## Why It's Good For The Game

@MrMelbert asked me to do this, and I'm happy to oblige.

Firstly, the HoS has a signature gun as it is. His X-01 Multiphase.
Having another weapon in the form of the shotgun kind of steps on the
toes of that weapon's presence, and clutters his arsenal somewhat. The
HoS, as is, has the means of gearing for alternative equipment if
needed, but let's keep it somewhat slim for weapons.

Secondly; it feels more appropriate as a riot suppression weapon. And
the warden puts down riots and brig invasions. He is the CQB guy after
all, he should have a shotgun. It's a bit of an identity thing and a
functionality thing. Of course, he could just get a riot shotgun (so can
the HOS in this instance), but I think having a special one does have
impact from a purely aesthetics point of view, gives more of a feeling
of 'ownership' over the shotgun (which matters for the sake of whether
people are determined as overgearing or not), as well as telegraphing
what should be his combat strategy for him more clearly.

No, there is no option where they both have shotguns. Don't bother
asking.
2025-01-03 00:33:28 -06:00
Waterpig 26d27268d1 Fixes some weird conflict that appeared 6 months ago and nobody reported (#2668)
## About The Pull Request

The cap and HoS lockers had double the gun in them for some reason. Of
course, nobody reported this because it was double the gun.

## Why It's Good For The Game

No more double the gun

## Proof Of Testing

If it compiles it most likely works

## Changelog

🆑
fix: Captain and HoS locker now have the right amount of sabres and guns
respectively
/🆑
2024-12-11 10:23:15 +00:00
Majkl-J e59d8ba64b Merge commit '179a607a90ad7ec62bdaff4e6fe72af60ee56442' of https://github.com/tgstation/tgstation into upstream-24-10b 2024-10-23 23:27:16 -07:00
Waterpig 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
2024-10-19 08:04:33 -07:00
grungussuss 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
/🆑
2024-09-23 22:24:50 -07:00
Waterpig 4c4930c71d Merge branch 'master' of https://github.com/tgstation/tgstation into pulls-tg-to-fix-shit 2024-09-08 00:59:39 +02:00
lessthanthree d1a37bd047 Sticker packs/Chief Engineer sticker (#86154)
## About The Pull Request

- Changes sticker container from a generic box to a specialised 'sticker
pack' with label
- Adds a Chief Engineer seal of approval sticker


![image](https://github.com/user-attachments/assets/7b1d8789-6a06-46ec-a2a3-be4272eb5268)

## Why It's Good For The Game

The CE can now quell crew concerns about machinery they find in the
hallway

Before:


![ce_sticker_1](https://github.com/user-attachments/assets/0e7c1752-743f-4b6a-8e5c-8627a3f11d82)

After:


![ce_sticker_2](https://github.com/user-attachments/assets/82f74a09-f007-45ad-8dcd-f70840681ba6)

## Changelog

🆑 LT3
add: Added Chief Engineer SEAL OF APPROVAL sticker
code: Stickers now come in sticker packs, not boxes
code: Stickers can now add examine text to whatever they're stuck on
/🆑
2024-09-04 12:22:47 +02:00
projectkepler-RU c3f2895ea0 Balance Adjustment 8 (#29560)
* Update shotgun.dm

* Update rifle.dm

* what

* Update packs.dm

* yea

* Update sec_research.dm

* yeah

* follow up 8

* insanity

* snake eater

---------

Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
2024-08-25 19:47:18 +07:00
projectkepler-RU df01bd3020 Follow up 5 (#29554)
* mfw

* harass me enough and i'll do it

* yip yap

* hypothetically

* Update rifle.dm

* Update rifle.dm

* superb

* Update blueshield.dm

* no description
2024-08-24 16:45:37 +07:00
projectkepler-RU 4dd0fef1cf [READY]Armadyne Anti Trust Act Part 2: Return of The Ballistic Security (#27409)
* Update pistol.dm

* Update pistol.dm

* Update pistol.dm

* we fix the linter

* Update pistol.dm

* Update pistol.dmi

* Update pistol.dm

* this shit

* Update pistol.dm

* Update pistol.dm

* Update pistol.dm

* Update rifle.dm

* I am happy.

* Update vending.dm

* new file

* fire delay

* Create magazine.dm

* finally

* Update pistol.dm

* bazinga

* Update pistol.dm

* this is impossible

* Update magazine.dm

* mm

* as

* i forgot!

* Update pistol.dm

* what the hell are we doing

* Update pistol.dm

* Update security.dm

* Update pistol.dm

* what

* i fixed linter

* help me gordon

* Update allstar.dm

* Update tgstation.dme

* Update pistol.dm

* Update pistol.dm

* now what

* Update tgstation.dme

* i crave sex

* Update smg.dm

* Update magazine.dm

* Update pistol.dm

* Update sec_research.dm

* Update sec_research.dm

* accurate

* mmm

* Update tgstation.dme

* Update sec_research.dm

* Update all_nodes.dm

* don't you feel silly?

* Update all_nodes.dm

* Update tgstation.dme

* Update cargo_stuff.dm

* Update cargo_stuff.dm

* Update magazine.dm

* Update magazine.dm

* we are ready

* Update all_nodes.dm

* Update rifle.dm

* Update gun48x32.dmi

* Update rifle.dm

* bird

* Update rifle.dm

* Why

* its ready?

* what

* Update rifle.dm

* i wish i can die soon

* Update ammo.dmi

* more curious about the result

* Update rifle.dm

* mister mister president i want to die

* Update magazines.dm

* what

* fml lol

* Update gun40x32.dmi

* this is sick af

* Update rifle.dm

* what

* Update rifle.dm

* Update all_nodes.dm

* what

* Update rifle.dm

* Update all_nodes.dm

* yeah

* Update all_nodes.dm

* Update pistol.dm

* so

* Update sec_research.dm

* Update rifle.dm

* ready

* Update head.dmi

* wwhat

* Update gun40x32.dmi

* yeah

* ww got vything done

* we h int at a darker past

* yeah I know that there's no pleasing you

* Update magazines.dm

* Update sol_fed.dm

* mhm

* Update rifle.dm

* Update rifle.dm

* Update magazines.dm

* Update magazine.dm

* Update cargo_stuff.dm

* Update cargo_stuff.dm

* Update gun_redemption.dm

* what

* Update rifle.dm

* how did we mess this up so badly

* be more thorough next time?

* fixed

* Update pistol.dm

* Update rifle.dm

* Update rifle.dm

* stats and stats

* Update rifle.dm

* Update ammobox.dm

* Update beams.dm

* Update magazine.dm

* Update rifle.dm

* Update rifle.dm

* Update magazine.dm

* Update rifle.dm

* Update helmet.dmi

* this should fix it

* Update packs.dm

* Update rifle.dm

* why doesnt this work is beyond me

* Update shotgun.dm

* Update pistol.dm

* i pray this fix it before i die

* Update ammobox.dm

* this should work

* Update shotgun.dm

* this is utterly shit code thati should die for

* Update shotgun.dm

* fix the helmet

* Update sec_clothing_overrides.dm

* Update shotgun.dm

* what did i do

* what else?

* Update pistol.dm

* Update shotgun.dm

* an ode to joy

* Update rifle.dm

* Update pistol.dm

* here we go

* Update tgstation.dme

* Update tgstation.dme

* Update tgstation.dme

* so

* forgive yourself

* Update pistol.dmi

* Update pistol.dm

* Update magazine.dmi

* Update magazine.dmi

* it was also my plan

* mmm

* Update magazine.dm

* Update rifle.dm

* vanilla expanded

* yeah

* Update sec_research.dm

* silly

* Update all_nodes.dm

* yeah

* Update sec_research.dm

* yes

* can  you even say, my name

* Update shotgun.dm

* this is easier

* wonderful

* Update tgstation.dme

* Update tgstation.dme

* Update rifle.dm

* Update rifle.dm

* done

* Update tgstation.dme

* yeah

* Update tgstation.dme

* yes

* Update tgstation.dme

* Update shotgun.dm

* there

* yeah!

* it feels right

* Update helmet.dmi

* Update cargo_packs.dm

* Update peacekeeper_clothing.dm

---------

Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
2024-08-21 06:47:05 +07:00
SkyratBot c6b4fc0df8 [MIRROR] Cytology without plumbing (#28630)
* Cytology without plumbing

* fix conflict

* fix modular

* fix

* fix 3

---------

Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
2024-07-05 23:05:33 +05:30
Andrew d4765c0657 Cytology without plumbing (#84235)
## About The Pull Request

Makes Growing Vat work as a normal machine akin hydrotray. 
Doesn't need plunger to clear reagents, doesn't need plumbing to input
reagents.
Still has the plumbing port, but can be used without it.
Also made the examine text a bit more compact.

Removed science plumbing RCD from the game.
Removed plumbing tools from cytology equipment, and added a protein
powder jug instead.


![image](https://github.com/tgstation/tgstation/assets/3625094/40d2d33e-f78d-4dc9-96e6-4b0fd231035f)

Automatically fixes #84573

## Why It's Good For The Game

Plumbing was an unnecessary complication for Cytology.

Growing vat is a relatively simple machine that shouldn't require
plumbing knowledge.
Now it works more like hydrotray, and you can pour reagents directly,
and clear them out with a right click.

## Changelog

🆑
refactor: Vat grower is a normal machine now that doesn't need plumbing
qol: Cytology petri dish smartfridge starts with 3 random samples
add: Added protein powder condiment bottle, available in the cytology
supplies locker and the cargo pack
del: Removed science variant of plumbing RCD
fix: Fixed a bug when machines without stock parts didn't spawn frames
on deconstruction
fix: Fixed vat grower not growing
/🆑
2024-07-04 12:04:31 -07:00
SpaceLoveSs13 7aa6664021 Mirror (#27453)
* Fix Conflicts

* Change COGBAR_ANIMATION_TIME to seconds and not deciseconds (#82530)

Most people should not be using this define

* New Battle Arcade (#81810)

Remakes Battle Arcade from just about the ground up, with exceptions
taken for emagged stuff since I didn't really want to touch its
behavior.

The Battle Arcade now has stages that players can go through, unlocking
a stage by beating 2 enemies and the boss of the previous one, but this
must all be done in a row. You can choose to take a break between each
battle and there's a good chance you'll sleep just fine but there's also
a chance it can go wrong either through an ambush or robbery.

The Inn lets you restore everything for 15 gold and you can buy a sword
and armor, each level you unlock is a new sword and armor pair you can
buy that's better than the last, it's 30 gold each but scales up as you
progress through levels. They are really worth getting so it's best to
try to not lose your money early in.

The battle system is nearly the same as how it was before but I removed
the poor combo system that plagued the old arcade as one big knowledge
lock, now it's more just turn based. The game is built on permadeath so
dying means you restart from the beginning, but if you are going to lose
you can try to escape instead which costs you half of your gold.

Getting to higher levels increases the difficulty of enemies but also
increases the gaming exp rewards which could make this a better way to
get exp if you can get good at it.

Gaming EXP is used to increase chances of counterattacking but doesn't
give any extra health to the player.

I also removed the exploit of being able to screwdriver arcade cabinets
because people would do that if they thought they were on the verge of
losing to bypass the effects of loss. I instead replaced it with a new
interaction that the Curator's display case key can be used to reset
arcade cabinets (there's several keys on the chain so it made sense to
me), which I added solely because I thought Curators would be the type
of person to have run an actual arcade.

This is some gameplay

https://github.com/tgstation/tgstation/assets/53777086/499083f5-75cc-43b5-b457-017a012beede

As a misc sidenote, I also split up the arcade file just like how Orion
Trail was before, just for neat code organization.
The Inn keeper is straight up just a photo of my localhost dude, he's
not a player reference or anything it's not my actual character.
I also have no idea how well balanced this is cause I suck at it lol.

Battle Arcade is one of 3 last machines in my hackmd here to turn into
TGUI https://hackmd.io/XLt5MoRvRxuhFbwtk4VAUA?view
I've always thought the current version of battle arcade is quite lame
and lacks any progression, like Orion Trail I thought that since I was
moving this to TGUI, it would also be a perfect opportunity to revamp it
and try to improve on where it failed before, especially since the
alternative (NTOS Arcade) is also lame as hell and is even lamer than
HTML battle arcade (spam mana, then spam health, then just spam attack,
rinse and repeat).
This will hopefully be more entertaining and give players sense that
they are getting through a series of tasks rather than doing one same
one again and again.

🆑 JohnFulpWillard, Zeek the Rat
add: Battle Arcade has been completely overhauled in a new progression
system, this time using TGUI.
add: The Curator's keys can now reset arcade cabinets.
balance: You now need to be literate to play arcade games, except for
Mediborg's Amputation Adventure.
fix: You can no longer screwdriver emagged arcade consoles. Accept your
fate.
fix: Silicons can no longer play Mediborg's Amputation Adventure.
/🆑

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>

* Change setting item weight class to a setter to patch some weight class related shenanigans (#82494)

## About The Pull Request

Fixes #81052 
Fixes #58008

Setting weight class of items is now done via `update_weight_class`.

I updated as many occurrences of manually setting `w_class` as I could
find but I may have missed some. Let me know if you know of any I
missed.

This is done to allow datums to react to an item having its weight class
changed.

Humans and atom storage are two such datums which now react to having an
item in its contents change weight class, to allow it to expel items
that grow to a weight class beyond what is normally allowed.

## Changelog

🆑 Melbert
fix: You can't fit items which are normally too large for a storage by
fitting it in the storage when it is small, then growing it to a larger
size.
/🆑

* Material datum color update, plus touching up some material items (knight armor, tiles) (#82500)

## About The Pull Request

Tries to bring the material datum colors in closer approximation to the
stacks they're attached too. I literally used the colors on the stacks.
some might need to be lighter or darker, but for the most part they'll
look...closer to their actual material hues.

![material datum stuff
2](https://github.com/tgstation/tgstation/assets/40847847/a3a5968f-cab3-43dd-8699-3dae879b21fb)

I've also tweaked the sprites of both the tile object and the actual
material tile turf to give it the right shading.


![image](https://github.com/tgstation/tgstation/assets/40847847/56489479-8774-492b-b8cc-aeabc6c0a67f)

In addition to the tiles, I've also updated the knight armor and helmet
to look closer to the much higher quality plate armor already in the
game.

## Why It's Good For The Game

It bothered me that the material datum coloring was inconsistent with
the actual colors used for the material stacks. When they were updated,
and even before they were updated, material datum stuff just never
looked _right_. I wanted to change that so that it looks just right.

I did not like the old material knight armor whatsoever. It was a
dithered mess, and seemed to already use parts of the standard plate
armor but with all the actual shading removed or replaced with the wrong
colors. This fixes that so that the armor is actually readable for what
it is.

## Changelog
🆑
image: Updates the colors of various material datum to bring them closer
in-line with their actual material stacks
image: Improves the sprites for the material knight armor and helmet.
/🆑

* LateInitialize is not allowed to call parent anymore (#82540)

## About The Pull Request

I've seen a few cases in the past where LateInitialize is done cause of
the init return value being set to do so for no real reason, I thought I
should try to avoid that by ensuring LateInitialize isn't ever called
without overriding.

This fixes a ton of machine's LateInitialize not calling parent
(mechpad, door buttons, message monitor, a lot of tram machines,
abductor console, holodeck computer & disposal bin), avoiding having to
set itself up to be connected to power. If they were intended to not
connect to power, they should be using ``NO_POWER_USE`` instead.

Also removes a ton of returns to LateInit when it's already getting it
from parent regardless (many cases of that in machine code).

## Why It's Good For The Game

I think this is better for coding standard reasons as well as just
making sure we're not calling this proc on things that does absolutely
nothing with them. A machine not using power can be seen evidently not
using power with ``NO_POWER_USE``, not so much if it's LateInitialize
not calling parent.

## Changelog

🆑
fix: Mech pads, door buttons, message monitors, tram machines, abductor
consoles & holodeck computers now use power.
/🆑

* Fix table top deconstruction (#82508)

## About The Pull Request

Edited: updated changelog, read comments for changes in implementation
details

So previously, tables would let you use a wrench to fully deconstruct
them, or a screwdriver to take off only their top.
This, however, broke in two different ways in #82280, when their
deconstruction logic got changed.

First off, deconstructed tables would only drop the materials for their
top and not their frame.
For this, the primary culprit seems to be on line 307:

https://github.com/tgstation/tgstation/blob/c34d56a45b0461f5e0fad3cc75e81580c3357119/code/game/objects/structures/tables_racks.dm#L300-L307
Where `new framestack(target_turf, framestackamount)` accidentally got
an extra indent, and ended up in the less common half of the if-else
chain.
Just moving this outside of the if-else chain again fixes it.

Secondly, tables had their own special deconstruction logic, which got
'standardized'.
Issue. This was special to accommodate for having two different
deconstruction logics: full or top only.
With `deconstruct(...)` no longer being overridable, I feel it's awkward
to attempt to proxy that information to the new `atom_deconstruct(...)`
So we introduce a new method, `deconstruct_top`, for the screwdriver to
use, which handles deconstructing only the top.
```dm
/obj/structure/table/proc/deconstruct_top()
	var/obj/table_frame = new frame(loc)
	if(obj_flags & NO_DECONSTRUCTION)
		table_frame.obj_flags |= NO_DECONSTRUCTION
	else // Mimic deconstruction logic, only drop our materials without NO_DECONSTRUCTION
		var/turf/target_turf = get_turf(src)
		drop_top_mats(target_turf)
	qdel(src)
```
Mimicking the `NO_DECONSTRUCTION` logic of normal deconstruction, and
copying over the flag onto its frames if need be.
This fixes screwdriver deconstruction.
## Why It's Good For The Game

Fixes #82503.
We can now deconstruct the table top separately again, AND get the right
materials back too.

## Changelog
🆑 00-Steven, SyncIt21
fix: Wrench table deconstruction gives the right materials again.
fix: Screwdriver table deconstruction only deconstructs the top again.
/🆑

* [NO GBP] Reagent grinders display reagents on examination (#82535)

## About The Pull Request
- Fixes #82531

Somehow omitted this during the general maintenance thing

## Changelog
🆑
fix: Reagent grinders display reagents of its beaker on examination
/🆑

* 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
https://github.com/tgstation/tgstation/pull/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)

* Gets [weird] with (spies) by adding protect and deuteragonist-flavored objectives. (#82447)

## About The Pull Request

What are their goals? Why are they doing this? gets weird with Spy
objectives - namely by adding a lot more ways spies might be asked to
affect various targets around the station.

the first of these is by several flavors of Protecting targets (these do
NOT print a success at roundend in keeping with Spy design:)
- Protect (get a humanoid target off alive)
- Protect Nonhuman (get an entity off alive)
- Jailbreak (make sure a humanoid target escapes free)
- Detain (make sure a humanoid target gets taken out arrested)

the second of this is by a new escape condition: 
- Exile (get off-station or off the Z-level by the end of the shift -
sometimes it's not just pods, you need to fuck off to space to win.)

the third is through a massive increase in the number of possible:
- objective templates 
- departments to target (Command + Service added)
- specific locations to target
- general classes of objects to target (medicines, floor tiles, critical
infrastructure, etc.)
- efforts to target (such as meals, mechs, public supplies)
- ways to leave (you can be asked to abscond from the scene of your
crimes?)

## Why It's Good For The Game

More goofy and weird prompts to do more interesting things with Spies.
One thing I think we're sorely missing in our lineup is antagonists that
can act a bit more as deuteragonists - very possibly helping the crew
under certain conditions and frustrating the Hell out of them in others.

Since there's no way to check their objectives, and they get their
gear/progression through stealing shit, they're still very much an
antagonist and exist under the suspicion of doing bad... but, just going
by their objectives, introducing more varied (and in some cases even
benign) goals for them creates suggestions pointing to a lot more varied
and interesting stories if people choose to run with it.

* Adds anosmia quirk (#82206)

## About The Pull Request

Adds anosmia quirk. Anosmia, also known as smell blindness, is the loss
of the ability to detect one or more smells.

I tried to find all smells action and (most likely) update all of them,
unfortunately I can't change descriptions for this quirk.

## Why It's Good For The Game

Some characters will be able to not feel smells
That affect:
* Gases feelings and alerts (CO2, Plasma, miasm) - you don't feel them
* Bakery and cooking
* Changeling ability to feel other changelings by smell
* Some unimportant spans

* Explosions Part I - Directional Explosions (#82429)

## About The Pull Request

Adds the ability for explosions to be directional. This is achieved by
adding an angle check to `prepare_explosion_turfs()` to drop any turfs
outside the cone of the explosion. If the arc covers a full 360 degrees,
as is the default, it will accept all the turfs without performing the
angle check.

Uses this functionality to rework both rocket launcher backblast and X4
explosions. Rocket launcher backblast has been changed from a shotgun of
indendiary bullets to a directional explosion of similar length. X4 now
uses a directional explosion to "ensure user safety".

Apparently the old method of moving the explosion one tile away didn't
even work, as it blew up `target` before trying to check its density for
the directional behaviour.

https://youtu.be/Mzdt7d7Le2Y

## Why It's Good For The Game

Directional explosions - Useful functionality for a range of potential
use cases, which can be implemented with minimal extra processing cost
(Worst case scenario being very large directional explosions)

Backblast - Looks way cooler than a bunch of projectiles, and should be
significantly more functional in high-lag situations where projectile
code tends to get fucky

X4 - More predictable for players wanting to use it as a breaching
charge, you can actually stand near the charge and not have to worry
about being hoist upon your own petard.

## Changelog
🆑
add: Added support for directional explosions.
add: Rocket launcher backblast is now 271% more explosive, check your
six for friendlies!
add: X4 charges now explode in a cone away from the user when placed on
a sufficiently solid object.
fix: X4 charges will now behave correctly when placed on dense atoms
(note: don't try to read a variable from an atom you just blew up)
/🆑

* Add balloon alerts to plunging (#82559)

## About The Pull Request

Makes all plunging actions (pretty much anything using `plunger_act`)
have a visible balloon alert.

## Why It's Good For The Game

Makes sense that others would easily notice you plunging the shit out of
something.

Also, more people might finally learn that you can plunge the vent clogs
instead of welding them.

## Changelog
🆑
qol: Added balloon alerts whenever you start plunging something (i.e )
/🆑

* Fixes spurious runtime on Icemoon caused by turf calling unimplemented LateInitialize() (#82572)

## About The Pull Request

As of https://github.com/tgstation/tgstation/pull/82540 this runtime was
happening,


![image](https://github.com/tgstation/tgstation/assets/13398309/4d838fda-c157-4e33-ae64-77eafca1806f)

`/turf/open/openspace/icemoon/` can be changed to
`/turf/open/misc/asteroid/snow/icemoon/do_not_chasm` before
`Initialize()` returns, which resulted in it `INITIALIZE_HINT_LATELOAD`
getting returned on a turf that does not have an implementation of that
proc.

This should fix that.

## Why It's Good For The Game

Fixes CI error

* Blueprints tgui (#82565)

Blueprints now use a TGUI panel instead of the old HTML one.
Also did general code improvement and maintaining to blueprints in
general and also destroyed the ``areaeditor`` level, repathing it to
just 'blueprints'.
Also adds a sound when you look at structural data cause why not

Video demonstration:

https://github.com/tgstation/tgstation/assets/53777086/861773fd-3d57-472d-bc94-d67b0d4f1dbd

The 4 blueprint types:

![image](https://github.com/tgstation/tgstation/assets/53777086/bfd68eb5-c430-4608-a3f7-d6ac86727882)

Another HTML menu dead underground.
This is more responsive and doesn't require constant updating to see
which area you're in, feels less OOC (instead of saying "the blueprints
say", just say it, you ARE the blueprints).

Like, come on

![image](https://github.com/tgstation/tgstation/assets/53777086/fcf1b8b6-37c3-4c94-969f-3b121c983dc0)

Look at all this wasted space

![image](https://github.com/tgstation/tgstation/assets/53777086/1d3e61cd-bc56-4280-a3bb-0c66604e75b3)

🆑
refactor: Blueprints now use TGUI.
qol: Blueprints can now be used while lying down.
/🆑

* General maintenance for chem master (#82002)

**1. Qol**
- Adds screen tips & examines for screwdriver, wrench, crowbar & beaker
insertion, removal & replacing actions
- Analyzing reagents is now a client side feature & not a back end mode,
meaning one person can see details of a reagent while the other can
print stuff and do other operations so it's a non blocking operation.
This also means 2 players can see information of 2 different reagents in
their own screens, With that the overlay for analysis mode has been
removed
- You cannot do any tool acts on machines while printing. Balloon alerts
will be displayed warning you of that.
- The preferred container for the master reagent in the beaker is now
showed in both condiment & chem master. It can be enabled/disabled via a
CheckBox

**2. Code Improvements**
- Removed defines like `TARGET_BEAKER` , `TARGET_BEAKER` etc. ther
functionality is implemented as params in the `transfer_reagent()` proc
directly
- Removed all variables relating to analyzing reagents like
`reagent_analysis_mode`, `has_container_suggestion` etc. all memory
savings
- `printable_containers` now stores static values that can be shared
across many chem masters
- Updates only overlays and not the whole icon during operations for
efficiency

**3. Fixes**
- You can hit the chem master with the screwdriver, wrench, crowbar &
beaker when in combat mode
 - You cannot insert hologram items into the chem master
- Deconstructing a condiment master will give you the circuit board
already pre-programmed with that option selected so you don't need to
use a screwdriver to re program it
- `printing_amount` is now the maximum number of containers that can be
printed at a time. Presently this number with upgraded parts would print
out empty containers especially for patches. This is because
`volume_per_item` does not take into consideration this var. Also this
var would not give control to the player on exactly how many containers
to print as whatever amount the player entered would be multiplied with
this value producing a lot of waste & worse empty containers. Now this
var determines exactly how many containers you can print and is imposed
on the client side UI as well

**4. Refactors (UI performance)**
- Beaker data is compressed into a single entity & sent to the UI. This
is set to null if no beaker is loaded thus saving data sent
- Reuses Beaker props from chem synthesizer to reduce code
- reagent REF replaced with direct type converted to text and later
converted with `text2path()` cause its much faster

🆑
qol: Adds screen tips & examines for screwdriver, wrench, crowbar &
beaker insertion, removal & replacing actions
qol: Analyzing reagents no longer blocks other players from doing other
operations. Multiple players can analyze different reagents on the same
machine
qol: You cannot do any tool acts on the machine while printing to
prevent any side effects.
qol: The preferred container for the master reagent in the beaker is now
showed in both condiment & chem master. The feature can be
enabled/disabled via a check box
code: removed defines for reagent transfer, vars for reagent analyzis to
save memory. Autodoc for other vars & procs
fix: You can hit the chem master with tools like screwdriver, crowbar,
wrench & beaker in combat mode
fix: You cannot insert hologram items into the chem master
fix: Deconstructing a condiment master will give you the circuit board
already pre-programmed with that option
fix: You now print the exact amount of containers requested even with
upgraded parts without creating empty containers. Max printable
containers is 13 with tier 4 parts able to print 50 containers.
refactor: Optimized client side UI code & chem master as a whole.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>

* Wraps `lowertext()` to ensure proper stringification. (#82442)

Fixes #82440

This PR just creates a new macro, `LOWER_TEXT()` (yes the irony is not
lost on me) to wrap around all calls of `lowertext()` and ensure that
whatever we input into that proc will be stringified using the `"[]"`
(or `tostring()` for the nerds) operator. very simple.

I also added a linter to enforce this (and prevent all forms of
regression) because I think that machines should do the menial work and
we shouldn't expect maintainers to remember this, let me know if you
disagree. if there is a time when it should be opted out for some
reason, the linter does respect it if you wrap your input with the
`UNLINT()` function.

* Clowns can now make balloon... toys. And also mallets and hats. (#82288)

<!-- 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. -->

Clowns will now start with a box of 24 random long balloons and a
skillchip in their noggin allowing them to create balloon animals by
combining two of them of different colour together. Owners of the
skillchip also gain access to crafting recepies of balloon mallets,
vests, helmets and tophats, all created from long balloons. A crate of
long balloons, with a box of balloons inside, can be bought at cargo, in
case the clown runs out. I might edit this once I wake up, its 3 in the
morning right now.
Oh also, resprited how balloons look in inventory.

![image](https://github.com/tgstation/tgstation/assets/122572637/2d7ce955-c787-48a5-bfda-4613d2eed837)

Balloon animals funny.
Silly features are my favourite kind of features, and this one's
open-ended too.
Someone on the coder chat recommended someone would do it that one time,
here it goes.

<!-- 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. -->

🆑
add: Added long balloon box to the clown's starting inventory, and a
skill-chip of long lost honk-motherian knowledge to their brain.
add: Added long balloons. Consequently, added balloon animals to make
from such balloons. Also, balloon top hat, vest, helmet, and a mallet.
Don't ask about the mallet.
add: A long balloons box harvested fresh from the farms on the clown
planet will be able to be shipped in a crate to the cargo department
near you!
add: As per requests; water balloons can now be printed at service
lathe, and entertainment modsuit can now blow long balloons!
image: Balloons will now have an unique sprite when in the inventory,
compared when to on the ground.
/🆑

<!-- 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: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>

* Quick spellcheck 'steall' (#82560)

## About The Pull Request

https://github.com/tgstation/tgstation/pull/82447 quick followup to
this, caught it while glancing through the code.

* Fix

* merge conflicts

* Revert "Monkeys now use height offset (and monkey tail works) (#81598)"

This reverts commit 5cfdc5972d16c6b509220e8874a927696249d36a.

* fix

* Fixed lateinitialize

* This should cut it

* Oh right

* There?

* Damn, here?

* There

* [NO GBP] Fixes spurious runtime caused by icemoon (again) (#82582)

## About The Pull Request

https://github.com/tgstation/tgstation/pull/82572 I tried to fix this
but there was an unaccounted race condition which just caused a separate
runtime...


![firefox_GxGibAO281](https://github.com/tgstation/tgstation/assets/13398309/f251aecc-ef17-4bae-a741-5aade40de423)

Since the type is being changed mid-execution `replacement_turf` will
become out of scope. My bad--this should fix it now for good.

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Higgin <cdonny11@yahoo.com>
Co-authored-by: NeonNik2245 <106491639+NeonNik2245@users.noreply.github.com>
Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
Co-authored-by: Lucy <lucy@absolucy.moe>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2024-04-26 01:22:24 +02:00