private static TimeSpan ComputeDuration(Mobile defender) { double seconds = DurationSeconds; Resilience song = Spellsong.GetEffectSpellsong <Resilience>(defender); if (song != null) { seconds = seconds - (song.CurseReduction * seconds / 100.0); } return(TimeSpan.FromSeconds(seconds)); }
public static double GetNaturalResistChance(Mobile m, Poison poison) { double poisoning = m.Skills.Poisoning.Value; Resilience song = Spellsong.GetEffectSpellsong <Resilience>(m); if (song != null) { poisoning += song.CurseReduction; // Guessing here. } double factor = 80.0 / (poison.Level + 1); double chance = factor * poisoning / 100.0; return(chance / 100.0); }