#TI-Basic, 141 bytes

<pre><code>Prompt L<sub>1</sub>
L<sub>1</sub>(1→T
L<sub>1</sub>(2→D
seq(L<sub>1</sub>(C),C,3,dim(L<sub>1</sub>→L<sub>1</sub>
If T>0
Then
For(A,1,T
L<sub>1</sub>(1→B
For(C,2,D
L<sub>1</sub>(C→L<sub>1</sub>(C–1
End
B→L<sub>1</sub>(D
End
Else
For(A,1,-T
L<sub>1</sub>(D→B
For(C,D,2,-1
L<sub>1</sub>(C–1→L<sub>1</sub>(C
End
B→L<sub>1</sub>(1
End
End
L<sub>1</sub>
</code></pre>

Explanation:

<pre><code>Prompt L<sub>1</sub>                # 4 bytes, input list
L<sub>1</sub>(1→T                   # 7 bytes, turns
L<sub>1</sub>(2→D                   # 7 bytes, depth
seq(L<sub>1</sub>(C),C,3,dim(L<sub>1</sub>→L<sub>1</sub>   # 18 bytes, remove turns and depth from list
If T>0                   # 5 bytes, if turns is positive
Then                     # 2 bytes
For(A,1,T                # 7 bytes, do this 'turns' times
L<sub>1</sub>(1→B                    # 7 bytes, backup the first item
For(C,2,D                # 7 bytes, shuffle the rest along
L<sub>1</sub>(C→L<sub>1</sub>(C–1               # 12 bytes
End                      # 2 bytes
B→L<sub>1</sub>(D                   # 7 bytes, restore the backup to where it should be
End                      # 2 bytes
Else                     # 2 bytes, if T is negative
For(A,1,-T               # 8 bytes, do this -'turns' times
L<sub>1</sub>(D→B                   # 7 bytes, backup the Dth item
For(C,D,2,-1             # 10 bytes, shuffle the items the other way
L<sub>1</sub>(C–1→L<sub>1</sub>(C              # 12 bytes
End                      # 2 bytes
B→L<sub>1</sub>(1                   # 7 bytes, restore backup to where it belongs
End                      # 2 bytes
End                      # 2 bytes
L<sub>1</sub>                       # 2 bytes, implicitly return
</code></pre>