diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index b0df6fbc666..7e14553ce1c 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -8,6 +8,7 @@ speak_emote = list("barks", "woofs") emote_hear = list("barks!", "woofs!", "yaps.","pants.") emote_see = list("shakes its head.", "chases its tail.","shivers.") + faction = list("dog") see_in_dark = 5 speak_chance = 1 turns_per_move = 10 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm index 6ea3114ffed..1c02ede80f9 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm @@ -853,6 +853,7 @@ speak_emote = list("warbles", "quavers") emote_hear = list("trills.") emote_see = list("sniffs.", "burps.") + faction = list("mining", "ashwalker") density = 0 speak_chance = 1 turns_per_move = 8 diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm index edd5acc4846..1b28b8dd500 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm @@ -28,12 +28,7 @@ continue if(isliving(A)) var/mob/living/M = A - var/faction_check = 0 - for(var/F in faction) - if(F in M.faction) - faction_check = 1 - break - if(faction_check && attack_same || !faction_check) + if(faction_check(M) && attack_same || !faction_check(M)) enemies |= M else if(istype(A, /obj/mecha)) var/obj/mecha/M = A @@ -42,12 +37,7 @@ enemies |= M.occupant for(var/mob/living/simple_animal/hostile/retaliate/H in around) - var/retaliate_faction_check = 0 - for(var/F in faction) - if(F in H.faction) - retaliate_faction_check = 1 - break - if(retaliate_faction_check && !attack_same && !H.attack_same) + if(faction_check(H) && !attack_same && !H.attack_same) H.enemies |= enemies return 0 diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index fe8d46b2137..40457e167aa 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -471,16 +471,17 @@ var/mob/living/simple_animal/partner var/children = 0 for(var/mob/M in view(7, src)) - if(M.stat != CONSCIOUS) //Check if it's concious FIRSTER. + if(M.stat != CONSCIOUS) //Check if it's conscious FIRST. continue - else if(istype(M, childtype)) //Check for children FIRST. + else if(istype(M, childtype)) //Check for children SECOND. children++ else if(istype(M, animal_species)) if(M.ckey) continue else if(!istype(M, childtype) && M.gender == MALE) //Better safe than sorry ;_; partner = M - else if(istype(M, /mob/)) + + else if(istype(M, /mob/living) && !faction_check(M)) //shyness check. we're not shy in front of things that share a faction with us. alone = 0 continue if(alone && partner && children < 3) diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm index 935d38df73c..61a17593f7b 100644 --- a/code/modules/ruins/lavaland_ruin_code.dm +++ b/code/modules/ruins/lavaland_ruin_code.dm @@ -187,6 +187,7 @@ icon = 'icons/mob/nest.dmi' icon_state = "ash_walker_nest" icon_living = "ash_walker_nest" + faction = list("ashwalker") health = 200 maxHealth = 200 loot = list(/obj/effect/gibspawner, /obj/item/device/assembly/signaler/anomaly)