Esempio n. 1
0
        public static async void DrawMissions(this BaseModule module, KeyValuePair <bool, PriorityTable> pstate, EmbedBuilder embed, IEnumerable <IMissionX> missions, string search)
        {
            int count = 0;

            foreach (var mission in missions)
            {
                if (mission.MissionNameInfo.Name == "Launch the Rocket")
                {
                    continue;
                }
                count++;
                string GroupMission = $"";
                if (mission.IsGroupMission)
                {
                    GroupMission = $"x4";
                }
                string itemList      = "";
                bool   firstAlertSet = false;

                string time     = "";
                var    fraction = mission.availableUntil - DateTimeOffset.UtcNow;
                if ((int)(fraction).TotalHours > 0)
                {
                    time = $"{(int)(fraction).TotalHours}h{(int)(fraction).Minutes }m";
                }
                else if ((int)(fraction).Minutes > 0)
                {
                    time = $"{(int)(fraction).Minutes}m";
                }

                itemList += module.ToTranslate(BotTranslationString.MA_Available, module.GetLanguage(), time);

                foreach (var item in mission.Items)
                {
                    if (item.GetRealItemName().Key == "0")
                    {
                        continue;
                    }

                    if (item.AlertReward && firstAlertSet == false)
                    {
                        firstAlertSet = true;
                        var alertNameStr = mission.MissionCategory.ToDescriptionString();
                        itemList += $"**{alertNameStr}:**\n";
                    }
                    string amount = "";
                    if (item.AlertReward && item.quantity > 1)
                    {
                        amount = $"(**x{item.quantity:#,##0.##}**)";
                    }
                    else
                    {
                        if (item.AlertReward == false && item.quantity == 4)
                        {
                            amount = $"(**x4**)";
                        }
                        else if (item.AlertReward == false && item.quantity != 1)
                        {
                            amount = $"(**x{item.quantity}**)";
                        }
                    }
                    var rname = item.GetRealItemName(true, module.GetLanguage().ToString());
                    itemList += $"<:{rname.Key}:{rname.Key}> *{rname.Value}* {amount}\n";
                }

                itemList += SurvivorStaticData.InvinsibleImage();
                string mapLevel = mission.MissionLevel.ToString();
                embed.AddField($":zap:{mapLevel}<:{mission.MissionNameInfo.EmojiId}:{mission.MissionNameInfo.EmojiId}>{GroupMission} {mission.WorldName.GetName()}", itemList, true);
            }
            if (count == 0)
            {
                await module.ReplyEmbedErrorAsync($"no result found {search}");

                return;
            }

            var frat = 3 - (count % 3);

            for (int i = 0; i < frat; i++)
            {
                embed.AddField(SurvivorStaticData.InvinsibleImage(), SurvivorStaticData.InvinsibleImage(), true);
            }
            await module.ReplyEmbedAsync(null, module.ToTranslate(BotTranslationString.MA_Title, module.GetLanguage()), embed.Fields,
                                         embed.Footer, embed.Color.Value, 0, pstate);
        }
Esempio n. 2
0
        public static Embed ToWebhookEmbed(this List <DailyLlama> mission)
        {
            EmbedBuilder embed   = new EmbedBuilder();
            var          vbuck   = SurvivorStaticData.AssetBot2["currency_mtxswap"].EmojiId;
            var          tickets = SurvivorStaticData.AssetBot2["campaign_event_currency"].EmojiId;

            foreach (var m in mission)
            {
                var priceIcon = vbuck;
                if (m.GameItem)
                {
                    priceIcon = tickets;
                }
                //
                embed.AddField($"{m.Title}", $"**{(m.Price == 0 ? "FREE" : m.Price.ToString())}** {(m.Price == 0 ? "" : $"<:{priceIcon}:{priceIcon}>")} [ **Limit:** {m.Amount} ]\n{m.Description}\n{SurvivorStaticData.InvinsibleImage()}");
            }
            embed.Color = new Color(230, 176, 170);
            return(embed.Build());
        }