diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm index 669e3ddd77..03c23e11f6 100644 --- a/code/datums/chatmessage.dm +++ b/code/datums/chatmessage.dm @@ -176,6 +176,11 @@ scheduled_destruction = world.time + (lifespan - CHAT_MESSAGE_EOL_FADE) enter_subsystem() + var/mob/living/silicon/robot/R = target + if(iscyborg(R)) + if(R.module.dogborg == TRUE || R.dogborg == TRUE) //I hate whoever that thought that putting two types of dogborg that don't even sync up properly was good + message.pixel_x = 16 + /** * Applies final animations to overlay CHAT_MESSAGE_EOL_FADE deciseconds prior to message deletion * Arguments: diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 0c3ba87f5f..d0c53508fa 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -231,8 +231,11 @@ R.update_module_innate() RM.rebuild_modules() INVOKE_ASYNC(RM, .proc/do_transform_animation) - if(RM.dogborg) + if(RM.dogborg || R.dogborg) RM.dogborg_equip() + R.typing_indicator_state = /obj/effect/overlay/typing_indicator/machine/dogborg + else + R.typing_indicator_state = /obj/effect/overlay/typing_indicator/machine R.maxHealth = borghealth R.health = min(borghealth, R.health) qdel(src) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 8af55370bb..77d1be2bcd 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -48,6 +48,8 @@ var/hack_software = FALSE //Will be able to use hacking actions var/interaction_range = 7 //wireless control range + typing_indicator_state = /obj/effect/overlay/typing_indicator/machine + /mob/living/silicon/Initialize() . = ..() GLOB.silicon_mobs += src diff --git a/code/modules/mob/living/simple_animal/slime/life.dm b/code/modules/mob/living/simple_animal/slime/life.dm index 3513a916f9..600222df68 100644 --- a/code/modules/mob/living/simple_animal/slime/life.dm +++ b/code/modules/mob/living/simple_animal/slime/life.dm @@ -6,6 +6,7 @@ var/Discipline = 0 // if a slime has been hit with a freeze gun, or wrestled/attacked off a human, they become disciplined and don't attack anymore for a while var/SStun = 0 // stun variable + typing_indicator_state = /obj/effect/overlay/typing_indicator/slime /mob/living/simple_animal/slime/BiologicalLife(seconds, times_fired) if(!(. = ..())) diff --git a/code/modules/mob/typing_indicator.dm b/code/modules/mob/typing_indicator.dm index 159d370b92..570f01f5d9 100644 --- a/code/modules/mob/typing_indicator.dm +++ b/code/modules/mob/typing_indicator.dm @@ -55,3 +55,12 @@ GLOBAL_LIST_EMPTY(typing_indicator_overlays) icon_state = "normal_typing" appearance_flags = RESET_COLOR | TILE_BOUND | PIXEL_SCALE layer = ABOVE_FLY_LAYER + +/obj/effect/overlay/typing_indicator/machine + icon_state = "machine_typing" + +/obj/effect/overlay/typing_indicator/machine/dogborg + icon = 'icons/mob/talk_64x64.dmi' + +/obj/effect/overlay/typing_indicator/slime + icon_state = "slime_typing" diff --git a/icons/mob/talk_64x64.dmi b/icons/mob/talk_64x64.dmi new file mode 100644 index 0000000000..a9c759985d Binary files /dev/null and b/icons/mob/talk_64x64.dmi differ