Пример #1
0
        /// <summary>
        /// When the timer ticks, on every second, we update the skill
        /// </summary>
        internal void UpdateOnTimerTick()
        {
            if (m_isPaused)
            {
                return;
            }

            List <QueuedSkill> skillsCompleted = new List <QueuedSkill>();

            // Pops all the completed skills
            while (m_items.Count != 0)
            {
                QueuedSkill skill = m_items[0];

                // If the skill is not completed, we jump out of the loop
                if (skill.EndTime > DateTime.UtcNow)
                {
                    break;
                }

                // The skill has been completed
                if (skill.Skill != null)
                {
                    skill.Skill.MarkAsCompleted();
                }

                skillsCompleted.Add(skill);
                m_lastCompleted = skill;
                m_items.RemoveAt(0);

                // Sends an email alert
                if (!Settings.IsRestoringSettings && Settings.Notifications.SendMailAlert)
                {
                    Emailer.SendSkillCompletionMail(m_items, skill, m_character);
                }

                // Sends a notification
                EveClient.Notifications.NotifySkillCompletion(m_character, skillsCompleted);
            }

            // At least one skill completed ?
            if (skillsCompleted.Count != 0)
            {
                EveClient.OnCharacterQueuedSkillsCompleted(m_character, skillsCompleted);
            }
        }