From 901325d8ae5d425405aae9c828ede6f45580dfc8 Mon Sep 17 00:00:00 2001 From: Nerd Lord Date: Thu, 14 Jan 2016 12:28:49 -0500 Subject: [PATCH] The speechbubble a mob uses is now a var instead of an argument on say() --- code/game/gamemodes/blob/blobs/blob_mobs.dm | 1 + code/game/mecha/mecha.dm | 2 +- code/modules/mob/living/carbon/alien/alien.dm | 1 + .../mob/living/carbon/alien/humanoid/queen.dm | 3 ++- code/modules/mob/living/carbon/alien/say.dm | 2 +- code/modules/mob/living/living_defines.dm | 2 ++ code/modules/mob/living/say.dm | 4 ++-- code/modules/mob/living/silicon/ai/say.dm | 2 +- .../modules/mob/living/silicon/robot/robot.dm | 4 +++- code/modules/mob/living/silicon/say.dm | 2 -- code/modules/mob/living/silicon/silicon.dm | 1 + .../mob/living/simple_animal/bot/bot.dm | 6 +++--- .../simple_animal/friendly/drone/_drone.dm | 2 ++ .../friendly/drone/extra_drone_types.dm | 2 ++ .../simple_animal/friendly/drone/say.dm | 5 ----- .../living/simple_animal/guardian/guardian.dm | 2 ++ .../living/simple_animal/hostile/syndicate.dm | 1 + icons/mob/talk.dmi | Bin 1007 -> 3296 bytes 18 files changed, 25 insertions(+), 17 deletions(-) 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/mecha/mecha.dm b/code/game/mecha/mecha.dm index a664b6227c5..3b329800ea8 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -344,7 +344,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 71d2a7213e3..1b9d4437220 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 55e68b5ffe1..5f126ff35b2 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" @@ -647,6 +648,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/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/icons/mob/talk.dmi b/icons/mob/talk.dmi index 7f0efa39cbeb3c010f2ebdb34035f6db2f004997..7246d1a64251fefe5796bad8de0ad6567977f6c7 100644 GIT binary patch literal 3296 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 literal 1007 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGo?NuQWB`&GO$wiq3C7Jno3=9=> zg2M`mO22;zF8KKMiI%sn*10q1gExd4Tr__0Nawtd=E(pc$L!IgGahGs&TBLlba@MT z2Z`p0PBG${vcn?SsJjcu;n`_%xl5=xSTUzX$oY_$OsB!Ii4w&<9IH8%4y{vAdZTnq zYfjb_(U`w6A~7|#I~khVQ$$Ut?rmUTU{>~YaSW-L^LFmqyvGhAZtq->YBmCclabNM8H{~j)r%FGqdM8=^=0%mv zt6kgXtXjo)ZPB{dq1Cg+L;k!?E3c@ljmb6N?e}NP-=AL#zx?Ic*#J~xc_DIeded%tA$A-r$e3bU=G+Qa>?&$82RZ<;0OW=@^J(JhPcYoji=D+@} zoMnmI_Uqey>^>|D_N%`8?@mO9z&QoBhntlb0A0y(@KTVJQQfXHcj{}SqHg{F-eH}e zf1)~yqC!{7+ql!Hp?_ zBx2Ssg;jQSS|5MU^Uio2C|4Xd&1uTBrxQM|US*{t)_w5*d_Q$@#^TNYepPI)Z(aF% z_wQ%Ma-9-g^S>RmwmW&|&7Q!OI@VLuo}c`XRTE#c`SYoi^FLJPI$D@oi3b+7e|l1V z{h5E`%$r}Q?vE2aRC|B6JmW?L-gmeA znOy^j|7YL5x$>fMs-MJ9U*4PFpyzn}d!3!*dG-S@wkt?*HcVt7iI}ldGF z=E>#N9s9EKf;GqVcYkXyTz)qFRZDZY