Fixes null propogation

This commit is contained in:
Kamron Batman 2018-09-14 13:49:23 -07:00
parent 22ab83ea9e
commit 3c9842ee5a
218 changed files with 799 additions and 1458 deletions

View file

@ -96,8 +96,7 @@ namespace Server.Spells
public void HarmfulSpell( Mobile m )
{
if ( m is BaseCreature )
((BaseCreature)m).OnHarmfulSpell( m_Caster );
(m as BaseCreature)?.OnHarmfulSpell( m_Caster );
}
public Spell( Mobile caster, Item scroll, SpellInfo info )
@ -311,11 +310,9 @@ namespace Server.Spells
scalar *= 2.0; // Double magery damage to monsters/animals if not AOS
}
if ( target is BaseCreature )
((BaseCreature)target).AlterDamageScalarFrom( m_Caster, ref scalar );
(target as BaseCreature)?.AlterDamageScalarFrom( m_Caster, ref scalar );
if ( m_Caster is BaseCreature )
((BaseCreature)m_Caster).AlterDamageScalarTo( target, ref scalar );
(m_Caster as BaseCreature)?.AlterDamageScalarTo( target, ref scalar );
if ( Core.SE )
scalar *= GetSlayerDamageScalar( target );
@ -417,11 +414,9 @@ namespace Server.Spells
OnDisturb( type, true );
if ( m_CastTimer != null )
m_CastTimer.Stop();
m_CastTimer?.Stop();
if ( m_AnimTimer != null )
m_AnimTimer.Stop();
m_AnimTimer?.Stop();
if ( Core.AOS && m_Caster.Player && type == DisturbType.Hurt )
DoHurtFizzle();
@ -908,8 +903,7 @@ namespace Server.Spells
m_Spell.m_State = SpellState.Sequencing;
m_Spell.m_CastTimer = null;
m_Spell.m_Caster.OnSpellCast( m_Spell );
if ( m_Spell.m_Caster.Region != null )
m_Spell.m_Caster.Region.OnSpellCast( m_Spell.m_Caster, m_Spell );
m_Spell.m_Caster.Region?.OnSpellCast( m_Spell.m_Caster, m_Spell );
m_Spell.m_Caster.NextSpellTime = Core.TickCount + (int)m_Spell.GetCastRecovery().TotalMilliseconds; // Spell.NextSpellDelay;
Target originalTarget = m_Spell.m_Caster.Target;

View file

@ -924,8 +924,7 @@ namespace Server.Spells
bool reflect = (target.MagicDamageAbsorb >= 0);
if ( target is BaseCreature )
((BaseCreature)target).CheckReflect( caster, ref reflect );
(target as BaseCreature)?.CheckReflect( caster, ref reflect );
if ( target.MagicDamageAbsorb <= 0 )
{
@ -982,11 +981,9 @@ namespace Server.Spells
if ( delay == TimeSpan.Zero )
{
if ( from is BaseCreature )
((BaseCreature)from).AlterSpellDamageTo( target, ref iDamage );
(@from as BaseCreature)?.AlterSpellDamageTo( target, ref iDamage );
if ( target is BaseCreature )
((BaseCreature)target).AlterSpellDamageFrom( from, ref iDamage );
(target as BaseCreature)?.AlterSpellDamageFrom( @from, ref iDamage );
target.Damage( iDamage, from );
}
@ -1039,11 +1036,9 @@ namespace Server.Spells
if ( delay == TimeSpan.Zero )
{
if ( from is BaseCreature )
((BaseCreature)from).AlterSpellDamageTo( target, ref iDamage );
(@from as BaseCreature)?.AlterSpellDamageTo( target, ref iDamage );
if ( target is BaseCreature )
((BaseCreature)target).AlterSpellDamageFrom( from, ref iDamage );
(target as BaseCreature)?.AlterSpellDamageFrom( @from, ref iDamage );
WeightOverloading.DFA = dfa;
@ -1126,15 +1121,12 @@ namespace Server.Spells
protected override void OnTick()
{
if ( m_From is BaseCreature )
((BaseCreature)m_From).AlterSpellDamageTo( m_Target, ref m_Damage );
(m_From as BaseCreature)?.AlterSpellDamageTo( m_Target, ref m_Damage );
if ( m_Target is BaseCreature )
((BaseCreature)m_Target).AlterSpellDamageFrom( m_From, ref m_Damage );
(m_Target as BaseCreature)?.AlterSpellDamageFrom( m_From, ref m_Damage );
m_Target.Damage( m_Damage );
if ( m_Spell != null )
m_Spell.RemoveDelayedDamageContext( m_Target );
m_Spell?.RemoveDelayedDamageContext( m_Target );
}
}
@ -1192,8 +1184,7 @@ namespace Server.Spells
c.OnDamagedBySpell( m_From );
}
if ( m_Spell != null )
m_Spell.RemoveDelayedDamageContext( m_Target );
m_Spell?.RemoveDelayedDamageContext( m_Target );
}
}