anchor.diff:  	max_combined_w_class = 21
   	w_class = 3
   
  -	New()
  -		..()
  -		new /obj/item/inflatable/door(src)
  -		new /obj/item/inflatable/door(src)
  -		new /obj/item/inflatable/door(src)
  -		new /obj/item/inflatable(src)
  -		new /obj/item/inflatable(src)
  -		new /obj/item/inflatable(src)
  -		new /obj/item/inflatable(src)+/obj/item/weapon/storage/briefcase/inflatable/New()
  +	..()
  +	new /obj/item/inflatable/door(src)
  +	new /obj/item/inflatable/door(src)
  +	new /obj/item/inflatable/door(src)
  +	new /obj/item/inflatable(src)
  +	new /obj/item/inflatable(src)
  +	new /obj/item/inflatable(src)
  +	new /obj/item/inflatable(src)
  
positive.code: 	var/state = 0 //closed, 1 == open
  	var/isSwitchingStates = 0
  
  	//Bumped(atom/user)
  	//	..()
  	//	if(!state)
  	//		return TryToSwitchState(user)
  	//	return
  
  	attack_ai(mob/user as mob) //those aren't machinery, they're just big fucking slabs of a mineral
  		if(isAI(user)) //so the AI can't open it
  			return
  		else if(isrobot(user)) //but cyborgs can
  			if(get_dist(user,src) <= 1) //not remotely though
  				return TryToSwitchState(user)
  
  	attack_hand(mob/user as mob)
  		return TryToSwitchState(user)
  
  	CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
  		if(air_group)
  			return state
  		if(istype(mover, /obj/effect/beam))
  			return !opacity
  		return !density
  
  	proc/TryToSwitchState(atom/user)
  		if(isSwitchingStates) return
  		if(ismob(user))
  			var/mob/M = user
  			if(world.time - user.last_bumped <= 60) return //NOTE do we really need that?
  			if(M.client)
  				if(iscarbon(M))
  					var/mob/living/carbon/C = M
  					if(!C.handcuffed)
  						SwitchState()
  				else
  					SwitchState()
  		else if(istype(user, /obj/mecha))
  			SwitchState()
  
  	proc/SwitchState()
  		if(state)
  			Close()
  		else
  			Open()
  		air_update_turf()
  
  	proc/Open()
  		isSwitchingStates = 1
  		//playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 100, 1)
  		flick("door_opening",src)
  		sleep(10)
  		density = 0
  		opacity = 0
  		state = 1
  		update_icon()
  		isSwitchingStates = 0
  
  	proc/Close()
  		isSwitchingStates = 1
  		//playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 100, 1)
  		flick("door_closing",src)
  		sleep(10)
  		density = 1
  		opacity = 0
  		state = 0
  		update_icon()
  		isSwitchingStates = 0
  
  	update_icon()
  		if(state)
  			icon_state = "door_open"
  		else
  			icon_state = "door_closed"
  
  	deflate(var/violent=0)
  		playsound(loc, 'sound/machines/hiss.ogg', 75, 1)
  		if(violent)
  			visible_message("[src] rapidly deflates!")
  			var/obj/item/inflatable/door/torn/R = new /obj/item/inflatable/door/torn(loc)
  			src.transfer_fingerprints_to(R)
  			qdel(src)
  		else
  			//user << "\blue You slowly deflate the inflatable wall."
  			visible_message("[src] slowly deflates.")
  			spawn(50)
  				var/obj/item/inflatable/door/R = new /obj/item/inflatable/door(loc)
  				src.transfer_fingerprints_to(R)
  				qdel(src)
  
  
  /obj/item/inflatable/torn
  	name = "torn inflatable wall"
  
negative.code: 
  	var/health = 50.0
  
  /obj/structure/inflatable/New(location)
  	..()
  	air_update_turf(1)
  
  /obj/structure/inflatable/Destroy()
  	air_update_turf(1)
  	return ..()
  
  /obj/structure/inflatable/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
  	return 0
  		
  /obj/structure/inflatable/CanAtmosPass(turf/T)
  	return !density
  
  /obj/structure/inflatable/bullet_act(var/obj/item/projectile/Proj)
  	health -= Proj.damage
  	..()
  	if(health <= 0)
  		deflate(1)
  	return
  
  /obj/structure/inflatable/ex_act(severity)
  	switch(severity)
  		if(1.0)
  			qdel(src)
  			return
  		if(2.0)
  			deflate(1)
  			return
  		if(3.0)
  			if(prob(50))
  				deflate(1)
  				return
  
  /obj/structure/inflatable/blob_act()
  	deflate(1)
  
  /obj/structure/inflatable/attack_hand(mob/user as mob)
  	add_fingerprint(user)
  	return
  
  /obj/structure/inflatable/proc/attack_generic(mob/user as mob, damage = 0)	//used by attack_alien, attack_animal, and attack_slime
  	health -= damage
  	if(health <= 0)
  		user.visible_message("<span class='danger'>[user] tears open [src]!</span>")
  		deflate(1)
  	else	//for nicer text~
  		user.visible_message("<span class='danger'>[user] tears at [src]!</span>")
  
  /obj/structure/inflatable/attack_alien(mob/user as mob)
  	if(islarva(user)) 
  		return
  	attack_generic(user, 15)
  
  /obj/structure/inflatable/attack_animal(mob/user as mob)
  	if(!isanimal(user)) 
  		return
  	var/mob/living/simple_animal/M = user
  	if(M.melee_damage_upper <= 0) 
  		return
  	attack_generic(M, M.melee_damage_upper)
  
  /obj/structure/inflatable/attack_slime(mob/user as mob)
  	var/mob/living/carbon/slime/S = user
  	if (!S.is_adult)
  		return
  	attack_generic(user, rand(10, 15))
  
  /obj/structure/inflatable/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
  	if(!istype(W)) 
  		return
  	if (can_puncture(W))
  		visible_message("\red <b>[user] pierces [src] with [W]!</b>")
  		deflate(1)
  	if(W.damtype == BRUTE || W.damtype == BURN)
  		hit(W.force)
  		..()
  	return
  
  /obj/structure/inflatable/proc/hit(var/damage, var/sound_effect = 1)
  	health = max(0, health - damage)
  	if(sound_effect)
  		playsound(loc, 'sound/effects/Glasshit.ogg', 75, 1)
  	if(health <= 0)
  		deflate(1)
  
  /obj/structure/inflatable/proc/deflate(var/violent=0)
  	playsound(loc, 'sound/machines/hiss.ogg', 75, 1)
  	if(violent)
  		visible_message("[src] rapidly deflates!")
  		var/obj/item/inflatable/torn/R = new /obj/item/inflatable/torn(loc)
  		src.transfer_fingerprints_to(R)
  		qdel(src)
  	else
  		//user << "\blue You slowly deflate the inflatable wall."
  		visible_message("[src] slowly deflates.")
  		spawn(50)
  			var/obj/item/inflatable/R = new /obj/item/inflatable(loc)
  			src.transfer_fingerprints_to(R)
  			qdel(src)
  
  /obj/structure/inflatable/verb/hand_deflate()
  	set name = "Deflate"
  	set category = "Object"
  	set src in oview(1)
  
  	if(usr.stat || usr.restrained())
  		return
  
  	deflate()
  
  /obj/item/inflatable/door
  	name = "inflatable door"
  	desc = "A folded membrane which rapidly expands into a simple door on activation."
  	icon = 'icons/obj/inflatable.dmi'
  	icon_state = "folded_door"
  
  /obj/item/inflatable/door/attack_self(mob/user)
  	playsound(loc, 'sound/items/zip.ogg', 75, 1)
  	user << "\blue You inflate [src]."
  	var/obj/structure/inflatable/door/R = new /obj/structure/inflatable/door(user.loc)
  	src.transfer_fingerprints_to(R)
  	R.add_fingerprint(user)
  	qdel(src)
  
  /obj/structure/inflatable/door //Based on mineral door code
  	name = "inflatable door"
  