Merge pull request #1129 from Yawn-Wider/izac

Voreupdate
This commit is contained in:
Izac Joof Forsgren
2021-05-31 21:39:57 +02:00
committed by GitHub
40 changed files with 128 additions and 112 deletions
+2 -5
View File
@@ -25,13 +25,10 @@ SUBSYSTEM_DEF(mobs)
/datum/controller/subsystem/mobs/fire(resumed = 0)
if (!resumed)
src.currentrun = mob_list.Copy()
process_z.Cut()
process_z.len = GLOB.living_players_by_zlevel.len
slept_mobs = 0
var/level = 1
while(process_z.len < GLOB.living_players_by_zlevel.len)
process_z.len++
for(var/level in 1 to process_z.len)
process_z[level] = GLOB.living_players_by_zlevel[level].len
level++
//cache for sanic speed (lists are references anyways)
var/list/currentrun = src.currentrun
+2 -1
View File
@@ -205,10 +205,11 @@ SUBSYSTEM_DEF(supply)
else if(islist(SP.access) && SP.one_access)
var/list/L = SP.access // access var is a plain var, we need a list
A.req_one_access = L.Copy()
A.req_access.Cut()
A.req_access = null
else if(islist(SP.access) && !SP.one_access)
var/list/L = SP.access
A.req_access = L.Copy()
A.req_one_access = null
else
log_debug("<span class='danger'>Supply pack with invalid access restriction [SP.access] encountered!</span>")
+7 -1
View File
@@ -73,9 +73,9 @@ var/list/runechat_image_cache = list()
/datum/chatmessage/Destroy()
if(owned_by)
UnregisterSignal(owned_by, COMSIG_PARENT_QDELETING)
LAZYREMOVEASSOC(owned_by.seen_messages, message_loc, src)
owned_by.images.Remove(message)
UnregisterSignal(owned_by, COMSIG_PARENT_QDELETING)
if(message_loc)
UnregisterSignal(message_loc, COMSIG_PARENT_QDELETING)
owned_by = null
@@ -96,6 +96,10 @@ var/list/runechat_image_cache = list()
/datum/chatmessage/proc/generate_image(text, atom/target, mob/owner, list/extra_classes, lifespan)
set waitfor = FALSE
if(!target || !owner)
qdel(src)
return
// Register client who owns this message
owned_by = owner.client
RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, .proc/qdel_self)
@@ -152,6 +156,8 @@ var/list/runechat_image_cache = list()
text = "[prefixes?.Join("&nbsp;")][text]"
text = encode_html_emphasis(text)
// We dim italicized text to make it more distinguishable from regular text
var/tgt_color = extra_classes.Find("italics") ? target.chat_color_darkened : target.chat_color
+2 -2
View File
@@ -213,10 +213,10 @@
*
* Arguments:
* * datum/target Datum to stop listening to signals from
* * sig_typeor_types Signal string key or list of signal keys to stop listening to specifically
* * sig_type_or_types Signal string key or list of signal keys to stop listening to specifically
*/
/datum/proc/UnregisterSignal(datum/target, sig_type_or_types)
var/list/lookup = target.comp_lookup
var/list/lookup = target?.comp_lookup
if(!signal_procs || !signal_procs[target] || !lookup)
return
if(!islist(sig_type_or_types))
+1 -1
View File
@@ -41,7 +41,7 @@
/decl/hierarchy/outfit/job/security/detective/forensic
name = OUTFIT_JOB_NAME("Forensic technician")
head = null
suit = /datum/gear/uniform/detective_alt2
suit = /obj/item/clothing/suit/storage/det_trench/alt2
uniform = /obj/item/clothing/under/det
//VOREStation Edit End
+1 -1
View File
@@ -100,7 +100,7 @@ datum/hSB
var/accesses = get_all_accesses()
for(var/A in accesses)
if(alert(usr, "Will this airlock require [get_access_desc(A)] access?", "Sandbox:", "Yes", "No") == "Yes")
hsb.req_access += A
LAZYADD(hsb.req_access, A)
hsb.loc = usr.loc
to_chat(usr, "<b>Sandbox: Created an airlock.</b>")
+35 -26
View File
@@ -1,21 +1,9 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
/obj/var/list/req_access
/obj/var/list/req_one_access
//returns 1 if this mob has sufficient access to use this object
/obj/proc/allowed(mob/M)
//check if it doesn't require any access at all
if(src.check_access(null))
return 1
var/id = M.GetIdCard()
if(id)
return check_access(id)
return 0
///obj/item/proc/GetAccess()
// return list()
return check_access(M?.GetIdCard())
/atom/movable/proc/GetAccess()
var/obj/item/weapon/card/id/id = GetIdCard()
@@ -25,26 +13,47 @@
return null
/obj/proc/check_access(obj/item/I)
return check_access_list(I ? I.GetAccess() : list())
return check_access_list(I ? I.GetAccess() : null)
/obj/proc/check_access_list(var/list/L)
if(!L) return 0
if(!istype(L, /list)) return 0
// We don't require access
if(!LAZYLEN(req_access) && !LAZYLEN(req_one_access))
return TRUE
// They passed nothing, but we are something that requires access
if(!LAZYLEN(L))
return FALSE
// Run list comparisons
return has_access(req_access, req_one_access, L)
/proc/has_access(var/list/req_access, var/list/req_one_access, var/list/accesses)
var/has_RA = LAZYLEN(req_access)
var/has_ROA = LAZYLEN(req_one_access)
var/has_A = LAZYLEN(accesses)
if(!has_RA && !has_ROA) //we need none
// Doesn't have access lists, always works
if(!LAZYLEN(req_access) && !LAZYLEN(req_one_access))
return TRUE
if(!has_A) //we need them but don't have them
// Didn't pass anything to compare
if(!LAZYLEN(accesses))
return FALSE
if(has_RA && length(req_access - accesses)) //we don't have every access we need
return FALSE
if(has_ROA && !length(req_one_access & accesses)) //we have atleast one access from this list
return FALSE
return TRUE
// req_access list has priority if set
// Requires at least every access in list
if(LAZYLEN(req_access))
for(var/req in req_access)
if(!(req in accesses))
return FALSE
// Wasn't missing any accesses
return TRUE
// req_one_access is secondary if set
// Requires at least one access in list
for(var/req in req_one_access)
if(req in accesses)
// Found at least one
return TRUE
// Didn't find anything that matched
return FALSE
/proc/get_centcom_access(job)
switch(job)
+1 -1
View File
@@ -206,7 +206,7 @@
else if((occupant.health >= heal_level || occupant.health == occupant.getMaxHealth()) && (!eject_wait))
playsound(src, 'sound/machines/medbayscanner1.ogg', 50, 1)
audible_message("\The [src] signals that the cloning process is complete.", runemessage = "* ding *")
audible_message("\The [src] signals that the cloning process is complete.", runemessage = "ding")
connected_message("Cloning Process Complete.")
locked = 0
go_out()
+2 -2
View File
@@ -519,9 +519,9 @@
if(electronics)
sleep(10)
if(oldfuel > fuel && oldfood > food)
src.audible_message("\The [src] lets out a somehow reassuring chime.", runemessage = "* reassuring chime *")
src.audible_message("\The [src] lets out a somehow reassuring chime.", runemessage = "reassuring chime")
else if(oldfuel < fuel || oldfood < food)
src.audible_message("\The [src] lets out a somehow ominous chime.", runemessage = "* ominous chime *")
src.audible_message("\The [src] lets out a somehow ominous chime.", runemessage = "ominous chime")
food = oldfood
fuel = oldfuel
+2 -2
View File
@@ -130,8 +130,8 @@ Deployable items
/obj/machinery/deployable/barrier/emag_act(var/remaining_charges, var/mob/user)
if(emagged == 0)
emagged = 1
req_access.Cut()
req_one_access.Cut()
LAZYCLEARLIST(req_access)
LAZYCLEARLIST(req_one_access)
to_chat(user, "You break the ID authentication lock on \the [src].")
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(2, 1, src)
+3 -3
View File
@@ -28,9 +28,9 @@
return attack_hand(user)
/obj/machinery/button/remote/emag_act(var/remaining_charges, var/mob/user)
if(LAZYLEN(req_access) || LAZYLEN(req_one_access.len))
req_access = req_access ? list() : null
req_one_access = req_one_access ? list() : null // if it's not set keep it not set
if(LAZYLEN(req_access) || LAZYLEN(req_one_access))
LAZYCLEARLIST(req_access)
LAZYCLEARLIST(req_one_access)
playsound(src, "sparks", 100, 1)
return 1
+6 -8
View File
@@ -1430,10 +1430,10 @@ About the new airlock wires panel:
//update the door's access to match the electronics'
secured_wires = electronics.secure
if(electronics.one_access)
if(req_access) req_access.Cut() //YWEdit
LAZYCLEARLIST(req_access)
req_one_access = src.electronics.conf_access
else
if(req_one_access) req_one_access.Cut() //YWEdit
LAZYCLEARLIST(req_one_access)
req_access = src.electronics.conf_access
//get the name from the assembly
@@ -1479,12 +1479,10 @@ About the new airlock wires panel:
src.electronics = new/obj/item/weapon/airlock_electronics( src.loc )
//update the electronics to match the door's access
if(!src.req_access)
src.check_access()
if(src.req_access.len)
electronics.conf_access = src.req_access
else if (src.req_one_access.len)
electronics.conf_access = src.req_one_access
if(LAZYLEN(req_access))
electronics.conf_access = req_access
else if (LAZYLEN(req_one_access))
electronics.conf_access = req_one_access
electronics.one_access = 1
/obj/machinery/door/airlock/emp_act(var/severity)
+9 -13
View File
@@ -20,7 +20,7 @@
/obj/machinery/door/window/New()
..()
update_nearby_tiles()
if (src.req_access && src.req_access.len)
if(LAZYLEN(req_access))
src.icon_state = "[src.icon_state]"
src.base_state = src.icon_state
return
@@ -38,12 +38,10 @@
var/obj/item/weapon/airlock_electronics/ae
if(!electronics)
ae = new/obj/item/weapon/airlock_electronics( src.loc )
if(!src.req_access)
src.check_access()
if(src.req_access.len)
ae.conf_access = src.req_access
else if (src.req_one_access.len)
ae.conf_access = src.req_one_access
if(LAZYLEN(req_access))
ae.conf_access = req_access
else if (LAZYLEN(req_one_access))
ae.conf_access = req_one_access
ae.one_access = 1
else
ae = electronics
@@ -241,12 +239,10 @@
else
if(!electronics)
wa.electronics = new/obj/item/weapon/airlock_electronics()
if(!src.req_access)
src.check_access()
if(src.req_access.len)
wa.electronics.conf_access = src.req_access
else if (src.req_one_access.len)
wa.electronics.conf_access = src.req_one_access
if(LAZYLEN(req_access))
wa.electronics.conf_access = req_access
else if (LAZYLEN(req_one_access))
wa.electronics.conf_access = req_one_access
wa.electronics.one_access = 1
else
wa.electronics = electronics
+2 -2
View File
@@ -460,7 +460,7 @@
return
playsound(src, 'sound/machines/defib_charge.ogg', 50, 0)
audible_message("<span class='warning'>\The [src] lets out a steadily rising hum...</span>", runemessage = "* whines *")
audible_message("<span class='warning'>\The [src] lets out a steadily rising hum...</span>", runemessage = "whines")
if(!do_after(user, chargetime, H))
return
@@ -527,7 +527,7 @@
H.setBrainLoss(brain_damage)
/obj/item/weapon/shockpaddles/proc/make_announcement(var/message, var/msg_class)
audible_message("<b>\The [src]</b> [message]", "\The [src] vibrates slightly.", runemessage = "* buzz *")
audible_message("<b>\The [src]</b> [message]", "\The [src] vibrates slightly.", runemessage = "buzz")
/obj/item/weapon/shockpaddles/emag_act(mob/user)
if(safety)
@@ -264,7 +264,7 @@
playsleepseconds = 1
sleep(10)
T = get_turf(src)
T.audible_message("<font color=Maroon><B>Tape Recorder</B>: End of recording.</font>", runemessage = "* click *")
T.audible_message("<font color=Maroon><B>Tape Recorder</B>: End of recording.</font>", runemessage = "click")
break
else
playsleepseconds = mytape.timestamp[i+1] - mytape.timestamp[i]
@@ -272,7 +272,7 @@
if(playsleepseconds > 14)
sleep(10)
T = get_turf(src)
T.audible_message("<font color=Maroon><B>Tape Recorder</B>: Skipping [playsleepseconds] seconds of silence</font>", runemessage = "* tape winding *")
T.audible_message("<font color=Maroon><B>Tape Recorder</B>: Skipping [playsleepseconds] seconds of silence</font>", runemessage = "tape winding")
playsleepseconds = 1
sleep(10 * playsleepseconds)
@@ -282,7 +282,7 @@
if(emagged)
var/turf/T = get_turf(src)
T.audible_message("<font color=Maroon><B>Tape Recorder</B>: This tape recorder will self-destruct in... Five.</font>", runemessage = "* beep beep *")
T.audible_message("<font color=Maroon><B>Tape Recorder</B>: This tape recorder will self-destruct in... Five.</font>", runemessage = "beep beep")
sleep(10)
T = get_turf(src)
T.audible_message("<font color=Maroon><B>Tape Recorder</B>: Four.</font>")
@@ -24,6 +24,6 @@
var/message = sanitize(input(user,"Choose a message to relay to those around you.") as text|null)
if(message)
audible_message("[bicon(src)] \The [src.name] states, \"[message]\"", runemessage = "* synthesized speech *")
audible_message("[bicon(src)] \The [src.name] states, \"[message]\"", runemessage = "synthesized speech")
if(ismob(loc))
loc.audible_message("", runemessage = "\[TTS Voice\] [message]")
+1 -1
View File
@@ -104,7 +104,7 @@
sleep(1 SECOND)
shadekin.dir = SOUTH
sleep(1 SECOND)
shadekin.audible_message("<b>[shadekin]</b> belches loudly!", runemessage = "* URRRRRP *")
shadekin.audible_message("<b>[shadekin]</b> belches loudly!", runemessage = "URRRRRP")
sleep(2 SECONDS)
shadekin.phase_shift()
target.transforming = FALSE //Undo cheap hack
+1 -1
View File
@@ -120,7 +120,7 @@
item_state = icon_state
wires = new(src)
if((!req_access || !req_access.len) && (!req_one_access || !req_one_access.len))
if(!LAZYLEN(req_access) && !LAZYLEN(req_one_access))
locked = 0
spark_system = new()
@@ -17,7 +17,7 @@
to_chat(user, "<span class='danger'>It looks like the locking system has been shorted out.</span>")
return
if((!req_access || !req_access.len) && (!req_one_access || !req_one_access.len))
if(!LAZYLEN(req_access) && !LAZYLEN(req_one_access))
locked = 0
to_chat(user, "<span class='danger'>\The [src] doesn't seem to have a locking mechanism.</span>")
return
@@ -190,8 +190,8 @@
/obj/item/weapon/rig/emag_act(var/remaining_charges, var/mob/user)
if(!subverted)
req_access.Cut()
req_one_access.Cut()
LAZYCLEARLIST(req_access)
LAZYCLEARLIST(req_one_access)
locked = 0
subverted = 1
to_chat(user, "<span class='danger'>You short out the access protocol for the suit.</span>")
@@ -124,7 +124,7 @@
if(usr.stat) return
if(!jingled)
usr.audible_message("[usr] jingles the [src]'s bell.", runemessage = "* jingle *")
usr.audible_message("[usr] jingles the [src]'s bell.", runemessage = "jingle")
playsound(src, 'sound/items/pickup/ring.ogg', 50, 1)
jingled = 1
addtimer(CALLBACK(src, .proc/jingledreset), 50)
+1 -1
View File
@@ -190,7 +190,7 @@
// Check for required access.
var/obj/item/weapon/card/id/current_id = M.wear_id
if(citem.req_access && citem.req_access > 0)
if(citem.req_access && citem.req_access > 0) // These are numbers, not lists
if(!(istype(current_id) && (citem.req_access in current_id.access)))
log_debug("Custom Item: [key_name(M)] Does not have required access.")
continue
+1 -1
View File
@@ -87,7 +87,7 @@
if(use_emote.message_type == AUDIBLE_MESSAGE && is_muzzled())
var/muffle_message = use_emote.emote_message_muffled || "makes a muffled sound."
audible_message("<b>\The [src]</b> [muffle_message]", runemessage = "* [muffle_message] *")
audible_message("<b>\The [src]</b> [muffle_message]", runemessage = "[muffle_message]")
return
next_emote = world.time + use_emote.emote_delay
+1 -1
View File
@@ -417,7 +417,7 @@
if(lockdown)
to_chat(user, "<span class='notice'>\The [src]'s control panel thunks, as its cover retracts.</span>")
lockdown = 0
if(req_access || req_one_access)
if(LAZYLEN(req_access) || LAZYLEN(req_one_access))
req_access = list()
req_one_access = list()
to_chat(user, "<span class='warning'>\The [src]'s access mechanism shorts out.</span>")
+3 -1
View File
@@ -249,8 +249,10 @@ turf/simulated/mineral/floor/light_corner
spawn(1) // Otherwise most of the ore is lost to the explosion, which makes this rather moot.
for(var/ore in resources)
var/amount_to_give = rand(CEILING(resources[ore]/2, 1), resources[ore]) // Should result in at least one piece of ore.
var/oretype = ore_types[ore]
if(!oretype)
return // this turf can't give that type
for(var/i=1, i <= amount_to_give, i++)
var/oretype = GLOB.ore_types[ore]
new oretype(src)
resources[ore] = 0
@@ -481,6 +481,9 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
/mob/proc/update_following()
. = get_turf(src)
for(var/mob/observer/dead/M in following_mobs)
if(!.)
M.stop_following()
if(M.following != src)
following_mobs -= M
else
+6 -2
View File
@@ -13,9 +13,13 @@
if(SP.speaking && SP.speaking.flags & INNATE) // Snowflake for noise lang
if(radio)
return SP.speaking.format_message_radio(piece)
.["formatted"] = SP.speaking.format_message_radio(piece)
.["raw"] = piece
return
else
return SP.speaking.format_message(piece)
.["formatted"] = SP.speaking.format_message(piece)
.["raw"] = piece
return
if(iteration_count == 1)
piece = capitalize(piece)
+1 -1
View File
@@ -98,7 +98,7 @@
"You begin climbing [direction] \the [src]!",
"You hear the grunting and clanging of a metal ladder being used.")
target_ladder.audible_message("<span class='notice'>You hear something coming [direction] \the [src]</span>", runemessage = "* clank clank *")
target_ladder.audible_message("<span class='notice'>You hear something coming [direction] \the [src]</span>", runemessage = "clank clank")
if(do_after(M, climb_time, src))
var/turf/T = get_turf(target_ladder)
+4 -4
View File
@@ -59,7 +59,7 @@
if(lattice)
var/pull_up_time = max(5 SECONDS + (src.movement_delay() * 10), 1)
to_chat(src, "<span class='notice'>You grab \the [lattice] and start pulling yourself upward...</span>")
destination.audible_message("<span class='notice'>You hear something climbing up \the [lattice].</span>", runemessage = "* clank clang *")
destination.audible_message("<span class='notice'>You hear something climbing up \the [lattice].</span>", runemessage = "clank clang")
if(do_after(src, pull_up_time))
to_chat(src, "<span class='notice'>You pull yourself up.</span>")
else
@@ -74,7 +74,7 @@
if(!destination?.Enter(src, old_dest))
to_chat(src, "<span class='notice'>There's something in the way up above in that direction, try another.</span>")
return 0
destination.audible_message("<span class='notice'>You hear something climbing up \the [catwalk].</span>", runemessage = "* clank clang *")
destination.audible_message("<span class='notice'>You hear something climbing up \the [catwalk].</span>", runemessage = "clank clang")
if(do_after(src, pull_up_time))
to_chat(src, "<span class='notice'>You pull yourself up.</span>")
else
@@ -90,8 +90,8 @@
return 0
var/fly_time = max(7 SECONDS + (H.movement_delay() * 10), 1) //So it's not too useful for combat. Could make this variable somehow, but that's down the road.
to_chat(src, "<span class='notice'>You begin to fly upwards...</span>")
destination.audible_message("<span class='notice'>You hear the flapping of wings.</span>", runemessage = "* flap flap *")
H.audible_message("<span class='notice'>[H] begins to flap \his wings, preparing to move upwards!</span>", runemessage = "* flap flap *")
destination.audible_message("<span class='notice'>You hear the flapping of wings.</span>", runemessage = "flap flap")
H.audible_message("<span class='notice'>[H] begins to flap \his wings, preparing to move upwards!</span>", runemessage = "flap flap")
if(do_after(H, fly_time) && H.flying)
to_chat(src, "<span class='notice'>You fly upwards.</span>")
else
@@ -150,7 +150,7 @@
if(!is_on())
return 0
if(!check_fuel() || (use_power_oneoff(charge_per_burn) < charge_per_burn) || check_blockage())
audible_message(src,"<span class='warning'>[src] coughs once and goes silent!</span>", runemessage = "* sputtercough *")
audible_message(src,"<span class='warning'>[src] coughs once and goes silent!</span>", runemessage = "sputtercough")
update_use_power(USE_POWER_OFF)
return 0
+5 -5
View File
@@ -111,28 +111,28 @@
playsound(src, "sound/machines/copier.ogg", 100, 1)
sleep(11)
copy(copyitem)
audible_message("<span class='notice'>You can hear [src] whirring as it finishes printing.</span>", runemessage = "* whirr *")
audible_message("<span class='notice'>You can hear [src] whirring as it finishes printing.</span>", runemessage = "whirr")
playsound(src, "sound/machines/buzzbeep.ogg", 30)
else if (istype(copyitem, /obj/item/weapon/photo))
playsound(src, "sound/machines/copier.ogg", 100, 1)
sleep(11)
photocopy(copyitem)
audible_message("<span class='notice'>You can hear [src] whirring as it finishes printing.</span>", runemessage = "* whirr *")
audible_message("<span class='notice'>You can hear [src] whirring as it finishes printing.</span>", runemessage = "whirr")
playsound(src, "sound/machines/buzzbeep.ogg", 30)
else if (istype(copyitem, /obj/item/weapon/paper_bundle))
sleep(11)
playsound(src, "sound/machines/copier.ogg", 100, 1)
var/obj/item/weapon/paper_bundle/B = bundlecopy(copyitem)
sleep(11*B.pages.len)
audible_message("<span class='notice'>You can hear [src] whirring as it finishes printing.</span>", runemessage = "* whirr *")
audible_message("<span class='notice'>You can hear [src] whirring as it finishes printing.</span>", runemessage = "whirr")
playsound(src, "sound/machines/buzzbeep.ogg", 30)
else if (has_buckled_mobs()) // VOREStation EDIT: For ass-copying.
playsound(src, "sound/machines/copier.ogg", 100, 1)
audible_message("<span class='notice'>You can hear [src] whirring as it attempts to scan.</span>", runemessage = "* whirr *")
audible_message("<span class='notice'>You can hear [src] whirring as it attempts to scan.</span>", runemessage = "whirr")
sleep(rand(20,45)) // Sit with your bare ass on the copier for a random time, feel like a fool, get stared at.
copyass(user)
sleep(15)
audible_message("<span class='notice'>You can hear [src] whirring as it finishes printing.</span>", runemessage = "* whirr *")
audible_message("<span class='notice'>You can hear [src] whirring as it finishes printing.</span>", runemessage = "whirr")
playsound(src, "sound/machines/buzzbeep.ogg", 30)
else
to_chat(user, "<span class='warning'>\The [copyitem] can't be copied by [src].</span>")
@@ -208,7 +208,7 @@
/obj/item/weapon/gun/magnetic/matfed/phoronbore/process()
if(generator_state && !mat_storage)
audible_message(SPAN_NOTICE("\The [src] goes quiet."),SPAN_NOTICE("A motor noise cuts out."), runemessage = "* goes quiet *")
audible_message(SPAN_NOTICE("\The [src] goes quiet."),SPAN_NOTICE("A motor noise cuts out."), runemessage = "goes quiet")
soundloop.stop()
generator_state = GEN_OFF
@@ -258,12 +258,12 @@
soundloop.start()
time_started = world.time
cell?.use(100)
audible_message(SPAN_NOTICE("\The [src] starts chugging."),SPAN_NOTICE("A motor noise starts up."), runemessage = "* whirr *")
audible_message(SPAN_NOTICE("\The [src] starts chugging."),SPAN_NOTICE("A motor noise starts up."), runemessage = "whirr")
generator_state = GEN_IDLE
else if(generator_state > GEN_OFF && time_started + 3 SECONDS < world.time)
soundloop.stop()
audible_message(SPAN_NOTICE("\The [src] goes quiet."),SPAN_NOTICE("A motor noise cuts out."), runemessage = "* goes quiet *")
audible_message(SPAN_NOTICE("\The [src] goes quiet."),SPAN_NOTICE("A motor noise cuts out."), runemessage = "goes quiet")
generator_state = GEN_OFF
/obj/item/weapon/gun/magnetic/matfed/phoronbore/loaded
@@ -284,7 +284,7 @@
visible_message("<span class='danger'>\The [src] begins to rattle, its acceleration chamber collapsing in on itself!</span>")
removable_components = FALSE
spawn(15)
audible_message("<span class='critical'>\The [src]'s power supply begins to overload as the device crumples!</span>", runemessage = "* VWRRRRRRRR *") //Why are you still holding this?
audible_message("<span class='critical'>\The [src]'s power supply begins to overload as the device crumples!</span>", runemessage = "VWRRRRRRRR") //Why are you still holding this?
playsound(src, 'sound/effects/grillehit.ogg', 10, 1)
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread()
var/turf/T = get_turf(src)
+2 -2
View File
@@ -130,12 +130,12 @@ var/global/list/obj/machinery/message_server/message_servers = list()
if(2)
if(!Console.silent)
playsound(Console, 'sound/machines/twobeep.ogg', 50, 1)
Console.audible_message(text("[bicon(Console)] *The Requests Console beeps: 'PRIORITY Alert in [sender]'"),,5, runemessage = "* beep! beep! *")
Console.audible_message(text("[bicon(Console)] *The Requests Console beeps: 'PRIORITY Alert in [sender]'"),,5, runemessage = "beep! beep!")
Console.message_log += list(list("High Priority message from [sender]", "[authmsg]"))
else
if(!Console.silent)
playsound(Console, 'sound/machines/twobeep.ogg', 50, 1)
Console.audible_message(text("[bicon(Console)] *The Requests Console beeps: 'Message from [sender]'"),,4, runemessage = "* beep beep *")
Console.audible_message(text("[bicon(Console)] *The Requests Console beeps: 'Message from [sender]'"),,4, runemessage = "beep beep")
Console.message_log += list(list("Message from [sender]", "[authmsg]"))
Console.set_light(2)
+1 -1
View File
@@ -148,7 +148,7 @@
else if(((occupant.health == occupant.maxHealth)) && (!eject_wait))
playsound(src, 'sound/machines/ding.ogg', 50, 1)
audible_message("\The [src] signals that the growing process is complete.", runemessage = "* ding *")
audible_message("\The [src] signals that the growing process is complete.", runemessage = "ding")
connected_message("Growing Process Complete.")
locked = 0
go_out()
+1 -1
View File
@@ -119,7 +119,7 @@
continue
if(!H.shuttle_comp || !(get_area(H) in shuttle_area))
H.shuttle_comp = null
H.audible_message("<span class='warning'>\The [H] pings as it loses it's connection with the ship.</span>", runemessage = "* ping *")
H.audible_message("<span class='warning'>\The [H] pings as it loses it's connection with the ship.</span>", runemessage = "ping")
H.update_hud("discon")
helmets -= H
else
+2 -2
View File
@@ -28,7 +28,7 @@
priority_mode = TRUE
cancel_pending_floors()
update_ext_panel_icons()
control_panel_interior.audible_message("<span class='info'>This turbolift is responding to a priority call. Please exit the lift when it stops and make way.</span>", runemessage = "* BUZZ *")
control_panel_interior.audible_message("<span class='info'>This turbolift is responding to a priority call. Please exit the lift when it stops and make way.</span>", runemessage = "BUZZ")
spawn(time)
priority_mode = FALSE
update_ext_panel_icons()
@@ -158,7 +158,7 @@
doors_closing = 0
if(!fire_mode)
open_doors()
control_panel_interior.audible_message("\The [current_floor.ext_panel] buzzes loudly.", runemessage = "* BUZZ *")
control_panel_interior.audible_message("\The [current_floor.ext_panel] buzzes loudly.", runemessage = "BUZZ")
playsound(control_panel_interior, "sound/machines/buzz-two.ogg", 50, 1)
return 0
+2 -2
View File
@@ -130,10 +130,10 @@
return
lift.update_fire_mode(!lift.fire_mode)
if(lift.fire_mode)
audible_message("<span class='danger'>Firefighter Mode Activated. Door safeties disabled. Manual control engaged.</span>", runemessage = "* SCREECH *")
audible_message("<span class='danger'>Firefighter Mode Activated. Door safeties disabled. Manual control engaged.</span>", runemessage = "SCREECH")
playsound(src, 'sound/machines/airalarm.ogg', 25, 0, 4, volume_channel = VOLUME_CHANNEL_ALARMS)
else
audible_message("<span class='warning'>Firefighter Mode Deactivated. Door safeties enabled. Automatic control engaged.</span>", runemessage = "* ding *")
audible_message("<span class='warning'>Firefighter Mode Deactivated. Door safeties enabled. Automatic control engaged.</span>", runemessage = "ding")
return
. = ..()
+1 -1
View File
@@ -40,7 +40,7 @@
if(!moved) // nowhere to go....
LM.gib()
else // the mob is too big to just move, so we need to give up what we're doing
audible_message("\The [src]'s motors grind as they quickly reverse direction, unable to safely close.", runemessage = "* WRRRRR *")
audible_message("\The [src]'s motors grind as they quickly reverse direction, unable to safely close.", runemessage = "WRRRRR")
cur_command = null // the door will just keep trying otherwise
return 0
return ..()
+2 -2
View File
@@ -70,7 +70,7 @@ VIRGO3B_TURF_CREATE(/turf/simulated/mineral/floor)
"platinum" = 10,
"hematite" = 20,
"copper" = 8,
"tin" = 4,
// "tin" = 4,
"bauxite" = 4,
"rutile" = 4,
"carbon" = 20,
@@ -87,7 +87,7 @@ VIRGO3B_TURF_CREATE(/turf/simulated/mineral/floor)
"platinum" = 5,
"hematite" = 35,
"copper" = 15,
"tin" = 10,
// "tin" = 10,
"bauxite" = 10,
"rutile" = 10,
"carbon" = 35,
+2 -2
View File
@@ -97,7 +97,7 @@ CRYOGAIA_TURF_CREATE(/turf/simulated/mineral/floor)
"platinum" = 10,
"hematite" = 20,
"copper" = 8,
"tin" = 4,
// "tin" = 4,
"bauxite" = 4,
"rutile" = 4,
"carbon" = 20,
@@ -114,7 +114,7 @@ CRYOGAIA_TURF_CREATE(/turf/simulated/mineral/floor)
"platinum" = 5,
"hematite" = 35,
"copper" = 15,
"tin" = 10,
// "tin" = 10,
"bauxite" = 10,
"rutile" = 10,
"carbon" = 35,