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