From e18b8adfb73281ca943e08aaaf71d1ed4ff85196 Mon Sep 17 00:00:00 2001 From: SpoinkyNL Date: Wed, 27 Apr 2016 22:18:12 +0200 Subject: [PATCH] Implemented opacity dynamic property --- Artemis/Artemis/Managers/EffectManager.cs | 2 +- .../Profiles/LayerDynamicPropertiesModel.cs | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Artemis/Artemis/Managers/EffectManager.cs b/Artemis/Artemis/Managers/EffectManager.cs index 39cc7c342..5fcaee2a2 100644 --- a/Artemis/Artemis/Managers/EffectManager.cs +++ b/Artemis/Artemis/Managers/EffectManager.cs @@ -122,7 +122,7 @@ namespace Artemis.Managers var tryCount = 0; while (PauseEffect != null) { - Thread.Sleep(100); + Thread.Sleep(500); tryCount++; if (tryCount > 20) throw new Exception("Couldn't change effect before the time expired"); diff --git a/Artemis/Artemis/Models/Profiles/LayerDynamicPropertiesModel.cs b/Artemis/Artemis/Models/Profiles/LayerDynamicPropertiesModel.cs index 8d9d605fa..7466d184b 100644 --- a/Artemis/Artemis/Models/Profiles/LayerDynamicPropertiesModel.cs +++ b/Artemis/Artemis/Models/Profiles/LayerDynamicPropertiesModel.cs @@ -47,8 +47,20 @@ namespace Artemis.Models.Profiles if (layerProp == null || userProp == null) return; - var percentage = ToDouble(gameProperty)/percentageSource; - layerProp.SetValue(props, (int) (percentage*(int) userProp.GetValue(userProps, null))); + var percentage = ToDouble(gameProperty) / percentageSource; + + // Opacity requires some special treatment as it causes an exception if it's < 0.0 or > 1.0 + if (LayerProperty == "Opacity") + { + var opacity = percentage*(double) userProp.GetValue(userProps, null); + if (opacity < 0.0) + opacity = 0.0; + if (opacity > 1.0) + opacity = 1.0; + layerProp.SetValue(props, opacity); + } + else + layerProp.SetValue(props, (int) (percentage*(int) userProp.GetValue(userProps, null))); } private void ApplyProp(LayerPropertiesModel props, LayerPropertiesModel userProps, IGameDataModel data)