Upgrades spawners to have parameters/properties and optimized timers (#6)

Upgrades spawners to have:
- [X] Parameter support
- [X] Property support
- [X] Optimized timers
- [X] Support for Proximity Spawners
- [X] Probabilities
This commit is contained in:
Kamron Batman 2018-02-20 22:33:25 -08:00 • committed by GitHub
parent 20ae1b3989
commit 1030bb7675
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 1043 additions and 735 deletions

View file

@ -454,7 +454,7 @@ namespace Server.Commands
int indexOf = m_Params[i].IndexOf( '=' );
if ( indexOf >= 0 )
sp.SpawnNames.Add( m_Params[i].Substring( ++indexOf ) );
sp.AddEntry( m_Params[i].Substring( ++indexOf ), 100, 1 );
}
else if ( m_Params[i].StartsWith( "MinDelay" ) )
{
@ -482,7 +482,11 @@ namespace Server.Commands
int indexOf = m_Params[i].IndexOf( '=' );
if ( indexOf >= 0 )
{
sp.Count = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) );
for ( int se = 0;se < sp.Entries.Count; se++ )
sp.Entries[se].SpawnedMaxCount = sp.Count;
}
}
else if ( m_Params[i].StartsWith( "Team" ) )
{

View file

@ -451,7 +451,7 @@ namespace Server.Commands
int indexOf = m_Params[i].IndexOf( '=' );
if ( indexOf >= 0 )
sp.SpawnNames.Add( m_Params[i].Substring( ++indexOf ) );
sp.AddEntry( m_Params[i].Substring( ++indexOf ), 100, 1 );
}
else if ( m_Params[i].StartsWith( "MinDelay" ) )
{
@ -479,7 +479,11 @@ namespace Server.Commands
int indexOf = m_Params[i].IndexOf( '=' );
if ( indexOf >= 0 )
{
sp.Count = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) );
for ( int se = 0;se < sp.Entries.Count; se++ )
sp.Entries[se].SpawnedMaxCount = sp.Count;
}
}
else if ( m_Params[i].StartsWith( "Team" ) )
{

View file

@ -74,8 +74,6 @@ namespace Server.Commands
Register( "Light", AccessLevel.Counselor, new CommandEventHandler( Light_OnCommand ) );
Register( "Stats", AccessLevel.Counselor, new CommandEventHandler( Stats_OnCommand ) );
Register( "ReplaceBankers", AccessLevel.Administrator, new CommandEventHandler( ReplaceBankers_OnCommand ) );
Register( "SpeedBoost", AccessLevel.Counselor, new CommandEventHandler( SpeedBoost_OnCommand ) );
}
@ -334,46 +332,6 @@ namespace Server.Commands
}
}
public static void ReplaceBankers_OnCommand( CommandEventArgs e )
{
List<Mobile> list = new List<Mobile>();
foreach ( Mobile m in World.Mobiles.Values )
if ( (m is Banker) && !(m is BaseCreature) )
list.Add( m );
foreach ( Mobile m in list )
{
Map map = m.Map;
if ( map != null )
{
bool hasBankerSpawner = false;
foreach ( Item item in m.GetItemsInRange( 0 ) )
{
if ( item is Spawner )
{
Spawner spawner = (Spawner)item;
for ( int i = 0; !hasBankerSpawner && i < spawner.SpawnNames.Count; ++i )
hasBankerSpawner = Insensitive.Equals( (string)spawner.SpawnNames[i], "banker" );
if ( hasBankerSpawner )
break;
}
}
if ( !hasBankerSpawner )
{
Spawner spawner = new Spawner( 1, 1, 5, 0, 4, "banker" );
spawner.MoveToWorld( m.Location, map );
}
}
}
}
private class ViewEqTarget : Target
{
public ViewEqTarget() : base( -1, false, TargetFlags.None )
@ -1015,4 +973,4 @@ namespace Server.Commands
e.Mobile.SendMessage( "Items: {0}", World.Items.Count );
}
}
}
}