public virtual bool CanTraverse(Tile tile)
    {
        Unit u = tile.content.GetComponent <Unit>();

        if (u.type != UnitType.TERRAIN)
        {
            return(false);
        }

        TerrainUnitInfo info = u.GetComponent <UnitStats>().terrainUnitInfo;

        if (!info.IsPassable(u.GetComponent <UnitStats>().HasStatus(StatusEffects.FREEZE),
                             !u.GetComponent <UnitStats>().IsDead()))
        {
            return(false);
        }

        return(true);
    }
    private bool WillCollideWithObject(Tile tile)
    {
        Unit u = tile.content.GetComponent <Unit>();

        if (u.type != UnitType.TERRAIN)
        {
            return(true);
        }

        TerrainUnitInfo info = u.GetComponent <UnitStats>().terrainUnitInfo;

        if (!info.IsPassable(u.GetComponent <UnitStats>().HasStatus(StatusEffects.FREEZE),
                             !u.GetComponent <UnitStats>().IsDead()))
        {
            return(true);
        }

        return(false);
    }