diff --git a/Project-Aurora/Project-Aurora/Profiles/Payday 2/Control_PD2.xaml b/Project-Aurora/Project-Aurora/Profiles/Payday 2/Control_PD2.xaml
index a499f0f58..cbc98a7ef 100644
--- a/Project-Aurora/Project-Aurora/Profiles/Payday 2/Control_PD2.xaml
+++ b/Project-Aurora/Project-Aurora/Profiles/Payday 2/Control_PD2.xaml
@@ -14,36 +14,13 @@
-
-
-
-
+ Payday 2 requires the following mods to function: SuperBLT (base mod), BeardLib (base mod extender), GSI (Aurora GSI integration).To install, firstly click Get SuperBLT and follow the website's instructions to install.Then, click Get BeardLib and follow the instructions to install.Finally, click Install GSI for Payday 2 and Aurora will install the GSI mod.
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Project-Aurora/Project-Aurora/Profiles/Payday 2/Control_PD2.xaml.cs b/Project-Aurora/Project-Aurora/Profiles/Payday 2/Control_PD2.xaml.cs
index 218249042..80e008f26 100644
--- a/Project-Aurora/Project-Aurora/Profiles/Payday 2/Control_PD2.xaml.cs
+++ b/Project-Aurora/Project-Aurora/Profiles/Payday 2/Control_PD2.xaml.cs
@@ -49,7 +49,7 @@ private void game_enabled_Checked(object sender, RoutedEventArgs e)
private void get_hook_button_Click(object sender, RoutedEventArgs e)
{
- System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(@"http://paydaymods.com/download/"));
+ System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(@"https://superblt.znix.xyz/#superblt"));
}
private void install_mod_button_Click(object sender, RoutedEventArgs e)
@@ -92,83 +92,9 @@ private void install_mod_button_Click(object sender, RoutedEventArgs e)
}
}
- private void preview_gamestate_SelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- if (IsLoaded)
- {
- (profile_manager.Config.Event._game_state as GameState_PD2).Game.State = (GSI.Nodes.GameStates)preview_gamestate.SelectedValue;
- }
- }
-
- private void preview_levelphase_SelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- if (IsLoaded)
- {
- (profile_manager.Config.Event._game_state as GameState_PD2).Level.Phase = (GSI.Nodes.LevelPhase)preview_levelphase.SelectedValue;
- }
- }
-
- private void preview_playerstate_SelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- if (IsLoaded)
- {
- (profile_manager.Config.Event._game_state as GameState_PD2).Players.LocalPlayer.State = (GSI.Nodes.PlayerState)preview_playerstate.SelectedValue;
- }
- }
-
- private void preview_health_slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs e)
- {
- int hp_val = (int)this.preview_health_slider.Value;
- if (this.preview_health_amount is Label)
- {
- this.preview_health_amount.Content = hp_val + "%";
- (profile_manager.Config.Event._game_state as GameState_PD2).Players.LocalPlayer.Health.Current = hp_val;
- (profile_manager.Config.Event._game_state as GameState_PD2).Players.LocalPlayer.Health.Max = 100;
- }
- }
-
- private void preview_ammo_slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs e)
- {
- int ammo_val = (int)this.preview_ammo_slider.Value;
- if (this.preview_ammo_amount is Label)
- {
- this.preview_ammo_amount.Content = ammo_val + "%";
- (profile_manager.Config.Event._game_state as GameState_PD2).Players.LocalPlayer.Weapons.SelectedWeapon.Current_Clip = ammo_val;
- (profile_manager.Config.Event._game_state as GameState_PD2).Players.LocalPlayer.Weapons.SelectedWeapon.Max_Clip = 100;
- }
- }
-
- private void preview_suspicion_slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs e)
- {
- float susp_val = (float)this.preview_suspicion_slider.Value;
- if (this.preview_suspicion_amount is Label)
- {
- this.preview_suspicion_amount.Content = (int)susp_val + "%";
- (profile_manager.Config.Event._game_state as GameState_PD2).Players.LocalPlayer.SuspicionAmount = susp_val / 100.0f;
- }
- }
-
- private void preview_flashbang_slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs e)
- {
- float flash_val = (float)this.preview_flashbang_slider.Value;
- if (this.preview_flashbang_amount is Label)
- {
- this.preview_flashbang_amount.Content = (int)flash_val + "%";
- (profile_manager.Config.Event._game_state as GameState_PD2).Players.LocalPlayer.FlashAmount = flash_val / 100.0f;
- }
- }
-
- private void preview_swansong_Checked(object sender, RoutedEventArgs e)
- {
- if (IsLoaded && sender is CheckBox && (sender as CheckBox).IsChecked.HasValue)
- {
- (profile_manager.Config.Event._game_state as GameState_PD2).Players.LocalPlayer.IsSwanSong = (sender as CheckBox).IsChecked.Value;
- }
- }
-
private void get_lib_button_Click(object sender, RoutedEventArgs e)
{
- System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(@"https://github.com/simon-wh/PAYDAY-2-BeardLib"));
+ System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(@"https://modworkshop.net/mod/14924"));
}
}
}
diff --git a/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/Control_PD2MaskOnAnimationLayer.xaml b/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/Control_PD2MaskOnAnimationLayer.xaml
new file mode 100644
index 000000000..5b260bc8e
--- /dev/null
+++ b/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/Control_PD2MaskOnAnimationLayer.xaml
@@ -0,0 +1,10 @@
+
+
+
\ No newline at end of file
diff --git a/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/Control_PD2MaskOnAnimationLayer.xaml.cs b/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/Control_PD2MaskOnAnimationLayer.xaml.cs
new file mode 100644
index 000000000..45bf2ae47
--- /dev/null
+++ b/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/Control_PD2MaskOnAnimationLayer.xaml.cs
@@ -0,0 +1,41 @@
+using Aurora.Settings;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Aurora.Profiles.Payday_2.Layers
+{
+ ///
+ /// Interaction logic for Control_WinningTeamLayer.xaml
+ ///
+ public partial class Control_PD2MaskOnAnimationLayer : UserControl
+ {
+ public Control_PD2MaskOnAnimationLayer()
+ {
+ InitializeComponent();
+ }
+
+ public Control_PD2MaskOnAnimationLayer(PD2MaskOnAnimationLayerHandler datacontext)
+ {
+ InitializeComponent();
+
+ this.DataContext = datacontext;
+ }
+
+ private void UserControl_Loaded(object sender, RoutedEventArgs e)
+ {
+ this.Loaded -= UserControl_Loaded;
+ }
+ }
+}
diff --git a/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/PD2BackgroundLayerHandler.cs b/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/PD2BackgroundLayerHandler.cs
index 2ce527132..071249136 100644
--- a/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/PD2BackgroundLayerHandler.cs
+++ b/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/PD2BackgroundLayerHandler.cs
@@ -14,6 +14,7 @@
namespace Aurora.Profiles.Payday_2.Layers
{
+ [Obsolete]
public class PD2BackgroundLayerHandlerProperties : LayerHandlerProperties2Color
{
public Color? _AmbientColor { get; set; }
@@ -100,6 +101,7 @@ public override void Default()
}
+ [Obsolete]
public class PD2BackgroundLayerHandler : LayerHandler
{
private float no_return_flashamount = 1.0f;
diff --git a/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/PD2FlashbangLayerHandler.cs b/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/PD2FlashbangLayerHandler.cs
index 585e40ec4..2ac8715d8 100644
--- a/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/PD2FlashbangLayerHandler.cs
+++ b/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/PD2FlashbangLayerHandler.cs
@@ -17,6 +17,7 @@
namespace Aurora.Profiles.Payday_2.Layers
{
+ [Obsolete]
public class PD2FlashbangLayerHandlerProperties : LayerHandlerProperties2Color
{
public Color? _FlashbangColor { get; set; }
@@ -37,6 +38,7 @@ public override void Default()
}
+ [Obsolete]
public class PD2FlashbangLayerHandler : LayerHandler
{
protected override UserControl CreateControl()
diff --git a/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/PD2MaskOnAnimationLayerHandler.cs b/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/PD2MaskOnAnimationLayerHandler.cs
new file mode 100644
index 000000000..b0cb8c7b7
--- /dev/null
+++ b/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/PD2MaskOnAnimationLayerHandler.cs
@@ -0,0 +1,115 @@
+using Aurora.EffectsEngine;
+using Aurora.EffectsEngine.Animations;
+using Aurora.Profiles.CSGO.GSI;
+using Aurora.Profiles.CSGO.GSI.Nodes;
+using Aurora.Profiles.Payday_2.GSI;
+using Aurora.Profiles.Payday_2.GSI.Nodes;
+using Aurora.Settings;
+using Aurora.Settings.Layers;
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Controls;
+
+namespace Aurora.Profiles.Payday_2.Layers
+{
+ public class PD2MaskOnAnimationLayerHandler : LayerHandler
+ {
+ private readonly AnimationTrack[] tracks =
+ {
+ new AnimationTrack("Track 0", 1.0f, 0.0f)
+ };
+
+ private long previoustime = 0;
+ private long currenttime = 0;
+
+ private static float effectKeyframe = 0.0f;
+ private const float effectAnimationTime = 1.0f;
+
+ private bool showAnimation = false;
+ private bool animationRun = false;
+
+ protected override UserControl CreateControl()
+ {
+ return new Control_PD2MaskOnAnimationLayer(this);
+ }
+
+ public override EffectLayer Render(IGameState state)
+ {
+ previoustime = currenttime;
+ currenttime = Utils.Time.GetMillisecondsSinceEpoch();
+
+ EffectLayer effectLayer = new EffectLayer("PD2 - Mask On Animation");
+ AnimationMix animationMix = new AnimationMix();
+
+ if (state is GameState_PD2 gameState_PD2)
+ {
+ if (animationRun && (gameState_PD2.LocalPlayer.State == PlayerState.Civilian || gameState_PD2.LocalPlayer.State == PlayerState.Undefined || gameState_PD2.LocalPlayer.State == PlayerState.Mask_Off))
+ {
+ animationRun = false;
+ }
+
+ if ((gameState_PD2.LocalPlayer.State == PlayerState.Standard) && !animationRun && !showAnimation)
+ {
+ this.SetTracks(PD2Colours.PlayerState_Standard);
+ animationMix.Clear();
+ showAnimation = true;
+ }
+
+ if (showAnimation)
+ {
+ animationMix = new AnimationMix(tracks);
+
+ effectLayer.Fill(PD2Colours.PlayerState_Civilian);
+ animationMix.Draw(effectLayer.GetGraphics(), effectKeyframe);
+ effectKeyframe += (currenttime - previoustime) / 1000.0f;
+
+ if (effectKeyframe >= effectAnimationTime)
+ {
+ showAnimation = false;
+ animationRun = true;
+ effectKeyframe = 0;
+ }
+ }
+ }
+
+ return effectLayer;
+ }
+
+ public override void SetApplication(Application profile)
+ {
+ base.SetApplication(profile);
+ }
+
+ private void SetTracks(Color color)
+ {
+ for (int i = 0; i < tracks.Length; i++)
+ {
+ tracks[i].SetFrame(
+ 0.0f,
+ new AnimationFilledCircle(
+ (int)(Effects.canvas_width_center * 0.9),
+ Effects.canvas_height_center,
+ 0,
+ PD2Colours.GameTheme,
+ 4)
+ );
+
+ tracks[i].SetFrame(
+ 1.0f,
+ new AnimationFilledCircle(
+ (int)(Effects.canvas_width_center * 0.9),
+ Effects.canvas_height_center,
+ Effects.canvas_biggest / 2.0f,
+ PD2Colours.GameTheme,
+ 4)
+ );
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/PD2StatesLayerHandler.cs b/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/PD2StatesLayerHandler.cs
index 42de48746..abe3b41ea 100644
--- a/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/PD2StatesLayerHandler.cs
+++ b/Project-Aurora/Project-Aurora/Profiles/Payday 2/Layers/PD2StatesLayerHandler.cs
@@ -14,6 +14,7 @@
namespace Aurora.Profiles.Payday_2.Layers
{
+ [Obsolete]
public class PD2StatesLayerHandlerProperties : LayerHandlerProperties2Color
{
public Color? _DownedColor { get; set; }
@@ -58,6 +59,7 @@ public override void Default()
}
+ [Obsolete]
public class PD2StatesLayerHandler : LayerHandler
{
protected override UserControl CreateControl()
diff --git a/Project-Aurora/Project-Aurora/Profiles/Payday 2/PD2Application.cs b/Project-Aurora/Project-Aurora/Profiles/Payday 2/PD2Application.cs
index 9613a0081..8b01f7743 100644
--- a/Project-Aurora/Project-Aurora/Profiles/Payday 2/PD2Application.cs
+++ b/Project-Aurora/Project-Aurora/Profiles/Payday 2/PD2Application.cs
@@ -19,7 +19,8 @@ public PD2()
{
AllowLayer();
AllowLayer();
- AllowLayer();
+ AllowLayer();
+ AllowLayer();
}
}
}
diff --git a/Project-Aurora/Project-Aurora/Profiles/Payday 2/PD2Profile.cs b/Project-Aurora/Project-Aurora/Profiles/Payday 2/PD2Profile.cs
index 974b6ea19..f2ae96433 100644
--- a/Project-Aurora/Project-Aurora/Profiles/Payday 2/PD2Profile.cs
+++ b/Project-Aurora/Project-Aurora/Profiles/Payday 2/PD2Profile.cs
@@ -1,10 +1,29 @@
-using Aurora.Settings;
+using Aurora.Devices;
+using Aurora.EffectsEngine;
+using Aurora.Profiles.Payday_2.GSI.Nodes;
+using Aurora.Profiles.Payday_2.Layers;
+using Aurora.Settings;
using Aurora.Settings.Layers;
+using Aurora.Settings.Overrides.Logic;
+using Aurora.Settings.Overrides.Logic.Builder;
using System.Collections.Generic;
using System.Drawing;
namespace Aurora.Profiles.Payday_2
{
+ public class PD2Colours
+ {
+ public static Color GameTheme = Color.FromArgb(4, 119, 207);
+ public static Color PlayerState_Standard = Color.FromArgb(4, 119, 207);
+ public static Color PlayerState_Tazed = Color.FromArgb(255, 0, 0);
+ public static Color PlayerState_Arrested = Color.FromArgb(255, 0, 0);
+ public static Color PlayerState_Downed = Color.FromArgb(255, 0, 0);
+ public static Color PlayerState_Civilian = Color.FromArgb(200, 200, 200);
+ public static Color LevelState_Loud = Color.FromArgb(255, 255, 0);
+ public static Color LevelState_Winters = Color.FromArgb(255, 165, 0);
+ public static Color LevelState_PointOfNoReturn = Color.FromArgb(255, 0, 0);
+ }
+
public class PD2Profile : ApplicationProfile
{
public PD2Profile() : base()
@@ -17,7 +36,10 @@ public override void Reset()
base.Reset();
Layers = new System.Collections.ObjectModel.ObservableCollection
{
- new Layer("Payday 2 Flashbang", new Payday_2.Layers.PD2FlashbangLayerHandler()),
+ // PD2 Mask On Animation
+ new Layer("Mask On Animation", new PD2MaskOnAnimationLayerHandler()),
+
+ // PD2 Health/Ammo Indicators
new Layer("Health Indicator", new PercentLayerHandler()
{
Properties = new PercentLayerHandlerProperties()
@@ -35,7 +57,13 @@ public override void Reset()
_VariablePath = "LocalPlayer/Health/Current",
_MaxVariablePath = "LocalPlayer/Health/Max"
},
- }),
+ }, new OverrideLogicBuilder()
+ .SetLookupTable("_Enabled", new OverrideLookupTableBuilder()
+ .AddEntry(false, new BooleanGSIEnum("LocalPlayer/State", PlayerState.Civilian))
+ .AddEntry(false, new BooleanGSIEnum("LocalPlayer/State", PlayerState.Undefined))
+ .AddEntry(false, new BooleanGSIEnum("LocalPlayer/State", PlayerState.Mask_Off))
+ )
+ ),
new Layer("Ammo Indicator", new PercentLayerHandler()
{
Properties = new PercentLayerHandlerProperties()
@@ -53,9 +81,205 @@ public override void Reset()
_VariablePath = "LocalPlayer/Weapons/SelectedWeapon/Current_Clip",
_MaxVariablePath = "LocalPlayer/Weapons/SelectedWeapon/Max_Clip"
},
- }),
- new Layer("Payday 2 States", new Payday_2.Layers.PD2StatesLayerHandler()),
- new Layer("Payday 2 Background", new Payday_2.Layers.PD2BackgroundLayerHandler())
+ }, new OverrideLogicBuilder()
+ .SetLookupTable("_Enabled", new OverrideLookupTableBuilder()
+ .AddEntry(false, new BooleanGSIEnum("LocalPlayer/State", PlayerState.Civilian))
+ .AddEntry(false, new BooleanGSIEnum("LocalPlayer/State", PlayerState.Undefined))
+ .AddEntry(false, new BooleanGSIEnum("LocalPlayer/State", PlayerState.Mask_Off))
+ )
+ ),
+
+ // PD2 Loud (Assault) State Animation
+ new Layer("Loud (Assault) Animation", new GradientLayerHandler()
+ {
+ Properties = new GradientLayerHandlerProperties()
+ {
+ _GradientConfig = new LayerEffectConfig()
+ {
+ Speed = 10,
+ Angle = 0,
+ GradientSize = 100,
+ AnimationType = AnimationType.Translate_XY,
+ AnimationReverse = false,
+ Brush = new EffectBrush()
+ {
+ type = EffectBrush.BrushType.Linear,
+ wrap = EffectBrush.BrushWrap.Repeat,
+ colorGradients = new SortedDictionary {
+ { 0, PD2Colours.LevelState_Loud },
+ { 0.5F, PD2Colours.LevelState_Loud },
+ { 1, Color.White }
+ },
+ start = new PointF()
+ {
+ X = 0.0F,
+ Y = -0.5F
+ },
+ end = new PointF()
+ {
+ X = 1F,
+ Y = 1F
+ },
+ center = new PointF()
+ {
+ X = 1F,
+ Y = 1F
+ }
+ }
+ },
+ _Sequence = new KeySequence()
+ {
+ type = KeySequenceType.FreeForm,
+ freeform = Effects.WholeCanvasFreeForm
+ }
+ }
+ }, new OverrideLogicBuilder()
+ .SetDynamicBoolean("_Enabled", new BooleanGSIEnum("Level/Phase", LevelPhase.Assault))
+ ),
+
+ // PD2 Loud (Assault) State Animation
+ new Layer("Loud (Winters) Animation", new GradientLayerHandler()
+ {
+ Properties = new GradientLayerHandlerProperties()
+ {
+ _GradientConfig = new LayerEffectConfig()
+ {
+ Speed = 10,
+ Angle = 0,
+ GradientSize = 100,
+ AnimationType = AnimationType.Translate_XY,
+ AnimationReverse = false,
+ Brush = new EffectBrush()
+ {
+ type = EffectBrush.BrushType.Linear,
+ wrap = EffectBrush.BrushWrap.Repeat,
+ colorGradients = new SortedDictionary {
+ { 0, PD2Colours.LevelState_Winters },
+ { 0.5F, PD2Colours.LevelState_Winters },
+ { 1, Color.White }
+ },
+ start = new PointF()
+ {
+ X = 0.0F,
+ Y = -0.5F
+ },
+ end = new PointF()
+ {
+ X = 1F,
+ Y = 1F
+ },
+ center = new PointF()
+ {
+ X = 1F,
+ Y = 1F
+ }
+ }
+ },
+ _Sequence = new KeySequence()
+ {
+ type = KeySequenceType.FreeForm,
+ freeform = Effects.WholeCanvasFreeForm
+ }
+ }
+ }, new OverrideLogicBuilder()
+ .SetDynamicBoolean("_Enabled", new BooleanGSIEnum("Level/Phase", LevelPhase.Winters))
+ ),
+
+ // PD2 Loud (Point of No Return) State Animation
+ new Layer("Loud (Point of No Return) Animation", new GradientFillLayerHandler()
+ {
+ Properties = new GradientFillLayerHandlerProperties()
+ {
+ _FillEntireKeyboard = true,
+ _GradientConfig = new LayerEffectConfig()
+ {
+ Speed = 10f,
+ Brush = new EffectBrush()
+ {
+ type = EffectBrush.BrushType.Linear,
+ wrap = EffectBrush.BrushWrap.Repeat,
+ colorGradients = new SortedDictionary {
+ { 0, Color.Black },
+ { 0.25f, PD2Colours.LevelState_PointOfNoReturn },
+ { 0.5f, Color.Black },
+ { 0.75f, PD2Colours.LevelState_PointOfNoReturn },
+ { 1, Color.Black }
+ },
+ start = new PointF()
+ {
+ X = 0F,
+ Y = 1F
+ },
+ end = new PointF()
+ {
+ X = 1F,
+ Y = 1F
+ },
+ center = new PointF()
+ {
+ X = 0F,
+ Y = 0F
+ }
+ }
+ }
+ }
+ }, new OverrideLogicBuilder()
+ .SetDynamicBoolean("_Enabled", new BooleanGSIEnum("Level/Phase", LevelPhase.Point_of_no_return))
+ ),
+
+ // PD2 Level State Backgrounds
+ new Layer("Level State Backgrounds", new SolidFillLayerHandler() {
+ Properties = new SolidFillLayerHandlerProperties()
+ {
+ _PrimaryColor = Color.FromArgb(0,0,0,0)
+ }
+ }, new OverrideLogicBuilder()
+ .SetLookupTable("_Enabled", new OverrideLookupTableBuilder()
+ .AddEntry(true, new BooleanGSIEnum("LocalPlayer/State", PlayerState.Standard))
+ )
+ .SetLookupTable("_PrimaryColor", new OverrideLookupTableBuilder()
+ .AddEntry(PD2Colours.LevelState_Loud, new BooleanGSIEnum("Level/Phase", LevelPhase.Loud))
+ .AddEntry(PD2Colours.LevelState_Loud, new BooleanGSIEnum("Level/Phase", LevelPhase.Assault))
+ )
+ ),
+
+ // PD2 Player State Backgrounds
+ new Layer("Player State Backgrounds", new SolidFillLayerHandler() {
+ Properties = new SolidFillLayerHandlerProperties()
+ {
+ _PrimaryColor = Color.FromArgb(0,0,0,0)
+ }
+ }, new OverrideLogicBuilder()
+ .SetLookupTable("_Enabled", new OverrideLookupTableBuilder()
+ .AddEntry(true, new BooleanGSIEnum("LocalPlayer/State", PlayerState.Standard))
+ )
+ .SetLookupTable("_PrimaryColor", new OverrideLookupTableBuilder()
+ .AddEntry(PD2Colours.GameTheme, new BooleanGSIEnum("LocalPlayer/State", PlayerState.Standard))
+ .AddEntry(PD2Colours.GameTheme, new BooleanGSIEnum("LocalPlayer/State", PlayerState.Carry))
+ .AddEntry(PD2Colours.PlayerState_Arrested, new BooleanGSIEnum("LocalPlayer/State", PlayerState.Arrested))
+ .AddEntry(PD2Colours.PlayerState_Civilian, new BooleanGSIEnum("LocalPlayer/State", PlayerState.Mask_Off))
+ .AddEntry(PD2Colours.PlayerState_Civilian, new BooleanGSIEnum("LocalPlayer/State", PlayerState.Civilian))
+ )
+ ),
+
+ // PD2 Logo-Colour Background Effect
+ new Layer("Background Effect", new SolidFillLayerHandler() {
+ Properties = new SolidFillLayerHandlerProperties()
+ {
+ _PrimaryColor = PD2Colours.GameTheme
+ }
+ }, new OverrideLogicBuilder()
+ .SetLookupTable("_Enabled", new OverrideLookupTableBuilder()
+ .AddEntry(true, new BooleanGSIEnum("Game/State", GameStates.Undefined))
+ .AddEntry(true, new BooleanGSIEnum("Game/State", GameStates.None))
+ .AddEntry(true, new BooleanGSIEnum("Game/State", GameStates.Kit_menu))
+ .AddEntry(true, new BooleanGSIEnum("Game/State", GameStates.Loot_menu))
+ .AddEntry(true, new BooleanGSIEnum("Game/State", GameStates.Menu_Pause))
+ .AddEntry(false, new BooleanGSIEnum("Game/State", GameStates.Mission_end_failure))
+ .AddEntry(false, new BooleanGSIEnum("Game/State", GameStates.Mission_end_success))
+ .AddEntry(false, new BooleanGSIEnum("Game/State", GameStates.Ingame))
+ )
+ )
};
}
}
diff --git a/Project-Aurora/Project-Aurora/Settings/Control_LayerControlPresenter.xaml.cs b/Project-Aurora/Project-Aurora/Settings/Control_LayerControlPresenter.xaml.cs
index f9cb733bb..ff10fa783 100644
--- a/Project-Aurora/Project-Aurora/Settings/Control_LayerControlPresenter.xaml.cs
+++ b/Project-Aurora/Project-Aurora/Settings/Control_LayerControlPresenter.xaml.cs
@@ -17,7 +17,6 @@
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
-using Aurora.Profiles.Payday_2.Layers;
using Aurora.Profiles;
namespace Aurora.Settings