Пример #1
0
 private void AddToInvasionConstructionPostQueue(WarframeInvasionConstruction construction, bool invasionHasExpired)
 {
     if (!_invasionConstructionMessagePostQueue.Any(x => x.WarframeEvent.GUID == construction.GUID))
     {
         _invasionConstructionMessagePostQueue.Add(new MessageQueueElement <WarframeInvasionConstruction>(construction, false, invasionHasExpired));
     }
 }
Пример #2
0
        public static string DiscordMessage(this WarframeInvasionConstruction project, bool isNotification)
        {
            var factionName = project.Faction;
            var projectName = project.ProjectName;
            var progress    = project.ProjectProgress;

            var returnMessage = new StringBuilder();

            if (progress > 0.0)
            {
                returnMessage.AppendLine($"{factionName} {projectName}: {string.Format("{0:0.00}", progress)}% Complete");
            }

            return(returnMessage.ToString());
        }
Пример #3
0
        //Parse information about the faction construction projects
        public IEnumerable <WarframeInvasionConstruction> GetInvasionConstruction()
        {
            const string IDENTIFIER_PREFIX          = "ProjectPct";
            JObject      worldState                 = _scraper.WorldState;
            var          resultConstructionProjects = new List <WarframeInvasionConstruction>();

            var currentIteration = 0;

            //Find Projects
            foreach (var jsonInvasionConstructionProject in worldState["ProjectPct"])
            {
                var projectIdentifier = new StringBuilder(IDENTIFIER_PREFIX + currentIteration);
                WarframeInvasionConstruction currentConstructionProject = _constructionProjectsList.Find(x => x.GUID == projectIdentifier.ToString());
                var progress = double.Parse(jsonInvasionConstructionProject.ToString());

                if (currentConstructionProject == null)
                {
                    currentConstructionProject = new WarframeInvasionConstruction(projectIdentifier.ToString(), currentIteration, progress);
                    _constructionProjectsList.Add(currentConstructionProject);
#if DEBUG
                    Console.WriteLine("New Construction Project Event");
#endif
                }
                else
                {
                    if (currentConstructionProject.IsExpired())
                    {
                        _constructionProjectsList.Remove(currentConstructionProject);
                    }
                }

                if ((currentConstructionProject != null) && (!currentConstructionProject.IsExpired()))
                {
                    currentConstructionProject.UpdateProgress(progress);
                    resultConstructionProjects.Add(currentConstructionProject);
                }

                ++currentIteration;
            }

            return(_constructionProjectsList);
        }