diff --git a/Source/Game/Entities/Object/WorldObject.cs b/Source/Game/Entities/Object/WorldObject.cs index bbc94ba80..2d23ab0d1 100644 --- a/Source/Game/Entities/Object/WorldObject.cs +++ b/Source/Game/Entities/Object/WorldObject.cs @@ -885,65 +885,56 @@ namespace Game.Entities // stat system helpers public void SetUpdateFieldStatValue(IUpdateField updateField, T value) where T : new() { - //static_assert(std::is_arithmetic < T >::value, "SetUpdateFieldStatValue must be used with arithmetic types"); - SetUpdateFieldValue(updateField, Math.Max((dynamic)value, 0)); + SetUpdateFieldValue(updateField, (T)Math.Max((dynamic)value, 0)); } - public void SetUpdateFieldStatValue(ref T oldValue, T value) + public void SetUpdateFieldStatValue(ref T oldValue, T value) where T : new() { - //static_assert(std::is_arithmetic < T >::value, "SetUpdateFieldStatValue must be used with arithmetic types"); - SetUpdateFieldValue(ref oldValue, Math.Max((dynamic)value, 0)); + SetUpdateFieldValue(ref oldValue, (T)Math.Max((dynamic)value, 0)); } public void ApplyModUpdateFieldValue(IUpdateField updateField, T mod, bool apply) where T : new() { - //static_assert(std::is_arithmetic < T >::value, "SetUpdateFieldStatValue must be used with arithmetic types"); dynamic value = updateField.GetValue(); if (apply) value += mod; else value -= mod; - SetUpdateFieldValue(updateField, value); + SetUpdateFieldValue(updateField, (T)value); } public void ApplyModUpdateFieldValue(ref T oldvalue, T mod, bool apply) where T : new() { - //static_assert(std::is_arithmetic < T >::value, "SetUpdateFieldStatValue must be used with arithmetic types"); - dynamic value = oldvalue; if (apply) value += mod; else value -= mod; - SetUpdateFieldValue(ref oldvalue, value); + SetUpdateFieldValue(ref oldvalue, (T)value); } public void ApplyPercentModUpdateFieldValue(IUpdateField updateField, float percent, bool apply) where T : new() { - //static_assert(std::is_arithmetic < T >::value, "SetUpdateFieldStatValue must be used with arithmetic types"); - dynamic value = updateField.GetValue(); if (percent == -100.0f) percent = -99.99f; value *= (apply ? (100.0f + percent) / 100.0f : 100.0f / (100.0f + percent)); - SetUpdateFieldValue(updateField, value); + SetUpdateFieldValue(updateField, (T)value); } public void ApplyPercentModUpdateFieldValue(ref T oldValue, float percent, bool apply) where T : new() { - //static_assert(std::is_arithmetic < T >::value, "SetUpdateFieldStatValue must be used with arithmetic types"); - dynamic value = oldValue; if (percent == -100.0f) percent = -99.99f; value *= (apply ? (100.0f + percent) / 100.0f : 100.0f / (100.0f + percent)); - SetUpdateFieldValue(ref oldValue, value); + SetUpdateFieldValue(ref oldValue, (T)value); } public void ForceUpdateFieldChange() diff --git a/Source/Game/Entities/Player/Player.Quest.cs b/Source/Game/Entities/Player/Player.Quest.cs index b9c588566..cd14c6249 100644 --- a/Source/Game/Entities/Player/Player.Quest.cs +++ b/Source/Game/Entities/Player/Player.Quest.cs @@ -2512,7 +2512,7 @@ namespace Game.Entities } int objectiveIndex = quest.Objectives.IndexOf(objective); - if (objectiveIndex == -1) + if (objectiveIndex == 0) return true; // check sequenced objectives