diff --git a/code/modules/integrated_electronics/subtypes/input_output.dm b/code/modules/integrated_electronics/subtypes/input_output.dm index 9b666267a44..05bb7113794 100644 --- a/code/modules/integrated_electronics/subtypes/input_output.dm +++ b/code/modules/integrated_electronics/subtypes/input_output.dm @@ -622,6 +622,31 @@ spawn_flags = IC_SPAWN_RESEARCH origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_ILLEGAL = 1) +/obj/item/integrated_circuit/output/sound/medbot + name = "medbot sound circuit" + desc = "A miniature speaker is attached to this component, used to annoy patients while they get pricked by a medbot." + sounds = list( + "surgeon" = 'sound/voice/medbot/msurgeon.ogg', + "radar" = 'sound/voice/medbot/mradar.ogg', + "feel better" = 'sound/voice/medbot/mfeelbetter.ogg', + "patched up" = 'sound/voice/medbot/mpatchedup.ogg', + "injured" = 'sound/voice/medbot/minjured.ogg', + "insult" = 'sound/voice/medbot/minsult.ogg', + "coming" = 'sound/voice/medbot/mcoming.ogg', + "help" = 'sound/voice/medbot/mhelp.ogg', + "live" = 'sound/voice/medbot/mlive.ogg', + "lost" = 'sound/voice/medbot/mlost.ogg', + "flies" = 'sound/voice/medbot/mflies.ogg', + "catch" = 'sound/voice/medbot/mcatch.ogg', + "delicious" = 'sound/voice/medbot/mdelicious.ogg', + "apple" = 'sound/voice/medbot/mapple.ogg', + "no" = 'sound/voice/medbot/mno.ogg', + ) + spawn_flags = IC_SPAWN_RESEARCH + origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_BIO = 1) + +//'sound/voice/medbot/mfeelbetter.ogg' + /obj/item/integrated_circuit/output/video_camera name = "video camera circuit" desc = "This small camera allows a remote viewer to see what it sees." diff --git a/code/modules/mob/living/bot/medbot.dm b/code/modules/mob/living/bot/medbot.dm index baf6af9eba9..635eabf2f20 100644 --- a/code/modules/mob/living/bot/medbot.dm +++ b/code/modules/mob/living/bot/medbot.dm @@ -1,5 +1,5 @@ /mob/living/bot/medbot - name = "Medbot" + name = "Medibot" desc = "A little medical robot. He looks somewhat underwhelmed." icon_state = "medibot0" req_one_access = list(access_robotics, access_medical) @@ -24,10 +24,27 @@ var/treatment_emag = "toxin" var/declare_treatment = 0 //When attempting to treat a patient, should it notify everyone wearing medhuds? +/mob/living/bot/medbot/mysterious + name = "\improper Mysterious Medibot" + desc = "International Medibot of mystery." + skin = "bezerk" + treatment_brute = "bicaridine" + treatment_fire = "dermaline" + treatment_oxy = "dexalin" + treatment_tox = "anti_toxin" + /mob/living/bot/medbot/handleIdle() if(vocal && prob(1)) - var/message = pick("Radar, put a mask on!", "There's always a catch, and it's the best there is.", "I knew it, I should've been a plastic surgeon.", "What kind of medbay is this? Everyone's dropping like dead flies.", "Delicious!") + var/message_options = list( + "Radar, put a mask on!" = 'sound/voice/medbot/mradar.ogg', + "There's always a catch, and it's the best there is." = 'sound/voice/medbot/mcatch.ogg', + "I knew it, I should've been a plastic surgeon." = 'sound/voice/medbot/msurgeon.ogg', + "What kind of medbay is this? Everyone's dropping like flies." = 'sound/voice/medbot/mflies.ogg', + "Delicious!" = 'sound/voice/medbot/mdelicious.ogg' + ) + var/message = pick(message_options) say(message) + playsound(loc, message_options[message], 50, 0) /mob/living/bot/medbot/handleAdjacentTarget() UnarmedAttack(target) @@ -36,9 +53,15 @@ for(var/mob/living/carbon/human/H in view(7, src)) // Time to find a patient! if(confirmTarget(H)) target = H - if(last_newpatient_speak + 300 < world.time) - var/message = pick("Hey, [H.name]! Hold on, I'm coming.", "Wait [H.name]! I want to help!", "[H.name], you appear to be injured!") + if(last_newpatient_speak + 30 SECONDS < world.time) + var/message_options = list( + "Hey, [H.name]! Hold on, I'm coming." = 'sound/voice/medbot/mcoming.ogg', + "Wait [H.name]! I want to help!" = 'sound/voice/medbot/mhelp.ogg', + "[H.name], you appear to be injured!" = 'sound/voice/medbot/minjured.ogg' + ) + var/message = pick(message_options) say(message) + playsound(loc, message_options[message], 50, 0) custom_emote(1, "points at [H.name].") last_newpatient_speak = world.time break @@ -56,17 +79,8 @@ if(busy) return - if(H.stat == DEAD) - var/death_message = pick("No! NO!", "Live, damnit! LIVE!", "I... I've never lost a patient before. Not today, I mean.") - say(death_message) - target = null - return - var/t = confirmTarget(H) if(!t) - var/message = pick("All patched up!", "An apple a day keeps me away.", "Feel better soon!") - say(message) - target = null return visible_message("[src] is trying to inject [H]!") @@ -81,6 +95,32 @@ else H.reagents.add_reagent(t, injection_amount) visible_message("[src] injects [H] with the syringe!") + + if(H.stat == DEAD) // This is down here because this proc won't be called again due to losing a target because of parent AI loop. + var/death_messages = list( + "No! Stay with me!" = 'sound/voice/medbot/mno.ogg', + "Live, damnit! LIVE!" = 'sound/voice/medbot/mlive.ogg', + "I... I've never lost a patient before. Not today, I mean." = 'sound/voice/medbot/mlost.ogg' + ) + var/message = pick(death_messages) + say(message) + playsound(loc, death_messages[message], 50, 0) + target = null + + // This is down here for the same reason as above. + else + t = confirmTarget(H) + if(!t) + var/possible_messages = list( + "All patched up!" = 'sound/voice/medbot/mpatchedup.ogg', + "An apple a day keeps me away." = 'sound/voice/medbot/mapple.ogg', + "Feel better soon!" = 'sound/voice/medbot/mfeelbetter.ogg' + ) + var/message = pick(possible_messages) + say(message) + playsound(loc, possible_messages[message], 50, 0) + target = null + busy = 0 update_icons() @@ -223,6 +263,9 @@ reagent_glass.loc = Tsec reagent_glass = null + if(emagged && prob(25)) + playsound(loc, 'sound/voice/medbot/minsult.ogg', 50, 0) + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() diff --git a/sound/voice/medbot/mapple.ogg b/sound/voice/medbot/mapple.ogg new file mode 100644 index 00000000000..21e26742ca1 Binary files /dev/null and b/sound/voice/medbot/mapple.ogg differ diff --git a/sound/voice/medbot/mcatch.ogg b/sound/voice/medbot/mcatch.ogg new file mode 100644 index 00000000000..07b8aaab75c Binary files /dev/null and b/sound/voice/medbot/mcatch.ogg differ diff --git a/sound/voice/medbot/mcoming.ogg b/sound/voice/medbot/mcoming.ogg new file mode 100644 index 00000000000..d3eb9e467f4 Binary files /dev/null and b/sound/voice/medbot/mcoming.ogg differ diff --git a/sound/voice/medbot/mdelicious.ogg b/sound/voice/medbot/mdelicious.ogg new file mode 100644 index 00000000000..5158538580e Binary files /dev/null and b/sound/voice/medbot/mdelicious.ogg differ diff --git a/sound/voice/medbot/mfeelbetter.ogg b/sound/voice/medbot/mfeelbetter.ogg new file mode 100644 index 00000000000..fdbe57fd2e9 Binary files /dev/null and b/sound/voice/medbot/mfeelbetter.ogg differ diff --git a/sound/voice/medbot/mflies.ogg b/sound/voice/medbot/mflies.ogg new file mode 100644 index 00000000000..831281ebbee Binary files /dev/null and b/sound/voice/medbot/mflies.ogg differ diff --git a/sound/voice/medbot/mhelp.ogg b/sound/voice/medbot/mhelp.ogg new file mode 100644 index 00000000000..516d5db068d Binary files /dev/null and b/sound/voice/medbot/mhelp.ogg differ diff --git a/sound/voice/medbot/minjured.ogg b/sound/voice/medbot/minjured.ogg new file mode 100644 index 00000000000..0e968b3980c Binary files /dev/null and b/sound/voice/medbot/minjured.ogg differ diff --git a/sound/voice/medbot/minsult.ogg b/sound/voice/medbot/minsult.ogg new file mode 100644 index 00000000000..017292977a1 Binary files /dev/null and b/sound/voice/medbot/minsult.ogg differ diff --git a/sound/voice/medbot/mlive.ogg b/sound/voice/medbot/mlive.ogg new file mode 100644 index 00000000000..ceb0dec9a34 Binary files /dev/null and b/sound/voice/medbot/mlive.ogg differ diff --git a/sound/voice/medbot/mlost.ogg b/sound/voice/medbot/mlost.ogg new file mode 100644 index 00000000000..7b332ac346a Binary files /dev/null and b/sound/voice/medbot/mlost.ogg differ diff --git a/sound/voice/medbot/mno.ogg b/sound/voice/medbot/mno.ogg new file mode 100644 index 00000000000..030e43a0109 Binary files /dev/null and b/sound/voice/medbot/mno.ogg differ diff --git a/sound/voice/medbot/mpatchedup.ogg b/sound/voice/medbot/mpatchedup.ogg new file mode 100644 index 00000000000..1314f6ee471 Binary files /dev/null and b/sound/voice/medbot/mpatchedup.ogg differ diff --git a/sound/voice/medbot/mradar.ogg b/sound/voice/medbot/mradar.ogg new file mode 100644 index 00000000000..ad347a6d891 Binary files /dev/null and b/sound/voice/medbot/mradar.ogg differ diff --git a/sound/voice/medbot/msurgeon.ogg b/sound/voice/medbot/msurgeon.ogg new file mode 100644 index 00000000000..a300ee57ef6 Binary files /dev/null and b/sound/voice/medbot/msurgeon.ogg differ