Exemplo n.º 1
0
        /// <summary>
        /// Generates a serialization object.
        /// </summary>
        /// <returns></returns>
        public SerializablePlan Export()
        {
            // Create serialization object
            SerializablePlan serial = new SerializablePlan
            {
                Name               = Name,
                Description        = Description,
                SortingPreferences = SortingPreferences
            };

            Character character = Character as Character;

            if (character != null)
            {
                serial.Owner = character.Guid;
            }

            // Add entries
            foreach (PlanEntry entry in Items)
            {
                SerializablePlanEntry serialEntry = new SerializablePlanEntry
                {
                    ID        = entry.Skill.ID,
                    SkillName = entry.Skill.Name,
                    Level     = entry.Level,
                    Type      = entry.Type,
                    Notes     = entry.Notes,
                    Priority  = entry.Priority
                };

                // Add groups
                foreach (string group in entry.PlanGroups)
                {
                    serialEntry.PlanGroups.Add(group);
                }

                // Remapping point
                if (entry.Remapping != null)
                {
                    serialEntry.Remapping = entry.Remapping.Export();
                }

                serial.Entries.Add(serialEntry);
            }

            foreach (SerializableInvalidPlanEntry serialEntry in m_invalidEntries.Select(
                         entry => new SerializableInvalidPlanEntry
            {
                SkillName = entry.SkillName,
                PlannedLevel = entry.PlannedLevel,
                Acknowledged = entry.Acknowledged
            }))
            {
                serial.InvalidEntries.Add(serialEntry);
            }

            return(serial);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Gets a skill by its ID or its name.
        /// </summary>
        /// <param name="serial">The serial.</param>
        /// <returns></returns>
        private static StaticSkill GetSkill(SerializablePlanEntry serial)
        {
            // Try get skill by its ID
            StaticSkill skill = StaticSkills.GetSkillByID(serial.ID) ?? StaticSkills.GetSkillByName(serial.SkillName);

            // We failed? Try get skill by its name

            return(skill);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Gets a skill by its ID or its name
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public static StaticSkill GetSkill(SerializablePlanEntry serial)
        {
            // Try get skill by its ID
            StaticSkill skill = StaticSkills.GetSkillById(serial.ID);

            // We failed? Try get skill by its name
            if (skill == null)
            {
                skill = StaticSkills.GetSkillByName(serial.SkillName);
            }

            return(skill);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Generates a serialization object
        /// </summary>
        /// <returns></returns>
        public SerializablePlan Export()
        {
            // Create serialization object
            var character = (Character)m_character;
            var serial    = new SerializablePlan {
                Name = m_name, Owner = character.Guid, SortingPreferences = m_sortingPreferences.Clone()
            };

            // Add entries
            foreach (var entry in m_items)
            {
                var serialEntry = new SerializablePlanEntry
                {
                    ID        = entry.Skill.ID,
                    SkillName = entry.Skill.Name,
                    Level     = entry.Level,
                    Type      = entry.Type,
                    Notes     = entry.Notes,
                    Priority  = entry.Priority
                };

                // Add groups
                foreach (var group in entry.PlanGroups)
                {
                    serialEntry.PlanGroups.Add(group);
                }

                // Remapping point
                if (entry.Remapping != null)
                {
                    serialEntry.Remapping = entry.Remapping.Export();
                }

                serial.Entries.Add(serialEntry);
            }

            foreach (var entry in m_invalidEntries)
            {
                var serialEntry = new SerializableInvalidPlanEntry
                {
                    SkillName    = entry.SkillName,
                    PlannedLevel = entry.PlannedLevel,
                    Acknowledged = entry.Acknowledged
                };

                serial.InvalidEntries.Add(serialEntry);
            }

            return(serial);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Deserialization constructor.
        /// </summary>
        /// <param name="owner">The owner.</param>
        /// <param name="serial">The serial.</param>
        internal PlanEntry(BasePlan owner, SerializablePlanEntry serial)
        {
            m_owner     = owner;
            m_entryType = serial.Type;
            m_skill     = GetSkill(serial);
            m_level     = serial.Level;
            m_notes     = serial.Notes;
            m_priority  = serial.Priority;

            m_planGroups.AddRange(serial.PlanGroups);

            if (serial.Remapping != null)
            {
                m_remapping = new RemappingPoint(serial.Remapping);
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// Deserialization constructor
        /// </summary>
        /// <param name="character"></param>
        /// <param name="serial"></param>
        internal PlanEntry(BasePlan owner, SerializablePlanEntry serial)
        {
            m_owner     = owner;
            m_entryType = serial.Type;
            m_skill     = StaticSkills.GetSkillByName(serial.SkillName);
            m_level     = serial.Level;
            m_notes     = serial.Notes;
            m_priority  = serial.Priority;

            foreach (var group in serial.PlanGroups)
            {
                m_planGroups.Add(group);
            }

            if (serial.Remapping != null)
            {
                m_remapping = new RemappingPoint(serial.Remapping);
            }
        }