Changes properties to use automatic property initializers

This commit is contained in:
Kamron Batman 2018-09-14 15:23:29 -07:00
parent f0a48ad431
commit 06fa31a7bf
623 changed files with 13072 additions and 19304 deletions

View file

@ -6,12 +6,11 @@ namespace Server.Engines.CannedEvil
{
public class ChampionSkullBrazier : AddonComponent
{
private ChampionSkullPlatform m_Platform;
private ChampionSkullType m_Type;
private Item m_Skull;
[CommandProperty( AccessLevel.GameMaster )]
public ChampionSkullPlatform Platform => m_Platform;
public ChampionSkullPlatform Platform { get; private set; }
[CommandProperty( AccessLevel.GameMaster )]
public ChampionSkullType Type{ get => m_Type;
@ -20,7 +19,7 @@ namespace Server.Engines.CannedEvil
[CommandProperty( AccessLevel.GameMaster )]
public Item Skull{ get => m_Skull;
set{ m_Skull = value;
m_Platform?.Validate();
Platform?.Validate();
} }
public override int LabelNumber => 1049489 + (int)m_Type;
@ -30,7 +29,7 @@ namespace Server.Engines.CannedEvil
Hue = 0x455;
Light = LightType.Circle300;
m_Platform = platform;
Platform = platform;
m_Type = type;
}
@ -40,7 +39,7 @@ namespace Server.Engines.CannedEvil
public override void OnDoubleClick( Mobile from )
{
m_Platform?.Validate();
Platform?.Validate();
BeginSacrifice( from );
}
@ -138,7 +137,7 @@ namespace Server.Engines.CannedEvil
writer.Write( (int) 0 ); // version
writer.Write( (int) m_Type );
writer.Write( m_Platform );
writer.Write( Platform );
writer.Write( m_Skull );
}
@ -153,10 +152,10 @@ namespace Server.Engines.CannedEvil
case 0:
{
m_Type = (ChampionSkullType)reader.ReadInt();
m_Platform = reader.ReadItem() as ChampionSkullPlatform;
Platform = reader.ReadItem() as ChampionSkullPlatform;
m_Skull = reader.ReadItem();
if ( m_Platform == null )
if ( Platform == null )
Delete();
break;

View file

@ -18,7 +18,6 @@ namespace Server.Engines.CannedEvil
private int m_SPawnSzMod;
private bool m_Active;
private bool m_RandomizeType;
private ChampionSpawnType m_Type;
private List<Mobile> m_Creatures;
private List<Item> m_RedSkulls;
@ -26,40 +25,22 @@ namespace Server.Engines.CannedEvil
private ChampionPlatform m_Platform;
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 Dictionary<Mobile, int> m_DamageEntries;
[CommandProperty( AccessLevel.GameMaster )]
public bool ConfinedRoaming
{
get => m_ConfinedRoaming;
set => m_ConfinedRoaming = value;
}
public bool ConfinedRoaming { get; set; }
[CommandProperty( AccessLevel.GameMaster )]
public bool HasBeenAdvanced
{
get => m_HasBeenAdvanced;
set => m_HasBeenAdvanced = value;
}
public bool HasBeenAdvanced { get; set; }
[Constructible]
public ChampionSpawn() : base( 0xBD2 )
@ -75,8 +56,8 @@ namespace Server.Engines.CannedEvil
m_Altar = new ChampionAltar( this );
m_Idol = new IdolOfTheChampion( this );
m_ExpireDelay = TimeSpan.FromMinutes( 10.0 );
m_RestartDelay = TimeSpan.FromMinutes( 10.0 );
ExpireDelay = TimeSpan.FromMinutes( 10.0 );
RestartDelay = TimeSpan.FromMinutes( 10.0 );
m_DamageEntries = new Dictionary<Mobile, int>();
@ -114,11 +95,7 @@ namespace Server.Engines.CannedEvil
}
[CommandProperty( AccessLevel.GameMaster )]
public bool RandomizeType
{
get => m_RandomizeType;
set => m_RandomizeType = value;
}
public bool RandomizeType { get; set; }
[CommandProperty( AccessLevel.GameMaster )]
public int Kills
@ -144,28 +121,16 @@ namespace Server.Engines.CannedEvil
}
[CommandProperty( AccessLevel.GameMaster )]
public TimeSpan RestartDelay
{
get => m_RestartDelay;
set => m_RestartDelay = value;
}
public TimeSpan RestartDelay { get; set; }
[CommandProperty( AccessLevel.GameMaster )]
public DateTime RestartTime => m_RestartTime;
public DateTime RestartTime { get; private set; }
[CommandProperty( AccessLevel.GameMaster )]
public TimeSpan ExpireDelay
{
get => m_ExpireDelay;
set => m_ExpireDelay = value;
}
public TimeSpan ExpireDelay { get; set; }
[CommandProperty( AccessLevel.GameMaster )]
public DateTime ExpireTime
{
get => m_ExpireTime;
set => m_ExpireTime = value;
}
public DateTime ExpireTime { get; set; }
[CommandProperty( AccessLevel.GameMaster )]
public ChampionSpawnType Type
@ -194,11 +159,7 @@ namespace Server.Engines.CannedEvil
}
[CommandProperty( AccessLevel.GameMaster )]
public Mobile Champion
{
get => m_Champion;
set => m_Champion = value;
}
public Mobile Champion { get; set; }
[CommandProperty( AccessLevel.GameMaster )]
public int Level
@ -266,7 +227,7 @@ namespace Server.Engines.CannedEvil
return;
m_Active = true;
m_HasBeenAdvanced = false;
HasBeenAdvanced = false;
m_Timer?.Stop();
@ -279,7 +240,7 @@ namespace Server.Engines.CannedEvil
if ( m_Altar != null )
{
if ( m_Champion != null )
if ( Champion != null )
m_Altar.Hue = 0x26;
else
m_Altar.Hue = 0;
@ -295,7 +256,7 @@ namespace Server.Engines.CannedEvil
return;
m_Active = false;
m_HasBeenAdvanced = false;
HasBeenAdvanced = false;
m_Timer?.Stop();
@ -316,7 +277,7 @@ namespace Server.Engines.CannedEvil
{
m_RestartTimer?.Stop();
m_RestartTime = DateTime.UtcNow + ts;
RestartTime = DateTime.UtcNow + ts;
m_RestartTimer = new RestartTimer( this, ts );
m_RestartTimer.Start();
@ -336,7 +297,7 @@ namespace Server.Engines.CannedEvil
}
}
m_HasBeenAdvanced = false;
HasBeenAdvanced = false;
Start();
}
@ -414,13 +375,13 @@ namespace Server.Engines.CannedEvil
if ( !m_Active || Deleted )
return;
if ( m_Champion != null )
if ( Champion != null )
{
if ( m_Champion.Deleted )
if ( Champion.Deleted )
{
RegisterDamageTo( m_Champion );
RegisterDamageTo( Champion );
if ( m_Champion is BaseChampion champion )
if ( Champion is BaseChampion champion )
AwardArtifact( champion.GetArtifact() );
m_DamageEntries.Clear();
@ -438,10 +399,10 @@ namespace Server.Engines.CannedEvil
}
}
m_Champion = null;
Champion = null;
Stop();
BeginRestart( m_RestartDelay );
BeginRestart( RestartDelay );
}
}
else
@ -543,7 +504,7 @@ namespace Server.Engines.CannedEvil
else if ( p > 0 )
SetWhiteSkullCount( p / 20 );
if ( DateTime.UtcNow >= m_ExpireTime )
if ( DateTime.UtcNow >= ExpireTime )
Expire();
Respawn();
@ -552,7 +513,7 @@ namespace Server.Engines.CannedEvil
public void AdvanceLevel()
{
m_ExpireTime = DateTime.UtcNow + m_ExpireDelay;
ExpireTime = DateTime.UtcNow + ExpireDelay;
if ( Level < 16 )
{
@ -588,16 +549,16 @@ namespace Server.Engines.CannedEvil
try
{
m_Champion = Activator.CreateInstance( ChampionSpawnInfo.GetInfo( m_Type ).Champion ) as Mobile;
Champion = Activator.CreateInstance( ChampionSpawnInfo.GetInfo( m_Type ).Champion ) as Mobile;
}
catch { }
m_Champion?.MoveToWorld( new Point3D( X, Y, Z - 15 ), Map );
Champion?.MoveToWorld( new Point3D( X, Y, Z - 15 ), Map );
}
public void Respawn()
{
if ( !m_Active || Deleted || m_Champion != null )
if ( !m_Active || Deleted || Champion != null )
return;
while( m_Creatures.Count < ( ( m_SPawnSzMod * ( 200 / 12 ) ) ) - ( GetSubLevel() * ( m_SPawnSzMod * ( 40 / 12 ) ) ) )
@ -619,7 +580,7 @@ namespace Server.Engines.CannedEvil
{
bc.Tamable = false;
if ( !m_ConfinedRoaming )
if ( !ConfinedRoaming )
{
bc.Home = Location;
bc.RangeHome = (int)(Math.Sqrt( m_SpawnArea.Width * m_SpawnArea.Width + m_SpawnArea.Height * m_SpawnArea.Height )/2);
@ -752,7 +713,7 @@ namespace Server.Engines.CannedEvil
SetWhiteSkullCount( 0 );
}
m_ExpireTime = DateTime.UtcNow + m_ExpireDelay;
ExpireTime = DateTime.UtcNow + ExpireDelay;
}
public Point3D GetRedSkullLocation( int index )
@ -935,8 +896,8 @@ namespace Server.Engines.CannedEvil
m_Creatures.Clear();
}
if ( m_Champion != null && !m_Champion.Player )
m_Champion.Delete();
if ( Champion != null && !Champion.Player )
Champion.Delete();
Stop();
@ -1047,12 +1008,12 @@ namespace Server.Engines.CannedEvil
writer.Write( kvp.Value );
}
writer.Write( m_ConfinedRoaming );
writer.Write( ConfinedRoaming );
writer.WriteItem<IdolOfTheChampion>( m_Idol );
writer.Write( m_HasBeenAdvanced );
writer.Write( HasBeenAdvanced );
writer.Write( m_SpawnArea );
writer.Write( m_RandomizeType );
writer.Write( RandomizeType );
// writer.Write( m_SpawnRange );
writer.Write( m_Kills );
@ -1064,15 +1025,15 @@ namespace Server.Engines.CannedEvil
writer.Write( m_WhiteSkulls, true );
writer.WriteItem<ChampionPlatform>( m_Platform );
writer.WriteItem<ChampionAltar>( m_Altar );
writer.Write( m_ExpireDelay );
writer.WriteDeltaTime( m_ExpireTime );
writer.Write( m_Champion );
writer.Write( m_RestartDelay );
writer.Write( ExpireDelay );
writer.WriteDeltaTime( ExpireTime );
writer.Write( Champion );
writer.Write( RestartDelay );
writer.Write( m_RestartTimer != null );
if ( m_RestartTimer != null )
writer.WriteDeltaTime( m_RestartTime );
writer.WriteDeltaTime( RestartTime );
}
public override void Deserialize( GenericReader reader )
@ -1110,9 +1071,9 @@ namespace Server.Engines.CannedEvil
}
case 4:
{
m_ConfinedRoaming = reader.ReadBool();
ConfinedRoaming = reader.ReadBool();
m_Idol = reader.ReadItem<IdolOfTheChampion>();
m_HasBeenAdvanced = reader.ReadBool();
HasBeenAdvanced = reader.ReadBool();
goto case 3;
}
@ -1124,7 +1085,7 @@ namespace Server.Engines.CannedEvil
}
case 2:
{
m_RandomizeType = reader.ReadBool();
RandomizeType = reader.ReadBool();
goto case 1;
}
@ -1153,15 +1114,15 @@ namespace Server.Engines.CannedEvil
m_WhiteSkulls = reader.ReadStrongItemList();
m_Platform = reader.ReadItem<ChampionPlatform>();
m_Altar = reader.ReadItem<ChampionAltar>();
m_ExpireDelay = reader.ReadTimeSpan();
m_ExpireTime = reader.ReadDeltaTime();
m_Champion = reader.ReadMobile();
m_RestartDelay = reader.ReadTimeSpan();
ExpireDelay = reader.ReadTimeSpan();
ExpireTime = reader.ReadDeltaTime();
Champion = reader.ReadMobile();
RestartDelay = reader.ReadTimeSpan();
if ( reader.ReadBool() )
{
m_RestartTime = reader.ReadDeltaTime();
BeginRestart( m_RestartTime - DateTime.UtcNow );
RestartTime = reader.ReadDeltaTime();
BeginRestart( RestartTime - DateTime.UtcNow );
}
if ( version < 4 )
@ -1187,13 +1148,11 @@ namespace Server.Engines.CannedEvil
{
public override bool YoungProtected => false;
private ChampionSpawn m_Spawn;
public ChampionSpawn ChampionSpawn => m_Spawn;
public ChampionSpawn ChampionSpawn { get; }
public ChampionSpawnRegion( ChampionSpawn spawn ) : base( null, spawn.Map, Find( spawn.Location, spawn.Map ), spawn.SpawnArea )
{
m_Spawn = spawn;
ChampionSpawn = spawn;
}
public override bool AllowHousing( Mobile from, Point3D p )
@ -1204,22 +1163,20 @@ namespace Server.Engines.CannedEvil
public override void AlterLightLevel( Mobile m, ref int global, ref int personal )
{
base.AlterLightLevel( m, ref global, ref personal );
global = Math.Max( global, 1 + m_Spawn.Level ); //This is a guesstimate. TODO: Verify & get exact values // OSI testing: at 2 red skulls, light = 0x3 ; 1 red = 0x3.; 3 = 8; 9 = 0xD 8 = 0xD 12 = 0x12 10 = 0xD
global = Math.Max( global, 1 + ChampionSpawn.Level ); //This is a guesstimate. TODO: Verify & get exact values // OSI testing: at 2 red skulls, light = 0x3 ; 1 red = 0x3.; 3 = 8; 9 = 0xD 8 = 0xD 12 = 0x12 10 = 0xD
}
}
public class IdolOfTheChampion : Item
{
private ChampionSpawn m_Spawn;
public ChampionSpawn Spawn => m_Spawn;
public ChampionSpawn Spawn { get; private set; }
public override string DefaultName => "Idol of the Champion";
public IdolOfTheChampion( ChampionSpawn spawn ): base( 0x1F18 )
{
m_Spawn = spawn;
Spawn = spawn;
Movable = false;
}
@ -1227,7 +1184,7 @@ namespace Server.Engines.CannedEvil
{
base.OnAfterDelete();
m_Spawn?.Delete();
Spawn?.Delete();
}
public IdolOfTheChampion( Serial serial ) : base( serial )
@ -1240,7 +1197,7 @@ namespace Server.Engines.CannedEvil
writer.Write( (int) 0 ); // version
writer.Write( m_Spawn );
writer.Write( Spawn );
}
public override void Deserialize( GenericReader reader )
@ -1253,9 +1210,9 @@ namespace Server.Engines.CannedEvil
{
case 0:
{
m_Spawn = reader.ReadItem() as ChampionSpawn;
Spawn = reader.ReadItem() as ChampionSpawn;
if ( m_Spawn == null )
if ( Spawn == null )
Delete();
break;

View file

@ -18,103 +18,100 @@ namespace Server.Engines.CannedEvil
public class ChampionSpawnInfo
{
private string m_Name;
private Type m_Champion;
private Type[][] m_SpawnTypes;
private string[] m_LevelNames;
public string Name { get; }
public string Name => m_Name;
public Type Champion => m_Champion;
public Type[][] SpawnTypes => m_SpawnTypes;
public string[] LevelNames => m_LevelNames;
public Type Champion { get; }
public Type[][] SpawnTypes { get; }
public string[] LevelNames { get; }
public ChampionSpawnInfo( string name, Type champion, string[] levelNames, Type[][] spawnTypes )
{
m_Name = name;
m_Champion = champion;
m_LevelNames = levelNames;
m_SpawnTypes = spawnTypes;
Name = name;
Champion = champion;
LevelNames = levelNames;
SpawnTypes = spawnTypes;
}
public static ChampionSpawnInfo[] Table => m_Table;
private static readonly ChampionSpawnInfo[] m_Table = {
new ChampionSpawnInfo( "Abyss", typeof( Semidar ), new[]{ "Foe", "Assassin", "Conqueror" }, new[] // Abyss
{ // Abyss
new[]{ typeof( GreaterMongbat ), typeof( Imp ) }, // Level 1
new[]{ typeof( Gargoyle ), typeof( Harpy ) }, // Level 2
new[]{ typeof( FireGargoyle ), typeof( StoneGargoyle ) }, // Level 3
new[]{ typeof( Daemon ), typeof( Succubus ) } // Level 4
} ),
new ChampionSpawnInfo( "Arachnid", typeof( Mephitis ), new[]{ "Bane", "Killer", "Vanquisher" }, new[] // Arachnid
{ // Arachnid
new[]{ typeof( Scorpion ), typeof( GiantSpider ) }, // Level 1
new[]{ typeof( TerathanDrone ), typeof( TerathanWarrior ) }, // Level 2
new[]{ typeof( DreadSpider ), typeof( TerathanMatriarch ) }, // Level 3
new[]{ typeof( PoisonElemental ), typeof( TerathanAvenger ) } // Level 4
} ),
new ChampionSpawnInfo( "Cold Blood", typeof( Rikktor ), new[]{ "Blight", "Slayer", "Destroyer" }, new[] // Cold Blood
{ // Cold Blood
new[]{ typeof( Lizardman ), typeof( Snake ) }, // Level 1
new[]{ typeof( LavaLizard ), typeof( OphidianWarrior ) }, // Level 2
new[]{ typeof( Drake ), typeof( OphidianArchmage ) }, // Level 3
new[]{ typeof( Dragon ), typeof( OphidianKnight ) } // Level 4
} ),
new ChampionSpawnInfo( "Forest Lord", typeof( LordOaks ), new[]{ "Enemy", "Curse", "Slaughterer" }, new[] // Forest Lord
{ // Forest Lord
new[]{ typeof( Pixie ), typeof( ShadowWisp ) }, // Level 1
new[]{ typeof( Kirin ), typeof( Wisp ) }, // Level 2
new[]{ typeof( Centaur ), typeof( Unicorn ) }, // Level 3
new[]{ typeof( EtherealWarrior ), typeof( SerpentineDragon ) } // Level 4
} ),
new ChampionSpawnInfo( "Vermin Horde", typeof( Barracoon ), new[]{ "Adversary", "Subjugator", "Eradicator" }, new[] // Vermin Horde
{ // Vermin Horde
new[]{ typeof( GiantRat ), typeof( Slime ) }, // Level 1
new[]{ typeof( DireWolf ), typeof( Ratman ) }, // Level 2
new[]{ typeof( HellHound ), typeof( RatmanMage ) }, // Level 3
new[]{ typeof( RatmanArcher ), typeof( SilverSerpent ) } // Level 4
} ),
new ChampionSpawnInfo( "Unholy Terror", typeof( Neira ), new[]{ "Scourge", "Punisher", "Nemesis" }, new[] // Unholy Terror
{ // Unholy Terror
(Core.AOS ?
public static ChampionSpawnInfo[] Table { get; } =
{
new ChampionSpawnInfo( "Abyss", typeof( Semidar ), new[]{ "Foe", "Assassin", "Conqueror" }, new[] // Abyss
{ // Abyss
new[]{ typeof( GreaterMongbat ), typeof( Imp ) }, // Level 1
new[]{ typeof( Gargoyle ), typeof( Harpy ) }, // Level 2
new[]{ typeof( FireGargoyle ), typeof( StoneGargoyle ) }, // Level 3
new[]{ typeof( Daemon ), typeof( Succubus ) } // Level 4
} ),
new ChampionSpawnInfo( "Arachnid", typeof( Mephitis ), new[]{ "Bane", "Killer", "Vanquisher" }, new[] // Arachnid
{ // Arachnid
new[]{ typeof( Scorpion ), typeof( GiantSpider ) }, // Level 1
new[]{ typeof( TerathanDrone ), typeof( TerathanWarrior ) }, // Level 2
new[]{ typeof( DreadSpider ), typeof( TerathanMatriarch ) }, // Level 3
new[]{ typeof( PoisonElemental ), typeof( TerathanAvenger ) } // Level 4
} ),
new ChampionSpawnInfo( "Cold Blood", typeof( Rikktor ), new[]{ "Blight", "Slayer", "Destroyer" }, new[] // Cold Blood
{ // Cold Blood
new[]{ typeof( Lizardman ), typeof( Snake ) }, // Level 1
new[]{ typeof( LavaLizard ), typeof( OphidianWarrior ) }, // Level 2
new[]{ typeof( Drake ), typeof( OphidianArchmage ) }, // Level 3
new[]{ typeof( Dragon ), typeof( OphidianKnight ) } // Level 4
} ),
new ChampionSpawnInfo( "Forest Lord", typeof( LordOaks ), new[]{ "Enemy", "Curse", "Slaughterer" }, new[] // Forest Lord
{ // Forest Lord
new[]{ typeof( Pixie ), typeof( ShadowWisp ) }, // Level 1
new[]{ typeof( Kirin ), typeof( Wisp ) }, // Level 2
new[]{ typeof( Centaur ), typeof( Unicorn ) }, // Level 3
new[]{ typeof( EtherealWarrior ), typeof( SerpentineDragon ) } // Level 4
} ),
new ChampionSpawnInfo( "Vermin Horde", typeof( Barracoon ), new[]{ "Adversary", "Subjugator", "Eradicator" }, new[] // Vermin Horde
{ // Vermin Horde
new[]{ typeof( GiantRat ), typeof( Slime ) }, // Level 1
new[]{ typeof( DireWolf ), typeof( Ratman ) }, // Level 2
new[]{ typeof( HellHound ), typeof( RatmanMage ) }, // Level 3
new[]{ typeof( RatmanArcher ), typeof( SilverSerpent ) } // Level 4
} ),
new ChampionSpawnInfo( "Unholy Terror", typeof( Neira ), new[]{ "Scourge", "Punisher", "Nemesis" }, new[] // Unholy Terror
{ // Unholy Terror
(Core.AOS ?
new[]{ typeof( Bogle ), typeof( Ghoul ), typeof( Shade ), typeof( Spectre ), typeof( Wraith ) } // Level 1 (Pre-AoS)
: new[]{ typeof( Ghoul ), typeof( Shade ), typeof( Spectre ), typeof( Wraith ) } ), // Level 1
new[]{ typeof( BoneMagi ), typeof( Mummy ), typeof( SkeletalMage ) }, // Level 2
new[]{ typeof( BoneKnight ), typeof( Lich ), typeof( SkeletalKnight ) }, // Level 3
new[]{ typeof( LichLord ), typeof( RottingCorpse ) } // Level 4
} ),
new ChampionSpawnInfo( "Sleeping Dragon", typeof( Serado ), new[]{ "Rival", "Challenger", "Antagonist" } , new[]
{ // Unholy Terror
new[]{ typeof( DeathwatchBeetleHatchling ), typeof( Lizardman ) },
new[]{ typeof( DeathwatchBeetle ), typeof( Kappa ) },
new[]{ typeof( LesserHiryu ), typeof( RevenantLion ) },
new[]{ typeof( Hiryu ), typeof( Oni ) }
} ),
new ChampionSpawnInfo( "Glade", typeof( Twaulo ), new[]{ "Banisher", "Enforcer", "Eradicator" } , new[]
{ // Glade
new[]{ typeof( Pixie ), typeof( ShadowWisp ) },
new[]{ typeof( Centaur ), typeof( MLDryad ) },
new[]{ typeof( Satyr ), typeof( CuSidhe ) },
new[]{ typeof( FeralTreefellow ), typeof( RagingGrizzlyBear ) }
} ),
new ChampionSpawnInfo( "The Corrupt", typeof( Ilhenir ), new[]{ "Cleanser", "Expunger", "Depurator" } , new[]
{ // Unholy Terror
new[]{ typeof( PlagueSpawn ), typeof( Bogling ) },
new[]{ typeof( PlagueBeast ), typeof( BogThing ) },
new[]{ typeof( PlagueBeastLord ), typeof( InterredGrizzle ) },
new[]{ typeof( FetidEssence ), typeof( PestilentBandage ) }
} )
};
new[]{ typeof( BoneMagi ), typeof( Mummy ), typeof( SkeletalMage ) }, // Level 2
new[]{ typeof( BoneKnight ), typeof( Lich ), typeof( SkeletalKnight ) }, // Level 3
new[]{ typeof( LichLord ), typeof( RottingCorpse ) } // Level 4
} ),
new ChampionSpawnInfo( "Sleeping Dragon", typeof( Serado ), new[]{ "Rival", "Challenger", "Antagonist" } , new[]
{ // Unholy Terror
new[]{ typeof( DeathwatchBeetleHatchling ), typeof( Lizardman ) },
new[]{ typeof( DeathwatchBeetle ), typeof( Kappa ) },
new[]{ typeof( LesserHiryu ), typeof( RevenantLion ) },
new[]{ typeof( Hiryu ), typeof( Oni ) }
} ),
new ChampionSpawnInfo( "Glade", typeof( Twaulo ), new[]{ "Banisher", "Enforcer", "Eradicator" } , new[]
{ // Glade
new[]{ typeof( Pixie ), typeof( ShadowWisp ) },
new[]{ typeof( Centaur ), typeof( MLDryad ) },
new[]{ typeof( Satyr ), typeof( CuSidhe ) },
new[]{ typeof( FeralTreefellow ), typeof( RagingGrizzlyBear ) }
} ),
new ChampionSpawnInfo( "The Corrupt", typeof( Ilhenir ), new[]{ "Cleanser", "Expunger", "Depurator" } , new[]
{ // Unholy Terror
new[]{ typeof( PlagueSpawn ), typeof( Bogling ) },
new[]{ typeof( PlagueBeast ), typeof( BogThing ) },
new[]{ typeof( PlagueBeastLord ), typeof( InterredGrizzle ) },
new[]{ typeof( FetidEssence ), typeof( PestilentBandage ) }
} )
};
public static ChampionSpawnInfo GetInfo( ChampionSpawnType type )
{
int v = (int)type;
if ( v < 0 || v >= m_Table.Length )
if ( v < 0 || v >= Table.Length )
v = 0;
return m_Table[v];
return Table[v];
}
}
}