Beispiel #1
0
        private static void HandlePlayerCondition(CharacterInstance ch, ApplyTypes applyType, int mod)
        {
            var pc = (PlayerInstance)ch;

            switch (applyType)
            {
            case ApplyTypes.Full:
                if (!ch.IsNpc())
                {
                    pc.PlayerData.ConditionTable[ConditionTypes.Full] =
                        (pc.PlayerData.ConditionTable[ConditionTypes.Full] + mod).GetNumberThatIsBetween(0, 48);
                }
                break;

            case ApplyTypes.Thirst:
                if (!ch.IsNpc())
                {
                    pc.PlayerData.ConditionTable[ConditionTypes.Thirsty] =
                        (pc.PlayerData.ConditionTable[ConditionTypes.Thirsty] + mod).GetNumberThatIsBetween(0, 48);
                }
                break;

            case ApplyTypes.Drunk:
                if (!ch.IsNpc())
                {
                    pc.PlayerData.ConditionTable[ConditionTypes.Drunk] =
                        (pc.PlayerData.ConditionTable[ConditionTypes.Drunk] + mod).GetNumberThatIsBetween(0, 48);
                }
                break;

            case ApplyTypes.Blood:
                if (!ch.IsNpc())
                {
                    pc.PlayerData.ConditionTable[ConditionTypes.Bloodthirsty] =
                        (pc.PlayerData.ConditionTable[ConditionTypes.Bloodthirsty] + mod).GetNumberThatIsBetween(0, ch.Level + 10);
                }
                break;
            }
        }
Beispiel #2
0
        private static void AddAffectToTarget(CharacterInstance ch, int sn, int level, ApplyTypes appLocation)
        {
            int duration = 4 * level * GameConstants.GetConstant <int>("AffectDurationConversionValue");
            var af       = new AffectData
            {
                SkillNumber = sn,
                Duration    = duration,
                Location    = appLocation,
                Modifier    = -1
            };

            ch.AddAffect(af);
        }