Beispiel #1
0
    public override void WriteXml(XmlWriter writer)
    {
        int num = writer.WriteVersionAttribute(2);

        writer.WriteAttributeString <GameEntityGUID>("GUID", this.GUID);
        writer.WriteAttributeString("UserDefinedString", this.userDefinedName);
        if (num >= 2)
        {
            writer.WriteAttributeString("Orientation", this.orientation.ToString());
        }
        base.WriteXml(writer);
        Region region = this.PointOfInterest.Region;
        int    value  = Array.IndexOf <PointOfInterest>(region.PointOfInterests, this.PointOfInterest);

        writer.WriteElementString <int>("IndexOfPointOfInterest", value);
        writer.WriteElementString <int>("IndexOfRegion", region.Index);
        writer.WriteElementString <int>("OccupantIndex", this.isOccupiedByIndex);
        writer.WriteStartElement("Facilities");
        writer.WriteAttributeString <int>("Count", this.facilities.Count);
        for (int i = 0; i < this.facilities.Count; i++)
        {
            region = this.facilities[i].Region;
            writer.WriteElementString <int>("IndexOfPointOfInterest", Array.IndexOf <PointOfInterest>(region.PointOfInterests, this.facilities[i]));
            writer.WriteElementString <int>("IndexOfRegion", region.Index);
        }
        writer.WriteEndElement();
        Amplitude.Xml.Serialization.IXmlSerializable xmlSerializable = this.WorldPosition;
        writer.WriteElementSerializable <Amplitude.Xml.Serialization.IXmlSerializable>(ref xmlSerializable);
    }
Beispiel #2
0
 private void SaveGame(Stream stream)
 {
     if (stream == null)
     {
         throw new ArgumentNullException("stream");
     }
     if (!stream.CanWrite)
     {
         throw new ArgumentException("stream");
     }
     using (Amplitude.Xml.XmlWriter xmlWriter = Amplitude.Xml.XmlWriter.Create(stream))
     {
         xmlWriter.Writer.WriteStartDocument();
         xmlWriter.WriteStartElement(base.GetType().ToString());
         xmlWriter.WriteAttributeString("DateTime", DateTime.Now.ToString("U"));
         Amplitude.Xml.Serialization.IXmlSerializable xmlSerializable = this.Game as Amplitude.Xml.Serialization.IXmlSerializable;
         xmlWriter.WriteElementSerializable <Amplitude.Xml.Serialization.IXmlSerializable>(ref xmlSerializable);
         xmlWriter.WriteEndElement();
     }
 }
Beispiel #3
0
    public virtual void ReadXml(XmlReader reader)
    {
        int num = reader.ReadVersionAttribute();

        reader.ReadStartElement();
        this.researchQueues.Clear();
        int num2 = reader.ReadElementString <int>("QueuesCount");

        reader.ReadStartElement("ResearchQueues");
        for (int i = 0; i < num2; i++)
        {
            reader.ReadStartElement("Queue");
            int key = reader.ReadElementString <int>("EmpireIndex");
            ConstructionQueue constructionQueue = new ConstructionQueue();
            Amplitude.Xml.Serialization.IXmlSerializable xmlSerializable = constructionQueue;
            reader.ReadElementSerializable <Amplitude.Xml.Serialization.IXmlSerializable>("Researches", ref xmlSerializable);
            for (int j = constructionQueue.Length - 1; j >= 0; j--)
            {
                Construction construction = constructionQueue.PeekAt(j);
                if (construction.ConstructibleElement == null)
                {
                    Diagnostics.LogWarning("Compatibility issue, constructible element (name: '{0}') is null.", new object[]
                    {
                        construction.ConstructibleElementName
                    });
                    constructionQueue.Remove(construction);
                }
            }
            this.researchQueues.Add(key, constructionQueue);
            reader.ReadEndElement("Queue");
        }
        reader.ReadEndElement("ResearchQueues");
        int num3 = reader.ReadElementString <int>("ResearchedTechsCount");

        reader.ReadStartElement("ResearchedTechs");
        for (int k = 0; k < num3; k++)
        {
            this.researchedTechNames.Add(reader.ReadElementString("TechName"));
        }
        reader.ReadEndElement("ResearchedTechs");
    }
Beispiel #4
0
 public virtual void WriteXml(XmlWriter writer)
 {
     writer.WriteAttributeString("AssemblyQualifiedName", base.GetType().AssemblyQualifiedName);
     writer.WriteVersionAttribute(1);
     writer.WriteElementString <int>("QueuesCount", this.researchQueues.Count);
     writer.WriteStartElement("ResearchQueues");
     foreach (KeyValuePair <int, ConstructionQueue> keyValuePair in this.researchQueues)
     {
         writer.WriteStartElement("Queue");
         writer.WriteElementString <int>("EmpireIndex", keyValuePair.Key);
         Amplitude.Xml.Serialization.IXmlSerializable value = keyValuePair.Value;
         writer.WriteElementSerializable <Amplitude.Xml.Serialization.IXmlSerializable>("Researches", ref value);
         writer.WriteEndElement();
     }
     writer.WriteEndElement();
     writer.WriteElementString <int>("ResearchedTechsCount", this.researchedTechNames.Count);
     writer.WriteStartElement("ResearchedTechs");
     for (int i = 0; i < this.researchedTechNames.Count; i++)
     {
         writer.WriteElementString("TechName", this.researchedTechNames[i]);
     }
     writer.WriteEndElement();
 }
Beispiel #5
0
    public override void WriteXml(XmlWriter writer)
    {
        int num = writer.WriteVersionAttribute(8);

        writer.WriteAttributeString <GameEntityGUID>("GUID", this.GUID);
        writer.WriteAttributeString("UserDefinedString", this.userDefinedName);
        if (this.TurnWhenToProceedWithRazing != 0)
        {
            writer.WriteAttributeString <int>("TurnWhenToProceedWithRazing", this.TurnWhenToProceedWithRazing);
        }
        writer.WriteAttributeString <bool>("ShouldRazeRegionBuildingWithSelf", this.ShouldRazeRegionBuildingWithSelf);
        writer.WriteAttributeString <bool>("ShouldInjureSpyOnRaze", this.ShouldInjureSpyOnRaze);
        writer.WriteAttributeString <StaticString>("AdministrationSpeciality", this.AdministrationSpeciality);
        base.WriteXml(writer);
        writer.WriteStartElement("Districts");
        writer.WriteAttributeString("Count", this.districts.Count.ToString());
        for (int i = 0; i < this.districts.Count; i++)
        {
            Amplitude.Xml.Serialization.IXmlSerializable xmlSerializable = this.districts[i];
            writer.WriteElementSerializable <Amplitude.Xml.Serialization.IXmlSerializable>(ref xmlSerializable);
        }
        writer.WriteEndElement();
        if (num >= 2)
        {
            Amplitude.Xml.Serialization.IXmlSerializable militia = this.Militia;
            writer.WriteElementSerializable <Amplitude.Xml.Serialization.IXmlSerializable>(ref militia);
        }
        writer.WriteStartElement("Improvements");
        writer.WriteAttributeString("Count", this.cityImprovements.Count.ToString());
        for (int j = 0; j < this.cityImprovements.Count; j++)
        {
            Amplitude.Xml.Serialization.IXmlSerializable xmlSerializable2 = this.cityImprovements[j];
            writer.WriteElementSerializable <Amplitude.Xml.Serialization.IXmlSerializable>(ref xmlSerializable2);
        }
        writer.WriteEndElement();
        Amplitude.Xml.Serialization.IXmlSerializable xmlSerializable3 = this.WorldPosition;
        writer.WriteElementSerializable <Amplitude.Xml.Serialization.IXmlSerializable>(ref xmlSerializable3);
        if (this.BesiegingEmpire != null)
        {
            writer.WriteElementString <int>("BesiegingEmpireIndex", this.besiegingEmpireIndex);
        }
        if (num >= 3)
        {
            Amplitude.Xml.Serialization.IXmlSerializable cadastralMap = this.CadastralMap;
            writer.WriteElementSerializable <Amplitude.Xml.Serialization.IXmlSerializable>(ref cadastralMap);
        }
        if (num >= 4)
        {
            writer.WriteStartElement("TradeRoutes");
            writer.WriteAttributeString <int>("Count", this.TradeRoutes.Count);
            for (int k = 0; k < this.TradeRoutes.Count; k++)
            {
                Amplitude.Xml.Serialization.IXmlSerializable xmlSerializable4 = this.TradeRoutes[k];
                writer.WriteElementSerializable <Amplitude.Xml.Serialization.IXmlSerializable>(ref xmlSerializable4);
            }
            writer.WriteEndElement();
        }
        if (num >= 5)
        {
            writer.WriteStartElement("Ownerships");
            writer.WriteAttributeString <int>("Count", this.Ownership.Length);
            for (int l = 0; l < this.Ownership.Length; l++)
            {
                writer.WriteElementString <float>("Ownership", this.Ownership[l]);
            }
            writer.WriteEndElement();
        }
        if (num >= 6)
        {
            Amplitude.Xml.Serialization.IXmlSerializable xmlSerializable5 = this.DryDockPosition;
            writer.WriteElementSerializable <Amplitude.Xml.Serialization.IXmlSerializable>(ref xmlSerializable5);
        }
        if (num >= 7)
        {
            Amplitude.Xml.Serialization.IXmlSerializable xmlSerializable6 = this.Camp;
            writer.WriteElementSerializable <Amplitude.Xml.Serialization.IXmlSerializable>(ref xmlSerializable6);
        }
        if (num >= 8)
        {
            writer.WriteElementString <int>("LastNonInfectedOwnerIndex", this.lastNonInfectedOwnerIndex);
        }
    }