anchor.diff:  /obj/machinery/smartfridge/examine(mob/user)
   	. = ..()
   	if(in_range(user, src) || isobserver(user))
  -		if (contents.len >= max_n_of_items)
  -			. += "<span class='notice'>The status display reads: <b>Inventory full!</b> Please remove items or upgrade the parts of this storage unit.</span>"
  +		if(!stat)//machine must be operable
  +			if (contents.len >= max_n_of_items)
  +				. += "<span class='notice'>The status display reads: <b>Inventory full!</b> Please remove items or upgrade the parts of this storage unit.</span>"
  +			else
  +				. += "<span class='notice'>The status display reads: Inventory quantity is currently <b>[contents.len] out of [max_n_of_items]</b> items.</span>"
  +
  +/obj/machinery/smartfridge/power_change()
  +	..()
  +	if(!(stat & BROKEN))
  +		if(powered())
  +			stat &= ~NOPOWER
  +			START_PROCESSING(SSmachines, src)
   		else
  -			. += "<span class='notice'>The status display reads: Inventory quantity is currently <b>[contents.len] out of [max_n_of_items]</b> items.</span>"
  -
  -/obj/machinery/smartfridge/power_change()
  -	..()
  +			stat |= NOPOWER
  +
   	update_icon()
  +
  +/obj/machinery/smartfridge/process()
  +	if(stat & (BROKEN|NOPOWER))
  +		return PROCESS_KILL
  +
  +	if(seconds_electrified > MACHINE_NOT_ELECTRIFIED)
  +		seconds_electrified--
  +
  +	//Slogans and pitches.
  +	if(last_pitch + pitch_delay <= world.time && slogan_list.len > 0 && pitches && prob(5))
  +		var/pitch = pick(slogan_list)
  +		speak(pitch)
  +		last_pitch = world.time
  +
  +/obj/machinery/smartfridge/proc/speak(message)
  +	if(stat & (BROKEN|NOPOWER))
  +		return
  +	if(!message)
  +		return
  +	say(message)
  +
  +//Shock functionality is identical to the vending machines.
  +/obj/machinery/smartfridge/proc/shock(mob/user, prb)
  +	if(stat & (BROKEN|NOPOWER))		// unpowered, no shock
  +		return FALSE
  +	if(!prob(prb))
  +		return FALSE
  +	do_sparks(5, TRUE, src)
  +	var/check_range = TRUE
  +	if(electrocute_mob(user, get_area(src), src, 0.7, check_range))
  +		return TRUE
  +	else
  +		return FALSE
  +
  +/obj/machinery/smartfridge/_try_interact(mob/user)
  +	if(seconds_electrified && !(stat & NOPOWER))
  +		if(shock(user, 100))
  +			return
  +	return ..()
  +
  +/obj/machinery/smartfridge/obj_break(damage_flag)
  +	if(!(stat & BROKEN))
  +		stat |= BROKEN
  +		update_icon()
  +	..(damage_flag)
   
   /obj/machinery/smartfridge/update_icon()
   	var/startstate = initial(icon_state)
  -	if(!stat)
  +	if(stat & BROKEN)
  +		icon_state = "[startstate]-broken"
  +	else if(powered())
   		icon_state = startstate
   		//Capacity indication:
   		if(supports_capacity_indication && contents.len > 0 && max_n_of_items > 0)
  
positive.code: 				icon_state = "[startstate]-4"
  			else if (current_capacity_percent <= 100)
  				icon_state = "[startstate]-5"
  
  	else
  		icon_state = "[startstate]-off"
  
  
negative.code: 				to_chat(user, "<span class='warning'>There is nothing in [O] to put in [src]!</span>")
  				return FALSE
  
  		if(user.a_intent != INTENT_HARM)
  			to_chat(user, "<span class='warning'>\The [src] smartly refuses [O].</span>")
  			updateUsrDialog()
  			return FALSE
  		else
  			return ..()
  
  	else
  		return ..()
  
  
  /obj/machinery/smartfridge/proc/accept_check(obj/item/O)
  