Exemple #1
0
        /// <summary>
        /// Imports data from the given character sheet informations
        /// </summary>
        /// <param name="serial">The serialized character sheet</param>
        protected void Import(SerializableSettingsCharacter serial)
        {
            Import((SerializableCharacterBase)serial);

            // Implants
            m_implants.Import(serial.ImplantSets);
        }
Exemple #2
0
        /// <summary>
        /// Imports data from the given character sheet informations.
        /// </summary>
        /// <param name="serial">The serialized character sheet</param>
        /// <exception cref="System.ArgumentNullException">serial</exception>
        protected void Import(SerializableSettingsCharacter serial)
        {
            serial.ThrowIfNull(nameof(serial));

            Import((SerializableCharacterSheetBase)serial);

            // Implants
            ImplantSets.Import(serial.ImplantSets);
        }
Exemple #3
0
        /// <summary>
        /// Fetches the data to the given serialization object, used by inheritors.
        /// </summary>
        /// <param name="serial">The serial.</param>
        /// <exception cref="System.ArgumentNullException">serial</exception>
        protected void Export(SerializableSettingsCharacter serial)
        {
            serial.ThrowIfNull(nameof(serial));

            serial.Guid               = Guid;
            serial.ID                 = Identity.CharacterID;
            serial.Name               = m_name;
            serial.HomeStationID      = homeStation;
            serial.Birthday           = Birthday;
            serial.Race               = Race;
            serial.BloodLine          = Bloodline;
            serial.Ancestry           = Ancestry;
            serial.Gender             = Gender;
            serial.CorporationName    = CorporationName;
            serial.CorporationID      = CorporationID;
            serial.AllianceName       = AllianceName;
            serial.AllianceID         = AllianceID;
            serial.FreeSkillPoints    = FreeSkillPoints;
            serial.FreeRespecs        = AvailableReMaps;
            serial.CloneState         = AccountStatusSettings.ToString();
            serial.CloneJumpDate      = JumpCloneLastJumpDate;
            serial.LastRespecDate     = LastReMapDate;
            serial.LastTimedRespec    = LastReMapTimed;
            serial.RemoteStationDate  = RemoteStationDate;
            serial.JumpActivationDate = JumpActivationDate;
            serial.JumpFatigueDate    = JumpFatigueDate;
            serial.JumpLastUpdateDate = JumpLastUpdateDate;
            serial.Balance            = Balance;

            // Info
            serial.Label             = m_label;
            serial.ShipName          = ShipName;
            serial.ShipTypeName      = ShipTypeName;
            serial.SecurityStatus    = SecurityStatus;
            serial.LastKnownLocation = LastKnownLocation;

            // Employment History
            serial.EmploymentHistory.AddRange(EmploymentHistory.Export());

            // Attributes
            serial.Attributes.Intelligence = Intelligence.Base;
            serial.Attributes.Perception   = Perception.Base;
            serial.Attributes.Willpower    = Willpower.Base;
            serial.Attributes.Charisma     = Charisma.Base;
            serial.Attributes.Memory       = Memory.Base;

            // Implants sets
            serial.ImplantSets = ImplantSets.Export();

            // Skills
            serial.Skills.AddRange(Skills.Export());
        }
Exemple #4
0
        /// <summary>
        /// Creates a XML format file for character exportation.
        /// </summary>
        /// <param name="character"></param>
        /// <param name="plan"></param>
        private static string ExportAsEVEMonXML(Character character, Plan plan)
        {
            SerializableSettingsCharacter serial = character.Export();

            if (plan != null)
            {
                serial.Skills.Clear();
                serial.Skills.AddRange(character.Skills.Where(skill => skill.IsKnown || plan.IsPlanned(skill))
                                       .Select(skill => GetMergedSkill(plan, skill)));
            }

            XmlDocument doc = (XmlDocument)Util.SerializeToXmlDocument(serial);

            return(doc != null?Util.GetXmlStringRepresentation(doc) : null);
        }
Exemple #5
0
        /// <summary>
        /// Fetches the data to the given serialization object, used by inheritors.
        /// </summary>
        /// <param name="ci"></param>
        protected void Export(SerializableSettingsCharacter serial)
        {
            serial.Guid             = m_guid;
            serial.ID               = m_identity.CharacterID;
            serial.Name             = m_name;
            serial.Race             = m_race;
            serial.Gender           = m_gender;
            serial.BloodLine        = m_bloodLine;
            serial.CorporationName  = m_corporationName;
            serial.CloneSkillPoints = m_cloneSkillPoints;
            serial.CloneName        = m_cloneName;
            serial.Balance          = m_balance;

            // Attributes
            serial.Attributes.Intelligence = this.Intelligence.Base;
            serial.Attributes.Perception   = this.Perception.Base;
            serial.Attributes.Willpower    = this.Willpower.Base;
            serial.Attributes.Charisma     = this.Charisma.Base;
            serial.Attributes.Memory       = this.Memory.Base;

            // Implants sets
            serial.ImplantSets = this.ImplantSets.Export();

            // Certificates
            serial.Certificates = new List <SerializableCharacterCertificate>();
            foreach (var cert in this.Certificates)
            {
                if (cert.IsGranted)
                {
                    serial.Certificates.Add(new SerializableCharacterCertificate {
                        CertificateID = cert.ID
                    });
                }
            }

            // Skills
            serial.Skills = new List <SerializableCharacterSkill>();
            foreach (var skill in this.Skills)
            {
                if (skill.IsKnown || skill.IsOwned)
                {
                    serial.Skills.Add(skill.Export());
                }
            }
        }
Exemple #6
0
        /// <summary>
        /// Imports data from the given character sheet informations
        /// </summary>
        /// <param name="serial">The serialized character sheet</param>
        protected void Import(SerializableCharacterBase serial)
        {
            bool fromCCP = (serial is SerializableAPICharacter);

            // Bio
            m_name             = serial.Name;
            m_race             = serial.Race;
            m_gender           = serial.Gender;
            m_balance          = serial.Balance;
            m_bloodLine        = serial.BloodLine;
            m_corporationName  = serial.CorporationName;
            m_cloneName        = serial.CloneName;
            m_cloneSkillPoints = serial.CloneSkillPoints;

            // Attributes
            m_attributes[(int)EveAttribute.Intelligence].Base = serial.Attributes.Intelligence;
            m_attributes[(int)EveAttribute.Perception].Base   = serial.Attributes.Perception;
            m_attributes[(int)EveAttribute.Willpower].Base    = serial.Attributes.Willpower;
            m_attributes[(int)EveAttribute.Charisma].Base     = serial.Attributes.Charisma;
            m_attributes[(int)EveAttribute.Memory].Base       = serial.Attributes.Memory;

            // Skills : reset all > update all
            foreach (var skill in m_skills)
            {
                skill.Reset(fromCCP);
            }
            foreach (var serialSkill in serial.Skills)
            {
                // Take care of the new skills not in our datafiles yet. Update if it exists.
                var foundSkill = m_skills[serialSkill.ID];
                if (foundSkill != null)
                {
                    foundSkill.Import(serialSkill, fromCCP);
                }
            }

            // Certificates : reset > mark the granted ones > update the other ones
            foreach (var cert in m_certificates)
            {
                cert.Reset();
            }
            foreach (var serialCert in serial.Certificates)
            {
                // Take care of the new certs not in our datafiles yet. Mark as granted if it exists.
                var foundCert = m_certificates[serialCert.CertificateID];
                if (foundCert != null)
                {
                    foundCert.MarkAsGranted();
                }
            }

            while (true)
            {
                bool updatedAnything = false;
                foreach (var cert in m_certificates)
                {
                    updatedAnything |= cert.TryUpdateCertificateStatus();
                }
                if (!updatedAnything)
                {
                    break;
                }
            }

            // Not from CCP ?
            if (!fromCCP)
            {
                SerializableSettingsCharacter nonCCPSerial = (SerializableSettingsCharacter)serial;
            }
        }
Exemple #7
0
 /// <summary>
 /// Exported character constructor.
 /// </summary>
 /// <param name="identity">The identitiy for this character</param>
 /// <param name="uri">The uri the provided deserialization object was acquired from</param>
 /// <param name="serial">The serial.</param>
 internal UriCharacter(CharacterIdentity identity, Uri uri, SerializableSettingsCharacter serial)
     : base(identity, Guid.NewGuid())
 {
     m_uri = uri;
     Import(serial);
 }