runuo/Scripts/Engines/MLQuests/MLQuestPersistence.cs
eos 35fbffdb51 ML quest system; first SVN release.
Secondary changes:
- Region fixes, mainly for New Haven.
- Recipe system changes.
- Enabled ML craftables.
- Dyeing/cutting restrictions for quest items.
- Moved IsInvulnerable from BaseVendor to BaseCreature.
- Moved RandomBrightHue to Utility.
- Items no longer decay when attached to a spawner.
- Quest item hue is now faked through packets, instead of overriding Hue.
- Re-enabled item drag effects for SA clients.
- Fixed AssignRandomFacialHair bug in Utility.
- Added random hue comments to Utility.
2013-02-03 01:05:17 +00:00

71 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
using Server;
using Server.Mobiles;
namespace Server.Engines.MLQuests
{
public class MLQuestPersistence : Item
{
private static MLQuestPersistence m_Instance;
public static void EnsureExistence()
{
if ( m_Instance == null )
m_Instance = new MLQuestPersistence();
}
public override string DefaultName
{
get { return "ML quests persistence - Internal"; }
}
private MLQuestPersistence()
: base( 1 )
{
Movable = false;
}
public MLQuestPersistence( Serial serial ) : base( serial )
{
m_Instance = this;
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 2 ); // version
writer.Write( MLQuestSystem.Contexts.Count );
foreach ( MLQuestContext context in MLQuestSystem.Contexts.Values )
context.Serialize( writer );
writer.Write( MLQuestSystem.Quests.Count );
foreach ( MLQuest quest in MLQuestSystem.Quests.Values )
MLQuest.Serialize( writer, quest );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
int contexts = reader.ReadInt();
for ( int i = 0; i < contexts; ++i )
{
MLQuestContext context = new MLQuestContext( reader, version );
if ( context.Owner != null )
MLQuestSystem.Contexts[context.Owner] = context;
}
int quests = reader.ReadInt();
for ( int i = 0; i < quests; ++i )
MLQuest.Deserialize( reader, version );
}
}
}