public void SecondWarpPhase() { if (!warping) { return; } //move each player to warp dest, and begin playing exit pipe animation. foreach (IPlayer pl in players) { if (pl != null) { int offsetX = Zero, offsetY = Zero; if (warpDestPipeFacing == Direction.Down) { offsetY = -pl.Bounds.Height; } else if (warpDestPipeFacing == Direction.Right) { offsetX = -pl.Bounds.Width; } pl.SetPosition(warpDestX + offsetX, warpDestY + offsetY); pl.BeginWarpAnimation(warpDestPipeFacing, false); } } //Force main camera to the necessary view if (mainCamera != null) { mainCamera.ForcePosition(warpDestCamPosX, warpDestCamPosY); } }