// ---------------------------------------------------------------- // 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(); }