本文整理汇总了C#中Mobile.AddResistanceMod方法的典型用法代码示例。如果您正苦于以下问题:C# Mobile.AddResistanceMod方法的具体用法?C# Mobile.AddResistanceMod怎么用?C# Mobile.AddResistanceMod使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mobile
的用法示例。
在下文中一共展示了Mobile.AddResistanceMod方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Target
public void Target( Mobile m )
{
if ( CheckHSequence( m ) )
{
SpellHelper.Turn( Caster, m );
/* Transmogrifies the flesh of the target creature or player to resemble rotted corpse flesh,
* making them more vulnerable to Fire and Poison damage,
* but increasing their resistance to Physical and Cold damage.
*
* The effect lasts for ((Spirit Speak skill level - target's Resist Magic skill level) / 25 ) + 40 seconds.
*
* NOTE: Algorithm above is fixed point, should be:
* ((ss-mr)/2.5) + 40
*
* NOTE: Resistance is not checked if targeting yourself
*/
ExpireTimer timer = (ExpireTimer)m_Table[m];
if ( timer != null )
timer.DoExpire();
else
m.SendLocalizedMessage( 1061689 ); // Your skin turns dry and corpselike.
if ( m.Spell != null )
m.Spell.OnCasterHurt();
m.FixedParticles( 0x373A, 1, 15, 9913, 67, 7, EffectLayer.Head );
m.PlaySound( 0x1BB );
double ss = GetDamageSkill( Caster );
double mr = ( Caster == m ? 0.0 : GetResistSkill( m ) );
m.CheckSkill( SkillName.MagicResist, 0.0, 120.0 ); //Skill check for gain
TimeSpan duration = TimeSpan.FromSeconds( ((ss - mr) / 2.5) + 40.0 );
ResistanceMod[] mods = new ResistanceMod[4]
{
new ResistanceMod( ResistanceType.Fire, -15 ),
new ResistanceMod( ResistanceType.Poison, -15 ),
new ResistanceMod( ResistanceType.Cold, +10 ),
new ResistanceMod( ResistanceType.Physical, +10 )
};
timer = new ExpireTimer( m, mods, duration );
timer.Start();
BuffInfo.AddBuff( m, new BuffInfo( BuffIcon.CorpseSkin, 1075663, duration, m ) );
m_Table[m] = timer;
for ( int i = 0; i < mods.Length; ++i )
m.AddResistanceMod( mods[i] );
HarmfulSpell( m );
}
FinishSequence();
}
示例2: OnHit
public override void OnHit(Mobile attacker, Mobile defender, int damage)
{
if (!this.Validate(attacker) || !this.CheckMana(attacker, true))
return;
ClearCurrentAbility(attacker);
attacker.SendLocalizedMessage(1063353); // You perform a masterful defense!
attacker.FixedParticles(0x375A, 1, 17, 0x7F2, 0x3E8, 0x3, EffectLayer.Waist);
int modifier = (int)(30.0 * ((Math.Max(attacker.Skills[SkillName.Bushido].Value, attacker.Skills[SkillName.Ninjitsu].Value) - 50.0) / 70.0));
DefenseMasteryInfo info = m_Table[attacker] as DefenseMasteryInfo;
if (info != null)
EndDefense((object)info);
ResistanceMod mod = new ResistanceMod(ResistanceType.Physical, 50 + modifier);
attacker.AddResistanceMod(mod);
info = new DefenseMasteryInfo(attacker, 80 - modifier, mod);
info.m_Timer = Timer.DelayCall(TimeSpan.FromSeconds(3.0), new TimerStateCallback(EndDefense), info);
m_Table[attacker] = info;
attacker.Delta(MobileDelta.WeaponDamage);
}
示例3: Target
public void Target( Mobile m )
{
if ( !Caster.CanSee( m ) )
{
Caster.SendLocalizedMessage( 500237 ); // Target can not be seen.
}
else if ( CheckHSequence( m ) )
{
Mobile source = Caster;
SpellHelper.Turn( source, m );
SpellHelper.CheckReflect( (int)this.Circle, ref source, ref m );
m.FixedParticles( 0x374A, 10, 30, 5013, 0x238, 2, EffectLayer.Waist );
int amount = (int)( Caster.Skills[SkillName.Musicianship].Base * 0.17 );
TimeSpan duration = TimeSpan.FromSeconds( Caster.Skills[SkillName.Musicianship].Base * 0.15 );
m.SendMessage( "Your poison resistance has decreased." );
ResistanceMod mod1 = new ResistanceMod( ResistanceType.Cold, - amount );
m.AddResistanceMod( mod1 );
ExpireTimer timer1 = new ExpireTimer( m, mod1, duration );
timer1.Start();
}
FinishSequence();
}
示例4: OnGaveMeleeAttack
// TODO: Put this attack shared with Hiryu and Lesser Hiryu in one place
public override void OnGaveMeleeAttack( Mobile defender )
{
base.OnGaveMeleeAttack( defender );
if( 0.1 > Utility.RandomDouble() )
{
ExpireTimer timer = (ExpireTimer)m_Table[defender];
if( timer != null )
{
timer.DoExpire();
defender.SendLocalizedMessage( 1070837 ); // The creature lands another blow in your weakened state.
}
else
defender.SendLocalizedMessage( 1070836 ); // The blow from the creature's claws has made you more susceptible to physical attacks.
int effect = -(defender.PhysicalResistance * 15 / 100);
ResistanceMod mod = new ResistanceMod( ResistanceType.Physical, effect );
defender.FixedEffect( 0x37B9, 10, 5 );
defender.AddResistanceMod( mod );
timer = new ExpireTimer( defender, mod, TimeSpan.FromSeconds( 5.0 ) );
timer.Start();
m_Table[defender] = timer;
}
}
示例5: OnEquip
public override bool OnEquip( Mobile from )
{
if (!Core.AOS)
from.VirtualArmor += 2;
else
from.AddResistanceMod( new ResistanceMod( ResistanceType.Physical, 2 ) );
return true;
}
示例6: Toggle
public static void Toggle( Mobile caster, Mobile target )
{
/* Players under the protection spell effect can no longer have their spells "disrupted" when hit.
* Players under the protection spell have decreased physical resistance stat value (-15 + (Inscription/20),
* a decreased "resisting spells" skill value by -35 + (Inscription/20),
* and a slower casting speed modifier (technically, a negative "faster cast speed") of 2 points.
* The protection spell has an indefinite duration, becoming active when cast, and deactivated when re-cast.
* Reactive Armor, Protection, and Magic Reflection will stay on—even after logging out,
* even after dying—until you “turn them off” by casting them again.
*/
object[] mods = (object[])m_Table[target];
if ( mods == null )
{
target.PlaySound( 0x1E9 );
target.FixedParticles( 0x375A, 9, 20, 5016, EffectLayer.Waist );
mods = new object[2]
{
new ResistanceMod( ResistanceType.Physical, -15 + Math.Min( (int)(caster.Skills[SkillName.Inscribe].Value / 20), 15 ) ),
new DefaultSkillMod( SkillName.MagicResist, true, -35 + Math.Min( (int)(caster.Skills[SkillName.Inscribe].Value / 20), 35 ) )
};
m_Table[target] = mods;
Registry[target] = 100.0;
target.AddResistanceMod( (ResistanceMod)mods[0] );
target.AddSkillMod( (SkillMod)mods[1] );
int physloss = -15 + (int) (caster.Skills[SkillName.Inscribe].Value / 20);
int resistloss = -35 + (int) (caster.Skills[SkillName.Inscribe].Value / 20);
string args = String.Format("{0}\t{1}", physloss, resistloss);
BuffInfo.AddBuff(target, new BuffInfo(BuffIcon.Protection, 1075814, 1075815, args.ToString()));
}
else
{
target.PlaySound( 0x1ED );
target.FixedParticles( 0x375A, 9, 20, 5016, EffectLayer.Waist );
m_Table.Remove( target );
Registry.Remove( target );
target.RemoveResistanceMod( (ResistanceMod)mods[0] );
target.RemoveSkillMod( (SkillMod)mods[1] );
BuffInfo.RemoveBuff(target, BuffIcon.Protection);
}
}
示例7: Toggle
public static void Toggle( Mobile caster, Mobile target )
{
/* Players under the protection spell effect can no longer have their spells "disrupted" when hit.
* Players under the protection spell have decreased physical resistance stat value,
* a decreased "resisting spells" skill value by -35,
* and a slower casting speed modifier (technically, a negative "faster cast speed") of 2 points.
* The protection spell has an indefinite duration, becoming active when cast, and deactivated when re-cast.
* Reactive Armor, Protection, and Magic Reflection will stay on�even after logging out,
* even after dying�until you �turn them off� by casting them again.
*/
object[] mods = (object[])m_Table[target];
if ( mods == null )
{
target.PlaySound( 0x1E9 );
target.FixedParticles( 0x375A, 9, 20, 5016, EffectLayer.Waist );
mods = new object[2]
{
new ResistanceMod( ResistanceType.Physical, -15 + (int)(caster.Skills[SkillName.Inscribe].Value / 20) ),
new DefaultSkillMod( SkillName.MagicResist, true, -35 + (int)(caster.Skills[SkillName.Inscribe].Value / 20) )
};
m_Table[target] = mods;
Registry[target] = 100.0;
target.AddResistanceMod( (ResistanceMod)mods[0] );
target.AddSkillMod( (SkillMod)mods[1] );
}
else
{
target.PlaySound( 0x1ED );
target.FixedParticles( 0x375A, 9, 20, 5016, EffectLayer.Waist );
m_Table.Remove( target );
Registry.Remove( target );
target.RemoveResistanceMod( (ResistanceMod)mods[0] );
target.RemoveSkillMod( (SkillMod)mods[1] );
}
}
示例8: OnGaveMeleeAttack
public override void OnGaveMeleeAttack( Mobile defender )
{
base.OnGaveMeleeAttack( defender );
if ( Utility.RandomDouble() < 0.1 )
{
ExpireTimer timer;
if ( m_Table.TryGetValue( defender, out timer ) )
timer.DoExpire();
defender.FixedParticles( 0x3709, 10, 30, 5052, EffectLayer.LeftFoot );
defender.PlaySound( 0x208 );
defender.SendLocalizedMessage( 1070833 ); // The creature fans you with fire, reducing your resistance to fire attacks.
ResistanceMod mod = new ResistanceMod( ResistanceType.Fire, -10 );
defender.AddResistanceMod( mod );
m_Table[defender] = timer = new ExpireTimer( defender, mod );
timer.Start();
}
}
示例9: OnGaveMeleeAttack
public override void OnGaveMeleeAttack(Mobile defender)
{
base.OnGaveMeleeAttack(defender);
if (0.05 > Utility.RandomDouble())
{
/* Rune Corruption
* Start cliloc: 1070846 "The creature magically corrupts your armor!"
* Effect: All resistances -70 (lowest 0) for 5 seconds
* End ASCII: "The corruption of your armor has worn off"
*/
ExpireTimer timer = (ExpireTimer)m_Table[defender];
if (timer != null)
{
timer.DoExpire();
defender.SendLocalizedMessage(1070845); // The creature continues to corrupt your armor!
}
else
defender.SendLocalizedMessage(1070846); // The creature magically corrupts your armor!
List<ResistanceMod> mods = new List<ResistanceMod>();
if (Core.ML)
{
if (defender.PhysicalResistance > 0)
mods.Add(new ResistanceMod(ResistanceType.Physical, -(defender.PhysicalResistance / 2)));
if (defender.FireResistance > 0)
mods.Add(new ResistanceMod(ResistanceType.Fire, -(defender.FireResistance / 2)));
if (defender.ColdResistance > 0)
mods.Add(new ResistanceMod(ResistanceType.Cold, -(defender.ColdResistance / 2)));
if (defender.PoisonResistance > 0)
mods.Add(new ResistanceMod(ResistanceType.Poison, -(defender.PoisonResistance / 2)));
if (defender.EnergyResistance > 0)
mods.Add(new ResistanceMod(ResistanceType.Energy, -(defender.EnergyResistance / 2)));
}
else
{
if (defender.PhysicalResistance > 0)
mods.Add(new ResistanceMod(ResistanceType.Physical, (defender.PhysicalResistance > 70) ? -70 : -defender.PhysicalResistance));
if (defender.FireResistance > 0)
mods.Add(new ResistanceMod(ResistanceType.Fire, (defender.FireResistance > 70) ? -70 : -defender.FireResistance));
if (defender.ColdResistance > 0)
mods.Add(new ResistanceMod(ResistanceType.Cold, (defender.ColdResistance > 70) ? -70 : -defender.ColdResistance));
if (defender.PoisonResistance > 0)
mods.Add(new ResistanceMod(ResistanceType.Poison, (defender.PoisonResistance > 70) ? -70 : -defender.PoisonResistance));
if (defender.EnergyResistance > 0)
mods.Add(new ResistanceMod(ResistanceType.Energy, (defender.EnergyResistance > 70) ? -70 : -defender.EnergyResistance));
}
for (int i = 0; i < mods.Count; ++i)
defender.AddResistanceMod(mods[i]);
defender.FixedEffect(0x37B9, 10, 5);
timer = new ExpireTimer(defender, mods, TimeSpan.FromSeconds(5.0));
timer.Start();
m_Table[defender] = timer;
}
}
示例10: OnGaveMeleeAttack
public override void OnGaveMeleeAttack(Mobile defender)
{
base.OnGaveMeleeAttack(defender);
if (0.1 > Utility.RandomDouble())
{
/* Grasping Claw
* Start cliloc: 1070836
* Effect: Physical resistance -15% for 5 seconds
* End cliloc: 1070838
* Effect: Type: "3" - From: "0x57D4F5B" (player) - To: "0x0" - ItemId: "0x37B9" - ItemIdName: "glow" - FromLocation: "(1149 808, 32)" - ToLocation: "(1149 808, 32)" - Speed: "10" - Duration: "5" - FixedDirection: "True" - Explode: "False"
*/
ExpireTimer timer = (ExpireTimer)m_Table[defender];
if (timer != null)
{
timer.DoExpire();
defender.SendLocalizedMessage(1070837); // The creature lands another blow in your weakened state.
}
else
defender.SendLocalizedMessage(1070836); // The blow from the creature's claws has made you more susceptible to physical attacks.
int effect = -(defender.PhysicalResistance * 15 / 100);
ResistanceMod mod = new ResistanceMod(ResistanceType.Physical, effect);
defender.FixedEffect(0x37B9, 10, 5);
defender.AddResistanceMod(mod);
timer = new ExpireTimer(defender, mod, TimeSpan.FromSeconds(5.0));
timer.Start();
m_Table[defender] = timer;
}
}
示例11: OnGaveMeleeAttack
public override void OnGaveMeleeAttack(Mobile defender)
{
base.OnGaveMeleeAttack(defender);
if (0.1 > Utility.RandomDouble())
{
/* Flurry of Twigs
* Start cliloc: 1070850
* Effect: Physical resistance -15% for 5 seconds
* End cliloc: 1070852
* Effect: Type: "3" From: "0x57D4F5B" To: "0x0" ItemId: "0x37B9" ItemIdName: "glow" FromLocation: "(1048 779, 6)" ToLocation: "(1048 779, 6)" Speed: "10" Duration: "5" FixedDirection: "True" Explode: "False"
*/
ExpireTimer timer = (ExpireTimer)m_FlurryOfTwigsTable[defender];
if (timer != null)
{
timer.DoExpire();
defender.SendLocalizedMessage(1070851); // The creature lands another blow in your weakened state.
}
else
defender.SendLocalizedMessage(1070850); // The creature's flurry of twigs has made you more susceptible to physical attacks!
int effect = -(defender.PhysicalResistance * 15 / 100);
ResistanceMod mod = new ResistanceMod(ResistanceType.Physical, effect);
defender.FixedEffect(0x37B9, 10, 5);
defender.AddResistanceMod(mod);
timer = new ExpireTimer(defender, mod, m_FlurryOfTwigsTable, TimeSpan.FromSeconds(5.0));
timer.Start();
m_FlurryOfTwigsTable[defender] = timer;
}
else if (0.05 > Utility.RandomDouble())
{
/* Chlorophyl Blast
* Start cliloc: 1070827
* Effect: Energy resistance -50% for 10 seconds
* End cliloc: 1070829
* Effect: Type: "3" From: "0x57D4F5B" To: "0x0" ItemId: "0x37B9" ItemIdName: "glow" FromLocation: "(1048 779, 6)" ToLocation: "(1048 779, 6)" Speed: "10" Duration: "5" FixedDirection: "True" Explode: "False"
*/
ExpireTimer timer = (ExpireTimer)m_ChlorophylBlastTable[defender];
if (timer != null)
{
timer.DoExpire();
defender.SendLocalizedMessage(1070828); // The creature continues to hinder your energy resistance!
}
else
defender.SendLocalizedMessage(1070827); // The creature's attack has made you more susceptible to energy attacks!
int effect = -(defender.EnergyResistance / 2);
ResistanceMod mod = new ResistanceMod(ResistanceType.Energy, effect);
defender.FixedEffect(0x37B9, 10, 5);
defender.AddResistanceMod(mod);
timer = new ExpireTimer(defender, mod, m_ChlorophylBlastTable, TimeSpan.FromSeconds(10.0));
timer.Start();
m_ChlorophylBlastTable[defender] = timer;
}
}
示例12: MustardBomb
public static void MustardBomb( Mobile from, Mobile to )
{
if ( !Ability.CanUse( to, from, true ) )
return;
Point3D point = to.Location;
for( int i = -3; i < 4; i++ )
{
for( int j = -3; j < 4; j++ )
{
point = new Point3D( to.X + i, to.Y + j, to.Z );
if ( BlueSpell.GetDist( point, to.Location ) < 3.1 )
Effects.SendLocationEffect( point,to.Map, 0x3728, 13, 1283/*Hue*/, 4 );
}
}
ResistanceMod[] mods = new ResistanceMod[]{ new ResistanceMod( ResistanceType.Fire, -300 ),
new ResistanceMod( ResistanceType.Cold, -300 ) };
for ( int i = 0; i < mods.Length; ++i )
to.AddResistanceMod( mods[i] );
TimedResistanceMod.AddMod(
to,
"Mustard Bomb",
mods,
TimeSpan.FromSeconds( 60 )
);
to.AddSkillMod( new TimedSkillMod( SkillName.MagicResist, true, -120.0, TimeSpan.FromSeconds( 60 ) ) );
to.SendMessage( "The intense heat scalds your elemental resistance." );
}
示例13: DoCorruption
public void DoCorruption( Mobile defender )
{
if ( defender == null )
return;
/* Rune Corruption
* Start cliloc: 1070846 "The creature magically corrupts your armor!"
* Effect: All resistances -70 (lowest 0) for 5 seconds
* End ASCII: "The corruption of your armor has worn off"
*/
ExpireTimer timer = (ExpireTimer)m_Table[defender];
if ( timer != null )
{
timer.DoExpire();
defender.SendLocalizedMessage( 1070845 ); // The creature continues to corrupt your armor!
}
else
defender.SendLocalizedMessage( 1070846 ); // The creature magically corrupts your armor!
List<ResistanceMod> mods = new List<ResistanceMod>();
if ( defender.PhysicalResistance > 0 )
mods.Add( new ResistanceMod( ResistanceType.Physical, -120 ) );
if ( defender.FireResistance > 0 )
mods.Add( new ResistanceMod( ResistanceType.Fire, -120 ) );
if ( defender.ColdResistance > 0 )
mods.Add( new ResistanceMod( ResistanceType.Cold, -120 ) );
if ( defender.PoisonResistance > 0 )
mods.Add( new ResistanceMod( ResistanceType.Poison, -120 ) );
if ( defender.EnergyResistance > 0 )
mods.Add( new ResistanceMod( ResistanceType.Energy, -120 ) );
for ( int i = 0; i < mods.Count; ++i )
defender.AddResistanceMod( mods[i] );
defender.FixedEffect( 0x37B9, 10, 5 );
timer = new ExpireTimer( defender, mods, TimeSpan.FromSeconds( 25.0 ) );
timer.Start();
m_Table[defender] = timer;
}
示例14: DoEffect
public override void DoEffect(Mobile m)
{
ResistanceMod[] mods = (ResistanceMod[])m_Table[m];
int otherMod = 0 + (int)(m.Skills[SkillName.Mysticism].Value / 20);
int admod = 1 + (int)(m.Skills[SkillName.Focus].Value / 20);
//int casts = (int)AosAttributes.GetValue(Caster, AosAttribute.CastSpeed - 2);
mods = new ResistanceMod[5]
{
new ResistanceMod( ResistanceType.Physical, otherMod + admod ),
new ResistanceMod( ResistanceType.Fire, otherMod + admod ),
new ResistanceMod( ResistanceType.Cold, otherMod + admod ),
new ResistanceMod( ResistanceType.Poison, otherMod + admod ),
new ResistanceMod( ResistanceType.Energy, otherMod + admod ),
// new ResistanceMod( AosAttribute.CastSpeed, casts )
};
m_Table[m] = mods;
for (int i = 0; i < mods.Length; ++i)
m.AddResistanceMod(mods[i]);
m.PlaySound(0x65B);
m.FixedParticles(0x3728, 1, 13, 9918, 92, 3, EffectLayer.Head);
m.Delta(MobileDelta.WeaponDamage);
m.EndAction(typeof(StoneFormSpell));
}
示例15: ApplyMods
private static void ApplyMods( Mobile m, List<object> mods )
{
for ( int i = 0; i < mods.Count; i++ )
{
object mod = mods[i];
if ( mod is AttributeMod )
m.AddAttributeMod( (AttributeMod) mod );
else if ( mod is ResistanceMod )
m.AddResistanceMod( (ResistanceMod) mod );
}
}