diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm
index b234c4c4f2..ac2afa7cae 100644
--- a/code/controllers/subsystem/mapping.dm
+++ b/code/controllers/subsystem/mapping.dm
@@ -334,6 +334,7 @@ GLOBAL_LIST_EMPTY(the_station_areas)
for (var/map in mapvotes)
if (!map)
mapvotes.Remove(map)
+ continue
if (!(map in global.config.maplist))
mapvotes.Remove(map)
continue
@@ -468,9 +469,9 @@ GLOBAL_LIST_EMPTY(the_station_areas)
else
return
- possible_options += "Custom"
- var/lvl_name
- var/datum/space_level/level
+ possible_options = "Custom"
+ var/away_name
+ var/datum/space_level/away_level
var/answer = input("What kind ? ","Away/VR") as null|anything in possible_options
switch(answer)
@@ -480,34 +481,22 @@ GLOBAL_LIST_EMPTY(the_station_areas)
var/mapfile = input("Pick file:", "File") as null|file
if(!mapfile)
return
- lvl_name = "[mapfile] custom"
- to_chat(usr,"Loading [lvl_name]...")
+ away_name = "[mapfile] custom"
+ to_chat(usr,"Loading [away_name]...")
var/datum/map_template/template = new(mapfile, choice, ztraits)
- level = template.load_new_z(ztraits)
+ away_level = template.load_new_z(ztraits)
else
- lvl_name = answer
- to_chat(usr,"Loading [lvl_name]...")
- var/datum/map_template/template = new(lvl_name, choice)
- level = template.load_new_z(ztraits)
+ away_name = answer
+ to_chat(usr,"Loading [away_name]...")
+ var/datum/map_template/template = new(away_name, choice)
+ away_level = template.load_new_z(ztraits)
- message_admins("Admin [key_name_admin(usr)] has loaded [lvl_name] [choice].")
- log_admin("Admin [key_name(usr)] has loaded [lvl_name] [choice].")
- if(!level)
- message_admins("Loading [lvl_name] failed!")
+ message_admins("Admin [key_name_admin(usr)] has loaded [away_name] away mission.")
+ log_admin("Admin [key_name(usr)] has loaded [away_name] away mission.")
+ if(!away_level)
+ message_admins("Loading [away_name] failed!")
return
-
- if(choice == AWAY_MISSION_NAME && GLOB.the_gateway)
- //Link any found away gate with station gate
- var/obj/machinery/gateway/centeraway/new_gate
- for(var/obj/machinery/gateway/centeraway/G in GLOB.machines)
- if(G.z == level.z_value) //I'll have to refactor gateway shitcode before multi-away support.
- new_gate = G
- break
- //Link station gate with away gate and remove wait time.
- GLOB.the_gateway.awaygate = new_gate
- GLOB.the_gateway.wait = world.time
-
/datum/controller/subsystem/mapping/proc/RequestBlockReservation(width, height, z, type = /datum/turf_reservation, turf_type_override, border_type_override)
UNTIL((!z || reservation_ready["[z]"]) && !clearing_reserved_turfs)
var/datum/turf_reservation/reserve = new type
diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm
index 60e8971937..b01a3b7b81 100755
--- a/code/game/machinery/computer/communications.dm
+++ b/code/game/machinery/computer/communications.dm
@@ -179,7 +179,7 @@
SSshuttle.existing_shuttle = SSshuttle.emergency
SSshuttle.action_load(S)
D.adjust_money(-S.credit_cost)
- minor_announce("[usr.real_name] has purchased [S.name] for [S.credit_cost] credits.[S.extra_desc ? " [S.extra_desc]" : ""]" , "Shuttle Purchase")
+ minor_announce("[usr.real_name] has purchased [S.name] for [S.credit_cost] credits." , "Shuttle Purchase")
message_admins("[ADMIN_LOOKUPFLW(usr)] purchased [S.name].")
log_shuttle("[key_name(usr)] has purchased [S.name].")
SSblackbox.record_feedback("text", "shuttle_purchase", 1, "[S.name]")
@@ -343,7 +343,7 @@
Nuke_request(input, usr)
to_chat(usr, "Request sent.")
usr.log_message("has requested the nuclear codes from CentCom with reason \"[input]\"", LOG_SAY)
- priority_announce("The codes for the on-station nuclear self-destruct have been requested by [usr]. Confirmation or denial of this request will be sent shortly.", "Nuclear Self Destruct Codes Requested",'sound/ai/commandreport.ogg')
+ priority_announce("The codes for the on-station nuclear self-destruct have been requested by [usr]. Confirmation or denial of this request will be sent shortly.", "Nuclear Self Destruct Codes Requested","commandreport")
CM.lastTimeUsed = world.time
diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm
index 23fb7ca9eb..fe548d662d 100644
--- a/code/modules/assembly/signaler.dm
+++ b/code/modules/assembly/signaler.dm
@@ -13,12 +13,26 @@
var/code = DEFAULT_SIGNALER_CODE
var/frequency = FREQ_SIGNALER
var/datum/radio_frequency/radio_connection
+ var/suicider = null
var/hearing_range = 1
+/obj/item/assembly/signaler/suicide_act(mob/living/carbon/user)
+ user.visible_message("[user] eats \the [src]! If it is signaled, [user.p_they()] will die!")
+ playsound(src, 'sound/items/eatfood.ogg', 50, TRUE)
+ user.transferItemToLoc(src, user, TRUE)
+ suicider = user
+ return MANUAL_SUICIDE
+
+/obj/item/assembly/signaler/proc/manual_suicide(mob/living/carbon/user)
+ user.visible_message("[user]'s \the [src] receives a signal, killing [user.p_them()] instantly!")
+ user.adjustOxyLoss(200)//it sends an electrical pulse to their heart, killing them. or something.
+ user.death(0)
+
/obj/item/assembly/signaler/Initialize()
. = ..()
set_frequency(frequency)
+
/obj/item/assembly/signaler/Destroy()
SSradio.remove_object(src,frequency)
. = ..()
@@ -52,12 +66,12 @@
data["code"] = code
data["minFrequency"] = MIN_FREE_FREQ
data["maxFrequency"] = MAX_FREE_FREQ
+
return data
/obj/item/assembly/signaler/ui_act(action, params)
if(..())
return
-
switch(action)
if("signal")
INVOKE_ASYNC(src, .proc/signal)
@@ -101,6 +115,9 @@
if(usr)
GLOB.lastsignalers.Add("[time] : [usr.key] used [src] @ location ([T.x],[T.y],[T.z]) : [format_frequency(frequency)]/[code]")
+
+ return
+
/obj/item/assembly/signaler/receive_signal(datum/signal/signal)
. = FALSE
if(!signal)
@@ -109,6 +126,8 @@
return
if(!(src.wires & WIRE_RADIO_RECEIVE))
return
+ if(suicider)
+ manual_suicide(suicider)
pulse(TRUE)
audible_message("[icon2html(src, hearers(src))] *beep* *beep* *beep*", null, hearing_range)
for(var/CHM in get_hearers_in_view(hearing_range, src))
@@ -117,6 +136,7 @@
LM.playsound_local(get_turf(src), 'sound/machines/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE)
return TRUE
+
/obj/item/assembly/signaler/proc/set_frequency(new_frequency)
SSradio.remove_object(src, frequency)
frequency = new_frequency