/// <summary> /// Calculates the effect duration in milliseconds /// </summary> /// <param name="target">The effect target</param> /// <param name="effectiveness">The effect effectiveness</param> /// <returns>The effect duration in milliseconds</returns> protected override int CalculateEffectDuration(GameLiving target, double effectiveness) { // http://support.darkageofcamelot.com/kb/article.php?id=423 // Patch Notes: Version 1.52 // The duration is 100% at the middle of the area, and it tails off to 50% // duration at the edges. This does NOT change the way area effect spells // work against monsters, only realm enemies (i.e. enemy players and enemy realm guards). double duration = base.CalculateEffectDuration(target, effectiveness); if (!(target is GamePlayer) && !(target is Keeps.GameKeepGuard)) { return((int)duration); } duration *= 0.5 + 0.5 * effectiveness; duration -= duration * target.GetResistBase(Spell.DamageType) * 0.01; if (duration < 1) { duration = 1; } else if (duration > Spell.Duration * 4) { duration = Spell.Duration * 4; } return((int)duration); }
/// <summary> /// Calculates the effect duration in milliseconds /// </summary> /// <param name="target">The effect target</param> /// <param name="effectiveness">The effect effectiveness</param> /// <returns>The effect duration in milliseconds</returns> protected override int CalculateEffectDuration(GameLiving target, double effectiveness) { // http://support.darkageofcamelot.com/kb/article.php?id=423 // Patch Notes: Version 1.52 // The duration is 100% at the middle of the area, and it tails off to 50% // duration at the edges. This does NOT change the way area effect spells // work against monsters, only realm enemies (i.e. enemy players and enemy realm guards). double duration = base.CalculateEffectDuration(target, effectiveness); if (!(target is GamePlayer) && !(target is Keeps.GameKeepGuard)) return (int)duration; duration *= (0.5 + 0.5 * effectiveness); duration -= duration * target.GetResistBase(Spell.DamageType) * 0.01; if (duration < 1) duration = 1; else if (duration > (Spell.Duration * 4)) duration = (Spell.Duration * 4); return (int)duration; }