public static bool CheckSight(Pawn a, DestroyableProp b)
 {
     if (Vector3.Distance(a.transform.position, b.transform.position) <= Pawn.sightRange)
     {
         if (instance.debug)
         {
             Debug.Log("Distance Checks out");
         }
         RaycastHit hit;
         foreach (Vector3 corner in corners)
         {
             Physics.Raycast(a.transform.position + verticalOffset + corner,
                             b.transform.position - (a.transform.position + verticalOffset),
                             out hit);
             if (hit.collider != null && hit.collider.GetComponent <DestroyableProp>() == b)
             {
                 if (instance.debug)
                 {
                     Debug.Log("LoS Checks out to " + hit.collider.name);
                 }
                 return(true);
             }
         }
     }
     return(false);
 }
    public static bool DefaultAttackIsValidTarget(Targetable t, Pawn owner)
    {
        Pawn            p = t.GetComponent <Pawn>();
        DestroyableProp d = t.GetComponent <DestroyableProp>();

        if (p != null)
        {
            return((!p.isDead) && (p.owner != owner.owner) && (Vector3.Distance(owner.transform.position, p.transform.position) < owner.weapon.range));
        }
        else if (d != null)
        {
            return(Vector3.Distance(owner.transform.position, d.transform.position) < owner.weapon.range);
        }
        else
        {
            return(false);
        }
    }