Esempio n. 1
0
    private void OnMouseExit()
    {
        if (WallsToPlace != null)
        {
            WallsToPlace.Wall2.GetComponent <WallController>().ShowPlaceholder();
            WallsToPlace = null;
        }

        if (!IsActive)
        {
            if (WallType == WallType.Horizontal && _controlsManager.HorizontalWallDrag)
            {
                _spriteRenderer.enabled = true;
                _spriteRenderer.sprite  = WallPlaceholder;
            }
            else if (WallType == WallType.Vertical && _controlsManager.VerticalWallDrag)
            {
                _spriteRenderer.enabled = true;
                _spriteRenderer.sprite  = WallPlaceholder;
            }
            else
            {
                _spriteRenderer.enabled = false;
            }
        }
    }
Esempio n. 2
0
    private void OnMouseEnter()
    {
        if (IsActive)
        {
            return;
        }

        if (WallType == WallType.Horizontal && _controlsManager.HorizontalWallDrag)
        {
            Vector2 start            = transform.position;
            var     endDirNormalized = new Vector2(-1, 0);
            Vector2 end = start + endDirNormalized;

            _thisCollider.enabled = false;
            var hitWallNextThis = Physics2D.Linecast(start, end, BlockingLayer);
            _thisCollider.enabled = true;

            var pairWall = hitWallNextThis.transform.gameObject;
            var x1       = transform.position.x;
            var y1       = transform.position.y;
            var x2       = pairWall.transform.position.x;
            var y2       = pairWall.transform.position.y;

            if (hitWallNextThis.transform != null &&
                !TargetIsActive(hitWallNextThis) &&
                _boardManager.CheckNewWall(false, x1, y1, x2, y2))
            {
                pairWall.GetComponent <WallController>().Hightlight();
                _spriteRenderer.sprite = WallSelected;
                WallsToPlace           = new WallPair {
                    Wall1 = gameObject, Wall2 = pairWall
                };
            }
            else
            {
                _spriteRenderer.sprite = WallDisabled;
                WallsToPlace           = null;
            }

            _spriteRenderer.enabled = true;
        }
        else if (WallType == WallType.Vertical && _controlsManager.VerticalWallDrag)
        {
            Vector2 start            = transform.position;
            var     endDirNormalized = new Vector2(0, 1);
            Vector2 end = start + endDirNormalized;

            _thisCollider.enabled = false;
            var hitWallNextThis = Physics2D.Linecast(start, end, BlockingLayer);
            _thisCollider.enabled = true;

            var pairWall = hitWallNextThis.transform.gameObject;
            var x1       = transform.position.x;
            var y1       = transform.position.y;
            var x2       = pairWall.transform.position.x;
            var y2       = pairWall.transform.position.y;

            if (hitWallNextThis.transform != null &&
                !TargetIsActive(hitWallNextThis) &&
                _boardManager.CheckNewWall(true, x1, y1, x2, y2))
            {
                pairWall.GetComponent <WallController>().Hightlight();
                _spriteRenderer.sprite = WallSelected;
                WallsToPlace           = new WallPair {
                    Wall1 = gameObject, Wall2 = pairWall
                };
            }
            else
            {
                _spriteRenderer.sprite = WallDisabled;
                WallsToPlace           = null;
            }

            _spriteRenderer.enabled = true;
        }
        else
        {
            _spriteRenderer.enabled = false;
        }
    }