Hard upstream sync (#6951)
* maps - none of our changes included yet i'll get them in after i finish up the rest of the sync * sync part 1 - underscore folders in code * controllers folder * datums folder * game folder * cmon, work * modules - admin to awaymissions * cargo to events * fields to lighting * mapping > ruins * rest of the code folder * rest of the folders in the root directory * DME * fixes compiling errors. it compiles so it works * readds map changes * fixes dogborg module select * fixes typo in moduleselect_alternate_icon filepath
This commit is contained in:
@@ -29,8 +29,7 @@
|
||||
|
||||
/area/awaymission/moonoutpost19/hive
|
||||
name = "The Hive"
|
||||
always_unpowered = FALSE
|
||||
has_gravity = FALSE
|
||||
always_unpowered = TRUE
|
||||
power_environ = FALSE
|
||||
power_equip = FALSE
|
||||
power_light = FALSE
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
/obj/structure/window/reinforced/fulltile/indestructable
|
||||
name = "robust window"
|
||||
flags_1 = PREVENT_CLICK_UNDER_1 | NODECONSTRUCT_1
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
|
||||
/obj/structure/grille/indestructable
|
||||
flags_1 = CONDUCT_1 | NODECONSTRUCT_1
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
|
||||
/obj/effect/spawner/structure/window/reinforced/indestructable
|
||||
spawn_list = list(/obj/structure/grille/indestructable, /obj/structure/window/reinforced/fulltile/indestructable)
|
||||
|
||||
/obj/structure/barricade/security/murderdome
|
||||
name = "respawnable barrier"
|
||||
desc = "A barrier. Provides cover in firefights."
|
||||
deploy_time = 0
|
||||
deploy_message = 0
|
||||
|
||||
/obj/structure/barricade/security/murderdome/make_debris()
|
||||
new /obj/effect/murderdome/dead_barricade(get_turf(src))
|
||||
|
||||
/obj/effect/murderdome/dead_barricade
|
||||
name = "dead barrier"
|
||||
desc = "It provided cover in fire fights. And now it's gone."
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "barrier0"
|
||||
alpha = 100
|
||||
|
||||
/obj/effect/murderdome/dead_barricade/Initialize()
|
||||
. = ..()
|
||||
addtimer(CALLBACK(src, .proc/respawn), 3 MINUTES)
|
||||
|
||||
/obj/effect/murderdome/dead_barricade/proc/respawn()
|
||||
if(!QDELETED(src))
|
||||
new /obj/structure/barricade/security/murderdome(get_turf(src))
|
||||
qdel(src)
|
||||
|
||||
/area/awaymission/vr/murderdome
|
||||
name = "Murderdome"
|
||||
requires_power = FALSE
|
||||
dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
|
||||
@@ -606,6 +606,15 @@
|
||||
id = /obj/item/card/id/syndicate
|
||||
implants = list(/obj/item/implant/exile)
|
||||
|
||||
/datum/outfit/vr/snowtide
|
||||
name = "Snowdin Outfit"
|
||||
shoes = /obj/item/clothing/shoes/winterboots
|
||||
suit = /obj/item/clothing/suit/hooded/wintercoat
|
||||
back = /obj/item/storage/backpack
|
||||
mask = /obj/item/clothing/mask/breath
|
||||
r_pocket = /obj/item/tank/internals/emergency_oxygen/engi
|
||||
internals_slot = SLOT_R_STORE
|
||||
|
||||
/obj/effect/mob_spawn/human/syndicatesoldier/coldres/alive/female
|
||||
mob_gender = FEMALE
|
||||
|
||||
@@ -666,4 +675,5 @@
|
||||
/obj/effect/turf_decal/snowdin_station_sign/up/seven
|
||||
icon_state = "AOPU7"
|
||||
|
||||
|
||||
/obj/effect/landmark/vr_spawn/snowdin
|
||||
vr_outfit = /datum/outfit/vr/snowtide
|
||||
|
||||
@@ -7,33 +7,55 @@
|
||||
var/question = "Travel back?"
|
||||
var/list/zlevels
|
||||
|
||||
/obj/structure/signpost/New()
|
||||
/obj/structure/signpost/Initialize()
|
||||
. = ..()
|
||||
set_light(2)
|
||||
zlevels = SSmapping.levels_by_trait(ZTRAIT_STATION)
|
||||
|
||||
/obj/structure/signpost/attackby(obj/item/W, mob/user, params)
|
||||
return attack_hand(user)
|
||||
|
||||
/obj/structure/signpost/attack_hand(mob/user)
|
||||
/obj/structure/signpost/interact(mob/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
switch(alert(question,name,"Yes","No"))
|
||||
if("Yes")
|
||||
var/turf/T = find_safe_turf(zlevels=zlevels)
|
||||
if(alert(question,name,"Yes","No") == "Yes" && Adjacent(user))
|
||||
var/turf/T = find_safe_turf(zlevels=zlevels)
|
||||
|
||||
if(T)
|
||||
user.forceMove(T)
|
||||
to_chat(user, "<span class='notice'>You blink and find yourself in [get_area_name(T)].</span>")
|
||||
else
|
||||
to_chat(user, "Nothing happens. You feel that this is a bad sign.")
|
||||
if("No")
|
||||
return
|
||||
if(T)
|
||||
var/atom/movable/AM = user.pulling
|
||||
if(AM)
|
||||
AM.forceMove(T)
|
||||
user.forceMove(T)
|
||||
if(AM)
|
||||
user.start_pulling(AM)
|
||||
to_chat(user, "<span class='notice'>You blink and find yourself in [get_area_name(T)].</span>")
|
||||
else
|
||||
to_chat(user, "Nothing happens. You feel that this is a bad sign.")
|
||||
|
||||
/obj/structure/signpost/attackby(obj/item/W, mob/user, params)
|
||||
return interact(user)
|
||||
|
||||
/obj/structure/signpost/attack_paw(mob/user)
|
||||
return interact(user)
|
||||
|
||||
/obj/structure/signpost/attack_hulk(mob/user, does_attack_animation = 0)
|
||||
return interact(user)
|
||||
|
||||
/obj/structure/signpost/attack_larva(mob/user)
|
||||
return interact(user)
|
||||
|
||||
/obj/structure/signpost/attack_robot(mob/user)
|
||||
if (Adjacent(user))
|
||||
return interact(user)
|
||||
|
||||
/obj/structure/signpost/attack_slime(mob/user)
|
||||
return interact(user)
|
||||
|
||||
/obj/structure/signpost/attack_animal(mob/user)
|
||||
return interact(user)
|
||||
|
||||
/obj/structure/signpost/salvation
|
||||
name = "\proper salvation"
|
||||
desc = "In the darkest times, we will find our way home."
|
||||
resistance_flags = INDESTRUCTIBLE
|
||||
|
||||
/obj/structure/signpost/exit
|
||||
name = "exit"
|
||||
@@ -41,7 +63,7 @@
|
||||
exit the area."
|
||||
question = "Leave? You might never come back."
|
||||
|
||||
/obj/structure/signpost/exit/New()
|
||||
/obj/structure/signpost/exit/Initialize()
|
||||
. = ..()
|
||||
zlevels = list()
|
||||
for(var/i in 1 to world.maxz)
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
icon = 'icons/obj/structures.dmi'
|
||||
icon_state = "speaking_tile"
|
||||
layer = 5
|
||||
resistance_flags = INDESTRUCTIBLE
|
||||
var/speaking = FALSE
|
||||
var/times_spoken_to = 0
|
||||
var/list/shenanigans = list()
|
||||
@@ -88,6 +89,27 @@
|
||||
speaking = FALSE
|
||||
times_spoken_to++
|
||||
|
||||
/obj/structure/speaking_tile/attackby(obj/item/W, mob/user, params)
|
||||
return interact(user)
|
||||
|
||||
/obj/structure/speaking_tile/attack_paw(mob/user)
|
||||
return interact(user)
|
||||
|
||||
/obj/structure/speaking_tile/attack_hulk(mob/user, does_attack_animation = 0)
|
||||
return interact(user)
|
||||
|
||||
/obj/structure/speaking_tile/attack_larva(mob/user)
|
||||
return interact(user)
|
||||
|
||||
/obj/structure/speaking_tile/attack_ai(mob/user)
|
||||
return interact(user)
|
||||
|
||||
/obj/structure/speaking_tile/attack_slime(mob/user)
|
||||
return interact(user)
|
||||
|
||||
/obj/structure/speaking_tile/attack_animal(mob/user)
|
||||
return interact(user)
|
||||
|
||||
/obj/structure/speaking_tile/proc/SpeakPeace(list/statements)
|
||||
for(var/i in 1 to statements.len)
|
||||
say("<span class='deadsay'>[statements[i]]</span>")
|
||||
|
||||
Reference in New Issue
Block a user