diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm
index 6df0fea1bf..c340943a36 100644
--- a/code/_onclick/other_mobs.dm
+++ b/code/_onclick/other_mobs.dm
@@ -1,107 +1,3 @@
-<<<<<<< HEAD
-/*
- Humans:
- Adds an exception for gloves, to allow special glove types like the ninja ones.
-
- Otherwise pretty standard.
-*/
-/mob/living/carbon/human/UnarmedAttack(atom/A, proximity)
-
- if(!has_active_hand()) //can't attack without a hand.
- to_chat(src, "You look at your arm and sigh.")
- return
-
- // Special glove functions:
- // If the gloves do anything, have them return 1 to stop
- // normal attack_hand() here.
- var/obj/item/clothing/gloves/G = gloves // not typecast specifically enough in defines
- if(proximity && istype(G) && G.Touch(A,1))
- return
-
- var/override = 0
-
- for(var/datum/mutation/human/HM in dna.mutations)
- override += HM.on_attack_hand(src, A, proximity)
-
- if(override)
- return
-
- A.attack_hand(src)
-
-/atom/proc/attack_hand(mob/user)
- return
-
-/atom/proc/interact(mob/user)
- return
-
-/*
-/mob/living/carbon/human/RestrainedClickOn(var/atom/A) ---carbons will handle this
- return
-*/
-
-/mob/living/carbon/RestrainedClickOn(atom/A)
- return 0
-
-/mob/living/carbon/human/RangedAttack(atom/A)
- if(gloves)
- var/obj/item/clothing/gloves/G = gloves
- if(istype(G) && G.Touch(A,0)) // for magic gloves
- return
-
- for(var/datum/mutation/human/HM in dna.mutations)
- HM.on_ranged_attack(src, A)
-
- if(isturf(A) && get_dist(src,A) <= 1)
- src.Move_Pulled(A)
-
-/*
- Animals & All Unspecified
-*/
-/mob/living/UnarmedAttack(atom/A)
- A.attack_animal(src)
-
-/atom/proc/attack_animal(mob/user)
- return
-/mob/living/RestrainedClickOn(atom/A)
- return
-
-/*
- Monkeys
-*/
-/mob/living/carbon/monkey/UnarmedAttack(atom/A)
- A.attack_paw(src)
-/atom/proc/attack_paw(mob/user)
- return
-
-/*
- Monkey RestrainedClickOn() was apparently the
- one and only use of all of the restrained click code
- (except to stop you from doing things while handcuffed);
- moving it here instead of various hand_p's has simplified
- things considerably
-*/
-/mob/living/carbon/monkey/RestrainedClickOn(atom/A)
- if(..())
- return
- if(a_intent != INTENT_HARM || !ismob(A))
- return
- if(is_muzzled())
- return
- var/mob/living/carbon/ML = A
- if(istype(ML))
- var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg")
- var/obj/item/bodypart/affecting = null
- if(ishuman(ML))
- var/mob/living/carbon/human/H = ML
- affecting = H.get_bodypart(ran_zone(dam_zone))
- var/armor = ML.run_armor_check(affecting, "melee")
- if(prob(75))
- ML.apply_damage(rand(1,3), BRUTE, affecting, armor)
- ML.visible_message("[name] bites [ML]!", \
- "[name] bites [ML]!")
- if(armor >= 2)
- return
-=======
/*
Humans:
Adds an exception for gloves, to allow special glove types like the ninja ones.
@@ -204,108 +100,107 @@
"[name] bites [ML]!")
if(armor >= 2)
return
->>>>>>> 64851d8... Moves projectile processing to a subsystem (#30599)
for(var/thing in viruses)
var/datum/disease/D = thing
- ML.ForceContractDisease(D)
- else
- ML.visible_message("[src] has attempted to bite [ML]!")
-
-/*
- Aliens
- Defaults to same as monkey in most places
-*/
-/mob/living/carbon/alien/UnarmedAttack(atom/A)
- A.attack_alien(src)
-/atom/proc/attack_alien(mob/living/carbon/alien/user)
- attack_paw(user)
- return
-/mob/living/carbon/alien/RestrainedClickOn(atom/A)
- return
-
-// Babby aliens
-/mob/living/carbon/alien/larva/UnarmedAttack(atom/A)
- A.attack_larva(src)
-/atom/proc/attack_larva(mob/user)
- return
-
-
-/*
- Slimes
- Nothing happening here
-*/
-/mob/living/simple_animal/slime/UnarmedAttack(atom/A)
- A.attack_slime(src)
-/atom/proc/attack_slime(mob/user)
- return
-/mob/living/simple_animal/slime/RestrainedClickOn(atom/A)
- return
-
-
-/*
- Drones
-*/
-/mob/living/simple_animal/drone/UnarmedAttack(atom/A)
- A.attack_drone(src)
-
-/atom/proc/attack_drone(mob/living/simple_animal/drone/user)
- attack_hand(user) //defaults to attack_hand. Override it when you don't want drones to do same stuff as humans.
-
-/mob/living/simple_animal/slime/RestrainedClickOn(atom/A)
- return
-
-
-/*
- True Devil
-*/
-
-/mob/living/carbon/true_devil/UnarmedAttack(atom/A, proximity)
- A.attack_hand(src)
-
-/*
- Brain
-*/
-
-/mob/living/brain/UnarmedAttack(atom/A)//Stops runtimes due to attack_animal being the default
- return
-
-
-/*
- pAI
-*/
-
-/mob/living/silicon/pai/UnarmedAttack(atom/A)//Stops runtimes due to attack_animal being the default
- return
-
-
-/*
- Simple animals
-*/
-
-/mob/living/simple_animal/UnarmedAttack(atom/A, proximity)
- if(!dextrous)
- return ..()
- if(!ismob(A))
- A.attack_hand(src)
- update_inv_hands()
-
-
-/*
- Hostile animals
-*/
-
-/mob/living/simple_animal/hostile/UnarmedAttack(atom/A)
- target = A
- if(dextrous && !is_type_in_typecache(A, environment_target_typecache) && !ismob(A))
- ..()
- else
- AttackingTarget()
-
-
-
-/*
- New Players:
- Have no reason to click on anything at all.
-*/
-/mob/dead/new_player/ClickOn()
- return
+ ML.ForceContractDisease(D)
+ else
+ ML.visible_message("[src] has attempted to bite [ML]!")
+
+/*
+ Aliens
+ Defaults to same as monkey in most places
+*/
+/mob/living/carbon/alien/UnarmedAttack(atom/A)
+ A.attack_alien(src)
+/atom/proc/attack_alien(mob/living/carbon/alien/user)
+ attack_paw(user)
+ return
+/mob/living/carbon/alien/RestrainedClickOn(atom/A)
+ return
+
+// Babby aliens
+/mob/living/carbon/alien/larva/UnarmedAttack(atom/A)
+ A.attack_larva(src)
+/atom/proc/attack_larva(mob/user)
+ return
+
+
+/*
+ Slimes
+ Nothing happening here
+*/
+/mob/living/simple_animal/slime/UnarmedAttack(atom/A)
+ A.attack_slime(src)
+/atom/proc/attack_slime(mob/user)
+ return
+/mob/living/simple_animal/slime/RestrainedClickOn(atom/A)
+ return
+
+
+/*
+ Drones
+*/
+/mob/living/simple_animal/drone/UnarmedAttack(atom/A)
+ A.attack_drone(src)
+
+/atom/proc/attack_drone(mob/living/simple_animal/drone/user)
+ attack_hand(user) //defaults to attack_hand. Override it when you don't want drones to do same stuff as humans.
+
+/mob/living/simple_animal/slime/RestrainedClickOn(atom/A)
+ return
+
+
+/*
+ True Devil
+*/
+
+/mob/living/carbon/true_devil/UnarmedAttack(atom/A, proximity)
+ A.attack_hand(src)
+
+/*
+ Brain
+*/
+
+/mob/living/brain/UnarmedAttack(atom/A)//Stops runtimes due to attack_animal being the default
+ return
+
+
+/*
+ pAI
+*/
+
+/mob/living/silicon/pai/UnarmedAttack(atom/A)//Stops runtimes due to attack_animal being the default
+ return
+
+
+/*
+ Simple animals
+*/
+
+/mob/living/simple_animal/UnarmedAttack(atom/A, proximity)
+ if(!dextrous)
+ return ..()
+ if(!ismob(A))
+ A.attack_hand(src)
+ update_inv_hands()
+
+
+/*
+ Hostile animals
+*/
+
+/mob/living/simple_animal/hostile/UnarmedAttack(atom/A)
+ target = A
+ if(dextrous && !is_type_in_typecache(A, environment_target_typecache) && !ismob(A))
+ ..()
+ else
+ AttackingTarget()
+
+
+
+/*
+ New Players:
+ Have no reason to click on anything at all.
+*/
+/mob/dead/new_player/ClickOn()
+ return