Generic-y goodness. Or hatred. You choose.

This commit is contained in:
asayre 2006-06-21 08:02:49 +00:00
parent 8737c38c85
commit c5027649a1
9 changed files with 105 additions and 98 deletions

View file

@ -5,6 +5,7 @@ using Server.Gumps;
using Server.Items; using Server.Items;
using Server.Mobiles; using Server.Mobiles;
using Server.Regions; using Server.Regions;
using System.Collections.Generic;
namespace Server.Engines.CannedEvil namespace Server.Engines.CannedEvil
{ {
@ -13,9 +14,9 @@ namespace Server.Engines.CannedEvil
private bool m_Active; private bool m_Active;
private bool m_RandomizeType; private bool m_RandomizeType;
private ChampionSpawnType m_Type; private ChampionSpawnType m_Type;
private ArrayList m_Creatures; private List<Mobile> m_Creatures;
private ArrayList m_RedSkulls; private List<Item> m_RedSkulls;
private ArrayList m_WhiteSkulls; private List<Item> m_WhiteSkulls;
private ChampionPlatform m_Platform; private ChampionPlatform m_Platform;
private ChampionAltar m_Altar; private ChampionAltar m_Altar;
private int m_Kills; private int m_Kills;
@ -58,9 +59,9 @@ namespace Server.Engines.CannedEvil
Movable = false; Movable = false;
Visible = false; Visible = false;
m_Creatures = new ArrayList(); m_Creatures = new List<Mobile>();
m_RedSkulls = new ArrayList(); m_RedSkulls = new List<Item>();
m_WhiteSkulls = new ArrayList(); m_WhiteSkulls = new List<Item>();
m_Platform = new ChampionPlatform( this ); m_Platform = new ChampionPlatform( this );
m_Altar = new ChampionAltar( this ); m_Altar = new ChampionAltar( this );
@ -243,7 +244,7 @@ namespace Server.Engines.CannedEvil
{ {
for( int i = m_RedSkulls.Count - 1; i >= value; --i ) for( int i = m_RedSkulls.Count - 1; i >= value; --i )
{ {
((Item)m_RedSkulls[i]).Delete(); m_RedSkulls[i].Delete();
m_RedSkulls.RemoveAt( i ); m_RedSkulls.RemoveAt( i );
} }
@ -276,7 +277,7 @@ namespace Server.Engines.CannedEvil
{ {
for( int i = m_WhiteSkulls.Count - 1; i >= val; --i ) for( int i = m_WhiteSkulls.Count - 1; i >= val; --i )
{ {
((Item)m_WhiteSkulls[i]).Delete(); m_WhiteSkulls[i].Delete();
m_WhiteSkulls.RemoveAt( i ); m_WhiteSkulls.RemoveAt( i );
} }
@ -412,7 +413,7 @@ namespace Server.Engines.CannedEvil
for ( int i = 0; i < m_Creatures.Count; ++i ) for ( int i = 0; i < m_Creatures.Count; ++i )
{ {
Mobile m = (Mobile)m_Creatures[i]; Mobile m = m_Creatures[i];
if ( m.Deleted ) if ( m.Deleted )
{ {
@ -773,13 +774,13 @@ namespace Server.Engines.CannedEvil
if( m_RedSkulls != null ) if( m_RedSkulls != null )
{ {
for( int i = 0; i < m_RedSkulls.Count; ++i ) for( int i = 0; i < m_RedSkulls.Count; ++i )
((Item)m_RedSkulls[i]).Location = GetRedSkullLocation( i ); m_RedSkulls[i].Location = GetRedSkullLocation( i );
} }
if( m_WhiteSkulls != null ) if( m_WhiteSkulls != null )
{ {
for( int i = 0; i < m_WhiteSkulls.Count; ++i ) for( int i = 0; i < m_WhiteSkulls.Count; ++i )
((Item)m_WhiteSkulls[i]).Location = GetWhiteSkullLocation( i ); m_WhiteSkulls[i].Location = GetWhiteSkullLocation( i );
} }
m_SpawnArea.X += Location.X - oldLoc.X; m_SpawnArea.X += Location.X - oldLoc.X;
@ -805,13 +806,13 @@ namespace Server.Engines.CannedEvil
if( m_RedSkulls != null ) if( m_RedSkulls != null )
{ {
for( int i = 0; i < m_RedSkulls.Count; ++i ) for( int i = 0; i < m_RedSkulls.Count; ++i )
((Item)m_RedSkulls[i]).Map = Map; m_RedSkulls[i].Map = Map;
} }
if( m_WhiteSkulls != null ) if( m_WhiteSkulls != null )
{ {
for( int i = 0; i < m_WhiteSkulls.Count; ++i ) for( int i = 0; i < m_WhiteSkulls.Count; ++i )
((Item)m_WhiteSkulls[i]).Map = Map; m_WhiteSkulls[i].Map = Map;
} }
UpdateRegion(); UpdateRegion();
@ -833,7 +834,7 @@ namespace Server.Engines.CannedEvil
if( m_RedSkulls != null ) if( m_RedSkulls != null )
{ {
for( int i = 0; i < m_RedSkulls.Count; ++i ) for( int i = 0; i < m_RedSkulls.Count; ++i )
((Item)m_RedSkulls[i]).Delete(); m_RedSkulls[i].Delete();
m_RedSkulls.Clear(); m_RedSkulls.Clear();
} }
@ -841,7 +842,7 @@ namespace Server.Engines.CannedEvil
if( m_WhiteSkulls != null ) if( m_WhiteSkulls != null )
{ {
for( int i = 0; i < m_WhiteSkulls.Count; ++i ) for( int i = 0; i < m_WhiteSkulls.Count; ++i )
((Item)m_WhiteSkulls[i]).Delete(); m_WhiteSkulls[i].Delete();
m_WhiteSkulls.Clear(); m_WhiteSkulls.Clear();
} }
@ -850,7 +851,7 @@ namespace Server.Engines.CannedEvil
{ {
for( int i = 0; i < m_Creatures.Count; ++i ) for( int i = 0; i < m_Creatures.Count; ++i )
{ {
Mobile mob = (Mobile)m_Creatures[i]; Mobile mob = m_Creatures[i];
if( !mob.Player ) if( !mob.Player )
mob.Delete(); mob.Delete();
@ -878,7 +879,7 @@ namespace Server.Engines.CannedEvil
writer.Write( (int)4 ); // version writer.Write( (int)4 ); // version
writer.Write( m_ConfinedRoaming ); writer.Write( m_ConfinedRoaming );
writer.Write( m_Idol ); writer.WriteItem<IdolOfTheChampion>( m_Idol );
writer.Write( m_HasBeenAdvanced ); writer.Write( m_HasBeenAdvanced );
writer.Write( m_SpawnArea ); writer.Write( m_SpawnArea );
@ -889,11 +890,11 @@ namespace Server.Engines.CannedEvil
writer.Write( (bool)m_Active ); writer.Write( (bool)m_Active );
writer.Write( (int)m_Type ); writer.Write( (int)m_Type );
writer.WriteMobileList( m_Creatures, true ); writer.Write( m_Creatures, true );
writer.WriteItemList( m_RedSkulls, true ); writer.Write( m_RedSkulls, true );
writer.WriteItemList( m_WhiteSkulls, true ); writer.Write( m_WhiteSkulls, true );
writer.Write( m_Platform ); writer.WriteItem<ChampionPlatform>( m_Platform );
writer.Write( m_Altar ); writer.WriteItem<ChampionAltar>( m_Altar );
writer.Write( m_ExpireDelay ); writer.Write( m_ExpireDelay );
writer.WriteDeltaTime( m_ExpireTime ); writer.WriteDeltaTime( m_ExpireTime );
writer.Write( m_Champion ); writer.Write( m_Champion );
@ -916,7 +917,7 @@ namespace Server.Engines.CannedEvil
case 4: case 4:
{ {
m_ConfinedRoaming = reader.ReadBool(); m_ConfinedRoaming = reader.ReadBool();
m_Idol = reader.ReadItem() as IdolOfTheChampion; m_Idol = reader.ReadItem<IdolOfTheChampion>();
m_HasBeenAdvanced = reader.ReadBool(); m_HasBeenAdvanced = reader.ReadBool();
goto case 3; goto case 3;
@ -953,11 +954,11 @@ namespace Server.Engines.CannedEvil
bool active = reader.ReadBool(); bool active = reader.ReadBool();
m_Type = (ChampionSpawnType)reader.ReadInt(); m_Type = (ChampionSpawnType)reader.ReadInt();
m_Creatures = reader.ReadMobileList(); m_Creatures = reader.ReadStrongMobileList();
m_RedSkulls = reader.ReadItemList(); m_RedSkulls = reader.ReadStrongItemList();
m_WhiteSkulls = reader.ReadItemList(); m_WhiteSkulls = reader.ReadStrongItemList();
m_Platform = reader.ReadItem() as ChampionPlatform; m_Platform = reader.ReadItem<ChampionPlatform>();
m_Altar = reader.ReadItem() as ChampionAltar; m_Altar = reader.ReadItem<ChampionAltar>();
m_ExpireDelay = reader.ReadTimeSpan(); m_ExpireDelay = reader.ReadTimeSpan();
m_ExpireTime = reader.ReadDeltaTime(); m_ExpireTime = reader.ReadDeltaTime();
m_Champion = reader.ReadMobile(); m_Champion = reader.ReadMobile();

View file

@ -6,6 +6,7 @@ using Server.Mobiles;
using Server.Network; using Server.Network;
using Server.Regions; using Server.Regions;
using Server.Commands; using Server.Commands;
using System.Collections.Generic;
namespace Server.Engines.Doom namespace Server.Engines.Doom
{ {
@ -30,10 +31,10 @@ namespace Server.Engines.Doom
private BaseDoor m_Door; private BaseDoor m_Door;
private BaseAddon m_Addon; private BaseAddon m_Addon;
private GauntletSpawner m_Sequence; private GauntletSpawner m_Sequence;
private ArrayList m_Creatures; private List<Mobile> m_Creatures;
private Rectangle2D m_RegionBounds; private Rectangle2D m_RegionBounds;
private ArrayList m_Traps; private List<BaseTrap> m_Traps;
private Region m_Region; private Region m_Region;
@ -75,7 +76,7 @@ namespace Server.Engines.Doom
for ( int i = 0; i < m_Creatures.Count; ++i ) for ( int i = 0; i < m_Creatures.Count; ++i )
{ {
Mobile mob = (Mobile)m_Creatures[i]; Mobile mob = m_Creatures[i];
if ( !mob.Deleted ) if ( !mob.Deleted )
return false; return false;
@ -163,13 +164,13 @@ namespace Server.Engines.Doom
private Timer m_Timer; private Timer m_Timer;
public ArrayList Creatures public List<Mobile> Creatures
{ {
get{ return m_Creatures; } get{ return m_Creatures; }
set{ m_Creatures = value; } set{ m_Creatures = value; }
} }
public ArrayList Traps public List<BaseTrap> Traps
{ {
get{ return m_Traps; } get{ return m_Traps; }
set{ m_Traps = value; } set{ m_Traps = value; }
@ -212,7 +213,7 @@ namespace Server.Engines.Doom
public virtual void ClearTraps() public virtual void ClearTraps()
{ {
for ( int i = 0; i < m_Traps.Count; ++i ) for ( int i = 0; i < m_Traps.Count; ++i )
((Item)m_Traps[i]).Delete(); m_Traps[i].Delete();
m_Traps.Clear(); m_Traps.Clear();
} }
@ -224,7 +225,7 @@ namespace Server.Engines.Doom
if ( map == null ) if ( map == null )
return; return;
Item trap = null; BaseTrap trap = null;
int random = Utility.Random( 100 ); int random = Utility.Random( 100 );
@ -310,7 +311,7 @@ namespace Server.Engines.Doom
public virtual void ClearCreatures() public virtual void ClearCreatures()
{ {
for ( int i = 0; i < m_Creatures.Count; ++i ) for ( int i = 0; i < m_Creatures.Count; ++i )
((Mobile)m_Creatures[i]).Delete(); m_Creatures[i].Delete();
m_Creatures.Clear(); m_Creatures.Clear();
} }
@ -419,8 +420,8 @@ namespace Server.Engines.Doom
Movable = false; Movable = false;
m_TypeName = typeName; m_TypeName = typeName;
m_Creatures = new ArrayList(); m_Creatures = new List<Mobile>();
m_Traps = new ArrayList(); m_Traps = new List<BaseTrap>();
} }
public GauntletSpawner( Serial serial ) : base( serial ) public GauntletSpawner( Serial serial ) : base( serial )
@ -435,14 +436,14 @@ namespace Server.Engines.Doom
writer.Write( m_RegionBounds ); writer.Write( m_RegionBounds );
writer.WriteItemList( m_Traps, false ); writer.WriteItemList<BaseTrap>( m_Traps, false );
writer.WriteMobileList( m_Creatures, false ); writer.Write( m_Creatures, false );
writer.Write( m_TypeName ); writer.Write( m_TypeName );
writer.Write( m_Door ); writer.WriteItem<BaseDoor>( m_Door );
writer.Write( m_Addon ); writer.WriteItem<BaseAddon>( m_Addon );
writer.Write( m_Sequence ); writer.WriteItem<GauntletSpawner>( m_Sequence );
writer.Write( (int) m_State ); writer.Write( (int) m_State );
} }
@ -458,7 +459,7 @@ namespace Server.Engines.Doom
case 1: case 1:
{ {
m_RegionBounds = reader.ReadRect2D(); m_RegionBounds = reader.ReadRect2D();
m_Traps = reader.ReadItemList(); m_Traps = reader.ReadStrongItemList<BaseTrap>();
goto case 0; goto case 0;
} }
@ -466,16 +467,16 @@ namespace Server.Engines.Doom
{ {
if ( version < 1 ) if ( version < 1 )
{ {
m_Traps = new ArrayList(); m_Traps = new List<BaseTrap>();
m_RegionBounds = new Rectangle2D( X - 40, Y - 40, 80, 80 ); m_RegionBounds = new Rectangle2D( X - 40, Y - 40, 80, 80 );
} }
m_Creatures = reader.ReadMobileList(); m_Creatures = reader.ReadStrongMobileList();
m_TypeName = reader.ReadString(); m_TypeName = reader.ReadString();
m_Door = reader.ReadItem() as BaseDoor; m_Door = reader.ReadItem<BaseDoor>(); ;
m_Addon = reader.ReadItem() as BaseAddon; m_Addon = reader.ReadItem<BaseAddon>(); ;
m_Sequence = reader.ReadItem() as GauntletSpawner; m_Sequence = reader.ReadItem<GauntletSpawner>();
State = (GauntletSpawnerState)reader.ReadInt(); State = (GauntletSpawnerState)reader.ReadInt();

View file

@ -5,6 +5,7 @@ using Server.Multis;
using Server.Gumps; using Server.Gumps;
using Server.Network; using Server.Network;
using Server.Prompts; using Server.Prompts;
using System.Collections.Generic;
namespace Server.Items namespace Server.Items
{ {
@ -15,20 +16,20 @@ namespace Server.Items
public override int LabelNumber{ get{ return 1041006; } } // a ballot box public override int LabelNumber{ get{ return 1041006; } } // a ballot box
private string[] m_Topic; private string[] m_Topic;
private ArrayList m_Yes; private List<Mobile> m_Yes;
private ArrayList m_No; private List<Mobile> m_No;
public string[] Topic public string[] Topic
{ {
get{ return m_Topic; } get{ return m_Topic; }
} }
public ArrayList Yes public List<Mobile> Yes
{ {
get{ return m_Yes; } get{ return m_Yes; }
} }
public ArrayList No public List<Mobile> No
{ {
get{ return m_No; } get{ return m_No; }
} }
@ -37,8 +38,8 @@ namespace Server.Items
public BallotBox() : base( 0x9A8 ) public BallotBox() : base( 0x9A8 )
{ {
m_Topic = new string[0]; m_Topic = new string[0];
m_Yes = new ArrayList(); m_Yes = new List<Mobile>();
m_No = new ArrayList(); m_No = new List<Mobile>();
} }
public BallotBox( Serial serial ) : base( serial ) public BallotBox( Serial serial ) : base( serial )
@ -311,8 +312,8 @@ namespace Server.Items
for ( int i = 0; i < m_Topic.Length; i++ ) for ( int i = 0; i < m_Topic.Length; i++ )
writer.Write( (string) m_Topic[i] ); writer.Write( (string) m_Topic[i] );
writer.WriteMobileList( m_Yes, true ); writer.Write( m_Yes, true );
writer.WriteMobileList( m_No, true ); writer.Write( m_No, true );
} }
public override void Deserialize( GenericReader reader ) public override void Deserialize( GenericReader reader )
@ -326,8 +327,8 @@ namespace Server.Items
for ( int i = 0; i < m_Topic.Length; i++ ) for ( int i = 0; i < m_Topic.Length; i++ )
m_Topic[i] = reader.ReadString(); m_Topic[i] = reader.ReadString();
m_Yes = reader.ReadMobileList(); m_Yes = reader.ReadStrongMobileList();
m_No = reader.ReadMobileList(); m_No = reader.ReadStrongMobileList();
} }
} }

View file

@ -33,7 +33,7 @@ namespace Server.Items
private Mobile m_Owner; private Mobile m_Owner;
private bool m_Temporary; private bool m_Temporary;
private ArrayList m_Guardians; private List<Mobile> m_Guardians;
[CommandProperty( AccessLevel.GameMaster )] [CommandProperty( AccessLevel.GameMaster )]
public int Level{ get{ return m_Level; } set{ m_Level = value; } } public int Level{ get{ return m_Level; } set{ m_Level = value; } }
@ -47,7 +47,7 @@ namespace Server.Items
[CommandProperty( AccessLevel.GameMaster )] [CommandProperty( AccessLevel.GameMaster )]
public bool Temporary{ get{ return m_Temporary; } set{ m_Temporary = value; } } public bool Temporary{ get{ return m_Temporary; } set{ m_Temporary = value; } }
public ArrayList Guardians{ get{ return m_Guardians; } } public List<Mobile> Guardians { get { return m_Guardians; } }
[Constructable] [Constructable]
public TreasureMapChest( int level ) : this( null, level, false ) public TreasureMapChest( int level ) : this( null, level, false )
@ -61,7 +61,7 @@ namespace Server.Items
m_DeleteTime = DateTime.Now + TimeSpan.FromHours( 3.0 ); m_DeleteTime = DateTime.Now + TimeSpan.FromHours( 3.0 );
m_Temporary = temporary; m_Temporary = temporary;
m_Guardians = new ArrayList(); m_Guardians = new List<Mobile>();
m_Timer = new DeleteTimer( this, m_DeleteTime ); m_Timer = new DeleteTimer( this, m_DeleteTime );
m_Timer.Start(); m_Timer.Start();
@ -342,7 +342,7 @@ namespace Server.Items
writer.Write( (int) 2 ); // version writer.Write( (int) 2 ); // version
writer.WriteMobileList( m_Guardians, true ); writer.Write( m_Guardians, true );
writer.Write( (bool) m_Temporary ); writer.Write( (bool) m_Temporary );
writer.Write( m_Owner ); writer.Write( m_Owner );
@ -362,7 +362,7 @@ namespace Server.Items
{ {
case 2: case 2:
{ {
m_Guardians = reader.ReadMobileList(); m_Guardians = reader.ReadStrongMobileList();
m_Temporary = reader.ReadBool(); m_Temporary = reader.ReadBool();
goto case 1; goto case 1;
@ -380,7 +380,7 @@ namespace Server.Items
m_Lifted = reader.ReadItemList(); m_Lifted = reader.ReadItemList();
if ( version < 2 ) if ( version < 2 )
m_Guardians = new ArrayList(); m_Guardians = new List<Mobile>();
break; break;
} }

View file

@ -3,6 +3,7 @@ using System.Collections;
using Server; using Server;
using Server.Network; using Server.Network;
using Server.Targeting; using Server.Targeting;
using System.Collections.Generic;
namespace Server.Items namespace Server.Items
{ {
@ -51,7 +52,7 @@ namespace Server.Items
public override int LabelNumber{ get{ return 1060740; } } // communication crystal public override int LabelNumber{ get{ return 1060740; } } // communication crystal
private int m_Charges; private int m_Charges;
private ArrayList m_Receivers; private List<ReceiverCrystal> m_Receivers;
[CommandProperty( AccessLevel.GameMaster )] [CommandProperty( AccessLevel.GameMaster )]
public bool Active public bool Active
@ -75,7 +76,7 @@ namespace Server.Items
} }
} }
public ArrayList Receivers public List<ReceiverCrystal> Receivers
{ {
get{ return m_Receivers; } get{ return m_Receivers; }
} }
@ -92,7 +93,7 @@ namespace Server.Items
m_Charges = charges; m_Charges = charges;
m_Receivers = new ArrayList(); m_Receivers = new List<ReceiverCrystal>();
} }
public BroadcastCrystal( Serial serial ) : base( serial ) public BroadcastCrystal( Serial serial ) : base( serial )
@ -233,7 +234,7 @@ namespace Server.Items
} }
else if ( targeted == from ) else if ( targeted == from )
{ {
foreach ( ReceiverCrystal receiver in new ArrayList( m_Crystal.Receivers ) ) foreach( ReceiverCrystal receiver in new List<ReceiverCrystal>( m_Crystal.Receivers ) )
{ {
receiver.Sender = null; receiver.Sender = null;
} }
@ -286,7 +287,7 @@ namespace Server.Items
writer.WriteEncodedInt( 0 ); // version writer.WriteEncodedInt( 0 ); // version
writer.WriteEncodedInt( m_Charges ); writer.WriteEncodedInt( m_Charges );
writer.WriteItemList( m_Receivers ); writer.WriteItemList<ReceiverCrystal>( m_Receivers );
} }
public override void Deserialize( GenericReader reader ) public override void Deserialize( GenericReader reader )
@ -296,7 +297,7 @@ namespace Server.Items
int version = reader.ReadEncodedInt(); int version = reader.ReadEncodedInt();
m_Charges = reader.ReadEncodedInt(); m_Charges = reader.ReadEncodedInt();
m_Receivers = reader.ReadItemList(); m_Receivers = reader.ReadStrongItemList<ReceiverCrystal>();
} }
} }
@ -468,7 +469,7 @@ namespace Server.Items
writer.WriteEncodedInt( 0 ); // version writer.WriteEncodedInt( 0 ); // version
writer.Write( (Item) m_Sender ); writer.WriteItem<BroadcastCrystal>( m_Sender );
} }
public override void Deserialize( GenericReader reader ) public override void Deserialize( GenericReader reader )
@ -477,7 +478,7 @@ namespace Server.Items
int version = reader.ReadEncodedInt(); int version = reader.ReadEncodedInt();
m_Sender = (BroadcastCrystal) reader.ReadItem(); m_Sender = reader.ReadItem<BroadcastCrystal>();
} }
} }
} }

View file

@ -2,6 +2,7 @@ using System;
using System.Collections; using System.Collections;
using Server; using Server;
using Server.Targeting; using Server.Targeting;
using System.Collections.Generic;
namespace Server.Items namespace Server.Items
{ {
@ -9,16 +10,16 @@ namespace Server.Items
{ {
public static readonly int MaxKeys = 20; public static readonly int MaxKeys = 20;
private ArrayList m_Keys; private List<Key> m_Keys;
public ArrayList Keys{ get{ return m_Keys; } } public List<Key> Keys { get { return m_Keys; } }
[Constructable] [Constructable]
public KeyRing() : base( 0x1011 ) public KeyRing() : base( 0x1011 )
{ {
Weight = 1.0; // They seem to have no weight on OSI ?! Weight = 1.0; // They seem to have no weight on OSI ?!
m_Keys = new ArrayList(); m_Keys = new List<Key>();
} }
public override bool OnDragDrop( Mobile from, Item dropped ) public override bool OnDragDrop( Mobile from, Item dropped )
@ -131,7 +132,7 @@ namespace Server.Items
for ( int i = m_Keys.Count - 1; i >= 0; i-- ) for ( int i = m_Keys.Count - 1; i >= 0; i-- )
{ {
Key key = (Key) m_Keys[i]; Key key = m_Keys[i];
if ( !key.Deleted && !cont.TryDropItem( from, key, true ) ) if ( !key.Deleted && !cont.TryDropItem( from, key, true ) )
break; break;
@ -146,7 +147,7 @@ namespace Server.Items
{ {
for ( int i = m_Keys.Count - 1; i >= 0; i-- ) for ( int i = m_Keys.Count - 1; i >= 0; i-- )
{ {
Key key = (Key) m_Keys[i]; Key key = m_Keys[i];
if ( key.KeyValue == keyValue ) if ( key.KeyValue == keyValue )
{ {
@ -191,7 +192,7 @@ namespace Server.Items
writer.WriteEncodedInt( 0 ); // version writer.WriteEncodedInt( 0 ); // version
writer.WriteItemList( m_Keys ); writer.WriteItemList<Key>( m_Keys );
} }
public override void Deserialize( GenericReader reader ) public override void Deserialize( GenericReader reader )
@ -200,7 +201,7 @@ namespace Server.Items
int version = reader.ReadEncodedInt(); int version = reader.ReadEncodedInt();
m_Keys = reader.ReadItemList(); m_Keys = reader.ReadStrongItemList<Key>();
} }
} }
} }

View file

@ -1133,9 +1133,9 @@ namespace Server.Guilds
writer.WriteGuildList( m_WarDeclarations, true ); writer.WriteGuildList( m_WarDeclarations, true );
writer.WriteGuildList( m_WarInvitations, true ); writer.WriteGuildList( m_WarInvitations, true );
writer.WriteMobileList( m_Members, true ); writer.Write( m_Members, true );
writer.WriteMobileList( m_Candidates, true ); writer.Write( m_Candidates, true );
writer.WriteMobileList( m_Accepted, true ); writer.Write( m_Accepted, true );
writer.Write( m_Guildstone ); writer.Write( m_Guildstone );
writer.Write( m_Teleporter ); writer.Write( m_Teleporter );

View file

@ -11,7 +11,7 @@ namespace Server.Mobiles
{ {
private bool m_TrueForm; private bool m_TrueForm;
private Item m_GateItem; private Item m_GateItem;
private ArrayList m_Tentacles; private List<HarrowerTentacles> m_Tentacles;
private Timer m_Timer; private Timer m_Timer;
private class SpawnEntry private class SpawnEntry
@ -106,7 +106,7 @@ namespace Server.Mobiles
SetSkill( SkillName.EvalInt, 120.0 ); SetSkill( SkillName.EvalInt, 120.0 );
SetSkill( SkillName.Meditation, 120.0 ); SetSkill( SkillName.Meditation, 120.0 );
m_Tentacles = new ArrayList(); m_Tentacles = new List<HarrowerTentacles>();
m_Timer = new TeleportTimer( this ); m_Timer = new TeleportTimer( this );
m_Timer.Start(); m_Timer.Start();
@ -187,7 +187,7 @@ namespace Server.Mobiles
if ( !ok ) if ( !ok )
continue; continue;
BaseCreature spawn = new HarrowerTentacles( this ); HarrowerTentacles spawn = new HarrowerTentacles( this );
spawn.Team = this.Team; spawn.Team = this.Team;
@ -226,7 +226,7 @@ namespace Server.Mobiles
writer.Write( m_TrueForm ); writer.Write( m_TrueForm );
writer.Write( m_GateItem ); writer.Write( m_GateItem );
writer.WriteMobileList( m_Tentacles ); writer.WriteMobileList<HarrowerTentacles>( m_Tentacles );
} }
public override void Deserialize( GenericReader reader ) public override void Deserialize( GenericReader reader )
@ -241,7 +241,7 @@ namespace Server.Mobiles
{ {
m_TrueForm = reader.ReadBool(); m_TrueForm = reader.ReadBool();
m_GateItem = reader.ReadItem(); m_GateItem = reader.ReadItem();
m_Tentacles = reader.ReadMobileList(); m_Tentacles = reader.ReadStrongMobileList<HarrowerTentacles>();
m_Timer = new TeleportTimer( this ); m_Timer = new TeleportTimer( this );
m_Timer.Start(); m_Timer.Start();
@ -363,7 +363,7 @@ namespace Server.Mobiles
for ( int i = 0; i < m_Tentacles.Count; ++i ) for ( int i = 0; i < m_Tentacles.Count; ++i )
{ {
Mobile m = (Mobile)m_Tentacles[i]; Mobile m = m_Tentacles[i];
if ( !m.Deleted ) if ( !m.Deleted )
m.Kill(); m.Kill();

View file

@ -3,12 +3,14 @@ using System.Collections;
using Server; using Server;
using Server.Items; using Server.Items;
using Server.Mobiles; using Server.Mobiles;
using System.Collections.Generic;
namespace Server.Multis namespace Server.Multis
{ {
public abstract class BaseCamp : BaseMulti public abstract class BaseCamp : BaseMulti
{ {
private ArrayList m_Items, m_Mobiles; private List<Item> m_Items;
private List<Mobile> m_Mobiles;
private DateTime m_DecayTime; private DateTime m_DecayTime;
private Timer m_DecayTimer; private Timer m_DecayTimer;
@ -17,8 +19,8 @@ namespace Server.Multis
public BaseCamp( int multiID ) : base( multiID | 0x4000 ) public BaseCamp( int multiID ) : base( multiID | 0x4000 )
{ {
m_Items = new ArrayList(); m_Items = new List<Item>();
m_Mobiles = new ArrayList(); m_Mobiles = new List<Mobile>();
RefreshDecay( true ); RefreshDecay( true );
Timer.DelayCall( TimeSpan.Zero, new TimerCallback( CheckAddComponents ) ); Timer.DelayCall( TimeSpan.Zero, new TimerCallback( CheckAddComponents ) );
@ -104,10 +106,10 @@ namespace Server.Multis
base.OnAfterDelete(); base.OnAfterDelete();
for ( int i = 0; i < m_Items.Count; ++i ) for ( int i = 0; i < m_Items.Count; ++i )
((Item)m_Items[i]).Delete(); m_Items[i].Delete();
for ( int i = 0; i < m_Mobiles.Count; ++i ) for ( int i = 0; i < m_Mobiles.Count; ++i )
((Mobile)m_Mobiles[i]).Delete(); m_Mobiles[i].Delete();
m_Items.Clear(); m_Items.Clear();
m_Mobiles.Clear(); m_Mobiles.Clear();
@ -123,8 +125,8 @@ namespace Server.Multis
writer.Write( (int) 0 ); // version writer.Write( (int) 0 ); // version
writer.WriteItemList( m_Items, true ); writer.Write( m_Items, true );
writer.WriteMobileList( m_Mobiles, true ); writer.Write( m_Mobiles, true );
writer.WriteDeltaTime( m_DecayTime ); writer.WriteDeltaTime( m_DecayTime );
} }
@ -138,8 +140,8 @@ namespace Server.Multis
{ {
case 0: case 0:
{ {
m_Items = reader.ReadItemList(); m_Items = reader.ReadStrongItemList();
m_Mobiles = reader.ReadMobileList(); m_Mobiles = reader.ReadStrongMobileList();
m_DecayTime = reader.ReadDeltaTime(); m_DecayTime = reader.ReadDeltaTime();
RefreshDecay( false ); RefreshDecay( false );