protected override void OnTick() { if (m_From is BaseCreature && m_Target != null) { ((BaseCreature)m_From).AlterSpellDamageTo(m_Target, ref m_Damage); } if (m_Target is BaseCreature && m_From != null) { ((BaseCreature)m_Target).AlterSpellDamageFrom(m_From, ref m_Damage); } WeightOverloading.DFA = m_DFA; int damageGiven = AOS.Damage(m_Target, m_From, m_Damage, m_Phys, m_Fire, m_Cold, m_Pois, m_Nrgy); WeightOverloading.DFA = DFAlgorithm.Standard; SpellPlagueSpell.CheckPlague(m_Target); if (m_Target is BaseCreature && m_From != null) { ((BaseCreature)m_Target).OnDamagedBySpell(m_From); } }
public static void Damage(TimeSpan delay, Mobile target, Mobile from, double damage, int phys, int fire, int cold, int pois, int nrgy, DFAlgorithm dfa) { int iDamage = (int)damage; if (delay == TimeSpan.Zero) { if (from is BaseCreature) { ((BaseCreature)from).AlterSpellDamageTo(target, ref iDamage); } if (target is BaseCreature) { ((BaseCreature)target).AlterSpellDamageFrom(from, ref iDamage); } WeightOverloading.DFA = dfa; int damageGiven = AOS.Damage(target, from, iDamage, phys, fire, cold, pois, nrgy); WeightOverloading.DFA = DFAlgorithm.Standard; SpellPlagueSpell.CheckPlague(target); if (target is BaseCreature && from != null) { ((BaseCreature)target).OnDamagedBySpell(from); } } else { new SpellDamageTimerAOS(target, from, iDamage, phys, fire, cold, pois, nrgy, delay, dfa).Start(); } }