branch sync

This commit is contained in:
mark 2012-11-11 00:04:51 +00:00
parent e10ca1fe1e
commit 24490dff69
5 changed files with 87 additions and 54 deletions

View file

@ -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 )

View file

@ -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"
} ) );
}

View file

@ -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; } }

View file

@ -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()

View file

@ -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 )