public override void ReadXml(XmlReader reader)
    {
        int num = reader.ReadVersionAttribute();

        this.EmpireTarget                  = reader.GetAttribute <int>("EmpireTarget");
        this.Priority                      = reader.GetAttribute <float>("MilitaryStress");
        this.ExecutionState                = (RequestUnitListMessage.RequestUnitListState)reader.GetAttribute <int>("ExecutionState");
        this.ForceSourceRegion             = -1;
        this.MinimumNeededArmyFulfillement = 1f;
        this.CurrentFulfillement           = 1f;
        this.MissingMilitaryPower          = 0f;
        if (num >= 2)
        {
            this.ForceSourceRegion             = reader.GetAttribute <int>("ForceSourceRegion");
            this.MinimumNeededArmyFulfillement = reader.GetAttribute <float>("MinimumNeededArmyFulfillement");
            this.CurrentFulfillement           = reader.GetAttribute <float>("CurrentFulfillement");
            this.MissingMilitaryPower          = reader.GetAttribute <float>("MissingMilitaryPower");
            this.OnlyMercenaries = reader.GetAttribute <bool>("OnlyMercenaries", false);
            if (num >= 5)
            {
                this.CommanderCategory = reader.GetAttribute <AICommanderMissionDefinition.AICommanderCategory>("CommanderCategoryEnum");
            }
        }
        base.ReadXml(reader);
        if (reader.IsStartElement("ArmyPattern"))
        {
            ArmyPattern armyPattern = new ArmyPattern();
            reader.ReadElementSerializable <ArmyPattern>(ref armyPattern);
            this.ArmyPattern = armyPattern;
        }
        if (reader.IsStartElement("FinalPosition"))
        {
            this.FinalPosition = reader.ReadElementSerializable <WorldPosition>("FinalPosition");
        }
    }
 public RequestUnitListMessage(int empireTarget, ArmyPattern pattern, float priority, AICommanderMissionDefinition.AICommanderCategory commanderCategory) : base(BlackboardLayerID.Empire)
 {
     this.Reset();
     this.CommanderCategory = commanderCategory;
     this.EmpireTarget      = empireTarget;
     this.ArmyPattern       = pattern;
     this.Priority          = priority;
 }