diff --git a/.idea/.idea.NodeEditor/.idea/contentModel.xml b/.idea/.idea.NodeEditor/.idea/contentModel.xml
index 0bffd39..38e1177 100644
--- a/.idea/.idea.NodeEditor/.idea/contentModel.xml
+++ b/.idea/.idea.NodeEditor/.idea/contentModel.xml
@@ -14,9 +14,12 @@
+
+
+
diff --git a/.idea/.idea.NodeEditor/.idea/workspace.xml b/.idea/.idea.NodeEditor/.idea/workspace.xml
index c5e7aa6..e2dffc2 100644
--- a/.idea/.idea.NodeEditor/.idea/workspace.xml
+++ b/.idea/.idea.NodeEditor/.idea/workspace.xml
@@ -28,12 +28,10 @@
-
-
-
-
+
+
+
-
@@ -54,6 +52,9 @@
@@ -106,8 +107,17 @@
1608418540783
-
+
+
+
+ 1608580007149
+
+
+
+ 1608580007149
+
+
@@ -152,8 +162,17 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Controls/Path.xaml b/Controls/Path.xaml
new file mode 100644
index 0000000..752362a
--- /dev/null
+++ b/Controls/Path.xaml
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/Controls/Path.xaml.cs b/Controls/Path.xaml.cs
new file mode 100644
index 0000000..c695536
--- /dev/null
+++ b/Controls/Path.xaml.cs
@@ -0,0 +1,87 @@
+using System.Collections.Generic;
+using System.Windows.Controls;
+using System.Windows.Media;
+using NodeEditor.Extensions;
+
+namespace NodeEditor.Controls
+{
+ public partial class Path : UserControl
+ {
+ public static List Paths { get; } = new List();
+ public int[] Difficulty { get; set; }
+ public double Distance { get; set; }
+ public int LvlRequired { get; set; }
+ public Modes Mode { get; set; }
+ public int Cost { get; set; }
+
+ public Path()
+ {
+ Difficulty = new[] {1, 1, 1, 1, 1};
+ Distance = 0;
+ LvlRequired = 0;
+ Mode = Modes.Walk;
+ Cost = 0;
+ Paths.Add(this);
+ InitializeComponent();
+ }
+ public Path(int distance)
+ {
+ Difficulty = new[] {1, 1, 1, 1, 1};
+ Distance = distance;
+ LvlRequired = 0;
+ Mode = Modes.Walk;
+ Cost = 0;
+ Paths.Add(this);
+ InitializeComponent();
+ }
+ public Path(int distance, Modes mode)
+ {
+ Difficulty = new[] {1, 1, 1, 1, 1};
+ Distance = distance;
+ LvlRequired = 0;
+ Mode = mode;
+ Cost = 0;
+ Paths.Add(this);
+ InitializeComponent();
+ }
+ public Path(int distance, Modes mode, int cost)
+ {
+ Difficulty = new[] {1, 1, 1, 1, 1};
+ Distance = distance;
+ LvlRequired = 0;
+ Mode = mode;
+ Cost = cost;
+ Paths.Add(this);
+ InitializeComponent();
+ }
+ public Path(int distance, Modes mode, int cost, int lvlRequired)
+ {
+ Difficulty = new[] {1, 1, 1, 1, 1};
+ Distance = distance;
+ LvlRequired = lvlRequired;
+ Mode = mode;
+ Cost = cost;
+ Paths.Add(this);
+ InitializeComponent();
+ }
+ public Path(int distance, Modes mode, int cost, int lvlRequired, int[] difficulty)
+ {
+ Difficulty = difficulty;
+ Distance = distance;
+ LvlRequired = lvlRequired;
+ Mode = mode;
+ Cost = cost;
+ Paths.Add(this);
+ InitializeComponent();
+ }
+
+ public void Destroy()
+ {
+ var parentObject = VisualTreeHelper.GetParent(this);
+ var parent = parentObject as Canvas;
+
+ parent?.Children.Remove(this);
+ Paths.Remove(this);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Extensions/Modes.cs b/Extensions/Modes.cs
new file mode 100644
index 0000000..cfa34fc
--- /dev/null
+++ b/Extensions/Modes.cs
@@ -0,0 +1,12 @@
+namespace NodeEditor.Extensions
+{
+ public enum Modes
+ {
+ Seaskipper,
+ MageIsland,
+ Skyship,
+ Tunnel,
+ Elevator,
+ Walk
+ }
+}
\ No newline at end of file
diff --git a/NodeEditor.csproj b/NodeEditor.csproj
index b17e1d8..598be96 100644
--- a/NodeEditor.csproj
+++ b/NodeEditor.csproj
@@ -68,7 +68,11 @@
Node.xaml
+
+ Path.xaml
+
+
@@ -79,6 +83,7 @@
Designer
MSBuild:Compile
+
MSBuild:Compile
Designer