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
This commit is contained in:
nevimer
2025-11-29 22:49:21 -05:00
1185 changed files with 39068 additions and 32028 deletions
+1 -1
View File
@@ -58,7 +58,7 @@
icon_state = "cordon"
static_lighting = FALSE
base_lighting_alpha = 255
area_flags = UNIQUE_AREA|NOTELEPORT|HIDDEN_AREA
area_flags = NOTELEPORT|HIDDEN_AREA
requires_power = FALSE
/area/misc/cordon/Entered(atom/movable/arrived, area/old_area)
+27 -53
View File
@@ -1,71 +1,45 @@
/*An alternative to exit gateways, signposts send you back to somewhere safe onstation with their semiotic magic.*/
/obj/structure/signpost
name = "signpost"
desc = "Won't somebody give me a sign?"
icon = 'icons/obj/fluff/general.dmi'
icon_state = "signpost"
anchored = TRUE
density = TRUE
var/question = "Travel back?"
var/list/zlevels
/// Whether or not this enables the Houlihan element.
var/teleports = FALSE
/// Optional replacement for the teleport question.
var/question = null
/// Optional list of z-levels that the Houlihan element can send us to. Modify this on Initialize().
VAR_FINAL/list/zlevels = null
/obj/structure/signpost/Initialize(mapload)
. = ..()
..()
set_light(2)
zlevels = SSmapping.levels_by_trait(ZTRAIT_STATION)
return INITIALIZE_HINT_LATELOAD
/obj/structure/signpost/interact(mob/user)
. = ..()
if(.)
return
if(tgui_alert(usr,question,name,list("Yes","No")) != "Yes" && !Adjacent(user))
return
/obj/structure/signpost/LateInitialize()
// This is here cause we wanna be super sure zlevels is properly initialized
if(teleports)
AddComponent(/datum/component/houlihan_teleport, question, zlevels)
var/turf/safe_dropoff = zlevels ? find_safe_turf(zlevels) : get_safe_random_station_turf_equal_weight()
if(!safe_dropoff)
to_chat(user, "Nothing happens. You feel that this is a bad sign.")
return
var/atom/movable/pulled = user.pulling
user.forceMove(safe_dropoff)
if(pulled)
pulled.forceMove(safe_dropoff)
user.start_pulling(pulled)
to_chat(user, span_notice("You blink and find yourself in [get_area_name(safe_dropoff)]."))
/obj/structure/signpost/attackby(obj/item/W, mob/user, list/modifiers, list/attack_modifiers)
return interact(user)
/obj/structure/signpost/attack_paw(mob/user, list/modifiers)
return interact(user)
/obj/structure/signpost/attack_hulk(mob/user)
return
/obj/structure/signpost/attack_larva(mob/user, list/modifiers)
return interact(user)
/obj/structure/signpost/attack_robot(mob/user)
if (Adjacent(user))
return interact(user)
/obj/structure/signpost/attack_animal(mob/user, list/modifiers)
return interact(user)
/* ----------------- */
/obj/structure/signpost/salvation
name = "\proper salvation"
desc = "In the darkest times, we will find our way home."
resistance_flags = INDESTRUCTIBLE
teleports = TRUE
/obj/structure/signpost/exit
name = "exit"
desc = "Make sure to bring all your belongings with you when you \
exit the area."
question = "Leave? You might never come back."
/obj/structure/signpost/void
name = "signpost at the edge of the universe"
desc = "A direction in the directionless void."
density = FALSE
/// Brightness of the signpost.
var/range = 2
/// Light power of the signpost.
var/power = 0.8
/obj/structure/signpost/exit/Initialize(mapload)
/obj/structure/signpost/void/Initialize(mapload)
. = ..()
zlevels = list()
for(var/i in 1 to world.maxz)
zlevels += i
zlevels -= SSmapping.levels_by_trait(ZTRAIT_CENTCOM) // no easy victory, even with meme signposts
// also, could you think of the horror if they ended up in a holodeck
// template or something
set_light(range, power)