Laser Mirror Portal Party
Python, 310 302 287 278 277 260
Not radically different than the existing Python post, but has one or two noteworthy tricks, I think.
It also handles &quot;non-terminating&quot; input, such as 1&gt;1. EDIT: Oops! emitters block lasers.
def t(b):
 w=len(b[0])+1;B=list('@'*w+'@'.join(b));i=l=len(B);C=&quot;&lt;&gt;^v@&quot;
 while i:
    j=l-i;i-=1;d=C.find(B[j]);c='.'
    while c not in C:
     if'+'&gt;c:B[j]='.'
     if'0'&lt;c&lt;C:j=(B*2).index(c,j+1)%l
     elif'.'&lt;c:d^=2+(c&lt;C)
     j-=[1,-1,w,-w,j][d];c=B[j%l]
 return'*'not in B

t takes a list of strings (the input lines) and returns a boolean result.
Here's a nice gif of the code being golfed down:

EDIT: Awsome gif courtesy of Will. Thanks Will!