/// <summary>
        /// Converts SortieRewards in a human readable format
        /// </summary>
        public static string SortieRewards(SortieRewards sortieRewards)
        {
            string repr = "Sorties can loot:\n";

            foreach (Loot item in sortieRewards.sortieRewards)
            {
                repr += $"	- {item.itemName}: {item.chance}% ({item.rarity})\n";
            }
            return(repr);
        }
Exemple #2
0
        private static async Task MessageReceived(SocketMessage message)
        {
            string[] words = message.Content.Split(" ");

            if (message.Content.StartsWith("what at location "))
            {
                try
                {
                    try
                    {
                        EndlessMission missionInfo = (EndlessMission)await warframeClient.GetMissionLootAsync(words[3], words[4]);

                        await message.Channel.SendMessageAsync(missionInfo.ToString());
                    }
                    catch (InvalidCastException)
                    {
                        FiniteMission missionInfo = (FiniteMission)await warframeClient.GetMissionLootAsync(words[3], words[4]);

                        await message.Channel.SendMessageAsync(missionInfo.ToString());
                    }
                }
                catch (ArgumentException e)
                {
                    await message.Channel.SendMessageAsync(e.Message);
                }
            }

            else if (message.Content.StartsWith("what in relic "))
            {
                try
                {
                    Relic relicInfo = await warframeClient.GetRelicLootAsync(words[3], words[4]);

                    await message.Channel.SendMessageAsync(WFDataAsString.Relic(relicInfo));
                }
                catch (ArgumentException e)
                {
                    await message.Channel.SendMessageAsync(e.Message);
                }
            }

            else if (message.Content.StartsWith("what in sorties"))
            {
                SortieRewards sortieRewards = warframeClient.SortieRewards;
                await message.Channel.SendMessageAsync(WFDataAsString.SortieRewards(sortieRewards));
            }

            else if (message.Content.StartsWith("are there events"))
            {
                Event[] events = warframeClient.WorldStatePC.events;
                await message.Channel.SendMessageAsync(WFDataAsString.Events(events));
            }

            else if (message.Content.StartsWith("give me the news"))
            {
                News[] news = warframeClient.WorldStatePC.news;
                await message.Channel.SendMessageAsync(WFDataAsString.News(news));
            }

            else if (message.Content.StartsWith("what is the sortie"))
            {
                Sortie sortie = warframeClient.WorldStatePC.sortie;
                await message.Channel.SendMessageAsync(WFDataAsString.Sortie(sortie));
            }

            else if (message.Content.StartsWith("what are the void fissures"))
            {
                Fissure[] fissures = warframeClient.WorldStatePC.fissures;
                await message.Channel.SendMessageAsync(WFDataAsString.Fissures(fissures, words[5]));
            }

            else if (message.Content.StartsWith("when baro"))
            {
                VoidTrader voidTrader = warframeClient.WorldStatePC.voidTrader;
                await message.Channel.SendMessageAsync(WFDataAsString.VoidTrader(voidTrader));
            }

            else if (message.Content.StartsWith("where "))
            {
                string itemName = "";
                for (int i = 1; i < words.Length; i++)
                {
                    itemName += words[i] + " ";
                }
                itemName = itemName.Trim();
                DropLocation[] locations = await warframeClient.dropClient.SearchForItemAsync(itemName, strictMatch : true);

                await message.Channel.SendMessageAsync(WFDataAsString.DropLocationsItems(locations, itemName));
            }

            else if (message.Content.StartsWith("what "))
            {
                string placeName = "";
                for (int i = 1; i < words.Length; i++)
                {
                    placeName += words[i] + " ";
                }
                placeName = placeName.Trim();
                DropLocation[] locations = await warframeClient.dropClient.SearchForLocationAsync(placeName);

                await message.Channel.SendMessageAsync(WFDataAsString.DropLocationsLocations(locations));
            }
        }