Merge branch 'VOREStation:master' into master

This commit is contained in:
TheDavestDave
2021-05-31 18:05:26 +01:00
110 changed files with 3136 additions and 2175 deletions
@@ -277,7 +277,8 @@ when portals are shortly lived, or when portals are made to be obvious with spec
for(var/thing in mobs_to_relay)
var/mob/mob = thing
var/message = mob.combine_message(message_pieces, verb, M)
var/list/combined = mob.combine_message(message_pieces, verb, M)
var/message = combined["formatted"]
var/name_used = M.GetVoice()
var/rendered = null
rendered = "<span class='game say'><span class='name'>[name_used]</span> [message]</span>"
@@ -246,7 +246,8 @@
//VOREStation Edit End
for(var/mob/mob in mobs_to_relay)
var/message = mob.combine_message(message_pieces, verb, M)
var/list/combined = mob.combine_message(message_pieces, verb, M)
var/message = combined["formatted"]
var/name_used = M.GetVoice()
var/rendered = null
rendered = "<span class='game say'>[bicon(src)] <span class='name'>[name_used]</span> [message]</span>"
+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>")
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.")
audible_message("<b>\The [src]</b> [message]", "\The [src] vibrates slightly.", runemessage = "* buzz *")
/obj/item/weapon/shockpaddles/emag_act(mob/user)
if(safety)
+6 -4
View File
@@ -31,12 +31,13 @@
/obj/item/device/megaphone/proc/do_broadcast(var/mob/living/user, var/message)
if(emagged)
if(insults)
user.audible_message("<B>[user.GetVoice()]</B>[user.GetAltName()] broadcasts, <FONT size=3>\"[pick(insultmsg)]\"</FONT>")
var/insult = pick(insultmsg)
user.audible_message("<B>[user.GetVoice()]</B>[user.GetAltName()] broadcasts, <FONT size=3>\"[insult]\"</FONT>", runemessage = insult)
insults--
else
to_chat(user, "<span class='warning'>*BZZZZzzzzzt*</span>")
else
user.audible_message("<B>[user.GetVoice()]</B>[user.GetAltName()] broadcasts, <FONT size=3>\"[message]\"</FONT>")
user.audible_message("<B>[user.GetVoice()]</B>[user.GetAltName()] broadcasts, <FONT size=3>\"[message]\"</FONT>", runemessage = message)
/obj/item/device/megaphone/attack_self(var/mob/living/user)
var/message = sanitize(input(user, "Shout a message?", "Megaphone", null) as text)
@@ -131,7 +132,8 @@
/obj/item/device/megaphone/super/do_broadcast(var/mob/living/user, var/message)
if(emagged)
if(insults)
user.audible_message("<B>[user.GetVoice()]</B>[user.GetAltName()] broadcasts, <FONT size=[broadcast_size] face='[broadcast_font]' color='[broadcast_color]'>\"[pick(insultmsg)]\"</FONT>")
var/insult = pick(insultmsg)
user.audible_message("<B>[user.GetVoice()]</B>[user.GetAltName()] broadcasts, <FONT size=[broadcast_size] face='[broadcast_font]' color='[broadcast_color]'>\"[insult]\"</FONT>", runemessage = insult)
if(broadcast_size >= 11)
var/turf/T = get_turf(user)
playsound(src, 'sound/items/AirHorn.ogg', 100, 1)
@@ -160,4 +162,4 @@
qdel(src)
return
else
user.audible_message("<B>[user.GetVoice()]</B>[user.GetAltName()] broadcasts, <FONT size=[broadcast_size] face='[broadcast_font]' color='[broadcast_color]'>\"[message]\"</FONT>")
user.audible_message("<B>[user.GetVoice()]</B>[user.GetAltName()] broadcasts, <FONT size=[broadcast_size] face='[broadcast_font]' color='[broadcast_color]'>\"[message]\"</FONT>", runemessage = message)
+10 -3
View File
@@ -19,7 +19,14 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
var/ooc_notes = null //For holding prefs
// Resleeving database this machine interacts with. Blank for default database
// Needs a matching /datum/transcore_db with key defined in code
var/db_key
var/datum/transcore_db/our_db // These persist all round and are never destroyed, just keep a hard ref
/obj/item/device/sleevemate/Initialize()
. = ..()
our_db = SStranscore.db_by_key(db_key)
//These don't perform any checks and need to be wrapped by checks
/obj/item/device/sleevemate/proc/clear_mind()
@@ -77,7 +84,7 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
clear_mind()
if("Backup")
to_chat(user,"<span class='notice'>Internal copy of [stored_mind.name] backed up to database.</span>")
SStranscore.m_backup(stored_mind,null,one_time = TRUE)
our_db.m_backup(stored_mind,null,one_time = TRUE)
if("Cancel")
return
@@ -183,7 +190,7 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
usr.visible_message("[usr] begins scanning [target]'s mind.","<span class='notice'>You begin scanning [target]'s mind.</span>")
if(do_after(usr,8 SECONDS,target))
SStranscore.m_backup(target.mind,nif,one_time = TRUE)
our_db.m_backup(target.mind,nif,one_time = TRUE)
to_chat(usr,"<span class='notice'>Mind backed up!</span>")
else
to_chat(usr,"<span class='warning'>You must remain close to your target!</span>")
@@ -200,7 +207,7 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
usr.visible_message("[usr] begins scanning [target]'s body.","<span class='notice'>You begin scanning [target]'s body.</span>")
if(do_after(usr,8 SECONDS,target))
var/datum/transhuman/body_record/BR = new()
BR.init_from_mob(H, TRUE, TRUE)
BR.init_from_mob(H, TRUE, TRUE, database_key = db_key)
to_chat(usr,"<span class='notice'>Body scanned!</span>")
else
to_chat(usr,"<span class='warning'>You must remain close to your target!</span>")
@@ -258,13 +258,13 @@
var/playedmessage = mytape.storedinfo[i]
if (findtextEx(playedmessage,"*",1,2)) //remove marker for action sounds
playedmessage = copytext(playedmessage,2)
T.audible_message("<font color=Maroon><B>Tape Recorder</B>: [playedmessage]</font>")
T.audible_message("<font color=Maroon><B>Tape Recorder</B>: [playedmessage]</font>", runemessage = playedmessage)
if(mytape.storedinfo.len < i+1)
playsleepseconds = 1
sleep(10)
T = get_turf(src)
T.audible_message("<font color=Maroon><B>Tape Recorder</B>: End of recording.</font>")
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>")
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>")
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,5 +24,6 @@
var/message = sanitize(input(user,"Choose a message to relay to those around you.") as text|null)
if(message)
var/obj/item/device/text_to_speech/O = src
audible_message("[bicon(O)] \The [O.name] states, \"[message]\"")
audible_message("[bicon(src)] \The [src.name] states, \"[message]\"", runemessage = "* synthesized speech *")
if(ismob(loc))
loc.audible_message("", runemessage = "\[TTS Voice\] [message]")
+2 -2
View File
@@ -33,12 +33,12 @@
if(isnull(insults))
playsound(src, 'sound/voice/halt.ogg', 100, 1, vary = 0)
user.audible_message("<span class='warning'>[user]'s [name] rasps, \"[use_message]\"</span>", "<span class='warning'>\The [user] holds up \the [name].</span>")
user.audible_message("<span class='warning'>[user]'s [name] rasps, \"[use_message]\"</span>", "<span class='warning'>\The [user] holds up \the [name].</span>", runemessage = "\[TTS Voice\] [use_message]")
else
if(insults > 0)
playsound(src, 'sound/voice/binsult.ogg', 100, 1, vary = 0)
// Yes, it used to show the transcription of the sound clip. That was a) inaccurate b) immature as shit.
user.audible_message("<span class='warning'>[user]'s [name] gurgles something indecipherable and deeply offensive.</span>", "<span class='warning'>\The [user] holds up \the [name].</span>")
user.audible_message("<span class='warning'>[user]'s [name] gurgles something indecipherable and deeply offensive.</span>", "<span class='warning'>\The [user] holds up \the [name].</span>", runemessage = "\[TTS Voice\] #&@&^%(*")
insults--
else
to_chat(user, "<span class='danger'>*BZZZZZZZZT*</span>")
+2 -1
View File
@@ -305,7 +305,8 @@
for(var/wr_master in masters)
var/weakref/wr = wr_master
var/mob/master = wr.resolve()
var/message = master.combine_message(message_pieces, verb, M)
var/list/combined = master.combine_message(message_pieces, verb, M)
var/message = combined["formatted"]
var/rendered = "<i><span class='game say'>UAV received: <span class='name'>[name_used]</span> [message]</span></i>"
master.show_message(rendered, 2)
@@ -1,6 +1,6 @@
/obj/structure/handrail
name = "handrail"
icon = 'icons/obj/handrail_vr.dmi'
icon = 'icons/obj/handrail.dmi'
icon_state = "handrail"
desc = "A safety railing with buckles to secure yourself to when floor isn't stable enough."
density = 0
@@ -242,6 +242,7 @@
prob(2);/obj/item/weapon/storage/box/syndie_kit/spy,
prob(2);/obj/item/weapon/grenade/anti_photon,
prob(2);/obj/item/clothing/under/hyperfiber/bluespace,
prob(2);/obj/item/weapon/reagent_containers/glass/beaker/vial/amorphorovir,
prob(1);/obj/item/clothing/suit/storage/vest/heavy/merc,
prob(1);/obj/item/device/nif/bad,
prob(1);/obj/item/device/radio_jammer,