diff --git a/Artemis/Artemis/Artemis.csproj b/Artemis/Artemis/Artemis.csproj
index 4a43c96f0..381d9d8d9 100644
--- a/Artemis/Artemis/Artemis.csproj
+++ b/Artemis/Artemis/Artemis.csproj
@@ -574,6 +574,7 @@
+
LuaWindowView.xaml
diff --git a/Artemis/Artemis/Modules/Games/Overwatch/OverwatchDataModel.cs b/Artemis/Artemis/Modules/Games/Overwatch/OverwatchDataModel.cs
index d88a3a28e..72895b27d 100644
--- a/Artemis/Artemis/Modules/Games/Overwatch/OverwatchDataModel.cs
+++ b/Artemis/Artemis/Modules/Games/Overwatch/OverwatchDataModel.cs
@@ -48,6 +48,8 @@ namespace Artemis.Modules.Games.Overwatch
Symmetra,
Zenyatta,
Ana,
- Sombra
+ Sombra,
+ Orisa,
+ Doomfist
}
}
\ No newline at end of file
diff --git a/Artemis/Artemis/Modules/Games/Overwatch/OverwatchModel.cs b/Artemis/Artemis/Modules/Games/Overwatch/OverwatchModel.cs
index 819611cb0..4a216cd99 100644
--- a/Artemis/Artemis/Modules/Games/Overwatch/OverwatchModel.cs
+++ b/Artemis/Artemis/Modules/Games/Overwatch/OverwatchModel.cs
@@ -76,7 +76,9 @@ namespace Artemis.Modules.Games.Overwatch
new CharacterColor {Character = OverwatchCharacter.Symmetra, Color = Color.FromRgb(46, 116, 148)},
new CharacterColor {Character = OverwatchCharacter.Zenyatta, Color = Color.FromRgb(248, 218, 26)},
new CharacterColor {Character = OverwatchCharacter.Ana, Color = Color.FromRgb(16, 36, 87)},
- new CharacterColor {Character = OverwatchCharacter.Sombra, Color = Color.FromRgb(20, 5, 101)}
+ new CharacterColor {Character = OverwatchCharacter.Sombra, Color = Color.FromRgb(20, 5, 101)},
+ new CharacterColor {Character = OverwatchCharacter.Orisa, Color = Color.FromRgb(1,40,0)},
+ new CharacterColor {Character = OverwatchCharacter.Doomfist, Color = Color.FromRgb(33, 3, 1)}
};
}
diff --git a/Artemis/Artemis/Profiles/Lua/Modules/Gui/LuaSlider.cs b/Artemis/Artemis/Profiles/Lua/Modules/Gui/LuaSlider.cs
new file mode 100644
index 000000000..0a14af4f8
--- /dev/null
+++ b/Artemis/Artemis/Profiles/Lua/Modules/Gui/LuaSlider.cs
@@ -0,0 +1,57 @@
+using System;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using Artemis.Managers;
+using MoonSharp.Interpreter;
+using MoonSharp.Interpreter.Interop;
+
+namespace Artemis.Profiles.Lua.Modules.Gui
+{
+ [MoonSharpUserData]
+ public class LuaSlider
+ {
+ private readonly LuaManager _luaManager;
+
+ public LuaSlider(LuaManager luaManager, int interval, double intialValue, double minimum, double maximum, double x, double y, double? width, double? height)
+ {
+ _luaManager = luaManager;
+
+ Slider = new Slider { Value = intialValue, TickFrequency = interval, Minimum = minimum, Maximum = maximum, TickPlacement = TickPlacement.BottomRight, IsSnapToTickEnabled = true};
+
+ if (width != null)
+ Slider.Width = width.Value;
+ if (height != null)
+ Slider.Height = height.Value;
+
+ Slider.ValueChanged += SliderOnValueChanged;
+ }
+
+ [MoonSharpVisible(false)]
+ public Slider Slider { get; }
+
+ public double Value
+ {
+ get => Slider.Dispatcher.Invoke(() => (double) Slider.Value);
+ set => Slider.Dispatcher.Invoke(() => Slider.Value = value);
+ }
+
+ public int Interval
+ {
+ get => Slider.Dispatcher.Invoke(() => (int) Slider.Interval);
+ set => Slider.Dispatcher.Invoke(() => Slider.Interval = value);
+ }
+
+ private void SliderOnValueChanged(object sender, RoutedPropertyChangedEventArgs routedPropertyChangedEventArgs)
+ {
+ _luaManager.EventsModule.LuaInvoke(_luaManager.ProfileModel, () => OnValueChanged(this));
+ }
+
+ public event EventHandler ValueChanged;
+
+ protected virtual void OnValueChanged(LuaSlider slider)
+ {
+ ValueChanged?.Invoke(slider, null);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Artemis/Artemis/Profiles/Lua/Modules/Gui/LuaWindowViewModel.cs b/Artemis/Artemis/Profiles/Lua/Modules/Gui/LuaWindowViewModel.cs
index 5c927cdb1..f7201069e 100644
--- a/Artemis/Artemis/Profiles/Lua/Modules/Gui/LuaWindowViewModel.cs
+++ b/Artemis/Artemis/Profiles/Lua/Modules/Gui/LuaWindowViewModel.cs
@@ -83,6 +83,18 @@ namespace Artemis.Profiles.Lua.Modules.Gui
return element;
}
+ public LuaSlider CreateSlider(int interval, double initialValue, double minimum, double maximum, double x, double y, double? width = 200.0, double? height = 20.0)
+ {
+ LuaSlider element = null;
+ Execute.OnUIThread(() =>
+ {
+ element = new LuaSlider(_luaManager, interval, initialValue, minimum, maximum, x, y, width, height);
+ AddControl(element.Slider, x, y);
+ });
+
+ return element;
+ }
+
private void AddControl(UIElement uiElement, double x, double y)
{
Canvas.Children.Add(uiElement);