Allow borgs to use holopads

This commit is contained in:
ascio
2024-04-12 04:49:05 -04:00
parent bb469c41ab
commit 17c96bc24d
2 changed files with 20 additions and 11 deletions
+19 -10
View File
@@ -156,7 +156,7 @@ GLOBAL_LIST_EMPTY(holopads)
var/datum/holocall/HC = I var/datum/holocall/HC = I
HC.Disconnect(src) HC.Disconnect(src)
/obj/machinery/hologram/holopad/interact(mob/living/carbon/human/user) //Carn: hologram requests. /obj/machinery/hologram/holopad/interact(mob/living/user) //Carn: hologram requests.
if(!istype(user)) if(!istype(user))
return return
if(!anchored) if(!anchored)
@@ -262,20 +262,24 @@ GLOBAL_LIST_EMPTY(holopads)
updateDialog() updateDialog()
//do not allow AIs to answer calls or people will use it to meta the AI satellite //do not allow AIs to answer calls or people will use it to meta the AI satellite
/obj/machinery/hologram/holopad/attack_ai(mob/living/silicon/ai/user) /obj/machinery/hologram/holopad/attack_ai(mob/living/silicon/ai_or_robot)
if(!istype(user)) var/mob/living/silicon/ai/ai = ai_or_robot
var/mob/living/silicon/robot/robot = ai_or_robot
if(!istype(ai) && !istype(robot))
return return
if(outgoing_call) if(outgoing_call)
return return
if(istype(robot))
interact(robot)
/*There are pretty much only three ways to interact here. /*There are pretty much only three ways to interact here.
I don't need to check for client since they're clicking on an object. I don't need to check for client since they're clicking on an object.
This may change in the future but for now will suffice.*/ This may change in the future but for now will suffice.*/
if(user.eyeobj.loc != loc)//Set client eye on the object if it's not already. else if(ai.eyeobj.loc != loc)//Set client eye on the object if it's not already.
user.eyeobj.setLoc(get_turf(src)) ai.eyeobj.setLoc(get_turf(src))
else if(!LAZYLEN(masters) || !masters[user])//If there is no hologram, possibly make one. else if(!LAZYLEN(masters) || !masters[ai])//If there is no hologram, possibly make one.
activate_holo(user, 1) activate_holo(ai, 1)
else//If there is a hologram, remove it. else//If there is a hologram, remove it.
clear_holo(user) clear_holo(ai)
/obj/machinery/hologram/holopad/process() /obj/machinery/hologram/holopad/process()
for(var/I in masters) for(var/I in masters)
@@ -373,8 +377,13 @@ GLOBAL_LIST_EMPTY(holopads)
if(isAI(user)) if(isAI(user))
hologram.icon = AI.holo_icon hologram.icon = AI.holo_icon
else //make it like real life else //make it like real life
hologram.icon = getHologramIcon(get_id_photo(user)) if(isrobot(user))
hologram.icon_state = user.icon_state var/mob/living/silicon/robot/robot = user
hologram.icon = getHologramIcon(robot.icon, FALSE)
hologram.icon_state = robot.icon_state
else
hologram.icon = getHologramIcon(get_id_photo(user))
hologram.icon_state = user.icon_state
hologram.alpha = 100 hologram.alpha = 100
hologram.Impersonation = user hologram.Impersonation = user
+1 -1
View File
@@ -1005,7 +1005,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
flat_icon.ColorTone(rgb(125,180,225)) // Let's make it bluish. flat_icon.ColorTone(rgb(125,180,225)) // Let's make it bluish.
flat_icon.ChangeOpacity(0.5) // Make it half transparent. flat_icon.ChangeOpacity(0.5) // Make it half transparent.
if(A.Height() == 64) if(flat_icon.Height() == 64)
alpha_mask = new('icons/mob/ancient_machine.dmi', "scanline2") //Scaline for tall icons. alpha_mask = new('icons/mob/ancient_machine.dmi', "scanline2") //Scaline for tall icons.
else else
alpha_mask = new('icons/effects/effects.dmi', "scanline") //Scanline effect. alpha_mask = new('icons/effects/effects.dmi', "scanline") //Scanline effect.