[ OffersLight i j; if (i==0) rfalse; if (i has light) rtrue; objectloop (j in i) if (HasLightSource(j)==1) rtrue; if (i has container) { if (i has open || i has transparent) return OffersLight(parent(i)); } else { if (i has enterable || i has transparent || i has supporter) return OffersLight(parent(i)); } rfalse; ];