quick hax to allow rational stat gains.
This commit is contained in:
parent
d718a5a28c
commit
6ab3977c08
4 changed files with 516 additions and 228 deletions
|
|
@ -9,38 +9,42 @@ namespace Server.Engines.CannedEvil
|
|||
{
|
||||
private ChampionSpawn m_Spawn;
|
||||
|
||||
public ChampionPlatform( ChampionSpawn spawn )
|
||||
public ChampionPlatform( ChampionSpawn spawn ) : this ( spawn, false )
|
||||
{
|
||||
}
|
||||
|
||||
public ChampionPlatform( ChampionSpawn spawn, bool rebuild )
|
||||
{
|
||||
m_Spawn = spawn;
|
||||
|
||||
for ( int x = -2; x <= 2; ++x )
|
||||
for ( int y = -2; y <= 2; ++y )
|
||||
AddComponent( 0x750, x, y, -5 );
|
||||
AddComponent( m_Spawn.PlatformData.ItemIDPlaformBlocks, x, y, -5 );
|
||||
|
||||
for ( int x = -1; x <= 1; ++x )
|
||||
for ( int y = -1; y <= 1; ++y )
|
||||
AddComponent( 0x750, x, y, 0 );
|
||||
AddComponent( m_Spawn.PlatformData.ItemIDPlaformBlocks, x, y, 0 );
|
||||
|
||||
for ( int i = -1; i <= 1; ++i )
|
||||
{
|
||||
AddComponent( 0x751, i, 2, 0 );
|
||||
AddComponent( 0x752, 2, i, 0 );
|
||||
AddComponent( m_Spawn.PlatformData.ItemIDStepsS, i, 2, 0 );
|
||||
AddComponent( m_Spawn.PlatformData.ItemIDStepsE, 2, i, 0 );
|
||||
|
||||
AddComponent( 0x753, i, -2, 0 );
|
||||
AddComponent( 0x754, -2, i, 0 );
|
||||
AddComponent( m_Spawn.PlatformData.ItemIDStepsN, i, -2, 0 );
|
||||
AddComponent( m_Spawn.PlatformData.ItemIDStepsW, -2, i, 0 );
|
||||
}
|
||||
|
||||
AddComponent( 0x759, -2, -2, 0 );
|
||||
AddComponent( 0x75A, 2, 2, 0 );
|
||||
AddComponent( 0x75B, -2, 2, 0 );
|
||||
AddComponent( 0x75C, 2, -2, 0 );
|
||||
AddComponent( m_Spawn.PlatformData.ItemIDCornerNW, -2, -2, 0 );
|
||||
AddComponent( m_Spawn.PlatformData.ItemIDCornerSE, 2, 2, 0 );
|
||||
AddComponent( m_Spawn.PlatformData.ItemIDCornerSW, -2, 2, 0 );
|
||||
AddComponent( m_Spawn.PlatformData.ItemIDCornerNE, 2, -2, 0 );
|
||||
}
|
||||
|
||||
public void AddComponent( int id, int x, int y, int z )
|
||||
{
|
||||
AddonComponent ac = new AddonComponent( id );
|
||||
|
||||
ac.Hue = 0x497;
|
||||
ac.Hue = m_Spawn.PlatformData.AddonHueInactive;
|
||||
|
||||
AddComponent( ac, x, y, z );
|
||||
}
|
||||
|
|
@ -49,7 +53,7 @@ namespace Server.Engines.CannedEvil
|
|||
{
|
||||
base.OnAfterDelete();
|
||||
|
||||
if ( m_Spawn != null )
|
||||
if( m_Spawn != null )
|
||||
m_Spawn.Delete();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,184 @@ namespace Server.Engines.CannedEvil
|
|||
{
|
||||
public class ChampionSpawn : Item
|
||||
{
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool HasPlatform
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_HasPlatform;
|
||||
}
|
||||
set
|
||||
{
|
||||
if( m_HasPlatform != value )
|
||||
{
|
||||
m_HasPlatform = value;
|
||||
|
||||
if( value == true && ( m_Platform == null || m_Platform.Deleted ) )
|
||||
{
|
||||
m_Platform = new ChampionPlatform( this, false );
|
||||
}
|
||||
else if( value == false && ( m_Platform != null && !m_Platform.Deleted ) )
|
||||
{
|
||||
m_Platform.Delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private bool m_HasPlatform;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool ConfinedRoaming { get { return m_ConfinedRoaming; } set { m_ConfinedRoaming = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool HasBeenAdvanced { get { return m_HasBeenAdvanced; } set { m_HasBeenAdvanced = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public CustomSpawnData CustomSpawnData
|
||||
{
|
||||
get
|
||||
{
|
||||
if( m_CustomSpawnData == null )
|
||||
{
|
||||
m_CustomSpawnData = new CustomSpawnData();
|
||||
}
|
||||
|
||||
return m_CustomSpawnData;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_CustomSpawnData = value;
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public PlatformData PlatformData
|
||||
{
|
||||
get
|
||||
{
|
||||
if( m_PlatformData == null )
|
||||
{
|
||||
m_PlatformData = new PlatformData();
|
||||
}
|
||||
|
||||
return m_PlatformData;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_PlatformData = value;
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public Mobile LinkedChamp { get { return m_LinkedChamp; } set { m_LinkedChamp = value; } }
|
||||
|
||||
public ChampionSpawnInfo CustomSpawnInfo
|
||||
{
|
||||
get
|
||||
{
|
||||
if( m_CustomSpawnInfo == null )
|
||||
{
|
||||
m_CustomSpawnInfo = ReGenerateInfo();
|
||||
}
|
||||
|
||||
return m_CustomSpawnInfo;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_CustomSpawnInfo = value;
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int BaseMaxKills { get { return m_BaseMaxKills; } set { m_BaseMaxKills = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int AdjustMaxKills { get { return m_AdjustMaxKills; } set { m_AdjustMaxKills = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool Traps { get { return m_Traps; } set { m_Traps = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public double TrapsDensity { get { return m_TrapsDensity; } set { m_TrapsDensity = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public double ArtifactDropChance { get { return m_ArtifactDropChance; } set { m_ArtifactDropChance = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public Type Reward { get { return m_Reward; } set { m_Reward = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public Type RewardBig { get { return m_RewardBig; } set { m_RewardBig = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool RandomizeType { get { return m_RandomizeType; } set { m_RandomizeType = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int Kills { get { return m_Kills; } set { m_Kills = value; InvalidateProperties(); } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public Rectangle2D SpawnArea { get { return m_SpawnArea; } set { m_SpawnArea = value; InvalidateProperties(); UpdateRegion(); } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public TimeSpan RestartDelay { get { return m_RestartDelay; } set { m_RestartDelay = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public DateTime RestartTime { get { return m_RestartTime; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public TimeSpan ExpireDelay { get { return m_ExpireDelay; } set { m_ExpireDelay = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public DateTime ExpireTime { get { return m_ExpireTime; } set { m_ExpireTime = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public ChampionSpawnType Type { get { return m_Type; } set { m_Type = value; InvalidateProperties(); } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool Active { get { return m_Active; } set { if( value ) Start(); else Stop(); InvalidateProperties(); } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public Mobile Champion { get { return m_Champion; } set { m_Champion = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int Level
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_RedSkulls.Count;
|
||||
}
|
||||
set
|
||||
{
|
||||
for( int i = m_RedSkulls.Count - 1; i >= value; --i )
|
||||
{
|
||||
m_RedSkulls[ i ].Delete();
|
||||
m_RedSkulls.RemoveAt( i );
|
||||
}
|
||||
|
||||
for( int i = m_RedSkulls.Count; i < value; ++i )
|
||||
{
|
||||
Item skull = new Item( m_PlatformData.ItemIDRedCandles );
|
||||
|
||||
skull.Hue = m_PlatformData.HueRedCandles;
|
||||
skull.Movable = false;
|
||||
skull.Light = LightType.Circle150;
|
||||
|
||||
skull.MoveToWorld( GetRedSkullLocation( i ), Map );
|
||||
|
||||
m_RedSkulls.Add( skull );
|
||||
}
|
||||
|
||||
InvalidateProperties();
|
||||
}
|
||||
}
|
||||
|
||||
public ChampionPlatform Platform { get { return m_Platform; } }
|
||||
public ChampionAltar Altar { get { return m_Altar; } }
|
||||
|
||||
private CustomSpawnData m_CustomSpawnData;
|
||||
private PlatformData m_PlatformData;
|
||||
private Mobile m_LinkedChamp;
|
||||
private bool m_Active;
|
||||
private bool m_RandomizeType;
|
||||
private ChampionSpawnType m_Type;
|
||||
|
|
@ -21,39 +199,26 @@ namespace Server.Engines.CannedEvil
|
|||
private ChampionAltar m_Altar;
|
||||
private int m_Kills;
|
||||
private Mobile m_Champion;
|
||||
|
||||
//private int m_SpawnRange;
|
||||
private Rectangle2D m_SpawnArea;
|
||||
private ChampionSpawnRegion m_Region;
|
||||
|
||||
private TimeSpan m_ExpireDelay;
|
||||
private DateTime m_ExpireTime;
|
||||
|
||||
private TimeSpan m_RestartDelay;
|
||||
private DateTime m_RestartTime;
|
||||
|
||||
private Timer m_Timer, m_RestartTimer;
|
||||
|
||||
private IdolOfTheChampion m_Idol;
|
||||
|
||||
private bool m_HasBeenAdvanced;
|
||||
private bool m_ConfinedRoaming;
|
||||
|
||||
private int m_BaseMaxKills;
|
||||
private int m_AdjustMaxKills;
|
||||
private Dictionary<Mobile, int> m_DamageEntries;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool ConfinedRoaming
|
||||
{
|
||||
get { return m_ConfinedRoaming; }
|
||||
set { m_ConfinedRoaming = value; }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool HasBeenAdvanced
|
||||
{
|
||||
get { return m_HasBeenAdvanced; }
|
||||
set { m_HasBeenAdvanced = value; }
|
||||
}
|
||||
private ChampionSpawnInfo m_CustomSpawnInfo;
|
||||
private Type m_RewardBig;
|
||||
private Type m_Reward;
|
||||
private double m_ArtifactDropChance;
|
||||
private double m_TrapsDensity;
|
||||
private bool m_Traps;
|
||||
private bool m_Rebuild;
|
||||
|
||||
[Constructable]
|
||||
public ChampionSpawn() : base( 0xBD2 )
|
||||
|
|
@ -74,15 +239,96 @@ namespace Server.Engines.CannedEvil
|
|||
|
||||
m_DamageEntries = new Dictionary<Mobile, int>();
|
||||
|
||||
m_CustomSpawnData = new CustomSpawnData();
|
||||
|
||||
Z += 20;
|
||||
|
||||
Timer.DelayCall( TimeSpan.Zero, new TimerCallback( SetInitialSpawnArea ) );
|
||||
}
|
||||
|
||||
public void SetInitialSpawnArea()
|
||||
{
|
||||
//Previous default used to be 24;
|
||||
SpawnArea = new Rectangle2D( new Point2D( X - 24, Y - 24 ), new Point2D( X + 24, Y + 24 ) );
|
||||
}
|
||||
|
||||
private bool Validate()
|
||||
{
|
||||
return (
|
||||
( m_CustomSpawnData.ChampType != null || m_LinkedChamp != null ) &&
|
||||
|
||||
( m_CustomSpawnData.MobLevel1A != null && m_CustomSpawnData.MobLevel1B != null ) &&
|
||||
( m_CustomSpawnData.MobLevel2A != null && m_CustomSpawnData.MobLevel2B != null ) &&
|
||||
( m_CustomSpawnData.MobLevel3A != null && m_CustomSpawnData.MobLevel3B != null ) &&
|
||||
( m_CustomSpawnData.MobLevel4A != null && m_CustomSpawnData.MobLevel4B != null ) &&
|
||||
|
||||
m_CustomSpawnData.SpawnName != null &&
|
||||
m_CustomSpawnData.TitleLevel1 != null &&
|
||||
m_CustomSpawnData.TitleLevel2 != null &&
|
||||
m_CustomSpawnData.TitleLevel3 != null &&
|
||||
m_CustomSpawnData.ChampType != null
|
||||
);
|
||||
}
|
||||
|
||||
public ChampionSpawnInfo ReGenerateInfo()
|
||||
{
|
||||
if( !Validate() )
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return new ChampionSpawnInfo
|
||||
(
|
||||
m_CustomSpawnData.SpawnName,
|
||||
ConvertToMobileType( m_CustomSpawnData.ChampType ),
|
||||
new string[]
|
||||
{
|
||||
m_CustomSpawnData.TitleLevel1,
|
||||
m_CustomSpawnData.TitleLevel2,
|
||||
m_CustomSpawnData.TitleLevel3
|
||||
},
|
||||
new Type[][]
|
||||
{
|
||||
new Type[]{ ConvertToMobileType( m_CustomSpawnData.MobLevel1A ), ConvertToMobileType( m_CustomSpawnData.MobLevel1B ) },
|
||||
new Type[]{ ConvertToMobileType( m_CustomSpawnData.MobLevel2A ), ConvertToMobileType( m_CustomSpawnData.MobLevel2B ) },
|
||||
new Type[]{ ConvertToMobileType( m_CustomSpawnData.MobLevel3A ), ConvertToMobileType( m_CustomSpawnData.MobLevel3B ) },
|
||||
new Type[]{ ConvertToMobileType( m_CustomSpawnData.MobLevel4A ), ConvertToMobileType( m_CustomSpawnData.MobLevel4B ) }
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
private Type ConvertToMobileType( string type )
|
||||
{
|
||||
try
|
||||
{
|
||||
if( type != null )
|
||||
{
|
||||
Type newType = ScriptCompiler.FindTypeByName( type, true );
|
||||
|
||||
if( newType != null )
|
||||
{
|
||||
return newType;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private Item GetCustomDrop()
|
||||
{
|
||||
Type type = ( Utility.RandomDouble() < .34 ) ? m_RewardBig.GetType() : m_Reward.GetType();
|
||||
|
||||
if( type != null )
|
||||
{
|
||||
return InstantiateObject( type ) as Item;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public void UpdateRegion()
|
||||
{
|
||||
if( m_Region != null )
|
||||
|
|
@ -93,189 +339,9 @@ namespace Server.Engines.CannedEvil
|
|||
m_Region = new ChampionSpawnRegion( this );
|
||||
m_Region.Register();
|
||||
}
|
||||
|
||||
/*
|
||||
if( m_Region == null )
|
||||
{
|
||||
m_Region = new ChampionSpawnRegion( this );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Region.Unregister();
|
||||
//Why doesn't Region allow me to set it's map/Area meself? ><
|
||||
m_Region = new ChampionSpawnRegion( this );
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool RandomizeType
|
||||
{
|
||||
get { return m_RandomizeType; }
|
||||
set { m_RandomizeType = value; }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int Kills
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Kills;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_Kills = value;
|
||||
InvalidateProperties();
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public Rectangle2D SpawnArea
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_SpawnArea;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_SpawnArea = value;
|
||||
InvalidateProperties();
|
||||
UpdateRegion();
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public TimeSpan RestartDelay
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_RestartDelay;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_RestartDelay = value;
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public DateTime RestartTime
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_RestartTime;
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public TimeSpan ExpireDelay
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_ExpireDelay;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_ExpireDelay = value;
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public DateTime ExpireTime
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_ExpireTime;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_ExpireTime = value;
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public ChampionSpawnType Type
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Type;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_Type = value;
|
||||
InvalidateProperties();
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool Active
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Active;
|
||||
}
|
||||
set
|
||||
{
|
||||
if( value )
|
||||
Start();
|
||||
else
|
||||
Stop();
|
||||
|
||||
InvalidateProperties();
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public Mobile Champion
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Champion;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_Champion = value;
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int Level
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_RedSkulls.Count;
|
||||
}
|
||||
set
|
||||
{
|
||||
for( int i = m_RedSkulls.Count - 1; i >= value; --i )
|
||||
{
|
||||
m_RedSkulls[i].Delete();
|
||||
m_RedSkulls.RemoveAt( i );
|
||||
}
|
||||
|
||||
for( int i = m_RedSkulls.Count; i < value; ++i )
|
||||
{
|
||||
Item skull = new Item( 0x1854 );
|
||||
|
||||
skull.Hue = 0x26;
|
||||
skull.Movable = false;
|
||||
skull.Light = LightType.Circle150;
|
||||
|
||||
skull.MoveToWorld( GetRedSkullLocation( i ), Map );
|
||||
|
||||
m_RedSkulls.Add( skull );
|
||||
}
|
||||
|
||||
InvalidateProperties();
|
||||
}
|
||||
}
|
||||
|
||||
public int MaxKills
|
||||
{
|
||||
get
|
||||
{
|
||||
return 250 - (Level * 12);
|
||||
}
|
||||
}
|
||||
public int MaxKills { get { return m_BaseMaxKills - ( Level * m_AdjustMaxKills ); } }
|
||||
|
||||
public bool IsChampionSpawn( Mobile m )
|
||||
{
|
||||
|
|
@ -292,11 +358,11 @@ namespace Server.Engines.CannedEvil
|
|||
|
||||
for( int i = m_WhiteSkulls.Count; i < val; ++i )
|
||||
{
|
||||
Item skull = new Item( 0x1854 );
|
||||
Item skull = new Item( m_PlatformData.ItemIDWhiteCandles );
|
||||
|
||||
skull.Movable = false;
|
||||
skull.Light = LightType.Circle150;
|
||||
|
||||
skull.Hue = m_PlatformData.HueWhiteCandles;
|
||||
skull.MoveToWorld( GetWhiteSkullLocation( i ), Map );
|
||||
|
||||
m_WhiteSkulls.Add( skull );
|
||||
|
|
@ -328,13 +394,13 @@ namespace Server.Engines.CannedEvil
|
|||
if( m_Altar != null )
|
||||
{
|
||||
if ( m_Champion != null )
|
||||
m_Altar.Hue = 0x26;
|
||||
m_Altar.Hue = m_PlatformData.AddonHueChampion;
|
||||
else
|
||||
m_Altar.Hue = 0;
|
||||
m_Altar.Hue = m_PlatformData.AddonHueActive;
|
||||
}
|
||||
|
||||
if ( m_Platform != null )
|
||||
m_Platform.Hue = 0x452;
|
||||
m_Platform.Hue = m_PlatformData.PlatformHueActive;
|
||||
}
|
||||
|
||||
public void Stop()
|
||||
|
|
@ -356,10 +422,10 @@ namespace Server.Engines.CannedEvil
|
|||
m_RestartTimer = null;
|
||||
|
||||
if( m_Altar != null )
|
||||
m_Altar.Hue = 0;
|
||||
m_Altar.Hue = m_PlatformData.AddonHueInactive;
|
||||
|
||||
if ( m_Platform != null )
|
||||
m_Platform.Hue = 0x497;
|
||||
m_Platform.Hue = m_PlatformData.PlatformHueInactive;
|
||||
}
|
||||
|
||||
public void BeginRestart( TimeSpan ts )
|
||||
|
|
@ -650,6 +716,27 @@ namespace Server.Engines.CannedEvil
|
|||
m_Champion.MoveToWorld( new Point3D( X, Y, Z - 15 ), Map );
|
||||
}
|
||||
|
||||
public object InstantiateObject( object obj )
|
||||
{
|
||||
if( obj is BaseCreature )
|
||||
{
|
||||
try
|
||||
{
|
||||
object Object = Activator.CreateInstance( obj.GetType() ) as object;
|
||||
|
||||
if( Object is BaseCreature || Object is Item )
|
||||
{
|
||||
return Object;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public void Respawn()
|
||||
{
|
||||
if( !m_Active || Deleted || m_Champion != null )
|
||||
|
|
@ -1006,7 +1093,7 @@ namespace Server.Engines.CannedEvil
|
|||
{
|
||||
}
|
||||
|
||||
public virtual void RegisterDamageTo( Mobile m )
|
||||
public void RegisterDamageTo( Mobile m )
|
||||
{
|
||||
if( m == null )
|
||||
return;
|
||||
|
|
@ -1276,12 +1363,15 @@ namespace Server.Engines.CannedEvil
|
|||
}
|
||||
|
||||
|
||||
public IdolOfTheChampion( ChampionSpawn spawn ): base( 0x1F18 )
|
||||
public IdolOfTheChampion( ChampionSpawn spawn )
|
||||
: base( spawn.PlatformData.ItemIDIdol )
|
||||
{
|
||||
m_Spawn = spawn;
|
||||
Movable = false;
|
||||
}
|
||||
|
||||
public override bool DisplayWeight { get { return false; } }
|
||||
|
||||
public override void OnAfterDelete()
|
||||
{
|
||||
base.OnAfterDelete();
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Mobiles;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Engines.CannedEvil
|
||||
{
|
||||
|
|
@ -14,7 +15,200 @@ namespace Server.Engines.CannedEvil
|
|||
UnholyTerror,
|
||||
SleepingDragon,
|
||||
Glade,
|
||||
Pestilence
|
||||
Pestilence,
|
||||
Custom
|
||||
}
|
||||
|
||||
[NoSort]
|
||||
[Parsable]
|
||||
[PropertyObject]
|
||||
public class PlatformData
|
||||
{
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public Type Addon { get { return m_Addon; } set { m_Addon = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int AddonHueActive { get { return m_AddonHueActive; } set { m_AddonHueActive = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int AddonHueInactive { get { return m_AddonHueInactive; } set { m_AddonHueInactive = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int AddonHueChampion { get { return m_AddonHueChampion; } set { m_AddonHueChampion = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int PlatformHueActive { get { return m_PlaformHueActive; } set { m_PlaformHueActive = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int PlatformHueInactive { get { return m_PlatformHueInactive; } set { m_PlatformHueInactive = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int ItemIDPlaformBlocks { get { return m_ItemIDPlaformBlocks; } set { m_ItemIDPlaformBlocks = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int ItemIDCornerNW { get { return m_ItemIDCornerNW; } set { m_ItemIDCornerNW = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int ItemIDCornerSE { get { return m_ItemIDCornerSE; } set { m_ItemIDCornerSE = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int ItemIDCornerSW { get { return m_ItemIDCornerSW; } set { m_ItemIDCornerSW = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int ItemIDCornerNE { get { return m_ItemIDCornerNE; } set { m_ItemIDCornerNE = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int ItemIDStepsS { get { return m_ItemIDStepsS; } set { m_ItemIDStepsS = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int ItemIDStepsE { get { return m_ItemIDStepsE; } set { m_ItemIDStepsE = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int ItemIDStepsN { get { return m_ItemIDStepsN; } set { m_ItemIDStepsN = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int ItemIDStepsW { get { return m_ItemIDStepsW; } set { m_ItemIDStepsW = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int ItemIDRedCandles { get { return m_ItemIDRedCandles; } set { m_ItemIDRedCandles = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int HueRedCandles { get { return m_HueRedCandles; } set { m_HueRedCandles = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int ItemIDWhiteCandles { get { return m_ItemIDWhiteCandles; } set { m_ItemIDWhiteCandles = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int HueWhiteCandles { get { return m_HueWhiteCandles; } set { m_HueWhiteCandles = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int ItemIDIdol { get { return m_ItemIDIdol; } set { m_ItemIDIdol = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public int HueIdol { get { return m_HueIdol; } set { m_HueIdol = value; } }
|
||||
|
||||
private int m_ItemIDWhiteCandles;
|
||||
private int m_ItemIDRedCandles;
|
||||
private int m_ItemIDPlaformBlocks;
|
||||
private int m_ItemIDCornerNE;
|
||||
private int m_ItemIDCornerNW;
|
||||
private int m_ItemIDCornerSW;
|
||||
private int m_ItemIDCornerSE;
|
||||
private int m_ItemIDStepsS;
|
||||
private int m_ItemIDStepsE;
|
||||
private int m_ItemIDStepsN;
|
||||
private int m_ItemIDStepsW;
|
||||
private int m_ItemIDIdol;
|
||||
private int m_HueWhiteCandles;
|
||||
private int m_HueRedCandles;
|
||||
private int m_PlaformHueActive;
|
||||
private int m_PlatformHueInactive;
|
||||
private Type m_Addon;
|
||||
private int m_AddonHueActive;
|
||||
private int m_AddonHueInactive;
|
||||
private int m_AddonHueChampion;
|
||||
private int m_HueIdol;
|
||||
|
||||
public PlatformData()
|
||||
{
|
||||
m_Addon = typeof( PentagramAddon );
|
||||
m_AddonHueInactive = 0x455;
|
||||
m_AddonHueActive = 0;
|
||||
m_AddonHueChampion = 0x26;
|
||||
m_ItemIDPlaformBlocks = 0x3ee;
|
||||
m_ItemIDCornerNW = 0x3f7;
|
||||
m_ItemIDCornerSE = 0x3f8;
|
||||
m_ItemIDCornerSW = 0x3f9;
|
||||
m_ItemIDCornerNE = 0x3fa;
|
||||
m_ItemIDStepsS = 0x3ef;
|
||||
m_ItemIDStepsE = 0x3f0;
|
||||
m_ItemIDStepsN = 0x3f1;
|
||||
m_ItemIDStepsW = 0x3f2;
|
||||
m_PlaformHueActive = 0x455;
|
||||
m_PlatformHueInactive = 0x454;
|
||||
m_ItemIDRedCandles = 0x1854;
|
||||
m_HueRedCandles = 0x26;
|
||||
m_ItemIDWhiteCandles = 0x1854;
|
||||
m_HueWhiteCandles = 0x26;
|
||||
m_ItemIDIdol = 0x1f18;
|
||||
m_HueIdol = 0;
|
||||
}
|
||||
}
|
||||
|
||||
[NoSort]
|
||||
[Parsable]
|
||||
[PropertyObject]
|
||||
public class CustomSpawnData
|
||||
{
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public string SpawnName { get { return m_SpawnName; } set { m_SpawnName = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public string ChampType { get { return m_ChampType; } set { m_ChampType = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public string TitleLevel1 { get { return m_TitleLevel1; } set { m_TitleLevel1 = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public string TitleLevel2 { get { return m_TitleLevel2; } set { m_TitleLevel2 = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public string TitleLevel3 { get { return m_TitleLevel3; } set { m_TitleLevel3 = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public string MobLevel1A { get { return m_MobLevel1A; } set { m_MobLevel1A = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public string MobLevel1B { get { return m_MobLevel1B; } set { m_MobLevel1B = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public string MobLevel2A { get { return m_MobLevel2A; } set { m_MobLevel2A = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public string MobLevel2B { get { return m_MobLevel2B; } set { m_MobLevel2B = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public string MobLevel3A { get { return m_MobLevel3A; } set { m_MobLevel3A = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public string MobLevel3B { get { return m_MobLevel3B; } set { m_MobLevel3B = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public string MobLevel4A { get { return m_MobLevel4A; } set { m_MobLevel4A = value; } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public string MobLevel4B { get { return m_MobLevel4B; } set { m_MobLevel4B = value; } }
|
||||
|
||||
private string m_SpawnName;
|
||||
private string m_ChampType;
|
||||
private string m_TitleLevel1;
|
||||
private string m_TitleLevel2;
|
||||
private string m_TitleLevel3;
|
||||
private string m_MobLevel1A;
|
||||
private string m_MobLevel1B;
|
||||
private string m_MobLevel2A;
|
||||
private string m_MobLevel2B;
|
||||
private string m_MobLevel3A;
|
||||
private string m_MobLevel3B;
|
||||
private string m_MobLevel4A;
|
||||
private string m_MobLevel4B;
|
||||
|
||||
public CustomSpawnData()
|
||||
{
|
||||
m_SpawnName = "Demise";
|
||||
m_ChampType = "GreaterMongbat";
|
||||
m_TitleLevel1 = "Challenger";
|
||||
m_TitleLevel2 = "Conqueror";
|
||||
m_TitleLevel3 = "Champion";
|
||||
m_MobLevel1A = "Mongbat";
|
||||
m_MobLevel1B = "Mongbat";
|
||||
m_MobLevel2A = "Mongbat";
|
||||
m_MobLevel2B = "Mongbat";
|
||||
m_MobLevel3A = "Mongbat";
|
||||
m_MobLevel3B = "Mongbat";
|
||||
m_MobLevel4A = "Mongbat";
|
||||
m_MobLevel4B = "Mongbat";
|
||||
}
|
||||
}
|
||||
|
||||
public class ChampionSpawnInfo
|
||||
|
|
|
|||
|
|
@ -335,7 +335,7 @@ namespace Server.Misc
|
|||
}
|
||||
}
|
||||
|
||||
private static TimeSpan m_StatGainDelay = TimeSpan.FromMinutes( 15.0 );
|
||||
private static TimeSpan m_StatGainDelay = TimeSpan.FromMinutes( ( Core.ML ) ? 15.0 : 0.05 );
|
||||
private static TimeSpan m_PetStatGainDelay = TimeSpan.FromMinutes( 5.0 );
|
||||
|
||||
public static void GainStat( Mobile from, Stat stat )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue