From bcdee05c6c3698f25ac9f16840f33a30f3c8e27a Mon Sep 17 00:00:00 2001 From: mark Date: Sun, 19 Jul 2009 05:13:25 +0000 Subject: [PATCH] --- Scripts/Engines/AI/AI/MageAI.cs | 14 ++--- Scripts/Engines/AI/Creature/BaseCreature.cs | 52 +----------------- Scripts/Engines/BulkOrders/LargeTailorBOD.cs | 2 +- Scripts/Items/Clothing/BaseClothing.cs | 2 +- Scripts/Items/Clothing/OuterTorso.cs | 42 +++++++++++++-- Scripts/Items/Clothing/Shoes.cs | 15 +++++- Scripts/Items/Clothing/Waist.cs | 12 +++++ .../Tailor Items/Dyetubs/DyeTub.cs | 2 +- .../Items/Skill Items/Tools/BaseRunicTool.cs | 2 + Scripts/Items/Weapons/Ranged/Bow.cs | 4 +- Scripts/Items/Weapons/Ranged/CompositeBow.cs | 2 +- Scripts/Items/Weapons/Ranged/Crossbow.cs | 2 +- Scripts/Items/Weapons/Ranged/HeavyCrossbow.cs | 4 +- .../Items/Weapons/Ranged/RepeatingCrossbow.cs | 2 +- Scripts/Items/Weapons/SE Weapons/Yumi.cs | 2 +- .../Mobiles/Monsters/Misc/Magic/ShadowWisp.cs | 1 - Scripts/Mobiles/Vendors/NPC/Monk.cs | 53 +++++++++++++++++++ Scripts/Mobiles/Vendors/SBInfo/SBMonk.cs | 34 ++++++++++++ Scripts/Spells/Chivalry/CleanseByFire.cs | 2 +- Scripts/Spells/Chivalry/RemoveCurse.cs | 2 +- Scripts/Spells/Chivalry/SacredJourney.cs | 2 +- Scripts/Spells/Eighth/EnergyVortex.cs | 2 +- Scripts/Spells/Fifth/BladeSpirits.cs | 2 +- Scripts/Spells/Fifth/DispelField.cs | 2 +- Scripts/Spells/Fifth/MindBlast.cs | 2 +- Scripts/Spells/Fifth/Paralyze.cs | 2 +- Scripts/Spells/Fifth/PoisonField.cs | 2 +- Scripts/Spells/First/Clumsy.cs | 2 +- Scripts/Spells/First/Feeblemind.cs | 2 +- Scripts/Spells/First/Heal.cs | 2 +- Scripts/Spells/First/MagicArrow.cs | 2 +- Scripts/Spells/First/Weaken.cs | 2 +- Scripts/Spells/Fourth/ArchCure.cs | 2 +- Scripts/Spells/Fourth/ArchProtection.cs | 2 +- Scripts/Spells/Fourth/Curse.cs | 2 +- Scripts/Spells/Fourth/FireField.cs | 2 +- Scripts/Spells/Fourth/GreaterHeal.cs | 2 +- Scripts/Spells/Fourth/Lightning.cs | 2 +- Scripts/Spells/Fourth/ManaDrain.cs | 2 +- Scripts/Spells/Fourth/Recall.cs | 2 +- Scripts/Spells/Necromancy/AnimateDeadSpell.cs | 2 +- Scripts/Spells/Necromancy/BloodOathSpell.cs | 16 ++++-- Scripts/Spells/Necromancy/CorpseSkin.cs | 2 +- Scripts/Spells/Necromancy/EvilOmen.cs | 2 +- Scripts/Spells/Necromancy/MindRot.cs | 2 +- Scripts/Spells/Necromancy/PainSpike.cs | 2 +- Scripts/Spells/Necromancy/PoisonStrike.cs | 2 +- Scripts/Spells/Necromancy/Strangle.cs | 2 +- Scripts/Spells/Necromancy/VengefulSpirit.cs | 2 +- Scripts/Spells/Ninjitsu/AnimalForm.cs | 25 +++++++-- Scripts/Spells/Second/Agility.cs | 2 +- Scripts/Spells/Second/Cunning.cs | 2 +- Scripts/Spells/Second/Cure.cs | 2 +- Scripts/Spells/Second/Harm.cs | 2 +- Scripts/Spells/Second/MagicTrap.cs | 2 +- Scripts/Spells/Second/RemoveTrap.cs | 2 +- Scripts/Spells/Second/Strength.cs | 2 +- Scripts/Spells/Seventh/ChainLightning.cs | 2 +- Scripts/Spells/Seventh/EnergyField.cs | 2 +- Scripts/Spells/Seventh/FlameStrike.cs | 2 +- Scripts/Spells/Seventh/ManaVampire.cs | 2 +- Scripts/Spells/Seventh/MassDispel.cs | 2 +- Scripts/Spells/Seventh/MeteorSwarm.cs | 2 +- Scripts/Spells/Sixth/Dispel.cs | 2 +- Scripts/Spells/Sixth/EnergyBolt.cs | 2 +- Scripts/Spells/Sixth/Explosion.cs | 2 +- Scripts/Spells/Sixth/Invisibility.cs | 2 +- Scripts/Spells/Sixth/Mark.cs | 2 +- Scripts/Spells/Sixth/MassCurse.cs | 2 +- Scripts/Spells/Sixth/ParalyzeField.cs | 2 +- Scripts/Spells/Sixth/Reveal.cs | 2 +- Scripts/Spells/Spellweaving/GiftOfLife.cs | 2 +- Scripts/Spells/Spellweaving/GiftOfRenewal.cs | 2 +- Scripts/Spells/Spellweaving/NatureFury.cs | 2 +- Scripts/Spells/Spellweaving/WordOfDeath.cs | 2 +- Scripts/Spells/Third/Bless.cs | 2 +- Scripts/Spells/Third/Fireball.cs | 2 +- Scripts/Spells/Third/MagicLock.cs | 2 +- Scripts/Spells/Third/Poison.cs | 2 +- Scripts/Spells/Third/Telekinesis.cs | 2 +- Scripts/Spells/Third/Teleport.cs | 2 +- Scripts/Spells/Third/Unlock.cs | 2 +- Scripts/Spells/Third/WallOfStone.cs | 2 +- 83 files changed, 268 insertions(+), 146 deletions(-) create mode 100644 Scripts/Mobiles/Vendors/NPC/Monk.cs create mode 100644 Scripts/Mobiles/Vendors/SBInfo/SBMonk.cs diff --git a/Scripts/Engines/AI/AI/MageAI.cs b/Scripts/Engines/AI/AI/MageAI.cs index c1cd92359..648c8e918 100644 --- a/Scripts/Engines/AI/AI/MageAI.cs +++ b/Scripts/Engines/AI/AI/MageAI.cs @@ -582,7 +582,7 @@ namespace Server.Mobiles } } - if ( m_Mobile.Spell == null && DateTime.Now > m_NextCastTime && m_Mobile.InRange( c, 12 ) ) + if ( m_Mobile.Spell == null && DateTime.Now > m_NextCastTime && m_Mobile.InRange( c, Core.ML ? 10 : 12 ) ) { // We are ready to cast a spell @@ -621,7 +621,7 @@ namespace Server.Mobiles { if ( m_Mobile.InRange( toDispel, 10 ) ) RunFrom( toDispel ); - else if ( !m_Mobile.InRange( toDispel, 12 ) ) + else if ( !m_Mobile.InRange( toDispel, Core.ML ? 10 : 12 ) ) RunTo( toDispel ); } else @@ -722,7 +722,7 @@ namespace Server.Mobiles Mobile comb = m_Mobile.Combatant; - if ( comb != null && !comb.Deleted && comb.Alive && !comb.IsDeadBondedPet && m_Mobile.InRange( comb, 12 ) && CanDispel( comb ) ) + if ( comb != null && !comb.Deleted && comb.Alive && !comb.IsDeadBondedPet && m_Mobile.InRange( comb, Core.ML ? 10 : 12 ) && CanDispel( comb ) ) { active = comb; activePrio = m_Mobile.GetDistanceToSqrt( comb ); @@ -736,7 +736,7 @@ namespace Server.Mobiles AggressorInfo info = aggressed[i]; Mobile m = info.Defender; - if ( m != comb && m.Combatant == m_Mobile && m_Mobile.InRange( m, 12 ) && CanDispel( m ) ) + if ( m != comb && m.Combatant == m_Mobile && m_Mobile.InRange( m, Core.ML ? 10 : 12 ) && CanDispel( m ) ) { double prio = m_Mobile.GetDistanceToSqrt( m ); @@ -756,7 +756,7 @@ namespace Server.Mobiles AggressorInfo info = aggressors[i]; Mobile m = info.Attacker; - if ( m != comb && m.Combatant == m_Mobile && m_Mobile.InRange( m, 12 ) && CanDispel( m ) ) + if ( m != comb && m.Combatant == m_Mobile && m_Mobile.InRange( m, Core.ML ? 10 : 12 ) && CanDispel( m ) ) { double prio = m_Mobile.GetDistanceToSqrt( m ); @@ -790,7 +790,7 @@ namespace Server.Mobiles actPrio = inactPrio = m_Mobile.GetDistanceToSqrt( comb ); } - foreach ( Mobile m in m_Mobile.GetMobilesInRange( 12 ) ) + foreach ( Mobile m in m_Mobile.GetMobilesInRange( Core.ML ? 10 : 12 ) ) { if ( m != m_Mobile && CanDispel( m ) ) { @@ -964,7 +964,7 @@ namespace Server.Mobiles int teleRange = targ.Range; if ( teleRange < 0 ) - teleRange = 12; + teleRange = Core.ML ? 11 : 12; for ( int i = 0; i < 10; ++i ) { diff --git a/Scripts/Engines/AI/Creature/BaseCreature.cs b/Scripts/Engines/AI/Creature/BaseCreature.cs index 10273b697..e41974b95 100644 --- a/Scripts/Engines/AI/Creature/BaseCreature.cs +++ b/Scripts/Engines/AI/Creature/BaseCreature.cs @@ -242,8 +242,6 @@ namespace Server.Mobiles private bool m_IsPrisoner; - private Timer m_GhostDeletionTimer; - #endregion public virtual InhumanSpeech SpeechType{ get{ return null; } } @@ -251,11 +249,7 @@ namespace Server.Mobiles public bool IsStabled { get{ return m_IsStabled; } - set - { - m_IsStabled = value; - SetGhostDeletionTimer( !m_IsStabled ); - } + set{ m_IsStabled = value; } } [CommandProperty( AccessLevel.GameMaster )] @@ -1732,8 +1726,6 @@ namespace Server.Mobiles if ( IsAnimatedDead ) Spells.Necromancy.AnimateDeadSpell.Register( m_SummonMaster, this ); - - SetGhostDeletionTimer( true ); } public virtual bool IsHumanInTown() @@ -1930,7 +1922,7 @@ namespace Server.Mobiles if ( master != null && master == from ) //So friends can't start the bonding process { - if ( m_dMinTameSkill <= 29.1 || master.Skills[SkillName.AnimalTaming].Base >= m_dMinTameSkill || GetControlChance( master, true ) >= 1.0 ) + if ( m_dMinTameSkill <= 29.1 || master.Skills[SkillName.AnimalTaming].Base >= m_dMinTameSkill || ( this is LesserHiryu && master.Skills[SkillName.Bushido].Base >= 90.0 ) ) { if ( BondingBegin == DateTime.MinValue ) { @@ -4260,8 +4252,6 @@ namespace Server.Mobiles GiftOfLifeSpell.HandleDeath( this ); CheckStatTimers(); - - SetGhostDeletionTimer( true ); } else { @@ -4881,26 +4871,8 @@ namespace Server.Mobiles } CheckStatTimers(); - - SetGhostDeletionTimer( false ); } - private void SetGhostDeletionTimer( bool running ) - { - if( running && ( !IsDeadBondedPet || !Core.ML ) ) - return; - - if( m_GhostDeletionTimer != null ) - m_GhostDeletionTimer.Stop(); - - if( !running ) - return; - - m_GhostDeletionTimer = new GhostDeletionTimer( this, TimeSpan.FromMinutes( 120 + Utility.Random( 120 ) ) ); - m_GhostDeletionTimer.Start(); - } - - public override bool CanBeDamaged() { if ( IsDeadPet ) @@ -4937,26 +4909,6 @@ namespace Server.Mobiles [CommandProperty( AccessLevel.GameMaster )] public int RemoveStep { get { return m_RemoveStep; } set { m_RemoveStep = value; } } - - private class GhostDeletionTimer : Timer - { - private BaseCreature m_Creature; - - public GhostDeletionTimer( BaseCreature Creature, TimeSpan delay ) : base( delay ) - { - Priority = TimerPriority.FiveSeconds; - m_Creature = Creature; - } - - protected override void OnTick() - { - if( Core.ML && m_Creature.IsDeadBondedPet ) - { - m_Creature.Delete(); - } - Stop(); - } - } } public class LoyaltyTimer : Timer diff --git a/Scripts/Engines/BulkOrders/LargeTailorBOD.cs b/Scripts/Engines/BulkOrders/LargeTailorBOD.cs index 480925411..e7b8dd515 100644 --- a/Scripts/Engines/BulkOrders/LargeTailorBOD.cs +++ b/Scripts/Engines/BulkOrders/LargeTailorBOD.cs @@ -45,7 +45,7 @@ namespace Server.Engines.BulkOrders case 6: entries = LargeBulkEntry.ConvertEntries( this, LargeBulkEntry.Lady ); break; case 7: entries = LargeBulkEntry.ConvertEntries( this, LargeBulkEntry.MaleLeatherSet ); useMaterials = true; break; case 8: entries = LargeBulkEntry.ConvertEntries( this, LargeBulkEntry.Pirate ); break; - case 9: entries = LargeBulkEntry.ConvertEntries( this, LargeBulkEntry.ShoeSet ); break; + case 9: entries = LargeBulkEntry.ConvertEntries( this, LargeBulkEntry.ShoeSet ); useMaterials = Core.ML; break; case 10: entries = LargeBulkEntry.ConvertEntries( this, LargeBulkEntry.StuddedSet ); useMaterials = true; break; case 11: entries = LargeBulkEntry.ConvertEntries( this, LargeBulkEntry.TownCrier ); break; case 12: entries = LargeBulkEntry.ConvertEntries( this, LargeBulkEntry.Wizard ); break; diff --git a/Scripts/Items/Clothing/BaseClothing.cs b/Scripts/Items/Clothing/BaseClothing.cs index 99c97af07..1412fae4d 100644 --- a/Scripts/Items/Clothing/BaseClothing.cs +++ b/Scripts/Items/Clothing/BaseClothing.cs @@ -913,7 +913,7 @@ namespace Server.Items return true; } - public bool Scissor( Mobile from, Scissors scissors ) + public virtual bool Scissor( Mobile from, Scissors scissors ) { if ( !IsChildOf( from.Backpack ) ) { diff --git a/Scripts/Items/Clothing/OuterTorso.cs b/Scripts/Items/Clothing/OuterTorso.cs index e3451ac54..bfd452f43 100644 --- a/Scripts/Items/Clothing/OuterTorso.cs +++ b/Scripts/Items/Clothing/OuterTorso.cs @@ -510,6 +510,44 @@ namespace Server.Items } } + public class MonkRobe : BaseOuterTorso + { + [Constructable] + public MonkRobe() : this( 0x21E ) + { + } + + [Constructable] + public MonkRobe( int hue ) : base( 0x2687, hue ) + { + Weight = 1.0; + StrRequirement = 0; + } + public override int LabelNumber{ get{ return 1076584; } } // A monk's robe + public override bool CanBeBlessed { get { return false; } } + public override bool Dye( Mobile from, DyeTub sender ) + { + from.SendLocalizedMessage( sender.FailMessage ); + return false; + } + public MonkRobe( Serial serial ) : base( serial ) + { + } + public override void Serialize( GenericWriter writer ) + { + base.Serialize( writer ); + + writer.Write( (int) 0 ); // version + } + + public override void Deserialize( GenericReader reader ) + { + base.Deserialize( reader ); + + int version = reader.ReadInt(); + } + } + [Flipable( 0x2684, 0x2683 )] public class HoodedShroudOfShadows : BaseOuterTorso { @@ -725,7 +763,6 @@ namespace Server.Items [Flipable( 0x2FB9, 0x3173 )] public class MaleElvenRobe : BaseOuterTorso { - // TODO: Supports arcane? public override Race RequiredRace { get { return Race.Elf; } } [Constructable] @@ -739,8 +776,6 @@ namespace Server.Items Weight = 2.0; } - public override bool AllowFemaleWearer{ get{ return false; } } - public MaleElvenRobe( Serial serial ) : base( serial ) { } @@ -763,7 +798,6 @@ namespace Server.Items [Flipable( 0x2FBA, 0x3174 )] public class FemaleElvenRobe : BaseOuterTorso { - // TODO: Supports arcane? public override Race RequiredRace { get { return Race.Elf; } } [Constructable] public FemaleElvenRobe() : this( 0 ) diff --git a/Scripts/Items/Clothing/Shoes.cs b/Scripts/Items/Clothing/Shoes.cs index 5b77f15ae..f25f392ab 100644 --- a/Scripts/Items/Clothing/Shoes.cs +++ b/Scripts/Items/Clothing/Shoes.cs @@ -16,6 +16,15 @@ namespace Server.Items { } + public override bool Scissor( Mobile from, Scissors scissors ) + { + if( DefaultResource == CraftResource.None ) + return base.Scissor( from, scissors ); + + from.SendLocalizedMessage( 502440 ); // Scissors can not be used on that to produce anything. + return false; + } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -293,7 +302,6 @@ namespace Server.Items public override bool Dye( Mobile from, DyeTub sender ) { - from.SendLocalizedMessage( sender.FailMessage ); return false; } @@ -433,6 +441,11 @@ namespace Server.Items { } + public override bool Dye( Mobile from, DyeTub sender ) + { + return false; + } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); diff --git a/Scripts/Items/Clothing/Waist.cs b/Scripts/Items/Clothing/Waist.cs index 289a5436a..5e2d7bb2e 100644 --- a/Scripts/Items/Clothing/Waist.cs +++ b/Scripts/Items/Clothing/Waist.cs @@ -118,6 +118,18 @@ namespace Server.Items { } + public override bool Dye( Mobile from, DyeTub sender ) + { + from.SendLocalizedMessage( sender.FailMessage ); + return false; + } + + public override bool Scissor( Mobile from, Scissors scissors ) + { + from.SendLocalizedMessage( 502440 ); // Scissors can not be used on that to produce anything. + return false; + } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); diff --git a/Scripts/Items/Skill Items/Tailor Items/Dyetubs/DyeTub.cs b/Scripts/Items/Skill Items/Tailor Items/Dyetubs/DyeTub.cs index 76904c46d..90180be9b 100644 --- a/Scripts/Items/Skill Items/Tailor Items/Dyetubs/DyeTub.cs +++ b/Scripts/Items/Skill Items/Tailor Items/Dyetubs/DyeTub.cs @@ -222,7 +222,7 @@ namespace Server.Items from.PlaySound( 0x23E ); } } - else if ( (item is BaseArmor && (((BaseArmor)item).MaterialType == ArmorMaterialType.Leather || ((BaseArmor)item).MaterialType == ArmorMaterialType.Studded)) && m_Tub.AllowLeather ) + else if ( (item is BaseArmor && (((BaseArmor)item).MaterialType == ArmorMaterialType.Leather || ((BaseArmor)item).MaterialType == ArmorMaterialType.Studded) || item is ElvenBoots) && m_Tub.AllowLeather ) { if ( !from.InRange( m_Tub.GetWorldLocation(), 1 ) || !from.InRange( item.GetWorldLocation(), 1 ) ) { diff --git a/Scripts/Items/Skill Items/Tools/BaseRunicTool.cs b/Scripts/Items/Skill Items/Tools/BaseRunicTool.cs index 755ab714c..d042d8dc0 100644 --- a/Scripts/Items/Skill Items/Tools/BaseRunicTool.cs +++ b/Scripts/Items/Skill Items/Tools/BaseRunicTool.cs @@ -477,6 +477,8 @@ namespace Server.Items m_Props.Set( 3, true ); // remove mage armor from possible properties if ( armor.Resource >= CraftResource.RegularLeather && armor.Resource <= CraftResource.BarbedLeather ) m_Props.Set( 0, true ); // remove lower requirements from possible properties for leather armor + if ( armor.RequiredRace == Race.Elf ) + m_Props.Set( 7, true ); // elves inherently have night sight and elf only armor doesn't get night sight as a mod for ( int i = 0; i < attributeCount; ++i ) { diff --git a/Scripts/Items/Weapons/Ranged/Bow.cs b/Scripts/Items/Weapons/Ranged/Bow.cs index 99d676eb1..5199b1cb7 100644 --- a/Scripts/Items/Weapons/Ranged/Bow.cs +++ b/Scripts/Items/Weapons/Ranged/Bow.cs @@ -15,8 +15,8 @@ namespace Server.Items public override WeaponAbility SecondaryAbility{ get{ return WeaponAbility.MortalStrike; } } public override int AosStrengthReq{ get{ return 30; } } - public override int AosMinDamage{ get{ return 16; } } - public override int AosMaxDamage{ get{ return 18; } } + public override int AosMinDamage{ get{ return Core.ML ? 15 : 16; } } + public override int AosMaxDamage{ get{ return Core.ML ? 19 : 18; } } public override int AosSpeed{ get{ return 25; } } public override int OldStrengthReq{ get{ return 20; } } diff --git a/Scripts/Items/Weapons/Ranged/CompositeBow.cs b/Scripts/Items/Weapons/Ranged/CompositeBow.cs index 0bc7c448c..bb68a485a 100644 --- a/Scripts/Items/Weapons/Ranged/CompositeBow.cs +++ b/Scripts/Items/Weapons/Ranged/CompositeBow.cs @@ -15,7 +15,7 @@ namespace Server.Items public override WeaponAbility SecondaryAbility{ get{ return WeaponAbility.MovingShot; } } public override int AosStrengthReq{ get{ return 45; } } - public override int AosMinDamage{ get{ return 15; } } + public override int AosMinDamage{ get{ return Core.ML ? 13 : 15; } } public override int AosMaxDamage{ get{ return 17; } } public override int AosSpeed{ get{ return 25; } } diff --git a/Scripts/Items/Weapons/Ranged/Crossbow.cs b/Scripts/Items/Weapons/Ranged/Crossbow.cs index 65c09c9f0..7d1298396 100644 --- a/Scripts/Items/Weapons/Ranged/Crossbow.cs +++ b/Scripts/Items/Weapons/Ranged/Crossbow.cs @@ -16,7 +16,7 @@ namespace Server.Items public override int AosStrengthReq{ get{ return 35; } } public override int AosMinDamage{ get{ return 18; } } - public override int AosMaxDamage{ get{ return 20; } } + public override int AosMaxDamage{ get{ return Core.ML ? 22 : 20; } } public override int AosSpeed{ get{ return 24; } } public override int OldStrengthReq{ get{ return 30; } } diff --git a/Scripts/Items/Weapons/Ranged/HeavyCrossbow.cs b/Scripts/Items/Weapons/Ranged/HeavyCrossbow.cs index 5f594f329..5093eea0e 100644 --- a/Scripts/Items/Weapons/Ranged/HeavyCrossbow.cs +++ b/Scripts/Items/Weapons/Ranged/HeavyCrossbow.cs @@ -15,8 +15,8 @@ namespace Server.Items public override WeaponAbility SecondaryAbility{ get{ return WeaponAbility.Dismount; } } public override int AosStrengthReq{ get{ return 80; } } - public override int AosMinDamage{ get{ return 19; } } - public override int AosMaxDamage{ get{ return 20; } } + public override int AosMinDamage{ get{ return Core.ML ? 20 : 19; } } + public override int AosMaxDamage{ get{ return Core.ML ? 24 : 20; } } public override int AosSpeed{ get{ return 22; } } public override int OldStrengthReq{ get{ return 40; } } diff --git a/Scripts/Items/Weapons/Ranged/RepeatingCrossbow.cs b/Scripts/Items/Weapons/Ranged/RepeatingCrossbow.cs index 9bf190a96..c89c7c2d5 100644 --- a/Scripts/Items/Weapons/Ranged/RepeatingCrossbow.cs +++ b/Scripts/Items/Weapons/Ranged/RepeatingCrossbow.cs @@ -15,7 +15,7 @@ namespace Server.Items public override WeaponAbility SecondaryAbility{ get{ return WeaponAbility.MovingShot; } } public override int AosStrengthReq{ get{ return 30; } } - public override int AosMinDamage{ get{ return 10; } } + public override int AosMinDamage{ get{ return Core.ML ? 8 : 10; } } public override int AosMaxDamage{ get{ return 12; } } public override int AosSpeed{ get{ return 41; } } diff --git a/Scripts/Items/Weapons/SE Weapons/Yumi.cs b/Scripts/Items/Weapons/SE Weapons/Yumi.cs index 278c3120e..9818425f8 100644 --- a/Scripts/Items/Weapons/SE Weapons/Yumi.cs +++ b/Scripts/Items/Weapons/SE Weapons/Yumi.cs @@ -15,7 +15,7 @@ namespace Server.Items public override WeaponAbility SecondaryAbility{ get{ return WeaponAbility.DoubleShot; } } public override int AosStrengthReq{ get{ return 35; } } - public override int AosMinDamage{ get{ return 18; } } + public override int AosMinDamage{ get{ return Core.ML ? 16 : 18; } } public override int AosMaxDamage{ get{ return 20; } } public override int AosSpeed{ get{ return 25; } } diff --git a/Scripts/Mobiles/Monsters/Misc/Magic/ShadowWisp.cs b/Scripts/Mobiles/Monsters/Misc/Magic/ShadowWisp.cs index 78a17294e..774ab657e 100644 --- a/Scripts/Mobiles/Monsters/Misc/Magic/ShadowWisp.cs +++ b/Scripts/Mobiles/Monsters/Misc/Magic/ShadowWisp.cs @@ -37,7 +37,6 @@ namespace Server.Mobiles SetSkill( SkillName.Wrestling, 25.1, 40.0 ); Fame = 500; - Karma = -500; VirtualArmor = 18; diff --git a/Scripts/Mobiles/Vendors/NPC/Monk.cs b/Scripts/Mobiles/Vendors/NPC/Monk.cs new file mode 100644 index 000000000..3ebc20a94 --- /dev/null +++ b/Scripts/Mobiles/Vendors/NPC/Monk.cs @@ -0,0 +1,53 @@ + +using System; +using System.Collections; +using Server; +using Server.Items; + +namespace Server.Mobiles +{ + public class Monk : BaseVendor + { + private ArrayList m_SBInfos = new ArrayList(); + protected override ArrayList SBInfos{ get { return m_SBInfos; } } + + [Constructable] + public Monk() : base( "the Monk" ) + { + SetSkill( SkillName.EvalInt, 100.0 ); + SetSkill( SkillName.Tactics, 70.0, 90.0 ); + SetSkill( SkillName.Wrestling, 70.0, 90.0 ); + SetSkill( SkillName.MagicResist, 70.0, 90.0 ); + SetSkill( SkillName.Macing, 70.0, 90.0 ); + } + + public override void InitSBInfo() + { + m_SBInfos.Add( new SBMonk() ); + } + public override void InitOutfit() + { + AddItem( new Sandals() ); + AddItem( new MonkRobe() ); + } + + public Monk( Serial serial ) : base( serial ) + { + } + + public override void Serialize( GenericWriter writer ) + { + base.Serialize( writer ); + + writer.Write( (int) 0 ); // version + } + + public override void Deserialize( GenericReader reader ) + { + base.Deserialize( reader ); + + int version = reader.ReadInt(); + } + + } +} diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBMonk.cs b/Scripts/Mobiles/Vendors/SBInfo/SBMonk.cs new file mode 100644 index 000000000..254dfd9f8 --- /dev/null +++ b/Scripts/Mobiles/Vendors/SBInfo/SBMonk.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections; +using Server.Items; + +namespace Server.Mobiles +{ + public class SBMonk : SBInfo + { + private ArrayList m_BuyInfo = new InternalBuyInfo(); + private IShopSellInfo m_SellInfo = new InternalSellInfo(); + + public SBMonk() + { + } + + public override IShopSellInfo SellInfo { get { return m_SellInfo; } } + public override ArrayList BuyInfo { get { return m_BuyInfo; } } + + public class InternalBuyInfo : ArrayList + { + public InternalBuyInfo() + { + Add( new GenericBuyInfo( typeof( MonkRobe ), 136, 20, 0x2687, 0x21E ) ); + } + } + + public class InternalSellInfo : GenericSellInfo + { + public InternalSellInfo() + { + } + } + } +} diff --git a/Scripts/Spells/Chivalry/CleanseByFire.cs b/Scripts/Spells/Chivalry/CleanseByFire.cs index 1e9831558..9059ff72c 100644 --- a/Scripts/Spells/Chivalry/CleanseByFire.cs +++ b/Scripts/Spells/Chivalry/CleanseByFire.cs @@ -96,7 +96,7 @@ namespace Server.Spells.Chivalry { private CleanseByFireSpell m_Owner; - public InternalTarget( CleanseByFireSpell owner ) : base( 12, false, TargetFlags.Beneficial ) + public InternalTarget( CleanseByFireSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Beneficial ) { m_Owner = owner; } diff --git a/Scripts/Spells/Chivalry/RemoveCurse.cs b/Scripts/Spells/Chivalry/RemoveCurse.cs index fb16378dc..7024d3bb5 100644 --- a/Scripts/Spells/Chivalry/RemoveCurse.cs +++ b/Scripts/Spells/Chivalry/RemoveCurse.cs @@ -112,7 +112,7 @@ namespace Server.Spells.Chivalry { private RemoveCurseSpell m_Owner; - public InternalTarget( RemoveCurseSpell owner ) : base( 12, false, TargetFlags.Beneficial ) + public InternalTarget( RemoveCurseSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Beneficial ) { m_Owner = owner; } diff --git a/Scripts/Spells/Chivalry/SacredJourney.cs b/Scripts/Spells/Chivalry/SacredJourney.cs index 66e3d0406..10e1df2f8 100644 --- a/Scripts/Spells/Chivalry/SacredJourney.cs +++ b/Scripts/Spells/Chivalry/SacredJourney.cs @@ -141,7 +141,7 @@ namespace Server.Spells.Chivalry { private SacredJourneySpell m_Owner; - public InternalTarget( SacredJourneySpell owner ) : base( 12, false, TargetFlags.None ) + public InternalTarget( SacredJourneySpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Eighth/EnergyVortex.cs b/Scripts/Spells/Eighth/EnergyVortex.cs index 69b3d0060..465c52802 100644 --- a/Scripts/Spells/Eighth/EnergyVortex.cs +++ b/Scripts/Spells/Eighth/EnergyVortex.cs @@ -72,7 +72,7 @@ namespace Server.Spells.Eighth { private EnergyVortexSpell m_Owner; - public InternalTarget( EnergyVortexSpell owner ) : base( 12, true, TargetFlags.None ) + public InternalTarget( EnergyVortexSpell owner ) : base( Core.ML ? 10 : 12, true, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Fifth/BladeSpirits.cs b/Scripts/Spells/Fifth/BladeSpirits.cs index 92b17236c..3afdf4df6 100644 --- a/Scripts/Spells/Fifth/BladeSpirits.cs +++ b/Scripts/Spells/Fifth/BladeSpirits.cs @@ -79,7 +79,7 @@ namespace Server.Spells.Fifth { private BladeSpiritsSpell m_Owner; - public InternalTarget( BladeSpiritsSpell owner ) : base( 12, true, TargetFlags.None ) + public InternalTarget( BladeSpiritsSpell owner ) : base( Core.ML ? 10 : 12, true, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Fifth/DispelField.cs b/Scripts/Spells/Fifth/DispelField.cs index 361f3db4c..b357a7074 100644 --- a/Scripts/Spells/Fifth/DispelField.cs +++ b/Scripts/Spells/Fifth/DispelField.cs @@ -62,7 +62,7 @@ namespace Server.Spells.Fifth { private DispelFieldSpell m_Owner; - public InternalTarget( DispelFieldSpell owner ) : base( 12, false, TargetFlags.None ) + public InternalTarget( DispelFieldSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Fifth/MindBlast.cs b/Scripts/Spells/Fifth/MindBlast.cs index f7ab401ad..248f6b8eb 100644 --- a/Scripts/Spells/Fifth/MindBlast.cs +++ b/Scripts/Spells/Fifth/MindBlast.cs @@ -135,7 +135,7 @@ namespace Server.Spells.Fifth { private MindBlastSpell m_Owner; - public InternalTarget( MindBlastSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( MindBlastSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Fifth/Paralyze.cs b/Scripts/Spells/Fifth/Paralyze.cs index 0498b1bf4..1349a8482 100644 --- a/Scripts/Spells/Fifth/Paralyze.cs +++ b/Scripts/Spells/Fifth/Paralyze.cs @@ -82,7 +82,7 @@ namespace Server.Spells.Fifth { private ParalyzeSpell m_Owner; - public InternalTarget( ParalyzeSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( ParalyzeSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Fifth/PoisonField.cs b/Scripts/Spells/Fifth/PoisonField.cs index d7f1f8ad9..3be55cee6 100644 --- a/Scripts/Spells/Fifth/PoisonField.cs +++ b/Scripts/Spells/Fifth/PoisonField.cs @@ -275,7 +275,7 @@ namespace Server.Spells.Fifth { private PoisonFieldSpell m_Owner; - public InternalTarget( PoisonFieldSpell owner ) : base( 12, true, TargetFlags.None ) + public InternalTarget( PoisonFieldSpell owner ) : base( Core.ML ? 10 : 12, true, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/First/Clumsy.cs b/Scripts/Spells/First/Clumsy.cs index 5230efed8..91cb54c81 100644 --- a/Scripts/Spells/First/Clumsy.cs +++ b/Scripts/Spells/First/Clumsy.cs @@ -60,7 +60,7 @@ namespace Server.Spells.First { private ClumsySpell m_Owner; - public InternalTarget( ClumsySpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( ClumsySpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/First/Feeblemind.cs b/Scripts/Spells/First/Feeblemind.cs index 309cef4a4..91fe3ed54 100644 --- a/Scripts/Spells/First/Feeblemind.cs +++ b/Scripts/Spells/First/Feeblemind.cs @@ -60,7 +60,7 @@ namespace Server.Spells.First { private FeeblemindSpell m_Owner; - public InternalTarget( FeeblemindSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( FeeblemindSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/First/Heal.cs b/Scripts/Spells/First/Heal.cs index 161fdd927..70a42440c 100644 --- a/Scripts/Spells/First/Heal.cs +++ b/Scripts/Spells/First/Heal.cs @@ -84,7 +84,7 @@ namespace Server.Spells.First { private HealSpell m_Owner; - public InternalTarget( HealSpell owner ) : base( 12, false, TargetFlags.Beneficial ) + public InternalTarget( HealSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Beneficial ) { m_Owner = owner; } diff --git a/Scripts/Spells/First/MagicArrow.cs b/Scripts/Spells/First/MagicArrow.cs index 036194e68..61809e51c 100644 --- a/Scripts/Spells/First/MagicArrow.cs +++ b/Scripts/Spells/First/MagicArrow.cs @@ -75,7 +75,7 @@ namespace Server.Spells.First { private MagicArrowSpell m_Owner; - public InternalTarget( MagicArrowSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( MagicArrowSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/First/Weaken.cs b/Scripts/Spells/First/Weaken.cs index c1ced57ec..f451dc479 100644 --- a/Scripts/Spells/First/Weaken.cs +++ b/Scripts/Spells/First/Weaken.cs @@ -60,7 +60,7 @@ namespace Server.Spells.First { private WeakenSpell m_Owner; - public InternalTarget( WeakenSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( WeakenSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Fourth/ArchCure.cs b/Scripts/Spells/Fourth/ArchCure.cs index 16214ba87..ada762125 100644 --- a/Scripts/Spells/Fourth/ArchCure.cs +++ b/Scripts/Spells/Fourth/ArchCure.cs @@ -123,7 +123,7 @@ namespace Server.Spells.Fourth { private ArchCureSpell m_Owner; - public InternalTarget( ArchCureSpell owner ) : base( 12, true, TargetFlags.None ) + public InternalTarget( ArchCureSpell owner ) : base( Core.ML ? 10 : 12, true, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Fourth/ArchProtection.cs b/Scripts/Spells/Fourth/ArchProtection.cs index 0547142c0..4e412046d 100644 --- a/Scripts/Spells/Fourth/ArchProtection.cs +++ b/Scripts/Spells/Fourth/ArchProtection.cs @@ -133,7 +133,7 @@ namespace Server.Spells.Fourth { private ArchProtectionSpell m_Owner; - public InternalTarget( ArchProtectionSpell owner ) : base( 12, true, TargetFlags.None ) + public InternalTarget( ArchProtectionSpell owner ) : base( Core.ML ? 10 : 12, true, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Fourth/Curse.cs b/Scripts/Spells/Fourth/Curse.cs index a518c65c9..df4fcc479 100644 --- a/Scripts/Spells/Fourth/Curse.cs +++ b/Scripts/Spells/Fourth/Curse.cs @@ -91,7 +91,7 @@ namespace Server.Spells.Fourth { private CurseSpell m_Owner; - public InternalTarget( CurseSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( CurseSpell owner ) : base( Core.ML? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Fourth/FireField.cs b/Scripts/Spells/Fourth/FireField.cs index ab95cdfbc..edd2a06f3 100644 --- a/Scripts/Spells/Fourth/FireField.cs +++ b/Scripts/Spells/Fourth/FireField.cs @@ -282,7 +282,7 @@ namespace Server.Spells.Fourth { private FireFieldSpell m_Owner; - public InternalTarget( FireFieldSpell owner ) : base( 12, true, TargetFlags.None ) + public InternalTarget( FireFieldSpell owner ) : base( Core.ML ? 10 : 12, true, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Fourth/GreaterHeal.cs b/Scripts/Spells/Fourth/GreaterHeal.cs index 9ccd7480c..d54d7e533 100644 --- a/Scripts/Spells/Fourth/GreaterHeal.cs +++ b/Scripts/Spells/Fourth/GreaterHeal.cs @@ -74,7 +74,7 @@ namespace Server.Spells.Fourth { private GreaterHealSpell m_Owner; - public InternalTarget( GreaterHealSpell owner ) : base( 12, false, TargetFlags.Beneficial ) + public InternalTarget( GreaterHealSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Beneficial ) { m_Owner = owner; } diff --git a/Scripts/Spells/Fourth/Lightning.cs b/Scripts/Spells/Fourth/Lightning.cs index 1eeb113d1..054a29805 100644 --- a/Scripts/Spells/Fourth/Lightning.cs +++ b/Scripts/Spells/Fourth/Lightning.cs @@ -71,7 +71,7 @@ namespace Server.Spells.Fourth { private LightningSpell m_Owner; - public InternalTarget( LightningSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( LightningSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Fourth/ManaDrain.cs b/Scripts/Spells/Fourth/ManaDrain.cs index bb18fdb26..dd90acf05 100644 --- a/Scripts/Spells/Fourth/ManaDrain.cs +++ b/Scripts/Spells/Fourth/ManaDrain.cs @@ -112,7 +112,7 @@ namespace Server.Spells.Fourth { private ManaDrainSpell m_Owner; - public InternalTarget( ManaDrainSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( ManaDrainSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Fourth/Recall.cs b/Scripts/Spells/Fourth/Recall.cs index ec48954ed..24df44f3b 100644 --- a/Scripts/Spells/Fourth/Recall.cs +++ b/Scripts/Spells/Fourth/Recall.cs @@ -146,7 +146,7 @@ namespace Server.Spells.Fourth { private RecallSpell m_Owner; - public InternalTarget( RecallSpell owner ) : base( 12, false, TargetFlags.None ) + public InternalTarget( RecallSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.None ) { m_Owner = owner; diff --git a/Scripts/Spells/Necromancy/AnimateDeadSpell.cs b/Scripts/Spells/Necromancy/AnimateDeadSpell.cs index a2d12dfcc..33ce9e5cb 100644 --- a/Scripts/Spells/Necromancy/AnimateDeadSpell.cs +++ b/Scripts/Spells/Necromancy/AnimateDeadSpell.cs @@ -403,7 +403,7 @@ namespace Server.Spells.Necromancy { private AnimateDeadSpell m_Owner; - public InternalTarget( AnimateDeadSpell owner ) : base( 12, false, TargetFlags.None ) + public InternalTarget( AnimateDeadSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Necromancy/BloodOathSpell.cs b/Scripts/Spells/Necromancy/BloodOathSpell.cs index 2ef77beca..0496a2ba5 100644 --- a/Scripts/Spells/Necromancy/BloodOathSpell.cs +++ b/Scripts/Spells/Necromancy/BloodOathSpell.cs @@ -140,11 +140,17 @@ namespace Server.Spells.Necromancy } public void DoExpire() { - m_Caster.SendLocalizedMessage( 1061620 ); // Your Blood Oath has been broken. - m_Target.SendLocalizedMessage( 1061620 ); // Your Blood Oath has been broken. + if( m_OathTable.Contains( m_Caster ) ) + { + m_Caster.SendLocalizedMessage( 1061620 ); // Your Blood Oath has been broken. + m_OathTable.Remove ( m_Caster ); + } - m_OathTable.Remove ( m_Caster ); - m_OathTable.Remove ( m_Target ); + if( m_OathTable.Contains( m_Target ) ) + { + m_Target.SendLocalizedMessage( 1061620 ); // Your Blood Oath has been broken. + m_OathTable.Remove ( m_Target ); + } Stop (); @@ -159,7 +165,7 @@ namespace Server.Spells.Necromancy { private BloodOathSpell m_Owner; - public InternalTarget( BloodOathSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( BloodOathSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Necromancy/CorpseSkin.cs b/Scripts/Spells/Necromancy/CorpseSkin.cs index 0bb568298..cedbabee2 100644 --- a/Scripts/Spells/Necromancy/CorpseSkin.cs +++ b/Scripts/Spells/Necromancy/CorpseSkin.cs @@ -132,7 +132,7 @@ namespace Server.Spells.Necromancy { private CorpseSkinSpell m_Owner; - public InternalTarget( CorpseSkinSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( CorpseSkinSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Necromancy/EvilOmen.cs b/Scripts/Spells/Necromancy/EvilOmen.cs index a28831ee7..4b7bec0f4 100644 --- a/Scripts/Spells/Necromancy/EvilOmen.cs +++ b/Scripts/Spells/Necromancy/EvilOmen.cs @@ -95,7 +95,7 @@ namespace Server.Spells.Necromancy { private EvilOmenSpell m_Owner; - public InternalTarget( EvilOmenSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( EvilOmenSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Necromancy/MindRot.cs b/Scripts/Spells/Necromancy/MindRot.cs index 49982c6de..b9224fa70 100644 --- a/Scripts/Spells/Necromancy/MindRot.cs +++ b/Scripts/Spells/Necromancy/MindRot.cs @@ -109,7 +109,7 @@ namespace Server.Spells.Necromancy { private MindRotSpell m_Owner; - public InternalTarget( MindRotSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( MindRotSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Necromancy/PainSpike.cs b/Scripts/Spells/Necromancy/PainSpike.cs index 7807ef2d4..687ec219f 100644 --- a/Scripts/Spells/Necromancy/PainSpike.cs +++ b/Scripts/Spells/Necromancy/PainSpike.cs @@ -119,7 +119,7 @@ namespace Server.Spells.Necromancy { private PainSpikeSpell m_Owner; - public InternalTarget( PainSpikeSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( PainSpikeSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Necromancy/PoisonStrike.cs b/Scripts/Spells/Necromancy/PoisonStrike.cs index 55305b4d4..41fb28a2f 100644 --- a/Scripts/Spells/Necromancy/PoisonStrike.cs +++ b/Scripts/Spells/Necromancy/PoisonStrike.cs @@ -94,7 +94,7 @@ namespace Server.Spells.Necromancy private PoisonStrikeSpell m_Owner; public InternalTarget( PoisonStrikeSpell owner ) - : base( 12, false, TargetFlags.Harmful ) + : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Necromancy/Strangle.cs b/Scripts/Spells/Necromancy/Strangle.cs index 9a8a7b00f..52aebdadc 100644 --- a/Scripts/Spells/Necromancy/Strangle.cs +++ b/Scripts/Spells/Necromancy/Strangle.cs @@ -176,7 +176,7 @@ namespace Server.Spells.Necromancy { private StrangleSpell m_Owner; - public InternalTarget( StrangleSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( StrangleSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Necromancy/VengefulSpirit.cs b/Scripts/Spells/Necromancy/VengefulSpirit.cs index 93477ac56..67831bbe6 100644 --- a/Scripts/Spells/Necromancy/VengefulSpirit.cs +++ b/Scripts/Spells/Necromancy/VengefulSpirit.cs @@ -77,7 +77,7 @@ namespace Server.Spells.Necromancy { private VengefulSpiritSpell m_Owner; - public InternalTarget( VengefulSpiritSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( VengefulSpiritSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Ninjitsu/AnimalForm.cs b/Scripts/Spells/Ninjitsu/AnimalForm.cs index 3acd3c0bc..fea1fb7ef 100644 --- a/Scripts/Spells/Ninjitsu/AnimalForm.cs +++ b/Scripts/Spells/Ninjitsu/AnimalForm.cs @@ -74,6 +74,7 @@ namespace Server.Spells.Ninjitsu public override bool CheckFizzle() { // Spell is initially always successful, and with no skill gain. + return true; } @@ -97,7 +98,8 @@ namespace Server.Spells.Ninjitsu if ( context != null ) { - RemoveContext( Caster, context, true ); + if( ConsumeMana() ) + RemoveContext( Caster, context, true ); } else if ( Caster is PlayerMobile ) { @@ -108,13 +110,13 @@ namespace Server.Spells.Ninjitsu } else { - if ( Morph( Caster, GetLastAnimalForm( Caster ) ) == MorphResult.Fail ) + if ( ConsumeMana() && Morph( Caster, GetLastAnimalForm( Caster ) ) == MorphResult.Fail ) DoFizzle(); } } else { - if ( Morph( Caster, GetLastAnimalForm( Caster ) ) == MorphResult.Fail ) + if ( ConsumeMana() && Morph( Caster, GetLastAnimalForm( Caster ) ) == MorphResult.Fail ) DoFizzle(); } } @@ -122,6 +124,21 @@ namespace Server.Spells.Ninjitsu FinishSequence(); } + public bool ConsumeMana() + { + int mana = ScaleMana( RequiredMana ); + + if ( Caster.Mana < mana ) + { + Caster.SendLocalizedMessage( 1060174, mana.ToString() ); // You must have at least ~1_MANA_REQUIREMENT~ Mana to use this ability. + return false; + } + + Caster.Mana -= mana; + + return true; + } + private static Hashtable m_LastAnimalForms = new Hashtable(); public int GetLastAnimalForm( Mobile m ) @@ -379,7 +396,7 @@ namespace Server.Spells.Ninjitsu { int entryID = info.Switches[0] - 100; - if ( AnimalForm.Morph( m_Caster, entryID ) == MorphResult.Fail ) + if ( m_Spell.ConsumeMana() && AnimalForm.Morph( m_Caster, entryID ) == MorphResult.Fail ) { m_Caster.LocalOverheadMessage( MessageType.Regular, 0x3B2, 502632 ); // The spell fizzles. m_Caster.FixedParticles( 0x3735, 1, 30, 9503, EffectLayer.Waist ); diff --git a/Scripts/Spells/Second/Agility.cs b/Scripts/Spells/Second/Agility.cs index 3adb13267..7673c8d25 100644 --- a/Scripts/Spells/Second/Agility.cs +++ b/Scripts/Spells/Second/Agility.cs @@ -53,7 +53,7 @@ namespace Server.Spells.Second { private AgilitySpell m_Owner; - public InternalTarget( AgilitySpell owner ) : base( 12, false, TargetFlags.Beneficial ) + public InternalTarget( AgilitySpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Beneficial ) { m_Owner = owner; } diff --git a/Scripts/Spells/Second/Cunning.cs b/Scripts/Spells/Second/Cunning.cs index b9cf4c368..f74e24512 100644 --- a/Scripts/Spells/Second/Cunning.cs +++ b/Scripts/Spells/Second/Cunning.cs @@ -53,7 +53,7 @@ namespace Server.Spells.Second { private CunningSpell m_Owner; - public InternalTarget( CunningSpell owner ) : base( 12, false, TargetFlags.Beneficial ) + public InternalTarget( CunningSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Beneficial ) { m_Owner = owner; } diff --git a/Scripts/Spells/Second/Cure.cs b/Scripts/Spells/Second/Cure.cs index 0ef4676d5..e614546fa 100644 --- a/Scripts/Spells/Second/Cure.cs +++ b/Scripts/Spells/Second/Cure.cs @@ -69,7 +69,7 @@ namespace Server.Spells.Second { private CureSpell m_Owner; - public InternalTarget( CureSpell owner ) : base( 12, false, TargetFlags.Beneficial ) + public InternalTarget( CureSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Beneficial ) { m_Owner = owner; } diff --git a/Scripts/Spells/Second/Harm.cs b/Scripts/Spells/Second/Harm.cs index dab4027fa..d5f5e2715 100644 --- a/Scripts/Spells/Second/Harm.cs +++ b/Scripts/Spells/Second/Harm.cs @@ -92,7 +92,7 @@ namespace Server.Spells.Second { private HarmSpell m_Owner; - public InternalTarget( HarmSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( HarmSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Second/MagicTrap.cs b/Scripts/Spells/Second/MagicTrap.cs index e76ccab00..fb7dfd5b6 100644 --- a/Scripts/Spells/Second/MagicTrap.cs +++ b/Scripts/Spells/Second/MagicTrap.cs @@ -63,7 +63,7 @@ namespace Server.Spells.Second { private MagicTrapSpell m_Owner; - public InternalTarget( MagicTrapSpell owner ) : base( 12, false, TargetFlags.None ) + public InternalTarget( MagicTrapSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Second/RemoveTrap.cs b/Scripts/Spells/Second/RemoveTrap.cs index d77a8d68d..b08f3f8e1 100644 --- a/Scripts/Spells/Second/RemoveTrap.cs +++ b/Scripts/Spells/Second/RemoveTrap.cs @@ -58,7 +58,7 @@ namespace Server.Spells.Second { private RemoveTrapSpell m_Owner; - public InternalTarget( RemoveTrapSpell owner ) : base( 12, false, TargetFlags.None ) + public InternalTarget( RemoveTrapSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Second/Strength.cs b/Scripts/Spells/Second/Strength.cs index f700df0e6..55ac6356a 100644 --- a/Scripts/Spells/Second/Strength.cs +++ b/Scripts/Spells/Second/Strength.cs @@ -53,7 +53,7 @@ namespace Server.Spells.Second { private StrengthSpell m_Owner; - public InternalTarget( StrengthSpell owner ) : base( 12, false, TargetFlags.Beneficial ) + public InternalTarget( StrengthSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Beneficial ) { m_Owner = owner; } diff --git a/Scripts/Spells/Seventh/ChainLightning.cs b/Scripts/Spells/Seventh/ChainLightning.cs index 3ec691d04..e0f8e7738 100644 --- a/Scripts/Spells/Seventh/ChainLightning.cs +++ b/Scripts/Spells/Seventh/ChainLightning.cs @@ -117,7 +117,7 @@ namespace Server.Spells.Seventh { private ChainLightningSpell m_Owner; - public InternalTarget( ChainLightningSpell owner ) : base( 12, true, TargetFlags.None ) + public InternalTarget( ChainLightningSpell owner ) : base( Core.ML ? 10 : 12, true, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Seventh/EnergyField.cs b/Scripts/Spells/Seventh/EnergyField.cs index 7d2028c08..9949962f5 100644 --- a/Scripts/Spells/Seventh/EnergyField.cs +++ b/Scripts/Spells/Seventh/EnergyField.cs @@ -171,7 +171,7 @@ namespace Server.Spells.Seventh { private EnergyFieldSpell m_Owner; - public InternalTarget( EnergyFieldSpell owner ) : base( 12, true, TargetFlags.None ) + public InternalTarget( EnergyFieldSpell owner ) : base( Core.ML ? 10 : 12, true, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Seventh/FlameStrike.cs b/Scripts/Spells/Seventh/FlameStrike.cs index a3ebd905f..e2b1ffa6c 100644 --- a/Scripts/Spells/Seventh/FlameStrike.cs +++ b/Scripts/Spells/Seventh/FlameStrike.cs @@ -72,7 +72,7 @@ namespace Server.Spells.Seventh { private FlameStrikeSpell m_Owner; - public InternalTarget( FlameStrikeSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( FlameStrikeSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Seventh/ManaVampire.cs b/Scripts/Spells/Seventh/ManaVampire.cs index 5e13a96b7..6dfb6b381 100644 --- a/Scripts/Spells/Seventh/ManaVampire.cs +++ b/Scripts/Spells/Seventh/ManaVampire.cs @@ -98,7 +98,7 @@ namespace Server.Spells.Seventh { private ManaVampireSpell m_Owner; - public InternalTarget( ManaVampireSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( ManaVampireSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Seventh/MassDispel.cs b/Scripts/Spells/Seventh/MassDispel.cs index 8d06e60a7..e651d6abd 100644 --- a/Scripts/Spells/Seventh/MassDispel.cs +++ b/Scripts/Spells/Seventh/MassDispel.cs @@ -92,7 +92,7 @@ namespace Server.Spells.Seventh { private MassDispelSpell m_Owner; - public InternalTarget( MassDispelSpell owner ) : base( 12, true, TargetFlags.None ) + public InternalTarget( MassDispelSpell owner ) : base( Core.ML ? 10 : 12, true, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Seventh/MeteorSwarm.cs b/Scripts/Spells/Seventh/MeteorSwarm.cs index e8f020b93..d13aa8efd 100644 --- a/Scripts/Spells/Seventh/MeteorSwarm.cs +++ b/Scripts/Spells/Seventh/MeteorSwarm.cs @@ -116,7 +116,7 @@ namespace Server.Spells.Seventh { private MeteorSwarmSpell m_Owner; - public InternalTarget( MeteorSwarmSpell owner ) : base( 12, true, TargetFlags.None ) + public InternalTarget( MeteorSwarmSpell owner ) : base( Core.ML ? 10 : 12, true, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Sixth/Dispel.cs b/Scripts/Spells/Sixth/Dispel.cs index 76fbbb87e..ee0f33c1a 100644 --- a/Scripts/Spells/Sixth/Dispel.cs +++ b/Scripts/Spells/Sixth/Dispel.cs @@ -33,7 +33,7 @@ namespace Server.Spells.Sixth { private DispelSpell m_Owner; - public InternalTarget( DispelSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( DispelSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Sixth/EnergyBolt.cs b/Scripts/Spells/Sixth/EnergyBolt.cs index b12004c12..8a829ddbe 100644 --- a/Scripts/Spells/Sixth/EnergyBolt.cs +++ b/Scripts/Spells/Sixth/EnergyBolt.cs @@ -77,7 +77,7 @@ namespace Server.Spells.Sixth { private EnergyBoltSpell m_Owner; - public InternalTarget( EnergyBoltSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( EnergyBoltSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Sixth/Explosion.cs b/Scripts/Spells/Sixth/Explosion.cs index ccdb20dff..eb140af1c 100644 --- a/Scripts/Spells/Sixth/Explosion.cs +++ b/Scripts/Spells/Sixth/Explosion.cs @@ -111,7 +111,7 @@ namespace Server.Spells.Sixth private ExplosionSpell m_Owner; public InternalTarget( ExplosionSpell owner ) - : base( 12, false, TargetFlags.Harmful ) + : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Sixth/Invisibility.cs b/Scripts/Spells/Sixth/Invisibility.cs index 2caebddc3..8d1a51fff 100644 --- a/Scripts/Spells/Sixth/Invisibility.cs +++ b/Scripts/Spells/Sixth/Invisibility.cs @@ -102,7 +102,7 @@ namespace Server.Spells.Sixth { private InvisibilitySpell m_Owner; - public InternalTarget( InvisibilitySpell owner ) : base( 12, false, TargetFlags.Beneficial ) + public InternalTarget( InvisibilitySpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Beneficial ) { m_Owner = owner; } diff --git a/Scripts/Spells/Sixth/Mark.cs b/Scripts/Spells/Sixth/Mark.cs index 5c7741e2c..ec70f341c 100644 --- a/Scripts/Spells/Sixth/Mark.cs +++ b/Scripts/Spells/Sixth/Mark.cs @@ -68,7 +68,7 @@ namespace Server.Spells.Sixth { private MarkSpell m_Owner; - public InternalTarget( MarkSpell owner ) : base( 12, false, TargetFlags.None ) + public InternalTarget( MarkSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Sixth/MassCurse.cs b/Scripts/Spells/Sixth/MassCurse.cs index 0d68aa28a..13bc1ad84 100644 --- a/Scripts/Spells/Sixth/MassCurse.cs +++ b/Scripts/Spells/Sixth/MassCurse.cs @@ -85,7 +85,7 @@ namespace Server.Spells.Sixth { private MassCurseSpell m_Owner; - public InternalTarget( MassCurseSpell owner ) : base( 12, true, TargetFlags.None ) + public InternalTarget( MassCurseSpell owner ) : base( Core.ML ? 10 : 12, true, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Sixth/ParalyzeField.cs b/Scripts/Spells/Sixth/ParalyzeField.cs index 9a055d9d3..fbd662280 100644 --- a/Scripts/Spells/Sixth/ParalyzeField.cs +++ b/Scripts/Spells/Sixth/ParalyzeField.cs @@ -210,7 +210,7 @@ namespace Server.Spells.Sixth { private ParalyzeFieldSpell m_Owner; - public InternalTarget( ParalyzeFieldSpell owner ) : base( 12, true, TargetFlags.None ) + public InternalTarget( ParalyzeFieldSpell owner ) : base( Core.ML ? 10 : 12, true, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Sixth/Reveal.cs b/Scripts/Spells/Sixth/Reveal.cs index bdbb3c34d..c9e431103 100644 --- a/Scripts/Spells/Sixth/Reveal.cs +++ b/Scripts/Spells/Sixth/Reveal.cs @@ -101,7 +101,7 @@ namespace Server.Spells.Sixth { private RevealSpell m_Owner; - public InternalTarget( RevealSpell owner ) : base( 12, true, TargetFlags.None ) + public InternalTarget( RevealSpell owner ) : base( Core.ML ? 10 : 12, true, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Spellweaving/GiftOfLife.cs b/Scripts/Spells/Spellweaving/GiftOfLife.cs index f4300773d..1e2e0af24 100644 --- a/Scripts/Spells/Spellweaving/GiftOfLife.cs +++ b/Scripts/Spells/Spellweaving/GiftOfLife.cs @@ -192,7 +192,7 @@ namespace Server.Spells.Spellweaving private GiftOfLifeSpell m_Owner; public InternalTarget( GiftOfLifeSpell owner ) - : base( 12, false, TargetFlags.Beneficial ) + : base( 10, false, TargetFlags.Beneficial ) { m_Owner = owner; } diff --git a/Scripts/Spells/Spellweaving/GiftOfRenewal.cs b/Scripts/Spells/Spellweaving/GiftOfRenewal.cs index 543e6998a..1dad5c961 100644 --- a/Scripts/Spells/Spellweaving/GiftOfRenewal.cs +++ b/Scripts/Spells/Spellweaving/GiftOfRenewal.cs @@ -165,7 +165,7 @@ namespace Server.Spells.Spellweaving private GiftOfRenewalSpell m_Owner; public InternalTarget( GiftOfRenewalSpell owner ) - : base( 12, false, TargetFlags.Beneficial ) + : base( 10, false, TargetFlags.Beneficial ) { m_Owner = owner; } diff --git a/Scripts/Spells/Spellweaving/NatureFury.cs b/Scripts/Spells/Spellweaving/NatureFury.cs index f635eb60f..8b2db36cd 100644 --- a/Scripts/Spells/Spellweaving/NatureFury.cs +++ b/Scripts/Spells/Spellweaving/NatureFury.cs @@ -107,7 +107,7 @@ namespace Server.Spells.Spellweaving private NatureFurySpell m_Owner; public InternalTarget( NatureFurySpell owner ) - : base( 12, true, TargetFlags.None ) + : base( 10, true, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Spellweaving/WordOfDeath.cs b/Scripts/Spells/Spellweaving/WordOfDeath.cs index 4e416cd62..0c4725b9f 100644 --- a/Scripts/Spells/Spellweaving/WordOfDeath.cs +++ b/Scripts/Spells/Spellweaving/WordOfDeath.cs @@ -67,7 +67,7 @@ namespace Server.Spells.Spellweaving { private WordOfDeathSpell m_Owner; - public InternalTarget( WordOfDeathSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( WordOfDeathSpell owner ) : base( 10, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Third/Bless.cs b/Scripts/Spells/Third/Bless.cs index 970d44a56..9497ebad1 100644 --- a/Scripts/Spells/Third/Bless.cs +++ b/Scripts/Spells/Third/Bless.cs @@ -57,7 +57,7 @@ namespace Server.Spells.Third { private BlessSpell m_Owner; - public InternalTarget( BlessSpell owner ) : base( 12, false, TargetFlags.Beneficial ) + public InternalTarget( BlessSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Beneficial ) { m_Owner = owner; } diff --git a/Scripts/Spells/Third/Fireball.cs b/Scripts/Spells/Third/Fireball.cs index 8f287445a..9724898e0 100644 --- a/Scripts/Spells/Third/Fireball.cs +++ b/Scripts/Spells/Third/Fireball.cs @@ -73,7 +73,7 @@ namespace Server.Spells.Third { private FireballSpell m_Owner; - public InternalTarget( FireballSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( FireballSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Third/MagicLock.cs b/Scripts/Spells/Third/MagicLock.cs index 5edf027b4..0b40c37ac 100644 --- a/Scripts/Spells/Third/MagicLock.cs +++ b/Scripts/Spells/Third/MagicLock.cs @@ -65,7 +65,7 @@ namespace Server.Spells.Third { private MagicLockSpell m_Owner; - public InternalTarget( MagicLockSpell owner ) : base( 12, false, TargetFlags.None ) + public InternalTarget( MagicLockSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Third/Poison.cs b/Scripts/Spells/Third/Poison.cs index 974f0da00..fe8e6afe0 100644 --- a/Scripts/Spells/Third/Poison.cs +++ b/Scripts/Spells/Third/Poison.cs @@ -102,7 +102,7 @@ namespace Server.Spells.Third { private PoisonSpell m_Owner; - public InternalTarget( PoisonSpell owner ) : base( 12, false, TargetFlags.Harmful ) + public InternalTarget( PoisonSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.Harmful ) { m_Owner = owner; } diff --git a/Scripts/Spells/Third/Telekinesis.cs b/Scripts/Spells/Third/Telekinesis.cs index ab73c1fa8..4faad9907 100644 --- a/Scripts/Spells/Third/Telekinesis.cs +++ b/Scripts/Spells/Third/Telekinesis.cs @@ -78,7 +78,7 @@ namespace Server.Spells.Third { private TelekinesisSpell m_Owner; - public InternalTarget( TelekinesisSpell owner ) : base( 12, false, TargetFlags.None ) + public InternalTarget( TelekinesisSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Third/Teleport.cs b/Scripts/Spells/Third/Teleport.cs index bfef29bdc..6b651a8ba 100644 --- a/Scripts/Spells/Third/Teleport.cs +++ b/Scripts/Spells/Third/Teleport.cs @@ -104,7 +104,7 @@ namespace Server.Spells.Third { private TeleportSpell m_Owner; - public InternalTarget( TeleportSpell owner ) : base( 12, true, TargetFlags.None ) + public InternalTarget( TeleportSpell owner ) : base( Core.ML ? 11 : 12, true, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Third/Unlock.cs b/Scripts/Spells/Third/Unlock.cs index 080d410d9..9b50d1892 100644 --- a/Scripts/Spells/Third/Unlock.cs +++ b/Scripts/Spells/Third/Unlock.cs @@ -30,7 +30,7 @@ namespace Server.Spells.Third { private UnlockSpell m_Owner; - public InternalTarget( UnlockSpell owner ) : base( 12, false, TargetFlags.None ) + public InternalTarget( UnlockSpell owner ) : base( Core.ML ? 10 : 12, false, TargetFlags.None ) { m_Owner = owner; } diff --git a/Scripts/Spells/Third/WallOfStone.cs b/Scripts/Spells/Third/WallOfStone.cs index e89e8a5c7..95efcd2c3 100644 --- a/Scripts/Spells/Third/WallOfStone.cs +++ b/Scripts/Spells/Third/WallOfStone.cs @@ -189,7 +189,7 @@ namespace Server.Spells.Third { private WallOfStoneSpell m_Owner; - public InternalTarget( WallOfStoneSpell owner ) : base( 12, true, TargetFlags.None ) + public InternalTarget( WallOfStoneSpell owner ) : base( Core.ML ? 10 : 12, true, TargetFlags.None ) { m_Owner = owner; }