anchor.diff:  		location = get_turf(src)
   	if(location)
   		if(directional && target?.density)
  -			var/turf/T = get_step(location, aim_dir)
  -			explosion(get_step(T, aim_dir), devastation_range = boom_sizes[1], heavy_impact_range = boom_sizes[2], light_impact_range = boom_sizes[3])
  +			var/turf/turf = get_step(location, aim_dir)
  +			explosion(get_step(turf, aim_dir), devastation_range = boom_sizes[1], heavy_impact_range = boom_sizes[2], light_impact_range = boom_sizes[3])
   		else
   			explosion(location, devastation_range = boom_sizes[1], heavy_impact_range = boom_sizes[2], light_impact_range = boom_sizes[3])
   	qdel(src)
  
positive.code: 
  		moveToNullspace() //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))
  			if(I.embedding)
  				I.embedding["embed_chance"] = 0
  				I.updateEmbedding()
  		else if(istype(AM, /mob/living))
  			plastic_overlay.layer = FLOAT_LAYER
  
  		target.add_overlay(plastic_overlay)
  		to_chat(user, "<span class='notice'>You plant the bomb. Timer counting down from [det_time].</span>")
  		addtimer(CALLBACK(src, .proc/detonate), det_time*10)
  
  /obj/item/grenade/c4/proc/shout_syndicate_crap(mob/M)
  	if(!M)
  		return
  	var/message_say = "FOR NO RAISIN!"
  	if(M.mind)
  		var/datum/mind/UM = M.mind
  		if(UM.has_antag_datum(/datum/antagonist/nukeop) || UM.has_antag_datum(/datum/antagonist/traitor))
  			message_say = "FOR THE SYNDICATE!"
  		else if(UM.has_antag_datum(/datum/antagonist/changeling))
  			message_say = "FOR THE HIVE!"
  		else if(UM.has_antag_datum(/datum/antagonist/cult))
  			message_say = "FOR NAR'SIE!"
  		else if(UM.has_antag_datum(/datum/antagonist/rev))
  			message_say = "VIVA LA REVOLUTION!"
  		else if(UM.has_antag_datum(/datum/antagonist/brother))
  			message_say = "FOR MY BROTHER!"
  		else if(UM.has_antag_datum(/datum/antagonist/ninja))
  			message_say = "FOR THE SPIDER CLAN!"
  		else if(UM.has_antag_datum(/datum/antagonist/fugitive))
  			message_say = "FOR FREEDOM!"
  		else if(UM.has_antag_datum(/datum/antagonist/ashwalker))
  			message_say = "I HAVE NO IDEA WHAT THIS THING DOES!"
  		else if(UM.has_antag_datum(/datum/antagonist/ert))
  			message_say = "FOR NANOTRASEN!"
  		else if(UM.has_antag_datum(/datum/antagonist/pirate))
  			message_say = "FOR ME MATEYS!"
  		else if(UM.has_antag_datum(/datum/antagonist/wizard))
  			message_say = "FOR THE FEDERATION!"
  	M.say(message_say, forced="C4 suicide")
  
  /obj/item/grenade/c4/suicide_act(mob/living/user)
  	message_admins("[ADMIN_LOOKUPFLW(user)] suicided with [src] at [ADMIN_VERBOSEJMP(user)]")
  
negative.code: 		det_time = newtime
  		to_chat(user, "Timer set for [det_time] seconds.")
  
  /obj/item/grenade/c4/afterattack(atom/movable/bomb_target, mob/user, flag)
  	. = ..()
  	aim_dir = get_dir(user,bomb_target)
  	if(!flag)
  		return
  
  	to_chat(user, "<span class='notice'>You start planting [src]. The timer is set to [det_time]...</span>")
  
  	if(do_after(user, 30, target = bomb_target))
  		if(!user.temporarilyRemoveItemFromInventory(src))
  			return
  		target = bomb_target
  
  		message_admins("[ADMIN_LOOKUPFLW(user)] planted [name] on [target.name] at [ADMIN_VERBOSEJMP(target)] with [det_time] second fuse")
  		log_game("[key_name(user)] planted [name] on [target.name] at [AREACOORD(user)] with a [det_time] second fuse")
  