mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-28 22:48:38 +01:00
Merge branch 'master' of https://github.com/PolarisSS13/Polaris
Conflicts: html/changelogs/Hubblenaut-dev.yml
This commit is contained in:
@@ -53,6 +53,7 @@ var/list/ai_verbs_default = list(
|
||||
var/viewalerts = 0
|
||||
var/icon/holo_icon//Default is assigned when AI is created.
|
||||
var/obj/item/device/pda/ai/aiPDA = null
|
||||
var/obj/item/device/communicator/aiCommunicator = null
|
||||
var/obj/item/device/multitool/aiMulti = null
|
||||
var/obj/item/device/radio/headset/heads/ai_integrated/aiRadio = null
|
||||
var/camera_light_on = 0 //Defines if the AI toggled the light on the camera it's looking through.
|
||||
@@ -114,6 +115,9 @@ var/list/ai_verbs_default = list(
|
||||
density = 1
|
||||
loc = loc
|
||||
|
||||
aiCommunicator = new /obj/item/device/communicator/integrated(src)
|
||||
|
||||
|
||||
holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo1"))
|
||||
|
||||
proc_holder_list = new()
|
||||
@@ -243,6 +247,9 @@ var/list/ai_verbs_default = list(
|
||||
aiPDA.owner = pickedName
|
||||
aiPDA.name = pickedName + " (" + aiPDA.ownjob + ")"
|
||||
|
||||
if(aiCommunicator)
|
||||
aiCommunicator.register_device(src)
|
||||
|
||||
/*
|
||||
The AI Power supply is a dummy object used for powering the AI since only machinery should be using power.
|
||||
The alternative was to rewrite a bunch of AI code instead here we are.
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
var/userDNA // The DNA string of our assigned user
|
||||
var/obj/item/device/paicard/card // The card we inhabit
|
||||
var/obj/item/device/radio/radio // Our primary radio
|
||||
var/obj/item/device/communicator/integrated/communicator // Our integrated communicator.
|
||||
|
||||
var/chassis = "repairbot" // A record of your chosen chassis.
|
||||
var/global/list/possible_chassis = list(
|
||||
@@ -75,6 +76,7 @@
|
||||
src.loc = paicard
|
||||
card = paicard
|
||||
sradio = new(src)
|
||||
communicator = new(src)
|
||||
if(card)
|
||||
if(!card.radio)
|
||||
card.radio = new /obj/item/device/radio(src.card)
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
var/module_state_3 = null
|
||||
|
||||
var/obj/item/device/radio/borg/radio = null
|
||||
var/obj/item/device/communicator/integrated/communicator = null
|
||||
var/mob/living/silicon/ai/connected_ai = null
|
||||
var/obj/item/weapon/cell/cell = null
|
||||
var/obj/machinery/camera/camera = null
|
||||
@@ -110,6 +111,8 @@
|
||||
updateicon()
|
||||
|
||||
radio = new /obj/item/device/radio/borg(src)
|
||||
// communicator = new /obj/item/device/communicator/integrated(src)
|
||||
// communicator.register_device(src)
|
||||
common_radio = radio
|
||||
|
||||
if(!scrambledcodes && !camera)
|
||||
@@ -199,6 +202,11 @@
|
||||
rbPDA = new/obj/item/device/pda/ai(src)
|
||||
rbPDA.set_name_and_job(custom_name,"[modtype] [braintype]")
|
||||
|
||||
/mob/living/silicon/robot/proc/setup_communicator()
|
||||
if (!communicator)
|
||||
communicator = new/obj/item/device/communicator/integrated(src)
|
||||
communicator.register_device(src, "[modtype] [braintype]")
|
||||
|
||||
//If there's an MMI in the robot, have it ejected when the mob goes away. --NEO
|
||||
//Improved /N
|
||||
/mob/living/silicon/robot/Destroy()
|
||||
@@ -279,6 +287,9 @@
|
||||
// if we've changed our name, we also need to update the display name for our PDA
|
||||
setup_PDA()
|
||||
|
||||
// as well as our communicator registration
|
||||
setup_communicator()
|
||||
|
||||
//We also need to update name of internal camera.
|
||||
if (camera)
|
||||
camera.c_tag = changed_name
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
//A very, very simple mob that exists inside other objects to talk and has zero influence on the world.
|
||||
/mob/living/voice
|
||||
name = "unknown"
|
||||
desc = "How are you examining me?"
|
||||
// default_language = "Galactic Common"
|
||||
var/obj/item/device/communicator/comm = null
|
||||
|
||||
emote_type = 2 //This lets them emote through containers. The communicator has a image feed of the person calling them so...
|
||||
var/stable_connection = 0 //If set to zero, makes the mob effectively deaf, mute, and blind, due to interferance.
|
||||
|
||||
|
||||
/mob/living/voice/New(loc)
|
||||
add_language("Galactic Common")
|
||||
for(var/datum/language/L in languages) //This is needed to get around some saycode problems.
|
||||
if(L.name == "Galactic Common")
|
||||
set_default_language(L)
|
||||
break
|
||||
|
||||
if(istype(loc, /obj/item/device/communicator))
|
||||
comm = loc
|
||||
..()
|
||||
|
||||
/mob/living/voice/proc/transfer_identity(mob/speaker)
|
||||
if(ismob(speaker))
|
||||
icon = speaker.icon
|
||||
icon_state = speaker.icon_state
|
||||
overlays = speaker.overlays
|
||||
|
||||
alpha = 127 //Maybe we'll have hologram calls later.
|
||||
if(speaker.client && speaker.client.prefs)
|
||||
var/datum/preferences/p = speaker.client.prefs
|
||||
name = p.real_name
|
||||
real_name = name
|
||||
gender = p.gender
|
||||
|
||||
for(var/language in p.alternate_languages)
|
||||
add_language(language)
|
||||
|
||||
/mob/living/voice/Login()
|
||||
var/obj/screen/static_effect = new() //Since what the player sees is essentially a video feed, from a vast distance away, the view isn't going to be perfect.
|
||||
static_effect.screen_loc = ui_entire_screen
|
||||
static_effect.icon = 'icons/effects/static.dmi'
|
||||
static_effect.icon_state = "1 light"
|
||||
static_effect.mouse_opacity = 0 //So the static doesn't get in the way of clicking.
|
||||
client.screen.Add(static_effect)
|
||||
|
||||
/mob/living/voice/Destroy()
|
||||
comm = null
|
||||
..()
|
||||
|
||||
/mob/living/voice/verb/hang_up()
|
||||
set name = "Hang Up"
|
||||
set category = "Communicator"
|
||||
set desc = "Disconnects you from whoever you're talking to."
|
||||
set src = usr
|
||||
|
||||
if(comm)
|
||||
comm.close_connection(src, "[src] hung up")
|
||||
else
|
||||
src << "You appear to not be inside a communicator. This is a bug and you should report it."
|
||||
|
||||
/mob/living/voice/Life()
|
||||
if(comm && comm.server && !comm.server.active)
|
||||
comm.close_connection(src,"Connection to telecommunications array timed out")
|
||||
..()
|
||||
|
||||
/mob/living/voice/say(var/message, var/datum/language/speaking = null, var/verb="says", var/alt_name="")
|
||||
// world << "say() was called. Arguments: ([message], [speaking], [verb], [alt_name])."
|
||||
if(!stable_connection)
|
||||
return 0
|
||||
|
||||
//Speech bubbles.
|
||||
if(comm)
|
||||
var/speech_bubble_test = say_test(message)
|
||||
var/image/speech_bubble = image('icons/mob/talk.dmi',src,"h[speech_bubble_test]")
|
||||
spawn(30)
|
||||
qdel(speech_bubble)
|
||||
|
||||
for(var/mob/M in hearers(world.view,comm)) //simplifed since it's just a speech bubble
|
||||
M << speech_bubble
|
||||
src << speech_bubble
|
||||
|
||||
..(message, speaking, verb, alt_name) //mob/living/say() can do the actual talking.
|
||||
/*
|
||||
/mob/verb/test_voice_mob()
|
||||
set name = "Make Voice Mob"
|
||||
set category = "Debug"
|
||||
set desc = "For testing only!"
|
||||
set src = usr
|
||||
|
||||
var/turf/T = get_turf(src)
|
||||
var/obj/item/device/communicator/comm = new(T)
|
||||
comm.open_connection(src, src)
|
||||
*/
|
||||
@@ -733,8 +733,8 @@
|
||||
if(istype(buckled, /obj/vehicle))
|
||||
var/obj/vehicle/V = buckled
|
||||
if(cannot_stand())
|
||||
lying = 1
|
||||
canmove = 0
|
||||
lying = 0
|
||||
canmove = 1
|
||||
pixel_y = V.mob_offset_y - 5
|
||||
else
|
||||
if(buckled.buckle_lying != -1) lying = buckled.buckle_lying
|
||||
|
||||
@@ -206,6 +206,14 @@
|
||||
name = "Bun"
|
||||
icon_state = "hair_bun"
|
||||
|
||||
bun2
|
||||
name = "Bun 2"
|
||||
icon_state = "hair_bun2"
|
||||
|
||||
bun3
|
||||
name = "Bun 3"
|
||||
icon_state = "hair_bun3"
|
||||
|
||||
bowl
|
||||
name = "Bowl"
|
||||
icon_state = "hair_bowlcut"
|
||||
@@ -267,6 +275,14 @@
|
||||
name = "Long Emo"
|
||||
icon_state = "hair_emolong"
|
||||
|
||||
fringeemo
|
||||
name = "Emo Fringe"
|
||||
icon_state = "hair_emofringe"
|
||||
|
||||
veryshortovereyealternate
|
||||
name = "Overeye Very Short, Alternate"
|
||||
icon_state = "hair_veryshortovereyealternate"
|
||||
|
||||
veryshortovereye
|
||||
name = "Overeye Very Short"
|
||||
icon_state = "hair_veryshortovereye"
|
||||
|
||||
Reference in New Issue
Block a user