Commit Graph
506 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
RoxyandGitHub 2f4666665e Fix two issues with icebox lizard gas (#5703)
## About The Pull Request

- The area type for lizard gas on icebox had `requires_power = FALSE`
which means when the APC ran out nothing happened, which is dumb because
there's an APC and an SMES and a deployable generator the power is
clearly supposed to matter
- Because the ruin spawns on the station Z level the circuit imprinter
auto connects to the station ore silo, this doesn't make sense and the
lavaland version doesn't do it so it doesn't anymore
## Why It's Good For The Game

Fixes #5370 

## Proof Of Testing

I spawned in and set the APC charge to 0 and verified that the area
actually loses power and lights go out/machines turn off, then I went
and put some mats into the station ore silo and verified that the
circuit imprinter in the gas station didn't have them

## Changelog
🆑
fix: fixed icebox lizard gas having infinite power
fix: fixed icebox lizard gas circuit imprinter connecting to station ore
silo
/🆑
2026-05-30 14:06:15 -05:00
SmArtKarandGitHub d988a7b68e Removes a rogue syndiedome ruin decal (#95999)
## About The Pull Request
<img width="478" height="331" alt="image"
src="https://github.com/user-attachments/assets/e32d741a-69f3-4c01-be20-87470e039fb2"
/>


## Changelog
🆑
fix: Removed a rogue syndiedome ruin decal
/🆑
2026-05-09 10:25:51 +02:00
nevimer 5882ff4a12 updatepaths commit 2026-03-10 16:45:13 -04: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
SyncIt21andGitHub 7fc6e1402a Additional maintenance for plumbing related stuff (#94753)
## About The Pull Request
**Qol**
- Adds examines & screen tips for washing items in sinks
- Adds examines & screen tips for wall frame items i.e deconstructing
with wrench & what structures you can mount them on

**Fixes**
- Plumbing components inside shuttles now properly reconnect 
- Plumbing iv drip has their connectors (red & blue pipes) visible again
- Sinks consume reagents when washing and won't wash when it becomes dry
- Fixes #94942 placing ducts by hand on turf won't run time. Also
Plumbing machinery properly reconnects when un wrenching ducts in
circular connections
- All plumbing machinery now operates in the plumbing subsystem & map
loaded machines begin processing

**Refactor**
- Refactored sink frame into a wall frame item meaning it can now be
carried in hand and mounted on walls
- Refactored the sink attack chain to use `item_interaction()` instead
of `attackby()`
- All sinks are now wall mounted components meaning destroying the wall
they are attached to will cause it to deconstruct

## Changelog
🆑
qol: added examines & screen tips for wall frame items
qol: added examines & screen tips for washing items in sinks
fix: plumbing components inside shuttles reconnect to their machine
counterparts correctly
fix: plumbing iv drip has its red & blue connectors visible again
fix: sinks consume reagents when washing and won't wash when it becomes
dry
fix: map loaded plumbing machines begin processing
fix: placing stack of ducts by hand of ducts works again
fix; plumbing machinery properly reconnects when un wrenching ducts in
circular connections
refactor: sinks are now proper wall mounted components meaning
destroying their attached walls will cause it to get destroyed & sink
frames are wall frame items that can be carried in hand
/🆑
2026-01-26 15:00:11 +01:00
Leland KembleandGitHub 7558dc8e4b Replaces instances of mapped in normal wooden barricades on top of objects with crude wooden barricades (#94755)
## About The Pull Request

We've all seen that thing that happens where you open a door in
maintenance, and a large barricade of wood materializes where the door
just was. That's not right. The obvious solution would be to make the
barricade appear on top of the door beforehand, and while that works in
terms of behaviour, it looks really weird:
<img width="82" height="82" alt="image"
src="https://github.com/user-attachments/assets/e2c170d8-8a3d-4f09-80a4-976c525bed9f"
/>
and even weirder on objects such as windows & shutters. I suppose that's
why you're not able to build them on top of these things in actual
gameplay.

Instead, this replaces every instance of a mapped-in wooden standard
barricade that appears on top of an object (save for one on top of a
girder in icebox) with a crude barricade, causing it to both appear on
top of the object and look right doing so.

Additionally, comes with a linter for big barricades on top of airlocks
& windows.

## Why It's Good For The Game

It doesn't look weird nor act weird. Even aside from the airlocks, these
things are weird with windows, acting like they're inside the glass.

Additionally, while this does technically reduce their integrity,
increase projectile passing rate & reduce plank drop amount, so I'm
labeling it balance out of good faith, the only actual balance
implication this has is that the barricade being on top of the door
prevents it from being opened via a simple bump, which could and does
effect atmos situations, but I'd sooner call that a bugfix than a
balance change.

## Changelog
🆑

balance: wooden barricades mapped on top of objects are now crude
barricades, preventing them from materializing when you open a door.

/🆑
2026-01-07 17:57:31 -05:00
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
Leland KembleandGitHub 50f25c5b9d [MDB IGNORE] Offstation piping & cabling lookover (#94445)
## About The Pull Request

Looks over all offstation map files save for shuttles & bitrunning
domains for piping & cabling defects, inefficiencies, & deviations from
standard design. Any defects explainable as the result of damage have
been ignored, obviously. As usual, no pieces of equipment other than
piping & cabling were moved.

A few gameplay-effecting issues were addressed:

The Icebox Thing ruin's medical section had a scrubber disconnected from
the main line.
The Lavaland Beach Biodome had an injector for its scrubber line into
the outdoors, but as the outdoors are unpowered it has been replaced
with a passive vent.
The Lavaland Surface Gas Station's oxygen tank was on the incorrect
piping layer. This tank has also become an air tank, instead.
The Lavaland Surface Gas Station's central air vent was disconnected.
The Film Studio's crew's bedroom's vents were disconnected.
The Haunted Trading Post(space donk co ruin with the AI chamber) was
surrounded by electrical grille spawners, but these spawners spawn
yellow cables while the ruin uses red cables. They have been replaced
with a new layer 1 electrified grille spawner.
The Waystation ruin was hotwired due to electrical grille spawners.
The "Research" gateway's Dorms & Medbay APCs were disconnected.

A few maps have an incredibly large amount of useless cables, these
being the Icebox gas station & comms agent outpost, & the interdyne
space ruin. These cables are being left in under presumption of intent.

One map, the "the_outlet" space ruin, has air pipes leading to all of
its air alarms, for an indiscernible reason. These pipes are also being
left in under presumption of intent.

## Why It's Good For The Game

Just because they're all dead or criminals doesn't mean they like
wasting credits on piping, or that they don't have standards.

Solves the issues mentioned above.

## Changelog
🆑

map: A great deal of offstation structures have been given more
efficient piping & cabling.
map: Several offstation structures have had piping & cabling issues
resolved.

/🆑
2025-12-17 00:21:22 +00: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
SyncIt21andGitHub b03fc39287 Replacing objects with their mapping directional helpers Part 3 (#94315)
## About The Pull Request
Continuation of #94059. Replaces the following signs with their
directional helpers

- `/obj/structure/sign/departments/cargo :
/obj/structure/sign/departments/cargo/directional`
- `/obj/structure/sign/warning/vacuum/external :
/obj/structure/sign/warning/vacuum/external/directional`

## Changelog
🆑
qol: added mapping directional helper for cargo & vacuum signs allowing
them to interact with fire/acid on their mounted turf
/🆑
2025-12-09 23:33:44 +00:00
SyncIt21andGitHub 2424103245 Replacing objects with their mapping directional helpers Part 2 (#94181)
## About The Pull Request
Continuation of #94059. Replaces the following signs with their
directional helpers

- `/obj/structure/sign/warning ->
/obj/structure/sign/warning/directional`
- `/obj/structure/sign/warning/radiation ->
/obj/structure/sign/warning/radiation/directional`
- `/obj/structure/sign/warning/secure_area ->
/obj/structure/sign/warning/secure_area/directional`

Depends on #94076 for diagonal wall mounts

## Changelog
🆑
qol: added mapping directional helper for warning, radiation & secure
area sign allowing them to interact with fire/acid on their mounted turf
qol: adds mapping helper to create diagonally shifted objects
/🆑
2025-12-02 23:46:53 +00:00
SyncIt21andGitHub f7bc204bf7 Replacing objects with their mapping directional helpers Part 1 (#94059)
## About The Pull Request
Improving upon #93662 where i noticed a lot of objects don't have
directional helpers

Replaces the following mapped in objects with their directional
counterpart

- `/obj/structure/sign/nanotrasen ->
/obj/structure/sign/nanotrasen/directional`

less var edits & also more realistic interaction with fire/acid etc if
the turf on which they are placed on is attacked which isn't the case if
they are directly mounted on walls

## Changelog
🆑
qol: adds mapping directional helper for nanotrasen sign & replaces all
var edited instances
/🆑
2025-12-02 23:44:30 +00:00
nevimer fc2c3d826e Reset Maps to TGstation 2025-11-29 22:51:11 -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
san7890andGitHub 8400284868 Illusion Basic Mob Refactor (#93860)
## About The Pull Request

Another relatively simple simple_mob to basic mob refactor. I wish more
people were doing these since I was saving these for people to get their
feet wet, but I think it's better to pivot away from that and just have
only the gargantuan ones outstanding (since those ones are pretty much
their own framework).

I also delayed this one because we didn't actually have the AI framework
available 1-2 years ago for this to be seamless and easy, but now we
have easy fleeing functionality so that's an easy plug and play.

This rework contains the following:

* General code readability changes and standardization (i.e. removing
single letter vars, `SECONDS` defines)
* Moves more stuff to subtypes instead of having it be on parent
* Removes the necessity for define "attack modes", that's on subtypes
now
* Fixed instances where args weren't defined. I think cult apparitions
via the mirror shield have been much weaker than what they were
originally intended to, so I changed it to what I thought was correct. I
can change the health to be down but it really doesn't make sense as a
lot of the args were not standardized (ideally we would have more
subtypes). I can change this back to the original arg order, let me
know.
* Clones now replicate on damage taken as well as when they attack. I
wanted to tweak this around more but this was originally added since I
confused myself, but it gave a more realistic mitotic effect I liked
more for the replicating clones.
## Why It's Good For The Game

If we want more flamboyant mirage escapes or sneaky clone AI behavior,
it is now far easier to implement. It's very simplistic at the moment
but is pretty much fully featured and representative of the simple mob
version of illusions. They were already laden to the item/mob that was
spawning them in anyways, so this is really the most simple stuff we got
going on.

I tested this with the mirage grenade, reactive stealth armor, and the
mirror shield. I have no clue how the heretic stuff works but it appears
to be a really simple framework plug-and-play so no real worries there I
think.
## Changelog
🆑
refactor: The Cult of Nar'Sie realized that they were installing the
mirrors on their mirror shields the wrong way around, thus altering the
makeup of their mirror clones health, damage, and re-replicability.
refactor: In response to the recent updates in clone magic, Nanotrasen's
Stealth Reactive Armor should now generate more convincing clones.
/🆑
2025-11-26 13:02:00 +11:00
EEASASandGitHub a567cbf640 Fixes Icemoon Comms Agent's secret documents (#94065)
## About The Pull Request
Closes #88539 (This issue has been open for almost an entire fucking
year now holy moly dude)
This replaces the documents in the comms agent room(s) on Icebox.
It replaces `/obj/item/paperwork` (generic paperwork, no importance at
all) with `/obj/item/folder/syndicate/mining` which is ACTUALLY secret.
It also makes the traitor objective of stealing any secret documents
easier. These documents are also found on the Lavaland equivalent of the
comms agent ruin.
## Why It's Good For The Game

Mmmm fixes... More gameplay...
## Changelog
🆑
fix: Fixes Icebox's comms agent ruin having generic documents, not the
secret ones
/🆑
2025-11-22 23:11:05 +01:00
SyncIt21andGitHub 81427cd5cf Unit tests, refactor & realignment for map loaded wall mounts (#93662)
## About The Pull Request
This 1st has to be PR'd so the integration tests can point out all
wallmounts that could not find a support structure to mount on. I then
will do many map edits to align them onto the closest atom

Yes we no longer use wall mount but atom mounted component. All objects
that are mounted on windows/tables & fences now also fall off when
destroyed

It'll probably be a WHILE before I can fix all wall mounts. Long day.
Expect me to misalign many stuff to fix failing CI so make sure to
provide suggestions when possible

Improved wallmount code overall
- Fixes #93793


## Changelog
🆑
fix: fixes all incorrectly maploded wall mounts that aren't actually
hanging on any support structure
fix: objects mounted on tables, windows & fences also fall off now when
destoryed
qol: lights can be mounted on windows
qol: cameras can be mounted on windows
qol: buttons can be mounted on tables
refactor: improved how wall mounts interact with objects as a whole
report bugs on github
/🆑
2025-11-18 22:37:12 -07:00
Roxy 5e653aa3c1 93808_turret_control_varedited_iconstate 2025-11-12 17:40:39 -05:00
Roxy 71faa643bf Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-12 2025-11-12 16:44:13 -05:00
e30b7d97ef Add constructable floor lights + mapping subtypes (#93537)
## About The Pull Request
Features:
- Floor lights can be constructed using a small light fixture on the
turf you are standing on
- Floor light construction sprites
- `/burned` subtypes for lights
- Convert `/build` subtypes to `/empty` subtypes with `UpdatePaths`
script

## Why It's Good For The Game
Floor lights can now be constructed in game using the same mechanics as
other lights. The `/burned` and `/empty` subtypes might be useful for
mapping.

## Changelog
🆑
add: Add constructable floor lights by using a small light fixture on
the floor. They are constructed the same way as other lights.
qol: Add `/burned` subtype to `/obj/machinery/light` for mapping
shenanigans
image: Add floor light construction sprites
map: Converted the `/built` subtype for `/obj/machinery/light` to be
`/empty` and added an UpdatePaths script.
/🆑

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
2025-11-10 21:17:51 +13: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
99ab268ab0 Icemoon listening post kitchen gets a knife and some more ingredients (#93480)
## About The Pull Request

I think I finally got making new branches down so bits of other PRs
don't slip into this one? Anyways, this is a small change to make
cooking as a comms agent on ice box easier.

## Why It's Good For The Game

I don't think comms agents are supposed to be chefs, but holy shit is it
hard to cook without something like a knife. I mean you have the
ingredients to make cheese, but you can't even slice it. Not having
sugar also locks you out of a ton of foods. After this change you're
still missing things like meat, a food processor, most vegetables, and a
dehydrator, but you can at least make something to hold you over during
long shifts.

## Changelog

🆑
add: Added a knife, sugar, and a carrot to the icemoon listening post
/🆑

Co-authored-by: Fghj240 <fakeemail@notrealemail.com>
2025-10-17 20:47:39 +02:00
xPokee 8aa39b75f0 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-10-04 05:28:09 -04:00
ArcaneMusicandGitHub f74b725961 Ore vent sizes are now divided up based on their distance to the mining base (#92943) 2025-10-03 18:07:52 +02:00
xPokee 8db20c37d2 Runtime fixing 2025-09-10 14:54:36 -04:00
xPokee 939f2fc9ac Merge branch 'master' of https://github.com/tgstation/tgstation into xpokee-test-upstream-sync 2025-09-10 14:12:16 -04:00
27e868a3da Refactors how air sensors & atmos monitors connect (#92849)
## About The Pull Request
**1. Qol**
- Air sensors(maploaded & hand crafted) now auto connect to any input
ports & output valves that are within a 4 tile radius from it meaning
there is no need for these ports to have unique IDs attached to them &
you don't need a multitool to link them together if you first placed
those ports & then placed the air sensor close to them
- Atmos control monitors now finds all air sensors that are closest to
it within the same z level meaning you can have/place multiple air
sensors of the same type on the same z level & the monitor will locate
them correctly without any ambiguity

**2. Refactor**
- Removed var `chamber_id` from both injectors & vents meaning you don't
need to have unique ids assigned to them. As long as mappers/players put
them within 4 tile radius from the air sensor it will auto connect to
them
- Removed var `GLOB.map_loaded_sensors`

## Changelog
🆑
qol: hand crafted air sensors now auto connect to input & output ports
if they are located within a 4 tile radius from it
qol: atmos control monitors now locate all air sensors nearest to in on
that same z level meaning you can have multiple air sensors of the same
type on the same map
refactor: refactored how air sensors & atmos monitors connect to each
other. Please report any atmos computers that have missing input
valves/output ports on their connected air sensors or those that don't
list any air sensors at all on github
/🆑

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2025-09-10 01:06:36 -07:00
nevimer 99be7d565e Merge branch 'master' of https://github.com/tgstation/tgstation into pupstream-08-19
# Conflicts:
#	.github/CODEOWNERS
#	.github/CONTRIBUTING.md
#	.github/workflows/auto_changelog.yml
#	.github/workflows/compile_all_maps.yml
#	.github/workflows/compile_changelogs.yml
#	.github/workflows/gbp.yml
#	.github/workflows/gbp_collect.yml
#	.github/workflows/stale.yml
#	README.md
#	SQL/database_changelog.md
#	_maps/_basemap.dm
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	_maps/map_files/KiloStation/KiloStation.dmm
#	_maps/wawastation.json
#	code/__DEFINES/combat.dm
#	code/__DEFINES/icon_smoothing.dm
#	code/__DEFINES/inventory.dm
#	code/__DEFINES/mobs.dm
#	code/__DEFINES/subsystems.dm
#	code/__DEFINES/surgery.dm
#	code/__HELPERS/roundend.dm
#	code/_globalvars/bitfields.dm
#	code/_globalvars/lists/mobs.dm
#	code/_globalvars/traits/_traits.dm
#	code/_globalvars/traits/admin_tooling.dm
#	code/_onclick/hud/hud.dm
#	code/_onclick/hud/human.dm
#	code/_onclick/hud/screen_objects.dm
#	code/controllers/subsystem/processing/quirks.dm
#	code/controllers/subsystem/sprite_accessories.dm
#	code/controllers/subsystem/statpanel.dm
#	code/controllers/subsystem/ticker.dm
#	code/datums/brain_damage/creepy_trauma.dm
#	code/datums/browser.dm
#	code/datums/components/crafting/crafting.dm
#	code/datums/components/echolocation.dm
#	code/datums/components/leanable.dm
#	code/datums/dna/blocks/dna_features_block.dm
#	code/datums/dna/dna.dm
#	code/datums/emotes.dm
#	code/datums/map_config.dm
#	code/datums/mutations/_mutations.dm
#	code/datums/mutations/chameleon.dm
#	code/datums/quirks/negative_quirks/allergic.dm
#	code/datums/records/manifest.dm
#	code/datums/ruins/icemoon.dm
#	code/datums/station_traits/_station_trait.dm
#	code/datums/station_traits/job_traits.dm
#	code/datums/station_traits/neutral_traits.dm
#	code/datums/status_effects/debuffs/dna_transformation.dm
#	code/datums/storage/storage.dm
#	code/datums/storage/subtypes/bags.dm
#	code/datums/storage/subtypes/belts.dm
#	code/datums/storage/subtypes/others/misc.dm
#	code/datums/storage/subtypes/pockets.dm
#	code/datums/weather/weather.dm
#	code/datums/weather/weather_types/ash_storm.dm
#	code/game/data_huds.dm
#	code/game/gamemodes/objective.dm
#	code/game/machinery/computer/communications.dm
#	code/game/machinery/computer/dna_console.dm
#	code/game/machinery/computer/orders/order_computer/mining_order.dm
#	code/game/machinery/computer/records/medical.dm
#	code/game/machinery/dish_drive.dm
#	code/game/machinery/dna_infuser/organ_sets/fox_organs.dm
#	code/game/machinery/doors/airlock.dm
#	code/game/machinery/doors/firedoor.dm
#	code/game/machinery/requests_console.dm
#	code/game/objects/effects/decals/cleanable/blood.dm
#	code/game/objects/items/climbingrope.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/dualsaber.dm
#	code/game/objects/items/stacks/sheets/sheet_types.dm
#	code/game/objects/items/storage/backpack.dm
#	code/game/objects/items/storage/belt.dm
#	code/game/objects/items/storage/boxes/clothes_boxes.dm
#	code/game/objects/items/storage/dufflebags.dm
#	code/game/objects/items/storage/medkit.dm
#	code/game/objects/items/storage/toolboxes/weapons.dm
#	code/game/objects/items/surgery_tray.dm
#	code/game/objects/items/tools/painter/paintable_decals.dm
#	code/game/objects/structures/crates_lockers/closets/utility_closets.dm
#	code/game/objects/structures/girders.dm
#	code/game/objects/structures/kitchen_spike.dm
#	code/game/objects/structures/mirror.dm
#	code/game/objects/structures/tables_racks.dm
#	code/game/sound/sound.dm
#	code/game/world.dm
#	code/modules/admin/admin.dm
#	code/modules/admin/create_mob.dm
#	code/modules/admin/topic.dm
#	code/modules/admin/verbs/admingame.dm
#	code/modules/admin/verbs/ert.dm
#	code/modules/antagonists/brother/brother.dm
#	code/modules/antagonists/cult/cult_armor.dm
#	code/modules/antagonists/fugitive/hunters/hunter.dm
#	code/modules/antagonists/space_ninja/space_ninja.dm
#	code/modules/antagonists/wizard/equipment/spellbook_entries/summons.dm
#	code/modules/client/preferences.dm
#	code/modules/client/preferences/language.dm
#	code/modules/client/preferences/middleware/_middleware.dm
#	code/modules/client/preferences/species_features/moth.dm
#	code/modules/client/preferences/species_features/mushperson.dm
#	code/modules/client/preferences/species_features/pod.dm
#	code/modules/client/preferences_savefile.dm
#	code/modules/clothing/head/hat.dm
#	code/modules/clothing/shoes/boots.dm
#	code/modules/clothing/shoes/sneakers.dm
#	code/modules/clothing/suits/utility.dm
#	code/modules/clothing/under/color.dm
#	code/modules/clothing/under/jobs/security.dm
#	code/modules/escape_menu/leave_body.dm
#	code/modules/hydroponics/grown/replicapod.dm
#	code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm
#	code/modules/jobs/job_types/cyborg.dm
#	code/modules/loadout/categories/pocket.dm
#	code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm
#	code/modules/mining/lavaland/mining_loot/megafauna/ash_drake.dm
#	code/modules/mob/dead/dead.dm
#	code/modules/mob/living/blood.dm
#	code/modules/mob/living/blood_types.dm
#	code/modules/mob/living/carbon/carbon.dm
#	code/modules/mob/living/carbon/examine.dm
#	code/modules/mob/living/carbon/human/_species.dm
#	code/modules/mob/living/carbon/human/dummy.dm
#	code/modules/mob/living/carbon/human/human.dm
#	code/modules/mob/living/carbon/human/human_defense.dm
#	code/modules/mob/living/carbon/human/human_update_icons.dm
#	code/modules/mob/living/carbon/human/inventory.dm
#	code/modules/mob/living/carbon/human/species_types/felinid.dm
#	code/modules/mob/living/carbon/human/species_types/mothmen.dm
#	code/modules/mob/living/carbon/human/species_types/mushpeople.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob/living/living_item_handling.dm
#	code/modules/mob/living/silicon/ai/ai_say.dm
#	code/modules/mob/living/silicon/robot/examine.dm
#	code/modules/mob/living/silicon/robot/robot.dm
#	code/modules/mob/living/silicon/robot/robot_model.dm
#	code/modules/mob/mob_say.dm
#	code/modules/mod/mod_activation.dm
#	code/modules/mod/modules/_module.dm
#	code/modules/modular_computers/computers/item/computer.dm
#	code/modules/power/smes.dm
#	code/modules/projectiles/gun.dm
#	code/modules/reagents/chemistry/holder/mob_life.dm
#	code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
#	code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm
#	code/modules/reagents/chemistry/reagents/medicine_reagents.dm
#	code/modules/religion/honorbound/honorbound_rites.dm
#	code/modules/shuttle/mobile_port/shuttle_move_callbacks.dm
#	code/modules/surgery/bodyparts/_bodyparts.dm
#	code/modules/surgery/bodyparts/head_hair_and_lips.dm
#	code/modules/surgery/organs/external/_visual_organs.dm
#	code/modules/surgery/organs/external/spines.dm
#	code/modules/surgery/organs/external/tails.dm
#	code/modules/surgery/organs/external/wings/moth_wings.dm
#	code/modules/surgery/organs/internal/ears/_ears.dm
#	code/modules/surgery/organs/internal/eyes/_eyes.dm
#	code/modules/surgery/surgery_step.dm
#	code/modules/tooltip/tooltip.html
#	code/modules/unit_tests/changeling.dm
#	code/modules/unit_tests/designs.dm
#	code/modules/unit_tests/screenshot_humanoids.dm
#	code/modules/unit_tests/screenshots/screenshot_airlocks_icons.png
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_blobinfection.png
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_bloodbrother.png
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_obsessed.png
#	code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_human.png
#	code/modules/unit_tests/screenshots/screenshot_husk_body.png
#	code/modules/unit_tests/simple_animal_freeze.dm
#	code/modules/vending/medical.dm
#	code/modules/vending/sovietsoda.dm
#	config/dynamic.toml
#	config/maps.txt
#	config/spaceruinblacklist.txt
#	icons/map_icons/clothing/_clothing.dmi
#	icons/map_icons/clothing/head/_head.dmi
#	icons/map_icons/clothing/head/beret.dmi
#	icons/map_icons/clothing/mask.dmi
#	icons/map_icons/clothing/neck.dmi
#	icons/map_icons/clothing/shoes.dmi
#	icons/map_icons/clothing/suit/_suit.dmi
#	icons/map_icons/clothing/under/_under.dmi
#	icons/map_icons/clothing/under/costume.dmi
#	icons/map_icons/clothing/under/dress.dmi
#	icons/map_icons/items/_item.dmi
#	icons/map_icons/items/encryptionkey.dmi
#	icons/map_icons/items/pda.dmi
#	icons/map_icons/objects.dmi
#	interface/skin.dmf
#	modular_zubbers/code/modules/storyteller/event_defines/ghostset/alien_infestation.dm
#	modular_zubbers/code/modules/storyteller/event_defines/ghostset/changeling.dm
#	modular_zubbers/code/modules/storyteller/event_defines/ghostset/nightmare.dm
#	modular_zubbers/code/modules/storyteller/event_defines/ghostset/space_dragon.dm
#	modular_zubbers/code/modules/storyteller/event_defines/ghostset/space_ninja.dm
#	modular_zubbers/code/modules/storyteller/event_defines/ghostset/spider_infestation.dm
#	modular_zubbers/code/modules/storyteller/event_defines/major/abductor.dm
#	modular_zubbers/code/modules/storyteller/event_defines/major/blob.dm
#	modular_zubbers/code/modules/storyteller/event_defines/major/fugitives.dm
#	modular_zubbers/code/modules/storyteller/event_defines/major/morph.dm
#	modular_zubbers/code/modules/storyteller/event_defines/major/pirates.dm
#	modular_zubbers/code/modules/storyteller/event_defines/major/revenant.dm
#	modular_zubbers/code/modules/storyteller/event_defines/major/slaughter.dm
#	strings/pirates.json
#	strings/traumas.json
#	tgui/packages/tgfont/icons/nanotrasen_logo.svg
#	tgui/packages/tgfont/icons/syndicate_logo.svg
#	tgui/packages/tgui/index.tsx
#	tgui/packages/tgui/interfaces/AntagInfoBlob.tsx
#	tgui/packages/tgui/interfaces/AntagInfoGeneric.tsx
#	tgui/packages/tgui/interfaces/AntagInfoTraitor.tsx
#	tgui/packages/tgui/interfaces/Orbit/JobIcon.tsx
#	tgui/packages/tgui/interfaces/PersonalCrafting/constants.ts
#	tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/MainPage.tsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/QuirksPage.tsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/index.tsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/loadout/ItemDisplay.tsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/loadout/base.ts
#	tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/loadout/index.tsx
#	tgui/packages/tgui/interfaces/Vending.tsx
#	tgui/packages/tgui/interfaces/VotePanel.tsx
#	tgui/packages/tgui/styles/interfaces/NtosMessenger.scss
#	tgui/packages/tgui/styles/interfaces/PreferencesMenu.scss
#	tgui/packages/tgui/styles/main.scss
#	tools/ci/copy_build_output.sh
#	tools/maplint/lints/window_spawner.yml
#	tools/pull_request_hooks/autoChangelog.js
2025-08-19 23:36:21 -04:00
Time-Greenandnevimer a66a60e711 1X3 ICEBOX | Wilderness Expansion (Now not extremely slow!) (#91920)
## About The Pull Request
Turns the surface z-level of icebox into a 1x3 area, effectively adding
2 wilderness new z-levels surrounding the station

Because it's not always clear to other people what I'm talking about,
this is what I mean with making the surface level a 3x3 z-level

The wilderness z-levels are gridlinked, instead of crosslinked, which
just means the connections are consistent and not randomized. If you
keep going right, you will always end up where you started again,
eventually. This also removes the black border around the surface icebox
z-level (cause you can just go there now)

**Wilderness levels**
I've added some Z-level templates that can be generated. They're
incredibly basic, but all can spawn runes on them as well.
- Snow planes (5x)
- Ice planes (1x)
- Forest planes (1x)
- Mountain planes (1x)

I've also tweaked surface generation quite a bit. It being completely
covered in bones always felt weird, and the intersparsed rocks and
chasms never sat right with me. The default overworldgen is now more
like the Forested trait, but with more sparse trees.

All of this is modular btw. You can increase the amount of z-levels,
make any space z-level be unrandomized gridlinked or add your own
wilderness z-levels (either to your own map or icebox)

## Why It's Good For The Game
Icebox exploration is kind of depressing. We have this unique setting,
but we can't really go anywhere? You can go down and find that one pool,
which is about the peak of exploration of icebox.

Now you can literally explore the entire round and get incredibly lost!
It's also a great opportunity for mappers! (Especially since the
templates I made were made rather quickly as I wasn't sure if this had
merit).

2 extra z-levels isn't a lot, but it'll let us further develop planetary
wilderness z-levels further without impacting load times that much.
Maybe 3x3 icebox can be real in the future, but for now 1x3 icebox will
have to do
2025-08-19 22:41:05 -04:00
Thunder12345andnevimer c50c88a82a Icebox ruin: RoroCo glove factory (#92473)
## About The Pull Request

Adds a new surface ruin to icebox, the RoroCo factory. Contains a couple
of puzzles, and a small amount of loot in the form of ~~3 total pairs of
insulated gloves~~ a pair of insulated gloves, two adorable roros and a
cool unique labcoat. Just don't ask where the gloves come from...

Puzzles can of course be avoided/brute-forced by breaking down the walls
but that's for chumps.

<img width="1152" height="1024" alt="Space Station 13 2025-08-06 221903"
src="https://github.com/user-attachments/assets/21050aa6-9b27-494d-a949-7496aeda18cf"
/>

## Why It's Good For The Game

The upcoming 1x3 icebox surface calls for more ruin content to help fill
that space.

## Changelog
🆑
add: A new insulated glove factory has popped up on the ice moon.
add: Freezer floor tiles now come in the full range of shapes.
/🆑
2025-08-19 22:40:43 -04:00
LemonInTheDarkandnevimer 6edf60f20d Autocuts diagonal walls, directional smoothing support, bumps cutter to v5.0.0 (#92471)
## About The Pull Request

See https://github.com/spacestation13/hypnagogic/releases/tag/v5.0.0 for
more details.

Some of this is just updating our existing .toml files to support the
changes to input vars (bools became enums). I'm also taking the
opportunity to implement autocutting for diagonal (read: shuttle mostly)
walls, which should be the LAST THING IN THE CODEBASE that wasn't
autocut. Hopefully this means none ever handcuts something ever again. I
hope.

Oh also [Removes /turf/closed/indestructible/syndicate/nodiagonal as it
does not do
anything](https://github.com/tgstation/tgstation/commit/df735ab0e6a4b8b432b8912f2781fea1a4856120)

The parent is also not diagonal so it doesn't like, do anything at all.

[cleans up redundant restoration
artifacts](https://github.com/tgstation/tgstation/pull/92471/commits/552454fbf443246b9a9474016ad158a90d108edf)

Restoration step doesn't know about templates, so it just sort of puts
in everything that NEEDS to be in there (or tries to). This leads to
artifacts when a template is included, shouldn't have those in the
codebase they don't do anything.

## Why It's Good For The Game

No more handcut bullshit.

Wallem asked me for directional cutting support, now we have that so art
folk can use it for stuff.
2025-08-19 22:33:51 -04:00
Time-GreenandGitHub a47835a04f 1X3 ICEBOX | Wilderness Expansion (Now not extremely slow!) (#91920)
## About The Pull Request
Turns the surface z-level of icebox into a 1x3 area, effectively adding
2 wilderness new z-levels surrounding the station

Because it's not always clear to other people what I'm talking about,
this is what I mean with making the surface level a 3x3 z-level

The wilderness z-levels are gridlinked, instead of crosslinked, which
just means the connections are consistent and not randomized. If you
keep going right, you will always end up where you started again,
eventually. This also removes the black border around the surface icebox
z-level (cause you can just go there now)

**Wilderness levels**
I've added some Z-level templates that can be generated. They're
incredibly basic, but all can spawn runes on them as well.
- Snow planes (5x)
- Ice planes (1x)
- Forest planes (1x)
- Mountain planes (1x)

I've also tweaked surface generation quite a bit. It being completely
covered in bones always felt weird, and the intersparsed rocks and
chasms never sat right with me. The default overworldgen is now more
like the Forested trait, but with more sparse trees.

All of this is modular btw. You can increase the amount of z-levels,
make any space z-level be unrandomized gridlinked or add your own
wilderness z-levels (either to your own map or icebox)

## Why It's Good For The Game
Icebox exploration is kind of depressing. We have this unique setting,
but we can't really go anywhere? You can go down and find that one pool,
which is about the peak of exploration of icebox.

Now you can literally explore the entire round and get incredibly lost!
It's also a great opportunity for mappers! (Especially since the
templates I made were made rather quickly as I wasn't sure if this had
merit).

2 extra z-levels isn't a lot, but it'll let us further develop planetary
wilderness z-levels further without impacting load times that much.
Maybe 3x3 icebox can be real in the future, but for now 1x3 icebox will
have to do
2025-08-15 01:58:58 -05:00
Thunder12345andGitHub d1b8145ad2 Icebox ruin: RoroCo glove factory (#92473)
## About The Pull Request

Adds a new surface ruin to icebox, the RoroCo factory. Contains a couple
of puzzles, and a small amount of loot in the form of ~~3 total pairs of
insulated gloves~~ a pair of insulated gloves, two adorable roros and a
cool unique labcoat. Just don't ask where the gloves come from...

Puzzles can of course be avoided/brute-forced by breaking down the walls
but that's for chumps.

<img width="1152" height="1024" alt="Space Station 13 2025-08-06 221903"
src="https://github.com/user-attachments/assets/21050aa6-9b27-494d-a949-7496aeda18cf"
/>

## Why It's Good For The Game

The upcoming 1x3 icebox surface calls for more ruin content to help fill
that space.

## Changelog
🆑
add: A new insulated glove factory has popped up on the ice moon.
add: Freezer floor tiles now come in the full range of shapes.
/🆑
2025-08-15 00:10:01 +00:00
LemonInTheDarkandGitHub 3330cd9ae8 Autocuts diagonal walls, directional smoothing support, bumps cutter to v5.0.0 (#92471)
## About The Pull Request

See https://github.com/spacestation13/hypnagogic/releases/tag/v5.0.0 for
more details.

Some of this is just updating our existing .toml files to support the
changes to input vars (bools became enums). I'm also taking the
opportunity to implement autocutting for diagonal (read: shuttle mostly)
walls, which should be the LAST THING IN THE CODEBASE that wasn't
autocut. Hopefully this means none ever handcuts something ever again. I
hope.

Oh also [Removes /turf/closed/indestructible/syndicate/nodiagonal as it
does not do
anything](https://github.com/tgstation/tgstation/commit/df735ab0e6a4b8b432b8912f2781fea1a4856120)

The parent is also not diagonal so it doesn't like, do anything at all.

[cleans up redundant restoration
artifacts](https://github.com/tgstation/tgstation/pull/92471/commits/552454fbf443246b9a9474016ad158a90d108edf)

Restoration step doesn't know about templates, so it just sort of puts
in everything that NEEDS to be in there (or tries to). This leads to
artifacts when a template is included, shouldn't have those in the
codebase they don't do anything.

## Why It's Good For The Game

No more handcut bullshit.

Wallem asked me for directional cutting support, now we have that so art
folk can use it for stuff.
2025-08-11 21:40:42 +02:00
Roxy 1c279f3472 Fixes for #92226 2025-08-04 20:54:03 -04:00
Thunder12345andRoxy e7c25d4c40 The Glitterening (#92226)
## About The Pull Request

Adds a number of new capabilities to glitter.

- It can be any colour.
<img width="657" height="398" alt="image"
src="https://github.com/user-attachments/assets/60e80c04-8eee-470c-8953-47f6eda9f83e"
/>

- It can be made in chemistry and dyed by combining it with acetone and
other reagents to give it the average colour of the non-glitter,
not-acetone reagents.
- Multiple colours can be mixed into one reagent datum, randomly
depositing a colour from those in the datum on the floor.
<img width="554" height="507" alt="image"
src="https://github.com/user-attachments/assets/9cc7d1d5-9bec-4b28-af06-310ffb24de49"
/>

- Anyone with glitter reagent in them will cough glitter onto the floor
- Glittery crates will leave a trail of appropriately coloured glitter
when moved
<img width="960" height="259" alt="image"
src="https://github.com/user-attachments/assets/71cc1176-23f9-4ae7-b500-1744b752c014"
/>

Resprited glitter to support these changes and make it not look like gas
(or ass).

## Why It's Good For The Game

It looks cool and raises the bar for chemists maximally pissing off the
janitor as they fill a room with multicoloured glitter and all the
occupants run off to cough more up all over the surrounding area.

## Changelog
🆑
add: Glitter can now be made from plastic polymers and aluminium.
add: Plastic polymer can be made at any temperature, and then heated to
produce sheets.
add: Glitter can now be made any colour, mix 10 units each of glitter
and acetone to change its colour to that of the other reagents in the
beaker.
add: Mixing different colours of glitter will cause a random selection
of those colours to appear on the floor when released.
add: Being exposed to glitter in reagent form causes you to cough up
more glitter onto the floor
add: Dragging glittery crates will now spread a trail of glitter and
angry janitors behind them.
image: Added new glitter sprites (that don't look like gasses)
/🆑
2025-08-04 20:53:39 -04:00
Thunder12345andGitHub d97c57b263 The Glitterening (#92226)
## About The Pull Request

Adds a number of new capabilities to glitter.

- It can be any colour.
<img width="657" height="398" alt="image"
src="https://github.com/user-attachments/assets/60e80c04-8eee-470c-8953-47f6eda9f83e"
/>

- It can be made in chemistry and dyed by combining it with acetone and
other reagents to give it the average colour of the non-glitter,
not-acetone reagents.
- Multiple colours can be mixed into one reagent datum, randomly
depositing a colour from those in the datum on the floor.
<img width="554" height="507" alt="image"
src="https://github.com/user-attachments/assets/9cc7d1d5-9bec-4b28-af06-310ffb24de49"
/>

- Anyone with glitter reagent in them will cough glitter onto the floor
- Glittery crates will leave a trail of appropriately coloured glitter
when moved
<img width="960" height="259" alt="image"
src="https://github.com/user-attachments/assets/71cc1176-23f9-4ae7-b500-1744b752c014"
/>

Resprited glitter to support these changes and make it not look like gas
(or ass).

## Why It's Good For The Game

It looks cool and raises the bar for chemists maximally pissing off the
janitor as they fill a room with multicoloured glitter and all the
occupants run off to cough more up all over the surrounding area.

## Changelog
🆑
add: Glitter can now be made from plastic polymers and aluminium.
add: Plastic polymer can be made at any temperature, and then heated to
produce sheets.
add: Glitter can now be made any colour, mix 10 units each of glitter
and acetone to change its colour to that of the other reagents in the
beaker.
add: Mixing different colours of glitter will cause a random selection
of those colours to appear on the floor when released.
add: Being exposed to glitter in reagent form causes you to cough up
more glitter onto the floor
add: Dragging glittery crates will now spread a trail of glitter and
angry janitors behind them.
image: Added new glitter sprites (that don't look like gasses)
/🆑
2025-08-03 00:25:58 +10:00
Roxy ab4704e855 Fixes for #92115 2025-07-30 17:38:15 -04:00
Leland KembleandRoxy f879f881b0 makes the hermit spawner on icebox an icebox hermit (#92261)
## About The Pull Request

makes the icebox hermit native to icebox rather than lavaland

## Why It's Good For The Game

fixes #89835

## Changelog
🆑
fix: makes the icebox hermit native to icebox
/🆑
2025-07-30 17:37:28 -04:00
Y0SH1M4S73RandRoxy 99e375485e Adds constructible plastitanium reinforced walls (#92115)
## About The Pull Request

You can now construct reinforced plastitanium walls by using a single
plastitanium sheet on a reinforced girder. These are mostly identical to
syndicate walls, but only have 2 explosion resistance like normal
reinforced walls, as opposed to the 20 of syndicate walls.

## Why It's Good For The Game

Have you ever wanted a construction project to have that cool syndicate
aesthetic, but doing so would compromise its security due to the walls
being able to be simply welded down? Now you can make a syndicate
shuttle or satellite that will at least require thermite or the aid of
an engiborg to rapidly break into.

## Changelog

🆑
add: You can construct reinforced plastitanium walls by using
plastitanium on reinforced girders.
/🆑
2025-07-30 17:37:25 -04:00
Leland KembleandGitHub d1e9f66877 makes the hermit spawner on icebox an icebox hermit (#92261)
## About The Pull Request

makes the icebox hermit native to icebox rather than lavaland

## Why It's Good For The Game

fixes #89835

## Changelog
🆑
fix: makes the icebox hermit native to icebox
/🆑
2025-07-23 23:44:09 +00:00
Y0SH1M4S73RandGitHub 3e2c118921 Adds constructible plastitanium reinforced walls (#92115)
## About The Pull Request

You can now construct reinforced plastitanium walls by using a single
plastitanium sheet on a reinforced girder. These are mostly identical to
syndicate walls, but only have 2 explosion resistance like normal
reinforced walls, as opposed to the 20 of syndicate walls.

## Why It's Good For The Game

Have you ever wanted a construction project to have that cool syndicate
aesthetic, but doing so would compromise its security due to the walls
being able to be simply welded down? Now you can make a syndicate
shuttle or satellite that will at least require thermite or the aid of
an engiborg to rapidly break into.

## Changelog

🆑
add: You can construct reinforced plastitanium walls by using
plastitanium on reinforced girders.
/🆑
2025-07-21 13:42:24 +02:00
TwaticusandRoxy be6f8bf042 Schoolgirl Outfit Resprited Renamed and GAGsified (#91871)
## About The Pull Request

Renames the schoolgirl costume to seifuku, the japanese name for sailor
style uniforms.
Resprites the uniform using GAGs.
Adds an 'adjust' style for the uniforms(rolled sleeves).
Tweaks the stock uniform colors from blue, red, green, and orange to
blue, red, teal, and tan.

stock options
blue, red, teal, tan. long sleeve/short sleeve

![dreamseeker_SZEV1Ql3XP](https://github.com/user-attachments/assets/5e183af5-816d-454c-b20b-353d849f3c91)

custom colors as example
+anyone sad about the sailor moon reference being replaced with more
basic colors dont worry you can still make them :)

![dreamseeker_ECcQewtUaI](https://github.com/user-attachments/assets/defb90a2-0c78-4119-a7b6-2f830b82b23e)
## Why It's Good For The Game

Updates the sprite to be more inline with our current clothes.
Makes the sprite in-game player customizable.
## Changelog
🆑
image: resprites the schoolgirl outfit using GAGs
/🆑
2025-07-04 16:33:04 -04:00
TwaticusandGitHub 8d08fc6c53 Schoolgirl Outfit Resprited Renamed and GAGsified (#91871)
## About The Pull Request

Renames the schoolgirl costume to seifuku, the japanese name for sailor
style uniforms.
Resprites the uniform using GAGs.
Adds an 'adjust' style for the uniforms(rolled sleeves).
Tweaks the stock uniform colors from blue, red, green, and orange to
blue, red, teal, and tan.

stock options
blue, red, teal, tan. long sleeve/short sleeve

![dreamseeker_SZEV1Ql3XP](https://github.com/user-attachments/assets/5e183af5-816d-454c-b20b-353d849f3c91)

custom colors as example
+anyone sad about the sailor moon reference being replaced with more
basic colors dont worry you can still make them :)

![dreamseeker_ECcQewtUaI](https://github.com/user-attachments/assets/defb90a2-0c78-4119-a7b6-2f830b82b23e)
## Why It's Good For The Game

Updates the sprite to be more inline with our current clothes.
Makes the sprite in-game player customizable.
## Changelog
🆑
image: resprites the schoolgirl outfit using GAGs
/🆑
2025-06-28 21:43:28 -07:00
164ca07390 Fixes Persistence not spawning on icebox (also adds a roof so it stops having holes) (ready) (#3857)
## About The Pull Request
(new version of original PR because github was being really annoying,
see original here
https://github.com/Bubberstation/Bubberstation/pull/3595)

First of all, credit to https://github.com/IgiariValkyr (Otome on
discord or Aster Briar in game) for getting the initial stuff setup for
the map and giving me the basis for this PR. It saved me a ton of time
and effort and turned this from a day long project to just a couple of
hours.

This PR turns persistence back into a static spawn ruin and also adds a
roof area above it to prevent having holes in the roof.

The roof itself does not feature notable items. As for its significant
areas it does have the main roof access hatch, six ship clamps for
moving the ship (fluff), additional cargo storage with a hopefully soon
to be working elevator, small grill, logos, and two watch posts.

On a more contentious note, I have added a shield generator setup as
seen on previous iterations of the interdyne map in lieu of significant
turret placements (There are still turrets). This is something I am
testing as an alternative to turrets as there has been complaints about
the turrets being a bit much. There are still two turrets in the main
access hatch and the shield does need to be setup to function which can
be done by multitooling all of the parts together (takes about 3
minutes).

Additionally, cleaned up some additional items like a bottle of whiskey
someone added with my ckey, making sure botany had space for a bee hive,

To Do:
Add: moon station version

## Why It's Good For The Game

I adding a shipping container ranch and no one can stop me. Even worse,
I added an elevator.


![image](https://github.com/user-attachments/assets/f0d4c199-4ed7-4651-8ab5-e50ee8ba4f44)

On a more serious note, I have had several complaints about persistence
not spawning correctly due to a lack of safe areas to do it, so I am
properly fixing it this time.
## Proof Of Testing

https://youtu.be/0YoZErQ7cOA
<details>
<summary>Screenshots/Videos</summary>

</details>

## Changelog
🆑
add: Persistence now has an accessible roof on icebox
fix: Swapped scientist modsuit to infiltrator so they could use provided
mod module.
fix: Persistence is now a static spawn again
map: The persistence janitor has a bedroom again
/🆑

---------

Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
Co-authored-by: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
2025-06-24 20:04:35 -04:00
Roxy c6a1f9237d 91346_dna_console 2025-06-15 15:59:52 -04:00
GhomandRoxy 75e7ef6def Mutation code cleanup, mutations now have sources to avoid concurrency problems. (#91346)
This PR aims to clean or bring up to date portions of code about dna,
the dna console and mutations. This includes taking care of or removing
some of the awful choices like the pratically useless
`datum/mutation/human` pathing, or the class variable, in favor of using
sources to avoid potential issues with extraneous sources of a mutation.

The files changed are over a hundred just because I removed the
`datum/mutation/human` path, but the actual bulk of the code is mainly
shared between the datum/dna.dm, _mutations.dm and dna_console.dm.

Mutation shitcode is hurting my future plans for infusions a little.
Also it's a much needed refactor. Drafted 'till I'm sure it works
without issues.

🆑
refactor: Refactored mutation code backend. Report any issue.
/🆑
2025-06-15 15:50:31 -04:00
GhomandGitHub 14fb86e3e8 Mutation code cleanup, mutations now have sources to avoid concurrency problems. (#91346)
## About The Pull Request
This PR aims to clean or bring up to date portions of code about dna,
the dna console and mutations. This includes taking care of or removing
some of the awful choices like the pratically useless
`datum/mutation/human` pathing, or the class variable, in favor of using
sources to avoid potential issues with extraneous sources of a mutation.

The files changed are over a hundred just because I removed the
`datum/mutation/human` path, but the actual bulk of the code is mainly
shared between the datum/dna.dm, _mutations.dm and dna_console.dm.

## Why It's Good For The Game
Mutation shitcode is hurting my future plans for infusions a little.
Also it's a much needed refactor. Drafted 'till I'm sure it works
without issues.

## Changelog

🆑
refactor: Refactored mutation code backend. Report any issue.
/🆑
2025-06-08 13:57:10 +02:00
Roxy 688ffed6da Update paths for #91054 2025-06-05 20:59:37 -04:00