public override void Serialize(GenericWriter writer)
{
if (LastFealty + TimeSpan.FromDays(1.0) < DateTime.UtcNow)
{
CalculateGuildmaster();
}
CheckExpiredWars();
if (Alliance != null)
{
Alliance.CheckLeader();
}
writer.Write(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(m_Allies, true);
writer.WriteGuildList(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);
}