vtuber mode

This commit is contained in:
Timothy Teakettle
2022-08-01 12:58:41 +01:00
parent c6bb9a0a85
commit 0e20cff184
7 changed files with 108 additions and 1 deletions
+12
View File
@@ -47,6 +47,7 @@
var/mob/living/simple_animal/bot/Bot
var/tracking = FALSE //this is 1 if the AI is currently tracking somebody, but the track has not yet been completed.
var/datum/effect_system/spark_spread/spark_system//So they can initialize sparks whenever/N
var/obj/machinery/status_display/controlled_display
//MALFUNCTION
var/datum/module_picker/malf_picker
@@ -1043,3 +1044,14 @@
/mob/living/silicon/ai/zMove(dir, feedback = FALSE)
. = eyeobj.zMove(dir, feedback)
/mob/living/silicon/ai/proc/stop_controlling_display()
if(!controlled_display)
return
controlled_display.master = null
controlled_display.cut_overlay(controlled_display.ai_vtuber_overlay)
controlled_display.ai_vtuber_overlay = null
if(current == controlled_display)
current = null
controlled_display.update_appearance()
controlled_display = null
@@ -92,6 +92,8 @@
ai.light_cameras()
if(ai.master_multicam)
ai.master_multicam.refresh_view()
if(ai.controlled_display)
ai.stop_controlling_display()
//it uses setLoc not forceMove, talks to the sillycone and not the camera mob
/mob/camera/aiEye/zMove(dir, feedback = FALSE)
@@ -168,6 +170,9 @@
if(!user.tracking)
user.cameraFollow = null
if(user.controlled_display)
user.stop_controlling_display()
// Return to the Core.
/mob/living/silicon/ai/proc/view_core()
if(istype(current,/obj/machinery/holopad))
+25 -1
View File
@@ -34,7 +34,7 @@
//For holopads only. Usable by AI.
/mob/living/silicon/ai/proc/holopad_talk(message, language)
message_admins("HOLOPAD TALK")
message = trim(message)
@@ -56,6 +56,30 @@
to_chat(src, "No holopad connected.")
//For status displays only. Usable by AI.
/mob/living/silicon/ai/proc/statusdisplay_talk(message, language)
message_admins("STATUSDISPLAY TALK")
message = trim(message)
if (!message)
return
var/obj/machinery/status_display/T = controlled_display
if(T)
var/turf/padturf = get_turf(T)
var/padloc
if(padturf)
padloc = AREACOORD(padturf)
else
padloc = "(UNKNOWN)"
src.log_talk(message, LOG_SAY, tag="STATUS DISPLAY in [padloc]")
send_speech(message, 7, T, "robot", message_language = language)
to_chat(src, "<i><span class='game say'>Status Display message transmitted, <span class='name'>[real_name]</span> <span class='message robot'>\"[message]\"</span></span></i>")
else
to_chat(src, "No status display connected.")
// Make sure that the code compiles with AI_VOX undefined
#ifdef AI_VOX
#define VOX_DELAY 600