Squad-Wiki / squad-wiki-pipeline-map-data

Creative Commons Attribution Share Alike 4.0 International
30 stars 7 forks source link

RAAS Graph Duplicating some capture zone clusters #67

Closed Shanomac99 closed 10 months ago

Shanomac99 commented 1 year ago

RAAS Graph Duplicating some capture zone clusters.

image

Shanomac99 commented 1 year ago

Looks like this map has multiple extra nodes attached into its RAAS Initializer. Detecting the last main point is an option for manually fixing this.

image

Shanomac99 commented 1 year ago

Lashkar Valley v4 has an issue where it's possible to choose from 01 to 02a or 02b.

image

Shanomac99 commented 1 year ago

pointsOrder is not able to handle this in the current format image

You cannot have two clusters occupy the same spot

w4rum commented 1 year ago

I encountered this same issue back when I wrote the path traversal logic for Squadlanes.

TL;DR: You need to extract the DesignOutgoingLinks array, i.e., the A->B connections, if you want to accurately represent the new RAAS layers.

Longer explanation:

The "new" layers, e.g., Narva RAAS v4, use a more complex RAAS graph. On these layers, you are no longer able to just use a simple ordering, i.e., just assign a number to each cluster.

Instead, the clusters now form a directed acyclic graph, with the clusters being the vertices and the links being the edges. This is different from the old layers, where each lane is a simple one-track path through the clusters.

In simpler terms: On old layers, each lane always takes the same path through the clusters. On Narva RAAS v1, there are three lanes: Center, East, and West.

Center always goes through the clusters in the following order:

East and West work the same.

But on the new layers, there is only a single lane. However, that single lane can take multiple different paths.

Narva RAAS v4 only has a single lane, which uses the cluster as follows:

As you can see, there are now quite a few branches and that allows a ton of possible paths. Just sorting the clusters in a simple array can no longer represent a layer accurately. It is even possible that a layer has multiple different lengths based on which path is taken. Example:

Kohat RAAS v5 can go:

On Squadlanes, I am able to represent such cases because the frontend interprets the clusters and links as a directed acyclic graph and then makes a couple of breadth-first searches to determine which points are possible to reach given the currently known points.

In order to do that, I had to change my data mining setup to also extract the DesignOutgoingLinks property of the SQGraphRAASInitializerComponent.

Example of the data mining output: https://github.com/w4rum/squadlanes/blob/master/src/assets/raas-data.yaml#L31956

Shanomac99 commented 10 months ago

This should be fixed. Introduced links with v6.0. It's up to the user to generate the paths. Closing for now.