diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm index 5d0e61a3b11..24abe73e2b8 100644 --- a/code/game/gamemodes/blob/blobs/blob_mobs.dm +++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm @@ -8,6 +8,7 @@ icon = 'icons/mob/blob.dmi' pass_flags = PASSBLOB faction = list("blob") + bubble_icon = "blob" atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 maxbodytemp = 360 diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index 6baf88b688a..d317e8f25c9 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -34,6 +34,7 @@ icon = 'icons/mob/swarmer.dmi' desc = "A robot of unknown design, they seek only to consume materials and replicate themselves indefinitely." speak_emote = list("tones") + bubble_icon = "swarmer" health = 40 maxHealth = 40 status_flags = CANPUSH @@ -59,7 +60,6 @@ speed = 0 faction = list("swarmer") AIStatus = AI_OFF - projectiletype = /obj/item/projectile/beam/disabler pass_flags = PASSTABLE ventcrawler = 2 ranged = 1 diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index ef0df6e2e06..c1ab8a6a7e6 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -345,7 +345,7 @@ if(M.client) speech_bubble_recipients.Add(M.client) spawn(0) - flick_overlay(image('icons/mob/talk.dmi', src, "hR[say_test(raw_message)]",MOB_LAYER+1), speech_bubble_recipients, 30) + flick_overlay(image('icons/mob/talk.dmi', src, "machine[say_test(raw_message)]",MOB_LAYER+1), speech_bubble_recipients, 30) return //////////////////////////// diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 4e444378c6f..1d78e69955a 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -12,6 +12,7 @@ ventcrawler = 2 languages = ALIEN verb_say = "hisses" + bubble_icon = "alien" type_of_meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno var/nightvision = 1 diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 25f8bf1f9bd..e8e94b0f044 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -5,8 +5,9 @@ ventcrawler = 0 //pull over that ass too fat unique_name = 0 pixel_x = -16 + bubble_icon = "alienroyal" mob_size = MOB_SIZE_LARGE - layer = 6 + layer = MOB_LAYER + 0.5 //above most mobs, but below speechbubbles pressure_resistance = 200 //Because big, stompy xenos should not be blown around like paper. butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno = 20, /obj/item/stack/sheet/animalhide/xeno = 3) diff --git a/code/modules/mob/living/carbon/alien/say.dm b/code/modules/mob/living/carbon/alien/say.dm index f66c3c8794d..dec01676dd5 100644 --- a/code/modules/mob/living/carbon/alien/say.dm +++ b/code/modules/mob/living/carbon/alien/say.dm @@ -1,5 +1,5 @@ /mob/living/carbon/alien/say(message) - . = ..(message, "A") + . = ..() if(.) playsound(loc, "hiss", 25, 1, 1) //erp just isn't the same without sound feedback diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 27bd2ccb751..4d70e5f0a6a 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -50,6 +50,8 @@ var/list/say_log = list() //a log of what we've said, plain text, no spans or junk, essentially just each individual "message" + var/bubble_icon = "default" //what icon the mob uses for speechbubbles + var/last_bumped = 0 var/unique_name = 0 //if a mob's name should be appended with an id when created e.g. Mob (666) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 471cec390b6..c273cf9371f 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -142,7 +142,7 @@ var/list/crit_allowed_modes = list(MODE_WHISPER,MODE_CHANGELING,MODE_ALIEN) show_message(message, 2, deaf_message, deaf_type) return message -/mob/living/send_speech(message, message_range = 7, obj/source = src, bubble_type, list/spans) +/mob/living/send_speech(message, message_range = 7, obj/source = src, bubble_type = bubble_icon, list/spans) var/list/listening = get_hearers_in_view(message_range, source) for(var/mob/M in player_list) if(M.stat == DEAD && M.client && ((M.client.prefs.chat_toggles & CHAT_GHOSTEARS) || (get_dist(M, src) <= 7)) && client) // client is so that ghosts don't have to listen to mice @@ -158,7 +158,7 @@ var/list/crit_allowed_modes = list(MODE_WHISPER,MODE_CHANGELING,MODE_ALIEN) if(M.client) speech_bubble_recipients.Add(M.client) spawn(0) - flick_overlay(image('icons/mob/talk.dmi', src, "h[bubble_type][say_test(message)]",MOB_LAYER+1), speech_bubble_recipients, 30) + flick_overlay(image('icons/mob/talk.dmi', src, "[bubble_type][say_test(message)]",MOB_LAYER+1), speech_bubble_recipients, 30) /mob/proc/binarycheck() return 0 diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm index 014dd45b84c..b43ef3552f4 100644 --- a/code/modules/mob/living/silicon/ai/say.dm +++ b/code/modules/mob/living/silicon/ai/say.dm @@ -49,7 +49,7 @@ var/obj/machinery/hologram/holopad/T = current if(istype(T) && T.masters[src])//If there is a hologram and its master is the user. - send_speech(message, 7, T, "R", get_spans()) + send_speech(message, 7, T, "robot", get_spans()) src << "Holopad transmitted, [real_name] \"[message]\""//The AI can "hear" its own message. else src << "No holopad connected." diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 51ffa99333c..bfcebcb0ce5 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -1,10 +1,11 @@ /mob/living/silicon/robot name = "Cyborg" real_name = "Cyborg" - icon = 'icons/mob/robots.dmi'// + icon = 'icons/mob/robots.dmi' icon_state = "robot" maxHealth = 100 health = 100 + bubble_icon = "robot" var/sight_mode = 0 var/custom_name = "" designation = "Default" //used for displaying the prefix & getting the current module of cyborg @@ -1109,6 +1110,7 @@ scrambledcodes = 1 modtype = "Synd" faction = list("syndicate") + bubble_icon = "syndibot" designation = "Syndicate Assault" req_access = list(access_syndicate) var/playstyle_string = "You are a Syndicate assault cyborg!
\ diff --git a/code/modules/mob/living/silicon/say.dm b/code/modules/mob/living/silicon/say.dm index 00cdfcc10e4..2d8e31e3c97 100644 --- a/code/modules/mob/living/silicon/say.dm +++ b/code/modules/mob/living/silicon/say.dm @@ -1,5 +1,3 @@ -/mob/living/silicon/say(message) - return ..(message, "R") /mob/living/silicon/get_spans() return ..() | SPAN_ROBOT diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index b4604dbc0b9..fb71eca98c0 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -7,6 +7,7 @@ verb_ask = "queries" verb_exclaim = "declares" verb_yell = "alarms" + bubble_icon = "machine" var/syndicate = 0 var/datum/ai_laws/laws = null//Now... THEY ALL CAN ALL HAVE LAWS var/list/alarms_to_show = list() diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 0948a51da80..8e18387a10a 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -15,6 +15,9 @@ sentience_type = SENTIENCE_ARTIFICIAL status_flags = NONE //no default canpush + speak_emote = list("states") + bubble_icon = "machine" + var/obj/machinery/bot_core/bot_core = null var/bot_core_type = /obj/machinery/bot_core var/list/users = list() //for dialog updates @@ -288,9 +291,6 @@ say(message) return -/mob/living/simple_animal/bot/say(message) - return ..(message, "R") - /mob/living/simple_animal/bot/get_spans() return ..() | SPAN_ROBOT diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm index 54a6b86c314..ebc51360660 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -35,6 +35,8 @@ status_flags = (CANPUSH | CANSTUN | CANWEAKEN) gender = NEUTER voice_name = "synthesized chirp" + speak_emote = list("chirps") + bubble_icon = "machine" languages = DRONE mob_size = MOB_SIZE_SMALL has_unlimited_silicon_privilege = 1 diff --git a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm index e17a9a0dcb0..597b528ea9f 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm @@ -17,6 +17,8 @@ health = 30 maxHealth = 120 //If you murder other drones and cannibalize them you can get much stronger faction = list("syndicate") + speak_emote = list("hisses") + bubble_icon = "syndibot" heavy_emp_damage = 10 laws = \ "1. Interfere.\n"+\ diff --git a/code/modules/mob/living/simple_animal/friendly/drone/say.dm b/code/modules/mob/living/simple_animal/friendly/drone/say.dm index b8152458ea6..5bd5dbb8eb7 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/say.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/say.dm @@ -5,11 +5,6 @@ //Drone speach //Drone hearing - -/mob/living/simple_animal/drone/say(message) - return ..(message, "R") - - /mob/living/simple_animal/drone/lang_treat(atom/movable/speaker, message_langs, raw_message) //This is so drones can understand humans without being able to speak human . = ..() var/hear_override_langs = HUMAN diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 83fe038b649..be62cfce185 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -3,6 +3,7 @@ real_name = "Guardian Spirit" desc = "A mysterious being that stands by its charge, ever vigilant." speak_emote = list("hisses") + bubble_icon = "guardian" response_help = "passes through" response_disarm = "flails at" response_harm = "punches" @@ -655,6 +656,7 @@ picked_name = pick("Aries", "Leo", "Sagittarius", "Taurus", "Virgo", "Capricorn", "Gemini", "Libra", "Aquarius", "Cancer", "Scorpio", "Pisces") if("tech") user << "[G.tech_fluff_string]." + G.bubble_icon = "holo" colour = pick("Rose", "Peony", "Lily", "Daisy", "Zinnia", "Ivy", "Iris", "Petunia", "Violet", "Lilac", "Orchid") //technically not colors, just flowers that can be specific colors picked_name = pick("Gallium", "Indium", "Thallium", "Bismuth", "Aluminium", "Mercury", "Iron", "Silver", "Zinc", "Titanium", "Chromium", "Nickel", "Platinum", "Tellurium", "Palladium", "Rhodium", "Cobalt", "Osmium", "Tungsten", "Iridium") diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm index c7f49bf27a2..8bd71dd3313 100644 --- a/code/modules/mob/living/simple_animal/hostile/alien.dm +++ b/code/modules/mob/living/simple_animal/hostile/alien.dm @@ -19,6 +19,7 @@ melee_damage_upper = 25 attacktext = "slashes" speak_emote = list("hisses") + bubble_icon = "alien" a_intent = "harm" attack_sound = 'sound/weapons/bladeslice.ogg' atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) @@ -125,6 +126,7 @@ icon_state = "alienq" icon_living = "alienq" icon_dead = "alienq_dead" + bubble_icon = "alienroyal" move_to_delay = 4 maxHealth = 400 health = 400 diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index 7e037b9b5f5..27719e385dc 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -126,6 +126,7 @@ mob_size = MOB_SIZE_TINY flying = 1 speak_emote = list("states") + bubble_icon = "syndibot" gold_core_spawnable = 1 del_on_death = 1 diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 12243cf713a..af6de1b80bc 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -17,6 +17,7 @@ response_harm = "stomps on" emote_see = list("jiggles", "bounces in place") speak_emote = list("chirps") + bubble_icon = "slime" layer = 5 diff --git a/icons/mob/swarmer.dmi b/icons/mob/swarmer.dmi index dffd6b2490c..f8ff43f3b9f 100644 Binary files a/icons/mob/swarmer.dmi and b/icons/mob/swarmer.dmi differ diff --git a/icons/mob/talk.dmi b/icons/mob/talk.dmi index 7f0efa39cbe..e5074d3d03f 100644 Binary files a/icons/mob/talk.dmi and b/icons/mob/talk.dmi differ