anchor.diff:  /datum/atom_hud/alternate_appearance/basic
   	var/atom/target
   	var/image/theImage
  +	var/add_ghost_version = FALSE
  +	var/ghost_appearance
   
   /datum/atom_hud/alternate_appearance/basic/New(key, image/I, target_sees_appearance = TRUE)
   	..()
  
positive.code: /datum/atom_hud/alternate_appearance/basic/remove_from_hud(atom/A)
  	. = ..()
  	A.hud_list -= appearance_key
  
  /datum/atom_hud/alternate_appearance/basic/remove_from_hud(atom/A)
  	. = ..()
  	if(.)
  		qdel(src)
  
  /datum/atom_hud/alternate_appearance/basic/everyone
  
  /datum/atom_hud/alternate_appearance/basic/everyone/New()
  	..()
  	for(var/mob in GLOB.player_list)
  		if(mob)
  			add_hud_to(mob)
  
  /datum/atom_hud/alternate_appearance/basic/everyone/mobShouldSee(mob/M)
  	return TRUE
  
  /datum/atom_hud/alternate_appearance/basic/silicons
  
  /datum/atom_hud/alternate_appearance/basic/silicons/New()
  	..()
  	for(var/mob in GLOB.silicon_mobs)
  		if(mob)
  			add_hud_to(mob)
  
  /datum/atom_hud/alternate_appearance/basic/silicons/mobShouldSee(mob/M)
  	if(issilicon(M))
  		return TRUE
  	return FALSE
  
negative.code: 			var/datum/atom_hud/alternate_appearance/AA = alternate_appearances[K]
  			if(AA.appearance_key == key)
  				AA.remove_from_hud(src)
  				break
  
  /atom/proc/add_alt_appearance(type, key, ...)
  	if(!type || !key)
  