anchor.diff:  		pin = new
   
   /obj/item/gun/blastcannon/Destroy()
  -	QDEL_NULL(bomb)
  +	if(bomb)
  +		QDEL_NULL(bomb)
   	return ..()
   
   /obj/item/gun/blastcannon/attack_self(mob/user)
  
positive.code: 	nodamage = FALSE
  	movement_type = FLYING
  	projectile_phasing = ALL		// just blows up the turfs lmao
  	var/heavyr = 0
  	var/mediumr = 0
  	var/lightr = 0
  	var/hugbox = TRUE
  	range = 150
  
  /obj/projectile/blastwave/Initialize(mapload, _h, _m, _l)
  	heavyr = _h
  	mediumr = _m
  	lightr = _l
  	return ..()
  
  /obj/projectile/blastwave/Range()
  	..()
  	var/amount_destruction = EXPLODE_NONE
  	var/wallbreak_chance = 0
  	if(heavyr)
  		amount_destruction = EXPLODE_DEVASTATE
  		wallbreak_chance = 99
  	else if(mediumr)
  		amount_destruction = EXPLODE_HEAVY
  		wallbreak_chance = 66
  	else if(lightr)
  		amount_destruction = EXPLODE_LIGHT
  		wallbreak_chance = 33
  	if(amount_destruction)
  		if(hugbox)
  			loc.contents_explosion(EXPLODE_HEAVY, loc)
  			if(istype(loc, /turf/closed/wall))
  				var/turf/closed/wall/W = loc
  				if(prob(wallbreak_chance))
  					W.dismantle_wall(TRUE, TRUE)
  		else
  			switch(amount_destruction)
  				if(EXPLODE_DEVASTATE)
  					SSexplosions.highturf += loc
  				if(EXPLODE_HEAVY)
  					SSexplosions.medturf += loc
  				if(EXPLODE_LIGHT)
  					SSexplosions.lowturf += loc
  	else
  		qdel(src)
  
  	heavyr = max(heavyr - 1, 0)
  	mediumr = max(mediumr - 1, 0)
  	lightr = max(lightr - 1, 0)
  
  /obj/projectile/blastwave/ex_act()
  	return
  
negative.code: /**
   * A gun that consumes a TTV to shoot an projectile with equivalent power.
   *
   * It's basically an immovable rod launcher.
   */
  /obj/item/gun/blastcannon
  	name = "pipe gun"
  	desc = "A pipe welded onto a gun stock, with a mechanical trigger. The pipe has an opening near the top, and there seems to be a spring loaded wheel in the hole."
  	icon_state = "empty_blastcannon"
  	inhand_icon_state = "blastcannon_empty"
  	w_class = WEIGHT_CLASS_NORMAL
  	force = 10
  