/// <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); }
/// <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); }
/// <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()); }
/// <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); }
/// <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()); } } }
/// <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; } }
/// <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); }