I have been thinking of implementing a system like Wolcen does for their skill tree, however I want to use it for level unlocks.
Nodes grouped in segments and multiple segments from a ring (see picture attached)
Each inner segment touches two of the next outer ring' segments, and when each ring is rotated, the nodes are able to be connected the newly rotated section.
A static model of this is simple using a tree structure, where each segment is a tree-node in the tree and each tree-node contains an array of skill-nodes.
How would one achieve a the shifting functionality?
EDIT:
Starting State:
1 Level 1
/ \
2 3 Level 2
/ / \
4 7 8 Level 3
Trying to Achieve:
1 Level 1
/ \
3 2 Level 2
/ / \
4 7 8 Level 3
in other words, the children should not be affected of the parent shifting position.