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