public override void Serialize( GenericWriter writer )
{
if ( this.LastFealty+TimeSpan.FromDays( 1.0 ) < DateTime.Now )
this.CalculateGuildmaster();
CheckExpiredWars();
if( Alliance != null )
Alliance.CheckLeader();
writer.Write( (int) 5 );//version
#region War Serialization
writer.Write( m_PendingWars.Count );
for( int i = 0; i < m_PendingWars.Count; i++ )
{
m_PendingWars[i].Serialize( writer );
}
writer.Write( m_AcceptedWars.Count );
for( int i = 0; i < m_AcceptedWars.Count; i++ )
{
m_AcceptedWars[i].Serialize( writer );
}
#endregion
#region Alliances
bool isAllianceLeader = (m_AllianceLeader == null && m_AllianceInfo != null );
writer.Write( isAllianceLeader );
if( isAllianceLeader )
m_AllianceInfo.Serialize( writer );
else
writer.Write( m_AllianceLeader );
#endregion
//
writer.WriteGuildList( m_AllyDeclarations, true );
writer.WriteGuildList( m_AllyInvitations, true );
writer.Write( m_TypeLastChange );
writer.Write( (int)m_Type );
writer.Write( m_LastFealty );
writer.Write( m_Leader );
writer.Write( m_Name );
writer.Write( m_Abbreviation );
writer.WriteGuildList<Guild>( m_Allies, true );
writer.WriteGuildList<Guild>( m_Enemies, true );
writer.WriteGuildList( m_WarDeclarations, true );
writer.WriteGuildList( m_WarInvitations, true );
writer.Write( m_Members, true );
writer.Write( m_Candidates, true );
writer.Write( m_Accepted, true );
writer.Write( m_Guildstone );
writer.Write( m_Teleporter );
writer.Write( m_Charter );
writer.Write( m_Website );
}