diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index 09d76bc6df..ba814559a2 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -4,7 +4,9 @@ speak = list("Woof!", "Bark!") speak_emote = list("barks", "woofs") + speak_emote_sound = list("barks" = 'sound/voice/dog/bark1.ogg', "woofs" = 'sound/voice/dog/bark2.ogg') emote_hear = list("barks", "woofs","pants") + emote_hear = list("barks" = 'sound/voice/dog/bark1.ogg', "woofs" = 'sound/voice/dog/bark2.ogg') emote_see = list("shakes its head", "shivers") speak_chance = 1 turns_per_move = 10 diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 57e4f1edc8..a940dc43bc 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -7,7 +7,9 @@ icon_dead = "goat_dead" speak = list("EHEHEHEHEH","eh?") speak_emote = list("brays") + speak_emote_sound = list( "brays" = 'sound/voice/goat/bray1.ogg' ) emote_hear = list("brays") + emote_hear_sound = list( "brays" = 'sound/voice/goat/bray1.ogg' ) emote_see = list("shakes its head", "stamps a foot", "glares around") speak_chance = 1 turns_per_move = 5 @@ -96,7 +98,9 @@ icon_gib = "cow_gib" speak = list("moo?","moo","MOOOOOO") speak_emote = list("moos","moos hauntingly") - emote_hear = list("brays") + speak_emote_sound = list( "moos" = 'sound/voice/cow/moo2.ogg', "moos hauntingly" = 'sound/voice/cow/moo1.ogg' ) + emote_hear = list("moos") + emote_hear_sound = list( "moos" = 'sound/voice/cow/moo2.ogg' ) emote_see = list("shakes its head") speak_chance = 1 turns_per_move = 5 @@ -158,7 +162,9 @@ icon_gib = "chick_gib" speak = list("Cherp.","Cherp?","Chirrup.","Cheep!") speak_emote = list("cheeps") + speak_emote_sound = list( "cheeps" = 'sound/voice/chicken/cheep1.ogg' ) emote_hear = list("cheeps") + emote_hear_sound = list( "cheeps" = 'sound/voice/chicken/cheep1.ogg' ) emote_see = list("pecks at the ground","flaps its tiny wings") speak_chance = 2 turns_per_move = 2 @@ -199,7 +205,9 @@ var/global/chicken_count = 0 icon_dead = "chicken_dead" speak = list("Cluck!","BWAAAAARK BWAK BWAK BWAK!","Bwaak bwak.") speak_emote = list("clucks","croons") + speak_emote_sound = list( "clucks" = 'sound/voice/chicken/cluck1.ogg', "croons" = 'sound/voice/chicken/croon1.ogg' ) emote_hear = list("clucks") + emote_hear_sound = list( "clucks" = 'sound/voice/chicken/cluck1.ogg' ) emote_see = list("pecks at the ground","flaps its wings viciously") speak_chance = 2 turns_per_move = 3 diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index d850546d58..bc006a6d34 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -9,8 +9,10 @@ var/icon_gib = null //We only try to show a gibbing animation if this exists. var/list/speak = list() + var/list/speak_emote_sound = list() var/speak_chance = 0 var/list/emote_hear = list() //Hearable emotes + var/list/emote_hear_sound = list() // Accompanying sounds for hearable emotes var/list/emote_see = list() //Unlike speak_emote, the list of things in this variable only show by themselves with no spoken text. IE: Ian barks, Ian yaps var/turns_per_move = 1 @@ -120,7 +122,12 @@ if(emote_see && randomValue <= emote_see.len) visible_emote("[pick(emote_see)].") else - audible_emote("[pick(emote_hear)].") + var/emoted = pick(emote_hear) + + audible_emote("[emoted].") + if( emote_hear_sound["[emoted]"] ) + playsound(src, emote_hear_sound["[emoted]"], 100) + else say(pick(speak)) else @@ -374,8 +381,12 @@ if(speak_emote.len) verb = pick(speak_emote) + message = capitalize(trim_left(message)) + if( speak_emote_sound["[verb]"] ) + playsound(src, speak_emote_sound["[verb]"], 100) + ..(message, null, verb, nolog = !ckey) //if the animal has a ckey then it will log the message /mob/living/simple_animal/put_in_hands(var/obj/item/W) // No hands. diff --git a/sound/voice/chicken/cheep1.ogg b/sound/voice/chicken/cheep1.ogg new file mode 100644 index 0000000000..b4d5de4bca Binary files /dev/null and b/sound/voice/chicken/cheep1.ogg differ diff --git a/sound/voice/chicken/cluck1.ogg b/sound/voice/chicken/cluck1.ogg new file mode 100644 index 0000000000..ab8a140bf6 Binary files /dev/null and b/sound/voice/chicken/cluck1.ogg differ diff --git a/sound/voice/chicken/croon1.ogg b/sound/voice/chicken/croon1.ogg new file mode 100644 index 0000000000..07f59c1e83 Binary files /dev/null and b/sound/voice/chicken/croon1.ogg differ diff --git a/sound/voice/cow/moo2.ogg b/sound/voice/cow/moo2.ogg new file mode 100644 index 0000000000..6051c4f9dc Binary files /dev/null and b/sound/voice/cow/moo2.ogg differ diff --git a/sound/voice/goat/bray1.ogg b/sound/voice/goat/bray1.ogg new file mode 100644 index 0000000000..87a78cb6ec Binary files /dev/null and b/sound/voice/goat/bray1.ogg differ