diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index f6820d4dd8..1e890c4151 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -103,12 +103,12 @@ spell_type = /obj/effect/proc_holder/spell/targeted/projectile/magic_missile log_name = "MM" category = "Defensive" - +/* /datum/spellbook_entry/disintegrate name = "Disintegrate" spell_type = /obj/effect/proc_holder/spell/targeted/touch/disintegrate log_name = "DG" - +*/ /datum/spellbook_entry/disabletech name = "Disable Tech" spell_type = /obj/effect/proc_holder/spell/targeted/emplosion/disable_tech @@ -259,7 +259,7 @@ if(surplus>=0) dat += "[surplus] left.
" return dat - +/* /datum/spellbook_entry/item/staffchange name = "Staff of Change" desc = "An artefact that spits bolts of coruscating energy which cause the target's very form to reshape itself." @@ -278,7 +278,7 @@ desc = "A caprious tool that can fire all sorts of magic without any rhyme or reason. Using it on people you care about is not recommended." item_path = /obj/item/weapon/gun/magic/staff/chaos log_name = "SC" - +*/ /datum/spellbook_entry/item/staffdoor name = "Staff of Door Creation" desc = "A particular staff that can mold solid metal into ornate doors. Useful for getting around in the absence of other transportation. Does not work on glass." diff --git a/code/game/verbs/suicide.dm b/code/game/verbs/suicide.dm index 43a08eceb1..943c4cb960 100644 --- a/code/game/verbs/suicide.dm +++ b/code/game/verbs/suicide.dm @@ -10,6 +10,7 @@ if(confirm == "Yes") suiciding = 1 log_game("[key_name(src)] (job: [job ? "[job]" : "None"]) commited suicide at [get_area(src)].") + message_admins("[key_name(src)] (job: [job ? "[job]" : "None"]) commited suicide at [get_area(src)].") var/obj/item/held_item = get_active_hand() if(held_item) var/damagetype = held_item.suicide_act(src) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm index a500b3841d..ca6807d29b 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm @@ -120,6 +120,8 @@ Thus, the two variables affect pump operation are set in New(): if("power") on = !on investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", "atmos") + message_admins("Pump manipulated by [key_name(usr)] at [x], [y], [z], [loc.loc]") + log_admin("[key_name(usr)] manipulated a pump at [x], [y], [z]") . = TRUE if("pressure") var/pressure = params["pressure"] @@ -135,7 +137,9 @@ Thus, the two variables affect pump operation are set in New(): . = TRUE if(.) target_pressure = Clamp(pressure, 0, MAX_OUTPUT_PRESSURE) - investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", "atmos") + investigate_log("A pump was set to [target_pressure] kPa by [key_name(usr)]", [loc.loc], "atmos") + message_admins("A pump was set to [target_pressure] kPa by [key_name(usr)] at [x], [y], [z], [loc.loc]") + log_admin("[key_name(usr)] manipulated a pump at [x], [y], [z]") update_icon() /obj/machinery/atmospherics/components/binary/pump/atmosinit() diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index f48ea697a9..ecad5d7354 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -1,7 +1,7 @@ /obj/machinery/atmospherics/components/unary/cryo_cell name = "cryo cell" icon = 'icons/obj/cryogenics.dmi' - icon_state = "cell-off" + icon_state = "pod0" density = 1 anchored = 1 @@ -9,7 +9,7 @@ state_open = FALSE var/autoeject = FALSE var/volume = 100 - + var/running_bob_animation = 0 var/efficiency = 1 var/sleep_factor = 750 var/paralyze_factor = 1000 @@ -54,17 +54,59 @@ return ..() /obj/machinery/atmospherics/components/unary/cryo_cell/update_icon() + handle_update_icon() + +/obj/machinery/atmospherics/components/unary/cryo_cell/proc/handle_update_icon() //making another proc to avoid spam in update_icon + overlays.Cut() //empty the overlay proc, just in case + if(panel_open) - icon_state = "cell-o" + icon_state = "pod0-o" else if(state_open) - icon_state = "cell-open" + icon_state = "pod0" else if(on && is_operational()) if(occupant) - icon_state = "cell-occupied" + var/image/pickle = image(occupant.icon, occupant.icon_state) + pickle.overlays = occupant.overlays + pickle.pixel_y = 22 + overlays += pickle + icon_state = "pod1" + var/up = 0 //used to see if we are going up or down, 1 is down, 2 is up + spawn(0) // Without this, the icon update will block. The new thread will die once the occupant leaves. + running_bob_animation = 1 + while(occupant) + overlays -= "lid1" //have to remove the overlays first, to force an update- remove cloning pod overlay + overlays -= pickle //remove mob overlay + + switch(pickle.pixel_y) //this looks messy as fuck but it works, switch won't call itself twice + + if(23) //inbetween state, for smoothness + switch(up) //this is set later in the switch, to keep track of where the mob is supposed to go + if(2) //2 is up + pickle.pixel_y = 24 //set to highest + + if(1) //1 is down + pickle.pixel_y = 22 //set to lowest + + if(22) //mob is at it's lowest + pickle.pixel_y = 23 //set to inbetween + up = 2 //have to go up + + if(24) //mob is at it's highest + pickle.pixel_y = 23 //set to inbetween + up = 1 //have to go down + + overlays += pickle //re-add the mob to the icon + overlays += "lid1" //re-add the overlay of the pod, they are inside it, not floating + + sleep(7) //don't want to jiggle violently, just slowly bob + return + running_bob_animation = 0 else - icon_state = "cell-on" + icon_state = "pod1" + overlays += "lid0" //have to remove the overlays first, to force an update- remove cloning pod overlay else - icon_state = "cell-off" + icon_state = "pod0" + overlays += "lid0" //if no occupant, just put the lid overlay on, and ignore the rest /obj/machinery/atmospherics/components/unary/cryo_cell/process() ..() diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 345a54a5eb..a3feb5afef 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -695,22 +695,23 @@ threatcount += 2 //Check for dresscode violations - if(istype(head, /obj/item/clothing/head/wizard) || istype(head, /obj/item/clothing/head/helmet/space/hardsuit/wizard)) - threatcount += 2 + if(istype(head, /obj/item/clothing/head/wizard) || istype(head, /obj/item/clothing/head/helmet/space/hardsuit/wizard) || istype(head, /obj/item/clothing/head/helmet/space/hardsuit/syndi) || istype(head, /obj/item/clothing/head/helmet/space/syndicate) || istype(head, /obj/item/clothing/head/culthood) || istype(head, /obj/item/clothing/head/helmet/space/cult)) + threatcount += 5 //Check for nonhuman scum if(dna && dna.species.id && dna.species.id != "human") - threatcount += 1 + threatcount += 0 - //mindshield implants imply trustworthyness + //Loyalty implants imply trustworthyness if(isloyal(src)) threatcount -= 1 - //Agent cards lower threatlevel. + //Agent cards lower threatlevel, but only just enough to avoid dresscode violations. if(istype(idcard, /obj/item/weapon/card/id/syndicate)) - threatcount -= 5 + threatcount -= 2 return threatcount + return threatcount //Used for new human mobs created by cloning/goleming/podding diff --git a/code/modules/security_levels/security_levels.dm b/code/modules/security_levels/security_levels.dm index bbdcfb64a3..a3044ca049 100644 --- a/code/modules/security_levels/security_levels.dm +++ b/code/modules/security_levels/security_levels.dm @@ -31,6 +31,8 @@ minor_announce(config.alert_desc_blue_upto, "Attention! Security level elevated to blue:",1) else minor_announce(config.alert_desc_blue_downto, "Attention! Security level lowered to blue:") + for(var/mob/M in player_list) + M << 'sound/misc/voybluealert.ogg' security_level = SEC_LEVEL_BLUE for(var/obj/machinery/firealarm/FA in machines) if(FA.z == ZLEVEL_STATION) @@ -40,6 +42,8 @@ minor_announce(config.alert_desc_red_upto, "Attention! Code red!",1) else minor_announce(config.alert_desc_red_downto, "Attention! Code red!") + for(var/mob/M in player_list) + M << 'sound/misc/voyalert.ogg' security_level = SEC_LEVEL_RED /* - At the time of commit, setting status displays didn't work properly @@ -54,6 +58,8 @@ pod.admin_controlled = 0 if(SEC_LEVEL_DELTA) minor_announce(config.alert_desc_delta, "Attention! Delta security level reached!",1) + for(var/mob/M in player_list) + M << 'sound/misc/tas_red_alert.ogg' security_level = SEC_LEVEL_DELTA for(var/obj/machinery/firealarm/FA in machines) if(FA.z == ZLEVEL_STATION) diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 70788e7975..4389dfacc7 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -326,6 +326,12 @@ timer = world.time priority_announce("The Emergency Shuttle has left the station. Estimate [timeLeft(600)] minutes until the shuttle docks at Central Command.", null, null, "Priority") if(SHUTTLE_ESCAPE) + + if(time_left <= 50 && sound_played) //4 seconds left:Hyperspace trip completed. - should sync up with the landing + sound_played = 1 //Only rev them up once. + for(var/area/shuttle/escape/E in world) + E << 'sound/effects/hyperspace_end.ogg' + if(time_left <= 0) //move each escape pod to its corresponding escape dock for(var/A in SSshuttle.mobile) diff --git a/icons/obj/cryogenics.dmi b/icons/obj/cryogenics.dmi index 1159725b91..49df4d5eb6 100644 Binary files a/icons/obj/cryogenics.dmi and b/icons/obj/cryogenics.dmi differ diff --git a/sound/effects/hyperspace_begin.ogg b/sound/effects/hyperspace_begin.ogg index 225e2d9882..a346c67ba7 100644 Binary files a/sound/effects/hyperspace_begin.ogg and b/sound/effects/hyperspace_begin.ogg differ diff --git a/sound/effects/hyperspace_end.ogg b/sound/effects/hyperspace_end.ogg index 64fb5214a9..4d56348ec9 100644 Binary files a/sound/effects/hyperspace_end.ogg and b/sound/effects/hyperspace_end.ogg differ diff --git a/sound/misc/tas_red_alert.ogg b/sound/misc/tas_red_alert.ogg new file mode 100644 index 0000000000..b2ad11f21e Binary files /dev/null and b/sound/misc/tas_red_alert.ogg differ diff --git a/sound/misc/voyalert.ogg b/sound/misc/voyalert.ogg new file mode 100644 index 0000000000..c5a1b9ff31 Binary files /dev/null and b/sound/misc/voyalert.ogg differ diff --git a/sound/misc/voybluealert.ogg b/sound/misc/voybluealert.ogg new file mode 100644 index 0000000000..35d4cc1787 Binary files /dev/null and b/sound/misc/voybluealert.ogg differ