[ ScopeCeiling person act; act = parent(person); if (act == 0) return person; if (person == player && location == thedark) return thedark; while (parent(act)~=0 && (act has transparent || act has supporter || (act has container && act has open))) act = parent(act); return act; ];