anchor.diff:  				..()
   			else
   				visible_message("<span class='danger'>The <b>[src]</b> clears a jam!</span>")
  -			Pewgun.chambered.loc = src.loc //rip revolver immersions, blame shotgun snowflake procs
  +			Pewgun.chambered.loc = loc //rip revolver immersions, blame shotgun snowflake procs
   			Pewgun.chambered = null
   			if(Pewgun.magazine && Pewgun.magazine.stored_ammo.len)
   				Pewgun.chambered = Pewgun.magazine.get_round(0)
  
positive.code: 			melee_damage_lower = 2 + I.force
  			melee_damage_upper = 2 + I.force
  			move_to_delay = 2 * I.w_class + 1
  
  		maxHealth = health
  		if(creator)
  			src.creator = creator
  			faction += "\ref[creator]" // very unique
  		if(destroy_original)
  			qdel(O)
  		return 1
  	return
  
  /mob/living/simple_animal/hostile/mimic/copy/DestroySurroundings()
  	if(destroy_objects)
  
negative.code: 			return 0
  	return ..()
  
  
  
  /mob/living/simple_animal/hostile/mimic/copy/ranged
  	var/obj/item/weapon/gun/TrueGun = null
  	var/obj/item/weapon/gun/magic/Zapstick
  	var/obj/item/weapon/gun/projectile/Pewgun
  	var/obj/item/weapon/gun/energy/Zapgun
  
  /mob/living/simple_animal/hostile/mimic/copy/ranged/CopyObject(obj/O, mob/living/creator, destroy_original = 0)
  	if(..())
  		emote_see = list("aims menacingly")
  		environment_smash = 0 //needed? seems weird for them to do so
  		ranged = 1
  		retreat_distance = 1 //just enough to shoot
  		minimum_distance = 6
  		var/obj/item/weapon/gun/G = O
  		melee_damage_upper = G.force
  		melee_damage_lower = G.force - max(0, (G.force / 2))
  		move_to_delay = 2 * G.w_class + 1
  		projectilesound = G.fire_sound
  		TrueGun = G
  		if(istype(G, /obj/item/weapon/gun/magic))
  			Zapstick = G
  			var/obj/item/ammo_casing/magic/M = Zapstick.ammo_type
  			projectiletype = initial(M.projectile_type)
  		if(istype(G, /obj/item/weapon/gun/projectile))
  			Pewgun = G
  			var/obj/item/ammo_box/magazine/M = Pewgun.mag_type
  			var/obj/item/ammo_casing/A = initial(M.ammo_type)
  			projectiletype = initial(A.projectile_type)
  			casingtype = initial(M.ammo_type)
  		if(istype(G, /obj/item/weapon/gun/energy))
  			Zapgun = G
  			var/selectfiresetting = Zapgun.select
  			var/obj/item/ammo_casing/energy/E = Zapgun.ammo_type[selectfiresetting]
  			projectiletype = initial(E.projectile_type)
  
  /mob/living/simple_animal/hostile/mimic/copy/ranged/OpenFire(the_target)
  	if(Zapgun)
  		if(Zapgun.power_supply)
  			var/obj/item/ammo_casing/energy/shot = Zapgun.ammo_type[Zapgun.select]
  			if(Zapgun.power_supply.charge >= shot.e_cost)
  				Zapgun.power_supply.use(shot.e_cost)
  				Zapgun.update_icon()
  				..()
  	else if(Zapstick)
  		if(Zapstick.charges)
  			Zapstick.charges--
  			Zapstick.update_icon()
  			..()
  	else if(Pewgun)
  		if(Pewgun.chambered)
  			if(Pewgun.chambered.BB)
  				qdel(Pewgun.chambered.BB)
  