anchor.diff:  			return
   		src.target = AM
   		forceMove(null)	//Yep
  +
  +		if(istype(AM, /obj/item)) //your crappy throwing star can't fly so good with a giant brick of c4 on it.
  +			var/obj/item/I = AM
  +			I.throw_speed = max(1, (I.throw_speed - 3))
  +			I.throw_range = max(1, (I.throw_range - 3))
  +			I.embed_chance = 0
   
   		message_admins("[ADMIN_LOOKUPFLW(user)] planted [name] on [target.name] at [ADMIN_COORDJMP(target)] with [det_time] second fuse",0,1)
   		log_game("[key_name(user)] planted [name] on [target.name] at [COORD(src)] with [det_time] second fuse")
  
positive.code: /obj/item/weapon/grenade/plastic/x4
  	name = "X4"
  	desc = "A shaped high-explosive breaching charge. Designed to ensure user safety and wall nonsafety."
  	var/aim_dir = NORTH
  	icon_state = "plasticx40"
  	item_state = "plasticx4"
  
  /obj/item/weapon/grenade/plastic/x4/prime()
  	var/turf/location
  	if(target)
  		if(!QDELETED(target))
  			location = get_turf(target)
  			target.cut_overlay(image_overlay, TRUE)
  	else
  		location = get_turf(src)
  	if(location)
  		if(istype(loc, /obj/item/weapon/twohanded/spear) || !target)
  			explosion(location, 0, 2, 3)
  		else if(target && target.density)
  			var/turf/T = get_step(location, aim_dir)
  			explosion(get_step(T, aim_dir),0,0,3)
  			explosion(T,0,2,0)
  			location.ex_act(2, target)
  		else
  			explosion(location, 0, 2, 3)
  			location.ex_act(2, target)
  	if(istype(target, /mob))
  		var/mob/M = target
  		M.gib()
  	qdel(src)
  
  /obj/item/weapon/grenade/plastic/x4/afterattack(atom/movable/AM, mob/user, flag)
  	aim_dir = get_dir(user,AM)
  	..()
  
negative.code: 		return
  	..()
  
  /obj/item/weapon/grenade/plastic/prime()
  	var/turf/location
  	if(target)
  		if(!QDELETED(target))
  			location = get_turf(target)
  			target.cut_overlay(image_overlay, TRUE)
  	else
  		location = get_turf(src)
  	if(location)
  		if(directional && target && target.density)
  			var/turf/T = get_step(location, aim_dir)
  			explosion(get_step(T, aim_dir), boom_sizes[1], boom_sizes[2], boom_sizes[3])
  		else
  			explosion(location, boom_sizes[1], boom_sizes[2], boom_sizes[3])
  		location.ex_act(2, target)
  	if(istype(target, /mob))
  		var/mob/M = target
  		M.gib()
  	qdel(src)
  
  //assembly stuff
  /obj/item/weapon/grenade/plastic/receive_signal()
  	prime()
  