@name Interception Test
if(first())
{
    runOnTick(1)
    function number entity:interceptR(T:entity#[Owner]#)
    {
        local DifPos = T:pos()-This:pos()
        local DifVel = This:eye()
        if(acosr(DifVel:normalized():dot(DifPos:normalized())  )*180/pi() < 90)
        {
            return sinr(acosr(DifVel:normalized():dot(DifPos:normalized())))*DifPos:length()
        }else
        {
            return 0
        }
    }
    function vector entity:interceptP(T:entity#[Owner]#,R:number#[Radius]#)
    {
        local DifPos = T:pos()-This:pos()
        local DifVel = This:eye()
        if(This:interceptR(T)<R&&acosr(DifVel:normalized():dot(DifPos:normalized())  )*180/pi() < 90)
        {
            return DifVel:normalized() * ( DifPos:length() - R ) + This:shootPos()
        }else
        {
            return T:pos()+vec(0,0,200)
        }
    }
}
