young player protection is ignored in champ spawns

Changed default restart time to 10 minutes.
This commit is contained in:
xavier 2011-07-19 18:34:07 +00:00
parent c1a0fa6dcb
commit 5fc2c7cbf9
4 changed files with 22 additions and 8 deletions

View file

@ -70,7 +70,7 @@ namespace Server.Engines.CannedEvil
m_Idol = new IdolOfTheChampion( this ); m_Idol = new IdolOfTheChampion( this );
m_ExpireDelay = TimeSpan.FromMinutes( 10.0 ); m_ExpireDelay = TimeSpan.FromMinutes( 10.0 );
m_RestartDelay = TimeSpan.FromMinutes( 5.0 ); m_RestartDelay = TimeSpan.FromMinutes( 10.0 );
m_DamageEntries = new Dictionary<Mobile, int>(); m_DamageEntries = new Dictionary<Mobile, int>();
@ -1232,6 +1232,8 @@ namespace Server.Engines.CannedEvil
public class ChampionSpawnRegion : BaseRegion public class ChampionSpawnRegion : BaseRegion
{ {
public override bool YoungProtected { get { return false; } }
private ChampionSpawn m_Spawn; private ChampionSpawn m_Spawn;
public ChampionSpawn ChampionSpawn public ChampionSpawn ChampionSpawn

View file

@ -3731,7 +3731,7 @@ namespace Server.Mobiles
if ( !this.Young ) if ( !this.Young )
return false; return false;
if ( Region.IsPartOf( typeof( DungeonRegion ) ) ) if ( !((BaseRegion)Region).YoungProtected )
return false; return false;
if( from is BaseCreature && ((BaseCreature)from).IgnoreYoungProtection ) if( from is BaseCreature && ((BaseCreature)from).IgnoreYoungProtection )

View file

@ -4,6 +4,9 @@ using System.Collections.Generic;
using System.Xml; using System.Xml;
using Server; using Server;
using Server.Items; using Server.Items;
using Server.Mobiles;
using Server.Gumps;
namespace Server.Regions namespace Server.Regions
{ {
@ -16,6 +19,8 @@ namespace Server.Regions
public class BaseRegion : Region public class BaseRegion : Region
{ {
public virtual bool YoungProtected { get { return true; } }
public static void Configure() public static void Configure()
{ {
Region.DefaultRegionType = typeof( BaseRegion ); Region.DefaultRegionType = typeof( BaseRegion );
@ -116,6 +121,17 @@ namespace Server.Regions
return false; return false;
} }
public override void OnEnter(Mobile m)
{
if (m is PlayerMobile && ((PlayerMobile)m).Young)
{
if(!this.YoungProtected)
{
m.SendGump(new YoungDungeonWarning());
}
}
}
public override bool AcceptsSpawnsFrom( Region region ) public override bool AcceptsSpawnsFrom( Region region )
{ {
if ( region == this || !m_ExcludeFromParentSpawns ) if ( region == this || !m_ExcludeFromParentSpawns )

View file

@ -8,6 +8,8 @@ namespace Server.Regions
{ {
public class DungeonRegion : BaseRegion public class DungeonRegion : BaseRegion
{ {
public override bool YoungProtected { get { return false; } }
private Point3D m_EntranceLocation; private Point3D m_EntranceLocation;
private Map m_EntranceMap; private Map m_EntranceMap;
@ -30,12 +32,6 @@ namespace Server.Regions
return false; return false;
} }
public override void OnEnter( Mobile m )
{
if ( m is PlayerMobile && ((PlayerMobile)m).Young )
m.SendGump( new YoungDungeonWarning() );
}
public override void AlterLightLevel( Mobile m, ref int global, ref int personal ) public override void AlterLightLevel( Mobile m, ref int global, ref int personal )
{ {
global = LightCycle.DungeonLevel; global = LightCycle.DungeonLevel;