public static void GainCondition(this PlayerInstance ch, ConditionTypes condition, int value) { if (value == 0 || ch.Level >= LevelConstants.ImmortalLevel || ch.IsNotAuthorized()) { return; } var conditionValue = ch.PlayerData.GetConditionValue(condition); ch.PlayerData.SetConditionValue(ConditionTypes.Bloodthirsty, condition == ConditionTypes.Bloodthirsty ? (conditionValue + value).GetNumberThatIsBetween(0, 10 + ch.Level) : (conditionValue + value).GetNumberThatIsBetween(0, 48)); if (ConditionTable.ContainsKey(condition)) { ConditionTable[condition].Invoke(ch, conditionValue); } else { LogManager.Instance.Bug("Invalid condition type {0}", condition); } }