diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index ecac0e026e..d61243116d 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -513,7 +513,7 @@ var/list/sacrificed = list()
// returns 0 if the rune is not used. returns 1 if the rune is used.
communicate()
. = 1 // Default output is 1. If the rune is deleted it will return 1
- var/input = copytext(sanitize(input(usr, "Please choose a message to tell to the other acolytes.", "Voice of Blood", "") as text|null),1,MAX_MESSAGE_LEN)
+ var/input = stripped_input(usr, "Please choose a message to tell to the other acolytes.", "Voice of Blood", "")
if(!input)
if (istype(src))
fizzle()
@@ -524,14 +524,14 @@ var/list/sacrificed = list()
usr.say("O bidai nabora se[pick("'","`")]sma!")
else
usr.whisper("O bidai nabora se[pick("'","`")]sma!")
- var/input_s = sanitize(input)
+
if(istype(src,/obj/effect/rune))
usr.say("[input]")
else
usr.whisper("[input]")
for(var/datum/mind/H in ticker.mode.cult)
if (H.current)
- H.current << "\red \b [input_s]"
+ H.current << "\red \b [input]"
del(src)
return 1
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 5ae894662f..d9bffe848c 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -2033,6 +2033,20 @@ var/global/BSACooldown = 0
for(var/obj/machinery/light/L in world)
L.fix()
message_admins("[key_name_admin(usr)] fixed all lights", 1)
+ if("friendai")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","FA")
+ for(var/mob/aiEye/aE in mob_list)
+ aE.icon_state = "ai_friend"
+ for(var/obj/machinery/M in machines)
+ if(istype(M, /obj/machinery/ai_status_display))
+ var/obj/machinery/ai_status_display/A = M
+ A.emotion = "Friend Computer"
+ else if(istype(M, /obj/machinery/status_display))
+ var/obj/machinery/status_display/A = M
+ A.friendc = 1
+ message_admins("[key_name_admin(usr)] turned all AIs into best friends.", 1)
+
if("virus")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","V")
@@ -2931,7 +2945,8 @@ var/global/BSACooldown = 0
Move Alien Dinghy
Move Mining Shuttle
Break all lights
-Fix all lights
"}
+Fix all lights
+Best Friend AI
"}
//Station Shockwave
if(lvl >= 6)
diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm
index 0f6fd0f119..9bdd11f523 100644
--- a/code/modules/library/lib_items.dm
+++ b/code/modules/library/lib_items.dm
@@ -25,7 +25,7 @@
O.loc = src
update_icon()
else if(istype(O, /obj/item/weapon/pen))
- var/newname = copytext(sanitize(input("What would you like to title this bookshelf?") as text|null),1,MAX_MESSAGE_LEN)
+ var/newname = stripped_input(usr, "What would you like to title this bookshelf?")
if(!newname)
return
else
@@ -140,7 +140,7 @@
var/choice = input("What would you like to change?") in list("Title", "Contents", "Author", "Cancel")
switch(choice)
if("Title")
- var/newtitle = copytext(reject_bad_text(input("Write a new title:") as text|null),1,MAX_MESSAGE_LEN)
+ var/newtitle = reject_bad_text(stripped_input(usr, "Write a new title:"))
if(!newtitle)
usr << "The title is invalid."
return
@@ -148,14 +148,14 @@
src.name = newtitle
src.title = newtitle
if("Contents")
- var/content = strip_html(input("Write your book's contents (HTML NOT allowed):"),8192) as message|null
+ var/content = strip_html(input(usr, "Write your book's contents (HTML NOT allowed):"),8192) as message|null
if(!content)
usr << "The content is invalid."
return
else
src.dat += content
if("Author")
- var/newauthor = copytext(sanitize(input("Write the author's name:") as text|null),1,MAX_NAME_LEN)
+ var/newauthor = stripped_input(usr, "Write the author's name:")
if(!newauthor)
usr << "The name is invalid."
return
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 904911a85e..c38837a322 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -578,16 +578,18 @@
return
var/list/ai_emotions = list("Very Happy", "Happy", "Neutral", "Unsure", "Confused", "Sad", "BSOD", "Blank", "Problems?", "Awesome", "Facepalm", "Friend Computer")
var/emote = input("Please, select a status!", "AI Status", null, null) in ai_emotions
- for (var/obj/machinery/ai_status_display/AISD in world) //change status
- spawn( 0 )
- AISD.emotion = emote
- for (var/obj/machinery/status_display/SD in world) //if Friend Computer, change ALL displays
- if(emote=="Friend Computer")
- spawn(0)
- SD.friendc = 1
- else
- spawn(0)
- SD.friendc = 0
+ for (var/obj/machinery/M in machines) //change status
+ if(istype(M, /obj/machinery/ai_status_display))
+ var/obj/machinery/ai_status_display/AISD = M
+ AISD.emotion = emote
+ //if Friend Computer, change ALL displays
+ else if(istype(M, /obj/machinery/status_display))
+
+ var/obj/machinery/status_display/SD = M
+ if(emote=="Friend Computer")
+ SD.friendc = 1
+ else
+ SD.friendc = 0
return
//I am the icon meister. Bow fefore me. //>fefore
diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm
index e8e691b05f..218148ab42 100644
--- a/code/modules/mob/living/silicon/ai/freelook/eye.dm
+++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm
@@ -5,6 +5,7 @@
/mob/aiEye
name = "Inactive AI Eye"
+ icon = 'icons/obj/status_display.dmi' // For AI friend secret shh :o
var/list/visibleCameraChunks = list()
var/mob/living/silicon/ai/ai = null
density = 0