private static bool HasLineOfSight(GameObject source, LocAndOffsets target)
    {
        var objIterator = new RaycastPacket();

        objIterator.flags    |= RaycastFlag.StopAfterFirstBlockerFound | RaycastFlag.ExcludeItemObjects;
        objIterator.origin    = source.GetLocationFull();
        objIterator.targetLoc = target;
        return(objIterator.TestLineOfSight());
    }
Пример #2
0
 public bool LosBlocked(GameObject target)
 {
     using var raycast = new RaycastPacket();
     raycast.flags    |= RaycastFlag.StopAfterFirstBlockerFound | RaycastFlag.ExcludeItemObjects
                         | RaycastFlag.HasTargetObj;
     raycast.origin    = caster.GetLocationFull();
     raycast.targetLoc = target.GetLocationFull();
     raycast.target    = target;
     return(!raycast.TestLineOfSight());
 }
Пример #3
0
    private static bool HasLineOfSight(LocAndOffsets originLoc, GameObject target)
    {
        if (originLoc == LocAndOffsets.Zero)
        {
            return(false);
        }

        var objIterator = new RaycastPacket();

        objIterator.flags |= RaycastFlag.StopAfterFirstBlockerFound | RaycastFlag.ExcludeItemObjects
                             | RaycastFlag.HasTargetObj;
        objIterator.origin    = originLoc;
        objIterator.targetLoc = target.GetLocationFull();
        objIterator.target    = target;
        return(objIterator.TestLineOfSight());
    }