Пример #1
0
    // ----------------------------------------------------------------
    //  Initialize
    // ----------------------------------------------------------------
    public void Initialize(Level _levelRef, Board _myBoard, RectTransform rt_availableArea)
    {
        this.MyLevel = _levelRef;
        this.MyBoard = _myBoard;
        GameUtils.ParentAndReset(this.gameObject, MyLevel.transform);

        // Determine unitSize and other board-specific visual stuff
        UpdatePosAndSize(rt_availableArea);

        // Add Player and Spaces!
        BeamRendererColliderArena = GetComponent <BeamRendererColliderArena>();
        BeamRendererColliderArena.Initialize(MyBoard, myRectTransform.rect);
        //Temp_PlayerView = AddObjectView(MyBoard.player) as PlayerView;
        spaceViews = new BoardSpaceView[NumCols, NumRows];
        for (int i = 0; i < NumCols; i++)
        {
            for (int j = 0; j < NumRows; j++)
            {
                spaceViews[i, j] = Instantiate(resourcesHandler.BoardSpaceView).GetComponent <BoardSpaceView>();
                spaceViews[i, j].Initialize(this, MyBoard.GetSpace(i, j));
            }
        }
        // Add all other views, and look right right away!
        UpdateViewsPostMove();

        // Add event listeners!
        GameManagers.Instance.EventManager.BoardExecutedMoveEvent += OnBoardExecutedMove;
    }
    //public BeamRendererColliderLine[] Debug_colliderLines { get { return colliderLines; } }


    // ----------------------------------------------------------------
    //  Initialize
    // ----------------------------------------------------------------
    public BeamRendererCollider(BoardView _myBoardView, BoardObjectView _myObjectView)
    {
        beamRendererColliderArena = _myBoardView.BeamRendererColliderArena;
        myObjectView = _myObjectView;

        // Shrink everyone down uniformly if they're movable.
        float unitSize = _myBoardView.UnitSize;

        diameter = unitSize * 0.98f;
        if (myObject is BoardOccupant && (myObject as BoardOccupant).IsMovable)
        {
            diameter = unitSize * 0.75f;
        }

        // Set my lines hardcodedly!
        //if (myObject is Mirror) { InitializeLinesForMirror (); }
        if (myObject is BeamGoal)
        {
            InitializeLinesForBeamGoalOrSource(0.5f);
        }
        else if (myObject is BeamSource)
        {
            InitializeLinesForBeamGoalOrSource(0.1f);
        }
        //else if (myObject is Bucket) { InitializeLinesForBucket (); }
        //else if (myObject is Portal) { InitializeLinesForPortal (); }
        //else if (myObject is Wall) { InitializeLinesForWall (); }
        else if (myObject is Player)
        {
            InitializeLinesForPlayer();
        }
        else
        {
            InitializeLinesForDefaultSquare();
        }

        // Update my actual lines right off the bat!
        UpdateLines();
    }