diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm index b09309d81f..2f81f73fea 100644 --- a/code/modules/mob/living/silicon/silicon_defense.dm +++ b/code/modules/mob/living/silicon/silicon_defense.dm @@ -77,6 +77,11 @@ "[M] punches [src], but doesn't leave a dent.", null, COMBAT_MESSAGE_RANGE) return 0 +/mob/living/silicon/attack_drone(mob/living/simple_animal/drone/M) + if(M.a_intent == INTENT_HARM) + return + return ..() + /mob/living/silicon/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, tesla_shock = 0, illusion = 0, stun = TRUE) if(buckled_mobs) for(var/mob/living/M in buckled_mobs) diff --git a/code/modules/mob/living/simple_animal/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm index 007f28784b..5302c7f569 100644 --- a/code/modules/mob/living/simple_animal/animal_defense.dm +++ b/code/modules/mob/living/simple_animal/animal_defense.dm @@ -83,6 +83,11 @@ damage = rand(20, 35) return attack_threshold_check(damage) +/mob/living/simple_animal/attack_drone(mob/living/simple_animal/drone/M) + if(M.a_intent == INTENT_HARM) //No kicking dogs even as a rogue drone. Use a weapon. + return + return ..() + /mob/living/simple_animal/proc/attack_threshold_check(damage, damagetype = BRUTE, armorcheck = "melee") var/temp_damage = damage if(!damage_coeff[damagetype]) 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 08a83a3e08..5d9bc54be0 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -22,6 +22,7 @@ icon_state = "drone_maint_grey" icon_living = "drone_maint_grey" icon_dead = "drone_maint_dead" + possible_a_intents = list(INTENT_HELP, INTENT_HARM) health = 30 maxHealth = 30 unsuitable_atmos_damage = 0