public void TakePlaceInFarmHouse(Vector2 point)
 {
     _farmPlace  = point;
     _leader     = null;
     _currentDog = null;
     IsInFarm    = true;
 }
    public void Initialize(Vector2 bottom, Vector2 up)
    {
        _upCorner     = up;
        _bottomCorner = bottom;

        if (_collider)
        {
            _collider.enabled = true;
        }
        _leader     = null;
        _currentDog = null;
        IsInFarm    = false;
    }
    void _inputManager_OnMouseDown(RaycastHit2D obj)
    {
        if (_dogs == null || _dogs.Length == 0)
        {
            throw new NullReferenceException("_dogs is null");
        }

        if (!obj.collider)
        {
            if (_selectedDog)
            {
                _selectedDog.MoveToPoint(obj.point);
            }
            return;
        }

        var selected = from i in _dogs
                       where i.gameObject == obj.collider.gameObject
                       select i;

        if (selected == null || selected.Count() == 0)
        {
            if (_selectedDog)
            {
                _selectedDog.MoveToPoint(obj.point);
            }
            return;
        }

        var _newSelectedDog = selected.FirstOrDefault();

        if (_newSelectedDog == _selectedDog && _selectedDog)
        {
            _selectedDog.UnSelect();
            _selectedDog.StopMoving();
            _selectedDog = null;
            return;
        }
        if (_newSelectedDog)
        {
            _newSelectedDog.Select();
        }
        if (_selectedDog)
        {
            _selectedDog.UnSelect();
        }
        _selectedDog = _newSelectedDog;
    }
    private void OnTriggerEnter2D(Collider2D other)
    {
        if (_leader || IsInFarm)
        {
            return;
        }
        var tempShepDog = other.gameObject.GetComponent <SheepDog> ();

        if (!tempShepDog)
        {
            return;
        }

        _leader     = tempShepDog.AddPonyInLine(this);;
        _currentDog = tempShepDog;
        if (_leader && _collider)
        {
            _collider.enabled = false;
        }
    }