Example #1
0
        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);
            }
        }