示例#1
0
        /// <summary>
        /// Deserialization constructor
        /// </summary>
        /// <param name="character">The character for this training</param>
        /// <param name="serial">The serialization object for this training</param>
        /// <param name="isPaused">When true, the training is currently paused.</param>
        /// <param name="startTimeWhenPaused">Training starttime when the queue is actually paused. Indeed, in such case, CCP returns empty start and end time, so we compute a "what if we start now" scenario.</param>
        internal QueuedSkill(Character character, SerializableQueuedSkill serial, bool isPaused, ref DateTime startTimeWhenPaused)
        {
            m_owner   = character;
            m_startSP = serial.StartSP;
            m_endSP   = serial.EndSP;
            m_level   = serial.Level;
            m_skill   = character.Skills[serial.ID];

            if (!isPaused)
            {
                // Not paused, we should trust CCP.
                m_startTime = serial.StartTime;
                m_endTime   = serial.EndTime;
            }
            else
            {
                // StartTime and EndTime were empty on the serialization object if the skill was paused.
                // So we compute a "what if we start now" scenario
                m_startTime          = startTimeWhenPaused;
                startTimeWhenPaused += m_skill.GetLeftTrainingTimeToNextLevel();
                m_endTime            = startTimeWhenPaused;
            }
        }