turnManager.calculateCollision C# (CSharp) Method

calculateCollision() private method

private calculateCollision ( Vector2 endPos, Vector2 v ) : List[]
endPos Vector2
v Vector2
return List[]
    List<Vector2>[] calculateCollision(Vector2[] endPos,Vector2[] v)
    {
        List<Vector2>[] result = new List<Vector2>[2];

        // Look for map collision
        for (int i=0; i<2; i++) {
            if (bManager.isOccupied (endPos [i])){
                print ("Map collision!");
                return calculateMapCollision(endPos,v);
            }
        }
        // Look for player collision
        if (endPos [0] != endPos [1]){
            result [0] = new List<Vector2>();
            result [1] = new List<Vector2>();
            result [0].Add (v [0]);
            result [1].Add (v [1]);
            return result;
        } else if(endPos [0] == endPos [1] - v [1] && endPos [1] == endPos [0] - v [0]) {
            // The tricky special case where players swap positions
            result [0] = new List<Vector2>();
            result [1] = new List<Vector2>();
            // The 1/4 is just a magical number for the thing to look a little more realistic
            result [0].Add (v [0]/4);
            result [0].Add (-v [0]/4);
            result [1].Add (v [1]/4);
            result [1].Add (-v [1]/4);
            return result;
        } else {
            print ("Player collision!");
            return calculatePlayerCollision(endPos,v);
        }
    }