This commit is contained in:
parent
879e2fc778
commit
f2b9f04620
29 changed files with 62 additions and 55 deletions
|
|
@ -4950,7 +4950,7 @@ namespace Server.Mobiles
|
|||
|
||||
protected override void OnTick()
|
||||
{
|
||||
if( Core.ML && m_Creature.IsDeadBondedPet );
|
||||
if( Core.ML && m_Creature.IsDeadBondedPet )
|
||||
{
|
||||
m_Creature.Delete();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -611,9 +611,9 @@ namespace Server.Engines.CannedEvil
|
|||
return Location;
|
||||
}
|
||||
|
||||
private const int Level1 = 5; // First spawn level from 0-5 red skulls
|
||||
private const int Level2 = 9; // Second spawn level from 6-9 red skulls
|
||||
private const int Level3 = 13; // Third spawn level from 10-13 red skulls
|
||||
private const int Level1 = 4; // First spawn level from 0-4 red skulls
|
||||
private const int Level2 = 8; // Second spawn level from 5-8 red skulls
|
||||
private const int Level3 = 12; // Third spawn level from 9-12 red skulls
|
||||
|
||||
public int GetSubLevel()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ namespace Server.Gumps
|
|||
|
||||
public override void OnResponse( Mobile from, string text )
|
||||
{
|
||||
if ( m_Book.Deleted || !from.InRange( m_Book.GetWorldLocation(), 1 ) )
|
||||
if ( m_Book.Deleted || !from.InRange( m_Book.GetWorldLocation(), (Core.ML ? 3 : 1) ) )
|
||||
return;
|
||||
|
||||
if ( m_Book.CheckAccess( from ) )
|
||||
|
|
@ -247,7 +247,7 @@ namespace Server.Gumps
|
|||
{
|
||||
from.SendLocalizedMessage( 502415 ); // Request cancelled.
|
||||
|
||||
if ( !m_Book.Deleted && from.InRange( m_Book.GetWorldLocation(), 1 ) )
|
||||
if ( !m_Book.Deleted && from.InRange( m_Book.GetWorldLocation(), (Core.ML ? 3 : 1) ) )
|
||||
{
|
||||
from.CloseGump( typeof( RunebookGump ) );
|
||||
from.SendGump( new RunebookGump( from, m_Book ) );
|
||||
|
|
@ -259,7 +259,7 @@ namespace Server.Gumps
|
|||
{
|
||||
Mobile from = state.Mobile;
|
||||
|
||||
if ( m_Book.Deleted || !from.InRange( m_Book.GetWorldLocation(), 1 ) || !Multis.DesignContext.Check( from ) )
|
||||
if ( m_Book.Deleted || !from.InRange( m_Book.GetWorldLocation(), (Core.ML ? 3 : 1) ) || !Multis.DesignContext.Check( from ) )
|
||||
return;
|
||||
|
||||
int buttonID = info.ButtonID;
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ namespace Server.Items
|
|||
}
|
||||
#endregion
|
||||
|
||||
public virtual bool CanFortify{ get{ return false; } }
|
||||
public virtual bool CanFortify{ get{ return true; } }
|
||||
|
||||
private int m_MaxHitPoints;
|
||||
private int m_HitPoints;
|
||||
|
|
|
|||
|
|
@ -302,7 +302,13 @@ namespace Server.Items
|
|||
public override bool CanEquip( Mobile from )
|
||||
{
|
||||
if ( !Ethics.Ethic.CheckEquip( from, this ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if ( !from.CanBeginAction( typeof( BaseWeapon ) ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return base.CanEquip( from );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -179,11 +179,12 @@ namespace Server.Items
|
|||
from.SendLocalizedMessage( 1063024 ); // You cannot perform this special move right now.
|
||||
return false;
|
||||
}
|
||||
if ( Core.ML && from.Spell != null )
|
||||
{
|
||||
from.SendLocalizedMessage( 1063024 ); // You cannot perform this special move right now.
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( Core.ML && from.Spell != null )
|
||||
{
|
||||
from.SendLocalizedMessage( 1063024 ); // You cannot perform this special move right now.
|
||||
return false;
|
||||
}
|
||||
|
||||
return CheckSkills( from ) && CheckMana( from, false );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1140,7 +1140,10 @@ namespace Server.Items
|
|||
BaseWeapon weapon = defender.Weapon as BaseWeapon;
|
||||
|
||||
if ( weapon != null )
|
||||
{
|
||||
defender.FixedParticles(0x3779, 1, 15, 0x158B, 0x0, 0x3, EffectLayer.Waist);
|
||||
weapon.OnSwing( defender, attacker );
|
||||
}
|
||||
|
||||
CounterAttack.StopCountering( defender );
|
||||
}
|
||||
|
|
@ -2129,8 +2132,8 @@ namespace Server.Items
|
|||
{
|
||||
if ( checkSkills )
|
||||
{
|
||||
attacker.CheckSkill( SkillName.Tactics, 0.0, 120.0 ); // Passively check tactics for gain
|
||||
attacker.CheckSkill( SkillName.Anatomy, 0.0, 120.0 ); // Passively check Anatomy for gain
|
||||
attacker.CheckSkill( SkillName.Tactics, 0.0, attacker.Skills[SkillName.Tactics].Cap ); // Passively check tactics for gain
|
||||
attacker.CheckSkill( SkillName.Anatomy, 0.0, attacker.Skills[SkillName.Anatomy].Cap ); // Passively check Anatomy for gain
|
||||
|
||||
if ( Type == WeaponType.Axe )
|
||||
attacker.CheckSkill( SkillName.Lumberjacking, 0.0, 100.0 ); // Passively check Lumberjacking for gain
|
||||
|
|
@ -2197,8 +2200,8 @@ namespace Server.Items
|
|||
{
|
||||
if ( checkSkills )
|
||||
{
|
||||
attacker.CheckSkill( SkillName.Tactics, 0.0, 120.0 ); // Passively check tactics for gain
|
||||
attacker.CheckSkill( SkillName.Anatomy, 0.0, 120.0 ); // Passively check Anatomy for gain
|
||||
attacker.CheckSkill( SkillName.Tactics, 0.0, attacker.Skills[SkillName.Tactics].Cap ); // Passively check tactics for gain
|
||||
attacker.CheckSkill( SkillName.Anatomy, 0.0, attacker.Skills[SkillName.Anatomy].Cap ); // Passively check Anatomy for gain
|
||||
|
||||
if ( Type == WeaponType.Axe )
|
||||
attacker.CheckSkill( SkillName.Lumberjacking, 0.0, 100.0 ); // Passively check Lumberjacking for gain
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ namespace Server.Items
|
|||
}
|
||||
|
||||
arachnid.Opposition = new SlayerGroup[]{ reptilian };
|
||||
arachnid.FoundOn = new Type[]{ typeof( AncientWyrm ), typeof( Dragon ), typeof( OphidianMatriarch ), typeof( ShadowWyrm ) };
|
||||
arachnid.FoundOn = new Type[]{ typeof( AncientWyrm ), typeof( GreaterDragon ), typeof( Dragon ), typeof( OphidianMatriarch ), typeof( ShadowWyrm ) };
|
||||
arachnid.Super = new SlayerEntry( SlayerName.ArachnidDoom, typeof( DreadSpider ), typeof( FrostSpider ), typeof( GiantBlackWidow ), typeof( GiantSpider ), typeof( Mephitis ), typeof( Scorpion ), typeof( TerathanAvenger ), typeof( TerathanDrone ), typeof( TerathanMatriarch ), typeof( TerathanWarrior ) );
|
||||
arachnid.Entries = new SlayerEntry[]
|
||||
{
|
||||
|
|
@ -134,10 +134,10 @@ namespace Server.Items
|
|||
|
||||
reptilian.Opposition = new SlayerGroup[]{ arachnid };
|
||||
reptilian.FoundOn = new Type[]{ typeof( TerathanAvenger ), typeof( TerathanMatriarch ) };
|
||||
reptilian.Super = new SlayerEntry( SlayerName.ReptilianDeath, typeof( AncientWyrm ), typeof( DeepSeaSerpent ), typeof( Dragon ), typeof( Drake ), typeof( GiantIceWorm ), typeof( IceSerpent ), typeof( GiantSerpent ), typeof( Hiryu ), typeof( IceSnake ), typeof( JukaLord ), typeof( JukaMage ), typeof( JukaWarrior ), typeof( LavaSerpent ), typeof( LavaSnake ), typeof( LesserHiryu ), typeof( Lizardman ), typeof( OphidianArchmage ), typeof( OphidianKnight ), typeof( OphidianMage ), typeof( OphidianMatriarch ), typeof( OphidianWarrior ), typeof( SeaSerpent ), typeof( Serado ), typeof( SerpentineDragon ), typeof( ShadowWyrm ), typeof( SilverSerpent ), typeof( SkeletalDragon ), typeof( Snake ), typeof( SwampDragon ), typeof( WhiteWyrm ), typeof( Wyvern ), typeof( Yamandon ) );
|
||||
reptilian.Super = new SlayerEntry( SlayerName.ReptilianDeath, typeof( AncientWyrm ), typeof( DeepSeaSerpent ), typeof( GreaterDragon ), typeof( Dragon ), typeof( Drake ), typeof( GiantIceWorm ), typeof( IceSerpent ), typeof( GiantSerpent ), typeof( Hiryu ), typeof( IceSnake ), typeof( JukaLord ), typeof( JukaMage ), typeof( JukaWarrior ), typeof( LavaSerpent ), typeof( LavaSnake ), typeof( LesserHiryu ), typeof( Lizardman ), typeof( OphidianArchmage ), typeof( OphidianKnight ), typeof( OphidianMage ), typeof( OphidianMatriarch ), typeof( OphidianWarrior ), typeof( SeaSerpent ), typeof( Serado ), typeof( SerpentineDragon ), typeof( ShadowWyrm ), typeof( SilverSerpent ), typeof( SkeletalDragon ), typeof( Snake ), typeof( SwampDragon ), typeof( WhiteWyrm ), typeof( Wyvern ), typeof( Yamandon ) );
|
||||
reptilian.Entries = new SlayerEntry[]
|
||||
{
|
||||
new SlayerEntry( SlayerName.DragonSlaying, typeof( AncientWyrm ), typeof( Dragon ), typeof( Drake ), typeof( Hiryu ), typeof( LesserHiryu ), typeof( SerpentineDragon ), typeof( ShadowWyrm ), typeof( SkeletalDragon ), typeof( SwampDragon ), typeof( WhiteWyrm ), typeof( Wyvern ) ),
|
||||
new SlayerEntry( SlayerName.DragonSlaying, typeof( AncientWyrm ), typeof( GreaterDragon ), typeof( Dragon ), typeof( Drake ), typeof( Hiryu ), typeof( LesserHiryu ), typeof( SerpentineDragon ), typeof( ShadowWyrm ), typeof( SkeletalDragon ), typeof( SwampDragon ), typeof( WhiteWyrm ), typeof( Wyvern ) ),
|
||||
new SlayerEntry( SlayerName.LizardmanSlaughter, typeof( Lizardman ) ),
|
||||
new SlayerEntry( SlayerName.Ophidian, typeof( OphidianArchmage ), typeof( OphidianKnight ), typeof( OphidianMage ), typeof( OphidianMatriarch ), typeof( OphidianWarrior ) ),
|
||||
new SlayerEntry( SlayerName.SnakesBane, typeof( DeepSeaSerpent ), typeof( GiantIceWorm ), typeof( GiantSerpent ), typeof( IceSerpent ), typeof( IceSnake ), typeof( LavaSerpent ), typeof( LavaSnake ), typeof( SeaSerpent ), typeof( Serado ), typeof( SilverSerpent ), typeof( Snake ), typeof( Yamandon ) )
|
||||
|
|
|
|||
|
|
@ -207,7 +207,7 @@ namespace Server.Misc
|
|||
|
||||
Skills skills = from.Skills;
|
||||
|
||||
if ( !from.Player && ( skills.Total / skills.Cap ) >= Utility.RandomDouble() )//( skills.Total >= skills.Cap )
|
||||
if ( from.Player && ( skills.Total / skills.Cap ) >= Utility.RandomDouble() )//( skills.Total >= skills.Cap )
|
||||
{
|
||||
for ( int i = 0; i < skills.Length; ++i )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ namespace Server.Mobiles
|
|||
SetDex( 151, 170 );
|
||||
SetInt( 251, 282 );
|
||||
|
||||
SetDamage( 4, 5 );
|
||||
SetDamage( 21, 28 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 0 );
|
||||
SetDamageType( ResistanceType.Cold, 50 );
|
||||
|
|
@ -77,7 +77,7 @@ namespace Server.Mobiles
|
|||
Item pads = from.FindItemOnLayer( Layer.Shoes );
|
||||
|
||||
if ( pads is PadsOfTheCuSidhe )
|
||||
from.SendMessage( "Your boots allow you to mount the Cu Sidhe", null, 0x3B2 );
|
||||
from.SendLocalizedMessage( 1071981 ); // Your boots allow you to mount the Cu Sidhe.
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage( 1072203 ); // Only Elves may use this.
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ namespace Server.Mobiles
|
|||
SetHits( 751, 930 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 6, 7 );
|
||||
SetDamage( 18, 23 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ namespace Server.Mobiles
|
|||
|
||||
SetHits( 551, 650 );
|
||||
|
||||
SetDamage( 11, 13 );
|
||||
SetDamage( 21, 25 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 30 );
|
||||
SetDamageType( ResistanceType.Poison, 70 );
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ namespace Server.Mobiles
|
|||
SetHits( 1500 );
|
||||
SetStam( 150 );
|
||||
|
||||
SetDamage( 5, 6 );
|
||||
SetDamage( 16, 19 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 30 );
|
||||
SetDamageType( ResistanceType.Fire, 70 );
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ namespace Server.Mobiles
|
|||
|
||||
SetHits(304, 321);
|
||||
|
||||
SetDamage(6, 11);
|
||||
SetDamage(11, 20);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ namespace Server.Mobiles
|
|||
|
||||
SetHits(353, 399);
|
||||
|
||||
SetDamage(6, 11);
|
||||
SetDamage(13, 24);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ namespace Server.Mobiles
|
|||
|
||||
SetHits( 61, 69 );
|
||||
|
||||
SetDamage( 2, 21 );
|
||||
SetDamage( 4, 40 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ namespace Server.Mobiles
|
|||
|
||||
SetHits( 1170, 1320 );
|
||||
|
||||
SetDamage( 3, 4 ); // Estimate until Anat/Tactics is verified
|
||||
SetDamage( 26, 35 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ namespace Server.Mobiles
|
|||
|
||||
SetHits( 301, 340 );
|
||||
|
||||
SetDamage( 5, 8 );
|
||||
SetDamage( 11, 20 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ namespace Server.Mobiles
|
|||
|
||||
SetHits( 401, 440 );
|
||||
|
||||
SetDamage( 4, 7 );
|
||||
SetDamage( 11, 20 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ namespace Server.Mobiles
|
|||
|
||||
SetHits( 354, 383 );
|
||||
|
||||
SetDamage( 4, 7 );
|
||||
SetDamage( 11, 20 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ namespace Server.Mobiles
|
|||
|
||||
SetHits( 415, 445 );
|
||||
|
||||
SetDamage( 4, 7 );
|
||||
SetDamage( 13, 23 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 40 );
|
||||
SetDamageType( ResistanceType.Cold, 20 );
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ namespace Server.Mobiles
|
|||
|
||||
SetHits( 302, 340 );
|
||||
|
||||
SetDamage( 5, 6 );
|
||||
SetDamage( 11, 14 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
|
|
@ -48,7 +48,8 @@ namespace Server.Mobiles
|
|||
|
||||
}
|
||||
|
||||
public override bool CanHeal { get { return true; } }
|
||||
public override bool CanHeal { get { return true; } }
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich ); // Need to verify
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ namespace Server.Mobiles
|
|||
SetInt( 475, 675 );
|
||||
|
||||
SetHits( 1000, 2000 );
|
||||
SetStam( 120, 135 );
|
||||
SetStam( 120, 135 );
|
||||
|
||||
SetDamage( 24, 33 );
|
||||
|
||||
|
|
@ -33,11 +33,11 @@ namespace Server.Mobiles
|
|||
SetResistance( ResistanceType.Poison, 40, 60 );
|
||||
SetResistance( ResistanceType.Energy, 50, 75 );
|
||||
|
||||
SetSkill( SkillName.Meditation, 0 );
|
||||
SetSkill( SkillName.Meditation, 0 );
|
||||
SetSkill( SkillName.EvalInt, 110.0, 140.0 );
|
||||
SetSkill( SkillName.Magery, 110.0, 140.0 );
|
||||
SetSkill( SkillName.Poisoning, 0 );
|
||||
SetSkill( SkillName.Anatomy, 0 );
|
||||
SetSkill( SkillName.Poisoning, 0 );
|
||||
SetSkill( SkillName.Anatomy, 0 );
|
||||
SetSkill( SkillName.MagicResist, 110.0, 140.0 );
|
||||
SetSkill( SkillName.Tactics, 110.0, 140.0 );
|
||||
SetSkill( SkillName.Wrestling, 115.0, 145.0 );
|
||||
|
|
@ -90,11 +90,13 @@ namespace Server.Mobiles
|
|||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
|
||||
SetDamage( 24, 33 );
|
||||
|
||||
if( version == 0 )
|
||||
{
|
||||
Server.SkillHandlers.AnimalTaming.ScaleStats( this, 0.50 );
|
||||
Server.SkillHandlers.AnimalTaming.ScaleSkills( this, 0.80, 0.90 ); // 90% * 80% = 72% of original skills trainable to 90%
|
||||
Skills[25].Base = Skills[25].Cap; // Greater dragons have a 90% cap reduction and 90% skill reduction on magery
|
||||
Skills[SkillName.Magery].Base = Skills[SkillName.Magery].Cap; // Greater dragons have a 90% cap reduction and 90% skill reduction on magery
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ namespace Server.Mobiles
|
|||
}
|
||||
|
||||
public override bool AutoDispel{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
|
||||
public override void OnGotMeleeAttack( Mobile attacker )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -51,14 +51,7 @@ namespace Server.Mobiles
|
|||
|
||||
public override void OnThink()
|
||||
{
|
||||
bool expired;
|
||||
|
||||
expired = ( DateTime.Now >= m_ExpireTime );
|
||||
|
||||
if ( !expired && m_Owner != null )
|
||||
expired = m_Owner.Deleted || Map != m_Owner.Map || !InRange( m_Owner, 16 );
|
||||
|
||||
if ( expired )
|
||||
if ( m_Owner != null && ( DateTime.Now >= m_ExpireTime || m_Owner.Deleted || Map != m_Owner.Map || !InRange( m_Owner, 16 ) ) )
|
||||
{
|
||||
PlaySound( GetIdleSound() );
|
||||
Delete();
|
||||
|
|
|
|||
|
|
@ -1026,7 +1026,7 @@ namespace Server.Mobiles
|
|||
strBase = this.Str; //this.Str already includes GetStatOffset/str
|
||||
strOffs = AosAttributes.GetValue( this, AosAttribute.BonusHits );
|
||||
|
||||
if ( Core.ML && strOffs > 25 )
|
||||
if ( Core.ML && strOffs > 25 && AccessLevel <= AccessLevel.Player )
|
||||
strOffs = 25;
|
||||
|
||||
if ( AnimalForm.UnderTransformation( this, typeof( BakeKitsune ) ) || AnimalForm.UnderTransformation( this, typeof( GreyWolf ) ) )
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ namespace Server.Spells
|
|||
maxSkill += (1 + ((int)Circle / 6)) * 25;
|
||||
|
||||
if( m.Skills[SkillName.MagicResist].Value < maxSkill )
|
||||
m.CheckSkill( SkillName.MagicResist, 0.0, 120.0 );
|
||||
m.CheckSkill( SkillName.MagicResist, 0.0, m.Skills[SkillName.MagicResist].Cap );
|
||||
|
||||
return m.Skills[SkillName.MagicResist].Value;
|
||||
}
|
||||
|
|
@ -76,7 +76,7 @@ namespace Server.Spells
|
|||
maxSkill += (1 + ((int)Circle / 6)) * 25;
|
||||
|
||||
if( target.Skills[SkillName.MagicResist].Value < maxSkill )
|
||||
target.CheckSkill( SkillName.MagicResist, 0.0, 120.0 );
|
||||
target.CheckSkill( SkillName.MagicResist, 0.0, target.Skills[SkillName.MagicResist].Cap );
|
||||
|
||||
return (n >= Utility.RandomDouble());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -260,14 +260,14 @@ namespace Server.Spells
|
|||
|
||||
public virtual int GetDamageFixed( Mobile m )
|
||||
{
|
||||
m.CheckSkill( DamageSkill, 0.0, 120.0 );
|
||||
m.CheckSkill( DamageSkill, 0.0, m.Skills[DamageSkill].Cap );
|
||||
|
||||
return m.Skills[DamageSkill].Fixed;
|
||||
}
|
||||
|
||||
public virtual double GetDamageSkill( Mobile m )
|
||||
{
|
||||
m.CheckSkill( DamageSkill, 0.0, 120.0 );
|
||||
m.CheckSkill( DamageSkill, 0.0, m.Skills[DamageSkill].Cap );
|
||||
|
||||
return m.Skills[DamageSkill].Value;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ namespace Server.Spells.Necromancy
|
|||
{
|
||||
List<Mobile> targets = new List<Mobile>();
|
||||
|
||||
foreach ( Mobile m in Caster.GetMobilesInRange( 5 ) )
|
||||
foreach ( Mobile m in Caster.GetMobilesInRange( Core.ML ? 4 : 5 ) )
|
||||
if ( Caster != m && Caster.InLOS( m ) && SpellHelper.ValidIndirectTarget( Caster, m ) && Caster.CanBeHarmful( m, false ) )
|
||||
targets.Add( m );
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue