/**
     * This will match a mobile opponent (an actor that doesn't yet have a destination) and a
     * stationary opponent (an actor that has a destination). The current usage context for this is
     * when multiple actors are attackking the stationaryActor.
     **/
    private void MatchOpponents(Actor mobileActor, Actor stationaryActor, bool prevLocCacheRequired = false)
    {
        mobileActor.target = stationaryActor;
        stationaryActor.target = mobileActor;

        //We want to offset the y position of the stacked mobile actor
        int randSeed = Random.Range (1, 2) == 1 ? -1 : 1;
        stanceOffSetY *= randSeed;

        //We want to offset the x position of the stacked mobile actor
        float stanceOffSetXLocal = stanceOffSetX * stationaryActor.transform.localScale.x;

        Vector3 newVector = new Vector3 ((stationaryActor.endMarker.x + stanceOffSetXLocal), stationaryActor.endMarker.y+stanceOffSetY, stationaryActor.endMarker.z );

        Vector3? cachedPrevious = null;

        if (prevLocCacheRequired) {
            cachedPrevious = mobileActor.prevLoc;
        }

        mobileActor.NewLocation (newVector);

        if (prevLocCacheRequired) {
            mobileActor.prevLoc = cachedPrevious.Value;
        }
    }
    private void MatchOpponents(Actor player, Actor enemy, Vector3 coordinate)
    {
        Vector3 enemyCoordinate = new Vector3(coordinate.x -stanceOffSetX, coordinate.y, coordinate.z);
        Vector3 playerCoordinate = new Vector3(coordinate.x +stanceOffSetX, coordinate.y, coordinate.z);

        player.NewLocation(playerCoordinate);
        enemy.NewLocation(enemyCoordinate);

        player.target = enemy;
        enemy.target = player;
    }