// ---------------------------------------------------------------- // Doers // ---------------------------------------------------------------- public void UpdateBeamView() { int numBeamSegments; // Oh, if my Beam has been destroyed, say it's got no segments; just stop rendering it completely. (There will be a small visual inconsistency, but it's almost impossible to notice.) if (!MyBeam.IsInPlay) { numBeamSegments = 0; } else { numBeamSegments = MyBeam.NumSegments; } // Make more segments if we need them! int numNewSegmentViews = numBeamSegments - segmentViews.Count; for (int i = 0; i < numNewSegmentViews; i++) { segmentViews.Add(GetNewSegmentView()); } // Activate/deactivate the right ones! for (int i = 0; i < numBeamSegments; i++) { BoardOccupant sourceOccupant = MyBeam.GetSegment(i).SourceOccupant; BoardObjectView sourceView = MyBoardView.TEMP_GetObjectView(sourceOccupant); segmentViews[i].Activate(sourceView); } for (int i = numBeamSegments; i < segmentViews.Count; i++) { segmentViews[i].Deactivate(); } }
virtual public void UpdateVisualsPostMove() { // Snap to correct rotation/scale (no animating for now, no need). Rotation = GetRotationFromMyObject(); Scale = GetScaleFromMyObject(); // Animate from old to new pos! Vector2 posFrom = MyBoardView.BoardToPos(MyTile.ColRow - MyTile.PrevMoveDelta); Vector2 posTo = GetPosFromMyObject(); LeanTween.cancel(this.gameObject); SetPos(posFrom); // start there now. LeanTween.value(this.gameObject, SetPos, posFrom, posTo, 0.18f).setEaseOutQuint(); }
protected Vector2 GetPosFromMyObject() { return(MyBoardView.BoardToPos(MyTile.ColRow)); }