diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index 62e5211dd77..2e7eb872262 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -3,10 +3,11 @@ real_name = "Construct" desc = "" speak_emote = list("hisses") - emote_hear = list("wails","screeches") + emote_hear = list("wails.","screeches.") response_help = "thinks better of touching" response_disarm = "flails at" response_harm = "punches" + speak_chance = 1 icon = 'icons/mob/mob.dmi' speed = 0 a_intent = "harm" diff --git a/code/modules/mob/living/simple_animal/friendly/butterfly.dm b/code/modules/mob/living/simple_animal/friendly/butterfly.dm index 91595c5c13e..b1af5b5230e 100644 --- a/code/modules/mob/living/simple_animal/friendly/butterfly.dm +++ b/code/modules/mob/living/simple_animal/friendly/butterfly.dm @@ -5,11 +5,9 @@ icon_living = "butterfly" icon_dead = "butterfly_dead" turns_per_move = 1 - emote_see = list("flutters") response_help = "shoos" response_disarm = "brushes aside" response_harm = "squashes" - speak_chance = 0 maxHealth = 2 health = 2 harm_intent_damage = 1 diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm index 96d5f3a193b..ef3ce5448ad 100644 --- a/code/modules/mob/living/simple_animal/friendly/crab.dm +++ b/code/modules/mob/living/simple_animal/friendly/crab.dm @@ -6,8 +6,8 @@ icon_living = "crab" icon_dead = "crab_dead" speak_emote = list("clicks") - emote_hear = list("clicks") - emote_see = list("clacks") + emote_hear = list("clicks.") + emote_see = list("clacks.") speak_chance = 1 turns_per_move = 5 butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab = 1) 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 9aa8c5a0177..1cc8c6acc9b 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -7,8 +7,8 @@ icon_dead = "goat_dead" speak = list("EHEHEHEHEH","eh?") speak_emote = list("brays") - emote_hear = list("brays") - emote_see = list("shakes its head", "stamps a foot", "glares around") + emote_hear = list("brays.") + emote_see = list("shakes its head.", "stamps a foot.", "glares around.") speak_chance = 1 turns_per_move = 5 see_in_dark = 6 @@ -92,8 +92,8 @@ icon_gib = "cow_gib" speak = list("moo?","moo","MOOOOOO") speak_emote = list("moos","moos hauntingly") - emote_hear = list("brays") - emote_see = list("shakes its head") + emote_hear = list("brays.") + emote_see = list("shakes its head.") speak_chance = 1 turns_per_move = 5 see_in_dark = 6 @@ -154,8 +154,8 @@ icon_gib = "chick_gib" speak = list("Cherp.","Cherp?","Chirrup.","Cheep!") speak_emote = list("cheeps") - emote_hear = list("cheeps") - emote_see = list("pecks at the ground","flaps its tiny wings") + emote_hear = list("cheeps.") + emote_see = list("pecks at the ground.","flaps its tiny wings.") density = 0 speak_chance = 2 turns_per_move = 2 @@ -196,8 +196,8 @@ var/global/chicken_count = 0 icon_dead = "chicken_dead" speak = list("Cluck!","BWAAAAARK BWAK BWAK BWAK!","Bwaak bwak.") speak_emote = list("clucks","croons") - emote_hear = list("clucks") - emote_see = list("pecks at the ground","flaps its wings viciously") + emote_hear = list("clucks.") + emote_see = list("pecks at the ground.","flaps its wings viciously.") density = 0 speak_chance = 2 turns_per_move = 3 diff --git a/code/modules/mob/living/simple_animal/friendly/fox.dm b/code/modules/mob/living/simple_animal/friendly/fox.dm index 919fda68beb..fefd67e907a 100644 --- a/code/modules/mob/living/simple_animal/friendly/fox.dm +++ b/code/modules/mob/living/simple_animal/friendly/fox.dm @@ -8,8 +8,8 @@ icon_dead = "fox_dead" speak = list("Ack-Ack","Ack-Ack-Ack-Ackawoooo","Geckers","Awoo","Tchoff") speak_emote = list("geckers", "barks") - emote_hear = list("howls","barks") - emote_see = list("shakes its head", "shivers") + emote_hear = list("howls.","barks.") + emote_see = list("shakes its head.", "shivers.") speak_chance = 1 turns_per_move = 5 see_in_dark = 6 diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 2fd0214615e..9b0bc3afd0c 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -6,8 +6,8 @@ icon_dead = "mouse_gray_dead" speak = list("Squeek!","SQUEEK!","Squeek?") speak_emote = list("squeeks") - emote_hear = list("squeeks") - emote_see = list("runs in a circle", "shakes") + emote_hear = list("squeeks.") + emote_see = list("runs in a circle.", "shakes.") speak_chance = 1 turns_per_move = 5 see_in_dark = 6 diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index eb1c60d6566..9526c66c68b 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -8,9 +8,10 @@ icon_gib = "bear_gib" speak = list("RAWR!","Rawr!","GRR!","Growl!") speak_emote = list("growls", "roars") - emote_hear = list("rawrs","grumbles","grawls") - emote_see = list("stares ferociously", "stomps") + emote_hear = list("rawrs.","grumbles.","grawls.") + emote_taunt = list("stares ferociously", "stomps") speak_chance = 1 + taunt_chance = 25 turns_per_move = 5 see_in_dark = 6 butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear = 5) @@ -49,14 +50,6 @@ /mob/living/simple_animal/hostile/bear/Process_Spacemove(var/movement_dir = 0) return 1 //No drifting in space for space bears! -/mob/living/simple_animal/hostile/bear/FindTarget() - . = ..() - if(.) - emote("me", 1, "stares alertly at [.]") - -/mob/living/simple_animal/hostile/bear/LoseTarget() - ..(5) - diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index 2a90d81a77e..b98c42e2d7b 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -11,6 +11,8 @@ response_help = "pets" response_disarm = "gently pushes aside" response_harm = "hits" + emote_taunt = list("gnashes") + taunt_chance = 30 speed = 0 maxHealth = 25 health = 25 @@ -33,11 +35,6 @@ /mob/living/simple_animal/hostile/carp/Process_Spacemove(var/movement_dir = 0) return 1 //No drifting in space for space carp! //original comments do not steal -/mob/living/simple_animal/hostile/carp/FindTarget() - . = ..() - if(.) - emote("me", 1, "gnashes at [.]!") - /mob/living/simple_animal/hostile/carp/AttackingTarget() ..() if(ishuman(target)) diff --git a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm index 190bfdcb873..f7c28d18630 100644 --- a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm +++ b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm @@ -9,6 +9,8 @@ response_help = "pets" response_disarm = "gently pushes aside" response_harm = "hits" + emote_taunt = list("glares") + taunt_chance = 25 maxHealth = 45 health = 45 speak_emote = list("telepathically cries") @@ -23,11 +25,6 @@ faction = list("spooky") -/mob/living/simple_animal/hostile/carp/eyeball/FindTarget() - . = ..() - if(.) - emote("me", 1, "glares at [.]") - /mob/living/simple_animal/hostile/carp/eyeball/death() ..(1) ghostize() diff --git a/code/modules/mob/living/simple_animal/hostile/faithless.dm b/code/modules/mob/living/simple_animal/hostile/faithless.dm index e3286a3dc1d..ec9e38e6190 100644 --- a/code/modules/mob/living/simple_animal/hostile/faithless.dm +++ b/code/modules/mob/living/simple_animal/hostile/faithless.dm @@ -9,6 +9,8 @@ response_help = "passes through" response_disarm = "shoves" response_harm = "hits" + emote_taunt = list("wails") + taunt_chance = 25 speed = 0 maxHealth = 80 health = 80 @@ -28,11 +30,6 @@ /mob/living/simple_animal/hostile/faithless/Process_Spacemove(var/movement_dir = 0) return 1 -/mob/living/simple_animal/hostile/faithless/FindTarget() - . = ..() - if(.) - emote("me", 1, "wails at [.]!") - /mob/living/simple_animal/hostile/faithless/AttackingTarget() ..() if(iscarbon(target)) diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index c0db9535005..c2f3dcf7315 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -11,6 +11,8 @@ var/casingtype var/move_to_delay = 3 //delay for the automated movement. var/list/friends = list() + var/list/emote_taunt = list() + var/taunt_chance = 0 var/ranged_message = "fires" //Fluff text for ranged mobs var/ranged_cooldown = 0 //What the starting cooldown is on ranged attacks @@ -180,7 +182,7 @@ else if(FindHidden()) return - LostTarget() + LoseTarget() /mob/living/simple_animal/hostile/proc/Goto(var/target, var/delay, var/minimum_distance) walk_to(src, target, minimum_distance, delay) @@ -205,7 +207,7 @@ LoseTarget() return 0 if(!(target in ListTargets())) - LostTarget() + LoseTarget() return 0 if(isturf(loc) && target.Adjacent(src)) AttackingTarget() @@ -216,10 +218,15 @@ /mob/living/simple_animal/hostile/proc/Aggro() vision_range = aggro_vision_range + if(target && emote_taunt.len && prob(taunt_chance)) + emote("me", 1, "[pick(emote_taunt)] at [target].") + taunt_chance = max(taunt_chance-7,2) + /mob/living/simple_animal/hostile/proc/LoseAggro() stop_automated_movement = 0 vision_range = idle_vision_range + taunt_chance = initial(taunt_chance) /mob/living/simple_animal/hostile/proc/LoseTarget() stance = HOSTILE_STANCE_IDLE @@ -227,11 +234,6 @@ walk(src, 0) LoseAggro() -/mob/living/simple_animal/hostile/proc/LostTarget() - stance = HOSTILE_STANCE_IDLE - walk(src, 0) - LoseAggro() - //////////////END HOSTILE MOB TARGETTING AND AGGRESSION//////////// /mob/living/simple_animal/hostile/death(gibbed) @@ -349,4 +351,4 @@ /mob/living/simple_animal/hostile/proc/AIShouldSleep() . = !(AIShouldWake()) if(. && stance != HOSTILE_STANCE_IDLE) //This proc was called before LoseTarget(). - LostTarget() + LoseTarget() diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index 8fdb544a0c4..aacc4469640 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -21,8 +21,9 @@ melee_damage_upper = 12 attacktext = "attacks" attack_sound = 'sound/weapons/punch1.ogg' - var/Attackemote = "growls at" + emote_taunt = list("growls") speak_emote = list("creaks") + taunt_chance = 30 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 @@ -30,11 +31,6 @@ faction = list("mimic") move_to_delay = 9 -/mob/living/simple_animal/hostile/mimic/FindTarget() - . = ..() - if(.) - emote("me", 1, "[Attackemote] [.].") - /mob/living/simple_animal/hostile/mimic/death() ..(1) visible_message("[src] stops moving!") @@ -99,10 +95,6 @@ ..() icon_state = initial(icon_state) -/mob/living/simple_animal/hostile/mimic/crate/LostTarget() - ..() - icon_state = initial(icon_state) - /mob/living/simple_animal/hostile/mimic/crate/death() var/obj/structure/closet/crate/C = new(get_turf(src)) @@ -247,7 +239,7 @@ var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/ca projectiletype = /obj/item/projectile/magic/ projectilesound = 'sound/items/bikehorn.ogg' casingtype = null - Attackemote = "aims menacingly at" + emote_see = list("aims menacingly") var/obj/item/weapon/gun/TrueGun = null var/obj/item/weapon/gun/magic/Zapstick = list() var/obj/item/weapon/gun/projectile/Pewgun = list() diff --git a/code/modules/mob/living/simple_animal/hostile/tree.dm b/code/modules/mob/living/simple_animal/hostile/tree.dm index 16d2df31c64..0acc9aad7ef 100644 --- a/code/modules/mob/living/simple_animal/hostile/tree.dm +++ b/code/modules/mob/living/simple_animal/hostile/tree.dm @@ -24,6 +24,8 @@ attacktext = "bites" attack_sound = 'sound/weapons/bite.ogg' speak_emote = list("pines") + emote_taunt = list("growls") + taunt_chance = 20 //Space carp aren't affected by atmos. 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) @@ -32,11 +34,6 @@ faction = list("hostile") var/drop_type = /obj/item/stack/sheet/mineral/wood -/mob/living/simple_animal/hostile/tree/FindTarget() - . = ..() - if(.) - emote("me", 1, "growls at [.].") - /mob/living/simple_animal/hostile/tree/AttackingTarget() ..() if(iscarbon(target)) diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm index c88c07f4570..2589c79d5c9 100644 --- a/code/modules/mob/living/simple_animal/shade.dm +++ b/code/modules/mob/living/simple_animal/shade.dm @@ -8,10 +8,11 @@ maxHealth = 50 health = 50 speak_emote = list("hisses") - emote_hear = list("wails","screeches") + emote_hear = list("wails.","screeches.") response_help = "puts their hand through" response_disarm = "flails at" response_harm = "punches" + speak_chance = 1 melee_damage_lower = 5 melee_damage_upper = 15 attacktext = "drains the life from"