Please help with solving simple 2D Camera movement algorithm

I have a section in my 2d pixel-based game where the camera is fixed on a single section at a time that is the full width of the screen. After enemies are defeated on the screen, you can walk all the way to the far right of the screen, which will trigger the camera to move to that position + 6 units ahead of the player’s position so that the camera is centered and the player is on the far left of the next screen (or far right if the player is traveling right to left).

I have it working as intended except for one annoying problem. Because the game camera insists on starting centered at 0 units (spanning -6 to +6 on the first screen) the algorithm breaks down as the player moves farther and farther right. This would all be fixed, it seems, if the camera would start the level centered on +6 instead, that way the screen width would be 0 to 12 units, and my algorithm would be a simple matter of moving the camera when the player crosses a point at which ((int)Player1.transform.position.x % 12 == 0)

With the camera starting centered on 0, I can’t do that. To make the problem a bit clearer, here is a visual of the camera position units when the scene starts:

[far left = -6] [far right = +6][/B]
and I need:
[far left = 0] [far right = +12][/B]
Or perhaps there is a cool math trick that would let me work with the minus section of the field. Here is the code pasted below (the script is attached to the camera and simply moves the transform position of x):
```csharp
**using UnityEngine;
using System.Collections;

public class CameraController : MonoBehaviour {

GameObject Player1;
P1_ActionController theController;
Vector3 PlayerCurrentPosition;

public float whereTheCameraShouldBe = 0;
public float whereTheCameraWas = 0;

float TimeAccumulator;
Vector3 MoveCam;

void Start () {
    Player1 = GameObject.Find("Player1"); //for getting players current position
    theController = Player1.GetComponent<P1_ActionController>(); //for getting horizontal movement ctrls

    MoveCam.x = 0;
    MoveCam.y = 1f; //fix camera position for y
    MoveCam.z = Player1.transform.position.z - 1f;
}

void Update () {

    PlayerCurrentPosition.x = Player1.transform.position.x;
    TimeAccumulator+=Time.deltaTime * 1.4f; //for lerp 't'
  
    if (((int)(PlayerCurrentPosition.x % 12) == 0 && ((int)PlayerCurrentPosition.x != 0))
    {
        TimeAccumulator = 0;
        whereTheCameraWas = this.transform.position.x;
      
        whereTheCameraShouldBe = Player1.transform.position.x + (6 * theController.moveHorizontal);
                                                                //6 units ahead or behind the player depending on
                                                                //direction so player is always at far left/right of screen
    }

    MoveCam.x = Mathf.Lerp(whereTheCameraWas, whereTheCameraShouldBe, TimeAccumulator);
    transform.position = MoveCam;

}

}
__
```**__

Basically solved the initial problem by chaining the conditional to:

(int)(PlayerCurrentPosition.x + 6) % 12 == 0

But now I have issues regarding my resolution and tracking the camera this way. Not sure if this is an odd way to do this or if I have to look at my resolutions more carefully.