From 24490dff692fa3927638b9ac00ed6f112174ab5c Mon Sep 17 00:00:00 2001 From: mark Date: Sun, 11 Nov 2012 00:04:51 +0000 Subject: [PATCH] branch sync --- Scripts/Engines/ConPVP/DuelContext.cs | 30 ++++++++---- Scripts/Engines/ConPVP/RulesetLayout.cs | 7 ++- .../Mobiles/Monsters/ML/Special/Ilhenir.cs | 46 ++++++++++--------- .../Mobiles/Monsters/ML/Special/Meraktus.cs | 36 +++++++++------ Scripts/Spells/Base/SpellHelper.cs | 22 +++++---- 5 files changed, 87 insertions(+), 54 deletions(-) diff --git a/Scripts/Engines/ConPVP/DuelContext.cs b/Scripts/Engines/ConPVP/DuelContext.cs index 00faf8437..d9bbbd16c 100644 --- a/Scripts/Engines/ConPVP/DuelContext.cs +++ b/Scripts/Engines/ConPVP/DuelContext.cs @@ -128,6 +128,9 @@ namespace Server.Engines.ConPVP if ( CantDoAnything( from ) ) return false; + if ( spell is Server.Spells.Fourth.RecallSpell ) + from.SendMessage( "You may not cast this spell." ); + string title = null, option = null; if( spell is ArcanistSpell ) @@ -273,6 +276,9 @@ namespace Server.Engines.ConPVP if ( weapon.PoisonCharges > 0 && weapon.Poison != null && !m_Ruleset.GetOption( "Weapons", "Poisoned" ) ) return false; + + if ( weapon is BaseWand && !m_Ruleset.GetOption( "Items", "Wands" ) ) + return false; } return true; @@ -313,10 +319,10 @@ namespace Server.Engines.ConPVP if ( pl == null || pl.Eliminated ) return true; - if ( item is EtherealMount ) + if ( !(item is BaseRefreshPotion) ) { - from.SendMessage( "You may not mount an ethereal while dueling." ); - return false; + if ( CantDoAnything( from ) ) + return false; } string title = null, option = null; @@ -365,6 +371,11 @@ namespace Server.Engines.ConPVP title = "Items"; option = "Orange Petals"; } + else if ( item is EtherealMount || item.Layer == Layer.Mount ) + { + title = "Items"; + option = "Mounts"; + } else if ( item is LeatherNinjaBelt ) { title = "Items"; @@ -380,6 +391,11 @@ namespace Server.Engines.ConPVP title = "Items"; option = "Fire Horns"; } + else if ( item is BaseWand ) + { + title = "Items"; + option = "Wands"; + } if ( title != null && option != null && m_StartedBeginCountdown && !m_Started ) { @@ -397,12 +413,6 @@ namespace Server.Engines.ConPVP return false; } - if ( !(item is BaseRefreshPotion) ) - { - if ( CantDoAnything( from ) ) - return false; - } - if ( title == null || option == null || m_Ruleset.GetOption( title, option ) ) return true; @@ -2372,6 +2382,8 @@ namespace Server.Engines.ConPVP public TournyMatch m_Match; public EventGame m_EventGame; + public Tournament Tournament { get { return m_Tournament; } } + public void SendReadyGump( int count ) { if ( !m_Registered ) diff --git a/Scripts/Engines/ConPVP/RulesetLayout.cs b/Scripts/Engines/ConPVP/RulesetLayout.cs index 2cd899ae5..6e15b3eb4 100644 --- a/Scripts/Engines/ConPVP/RulesetLayout.cs +++ b/Scripts/Engines/ConPVP/RulesetLayout.cs @@ -299,8 +299,10 @@ namespace Server.Engines.ConPVP new string[] { "Bandages", + "Wands", "Trapped Containers", "Bolas", + "Mounts", "Orange Petals", "Shurikens", "Fukiya Darts", @@ -326,9 +328,12 @@ namespace Server.Engines.ConPVP new string[] { "Bandages", + "Wands", "Trapped Containers", "Bolas", - "Orange Petals" + "Mounts", + "Orange Petals", + "Fire Horns" } ) ); } diff --git a/Scripts/Mobiles/Monsters/ML/Special/Ilhenir.cs b/Scripts/Mobiles/Monsters/ML/Special/Ilhenir.cs index 3ebb6a3b8..30e793dc7 100644 --- a/Scripts/Mobiles/Monsters/ML/Special/Ilhenir.cs +++ b/Scripts/Mobiles/Monsters/ML/Special/Ilhenir.cs @@ -78,8 +78,10 @@ namespace Server.Mobiles VirtualArmor = 44; - PackResources( 8 ); - PackTalismans( 5 ); + if ( Core.ML ) { + PackResources( 8 ); + PackTalismans( 5 ); + } } public virtual void PackResources( int amount ) @@ -119,30 +121,32 @@ namespace Server.Mobiles { base.OnDeath( c ); - c.DropItem( new GrizzledBones() ); + if ( Core.ML ) { + c.DropItem( new GrizzledBones() ); - // TODO: Parrots - /*if ( Utility.RandomDouble() < 0.6 ) - c.DropItem( new ParrotItem() ); */ + // TODO: Parrots + /*if ( Utility.RandomDouble() < 0.6 ) + c.DropItem( new ParrotItem() ); */ - if( Utility.RandomDouble() < 0.05 ) - c.DropItem( new GrizzledMareStatuette() ); + if( Utility.RandomDouble() < 0.05 ) + c.DropItem( new GrizzledMareStatuette() ); - if( Utility.RandomDouble() < 0.025 ) - c.DropItem( new CrimsonCincture() ); + if( Utility.RandomDouble() < 0.025 ) + c.DropItem( new CrimsonCincture() ); - // TODO: Armor sets - /*if ( Utility.RandomDouble() < 0.05 ) - { - switch ( Utility.Random(5) ) + // TODO: Armor sets + /*if ( Utility.RandomDouble() < 0.05 ) { - case 0: c.DropItem( new GrizzleGauntlets() ); break; - case 1: c.DropItem( new GrizzleGreaves() ); break; - case 2: c.DropItem( new GrizzleHelm() ); break; - case 3: c.DropItem( new GrizzleTunic() ); break; - case 4: c.DropItem( new GrizzleVambraces() ); break; - } - }*/ + switch ( Utility.Random(5) ) + { + case 0: c.DropItem( new GrizzleGauntlets() ); break; + case 1: c.DropItem( new GrizzleGreaves() ); break; + case 2: c.DropItem( new GrizzleHelm() ); break; + case 3: c.DropItem( new GrizzleTunic() ); break; + case 4: c.DropItem( new GrizzleVambraces() ); break; + } + }*/ + } } public override bool Unprovokable { get { return true; } } diff --git a/Scripts/Mobiles/Monsters/ML/Special/Meraktus.cs b/Scripts/Mobiles/Monsters/ML/Special/Meraktus.cs index 021d259be..bedba3834 100644 --- a/Scripts/Mobiles/Monsters/ML/Special/Meraktus.cs +++ b/Scripts/Mobiles/Monsters/ML/Special/Meraktus.cs @@ -67,8 +67,10 @@ namespace Server.Mobiles VirtualArmor = 28; // Don't know what it should be - PackResources(8); - PackTalismans(5); + if ( Core.ML ) { + PackResources(8); + PackTalismans(5); + } Timer.DelayCall(TimeSpan.FromSeconds(1), new TimerCallback(SpawnTormented)); } @@ -99,25 +101,29 @@ namespace Server.Mobiles { base.OnDeath( c ); - c.DropItem( new MalletAndChisel() ); + if ( Core.ML ) { + c.DropItem( new MalletAndChisel() ); - switch ( Utility.Random( 3 ) ) - { - case 0: c.DropItem( new MinotaurHedge() ); break; - case 1: c.DropItem( new BonePile() ); break; - case 2: c.DropItem( new LightYarn() ); break; + switch ( Utility.Random( 3 ) ) + { + case 0: c.DropItem( new MinotaurHedge() ); break; + case 1: c.DropItem( new BonePile() ); break; + case 2: c.DropItem( new LightYarn() ); break; + } + + if ( Utility.RandomBool() ) + c.DropItem( new TormentedChains() ); + + if ( Utility.RandomDouble() < 0.025 ) + c.DropItem(new CrimsonCincture()); } - - if ( Utility.RandomBool() ) - c.DropItem( new TormentedChains() ); - - if ( Utility.RandomDouble() < 0.025 ) - c.DropItem(new CrimsonCincture()); } public override void GenerateLoot() { - AddLoot( LootPack.AosSuperBoss, 5 ); // Need to verify + if ( Core.ML ) { + AddLoot( LootPack.AosSuperBoss, 5 ); // Need to verify + } } public override int GetAngerSound() diff --git a/Scripts/Spells/Base/SpellHelper.cs b/Scripts/Spells/Base/SpellHelper.cs index 556f8685b..528fadbab 100644 --- a/Scripts/Spells/Base/SpellHelper.cs +++ b/Scripts/Spells/Base/SpellHelper.cs @@ -568,6 +568,7 @@ namespace Server.Spells private static TravelValidator[] m_Validators = new TravelValidator[] { new TravelValidator( IsFeluccaT2A ), + new TravelValidator( IsKhaldun ), new TravelValidator( IsIlshenar ), new TravelValidator( IsTrammelWind ), new TravelValidator( IsFeluccaWind ), @@ -589,14 +590,14 @@ namespace Server.Spells private static bool[,] m_Rules = new bool[,] { - /*T2A(Fel) Ilshenar Wind(Tram), Wind(Fel), Dungeons(Fel), Solen(Tram), Solen(Fel), CrystalCave(Malas), Gauntlet(Malas), Gauntlet(Ferry), SafeZone, Stronghold, ChampionSpawn, Dungeons(Tokuno[Malas]), LampRoom(Doom), GuardianRoom(Doom), Heartwood, MLDungeons */ -/* Recall From */ { false, true, true, false, false, true, false, false, false, false, true, true, false, true, false, false, false, false }, -/* Recall To */ { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false }, -/* Gate From */ { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false }, -/* Gate To */ { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false }, -/* Mark In */ { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false }, -/* Tele From */ { true, true, true, true, true, true, true, false, true, true, true, false, true, true, true, true, false, true }, -/* Tele To */ { true, true, true, true, true, true, true, false, true, false, false, false, true, true, true, true, false, false }, + /*T2A(Fel), Khaldun, Ilshenar, Wind(Tram), Wind(Fel), Dungeons(Fel), Solen(Tram), Solen(Fel), CrystalCave(Malas), Gauntlet(Malas), Gauntlet(Ferry), SafeZone, Stronghold, ChampionSpawn, Dungeons(Tokuno[Malas]), LampRoom(Doom), GuardianRoom(Doom), Heartwood, MLDungeons */ +/* Recall From */ { false, false, true, true, false, false, true, false, false, false, false, true, true, false, true, false, false, false, false }, +/* Recall To */ { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false }, +/* Gate From */ { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false }, +/* Gate To */ { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false }, +/* Mark In */ { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false }, +/* Tele From */ { true, true, true, true, true, true, true, true, false, true, true, true, false, true, true, true, true, false, true }, +/* Tele To */ { true, true, true, true, true, true, true, true, false, true, false, false, false, true, true, true, true, false, false }, }; public static void SendInvalidMessage( Mobile caster, TravelCheckType type ) @@ -721,6 +722,11 @@ namespace Server.Spells return (region.IsPartOf( typeof( DungeonRegion ) ) && region.Map == Map.Felucca); } + public static bool IsKhaldun( Map map, Point3D loc ) + { + return ( Region.Find( loc, map ).Name == "Khaldun" ); + } + public static bool IsCrystalCave( Map map, Point3D loc ) { if( map != Map.Malas || loc.Z >= -80 )