Ejemplo n.º 1
0
        public static bool HasLegendaryShematic(this IMissionX m)
        {
            var count = m.Items.Any(f => f.Class == ItemClass.Schematic && f.Rarity == ItemRarity.Legendary);

            m.SetOrderNumber(count, 2);
            return(count);
        }
Ejemplo n.º 2
0
        public static bool HasMythicSurvivor(this IMissionX m)
        {
            var rslt = m.HasSurvivor(ItemRarity.Mythic);

            m.SetOrderNumber(rslt, 0);
            return(rslt);
        }
Ejemplo n.º 3
0
        public static bool HasLegendarySurvivor(this IMissionX m)
        {
            var rslt = m.HasSurvivor(ItemRarity.Legendary);

            m.SetOrderNumber(rslt, 0);
            return(rslt);
        }
Ejemplo n.º 4
0
 private static void SetOrderNumber(this IMissionX m, bool hasValue, int orderNumber)
 {
     if (hasValue)
     {
         if (m.OrderNumber > orderNumber)
         {
             m.OrderNumber = orderNumber;
         }
     }
 }
Ejemplo n.º 5
0
        public static bool HasLegendaryPerkUp(this IMissionX m, WorldName world)
        {
            var rslt = m.FindNormalItemById("Reagent_Alteration_Upgrade_SR", world);

            m.SetOrderNumber(rslt, 4);
            if (m.IsGroupMission)
            {
                m.SetOrderNumber(rslt, 3);
            }
            return(rslt);
        }
Ejemplo n.º 6
0
        public static bool HasVBuck(this IMissionX m)
        {
            var rslt = m.FindNormalItemById("MtxGiveaway");

            if (!rslt)
            {
                rslt = m.FindNormalItemById("currency_mtxswap");
            }
            if (rslt)
            {
                m.SetOrderNumber(rslt, 0);
            }
            return(rslt);
        }
Ejemplo n.º 7
0
 public static bool FindNormalItemById(this IMissionX m, string IdContains, WorldName worldName = WorldName.All)
 {
     if (worldName == WorldName.All)
     {
         var exsts = m.Items.Any(f => f.ItemType.Contains(IdContains, StringComparison.CurrentCultureIgnoreCase));
         return(exsts);
     }
     else
     {
         if (m.WorldName != worldName)
         {
             return(false);
         }
         var exsts = m.Items.Any(f => f.AlertReward == false && f.ItemType.Contains(IdContains, StringComparison.CurrentCultureIgnoreCase));
         return(exsts);
     }
 }
Ejemplo n.º 8
0
        public static bool IsFourStacks(this IMissionX m, string specificItemName, WorldName mapName = WorldName.Twine_Peaks)
        {
            var count = m.Items.FirstOrDefault(f => f.AlertReward = false && f.quantity == 4 && f.GetRealItemName().Value == specificItemName);

            if (count == null)
            {
                var grp = m.Items.GroupBy(p => p.AlertReward).FirstOrDefault(p => p.Key == false)?.Count(x => x.GetRealItemName().Value == specificItemName);
                if (grp.HasValue && grp == 4)
                {
                    return(m.WorldName == mapName);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(m.WorldName == mapName);
            }
        }
Ejemplo n.º 9
0
        public static bool Has4x(this IMissionX m, string IdContains, WorldName world = WorldName.Twine_Peaks)
        {
            if (!m.Has4xAny())
            {
                return(false);
            }

            var rslt = m.FindNormalItemById(IdContains, world);

            if (!rslt)
            {
                return(false);
            }

            rslt = m.IsMissionReward(IdContains);
            if (!rslt)
            {
                return(false);
            }

            m.SetOrderNumber(rslt, 6);
            return(true);
        }
Ejemplo n.º 10
0
 public static bool HasAnyAlert(this IMissionX m, Alert alert)
 {
     return(m.MissionCategory == alert);
 }
Ejemplo n.º 11
0
        public static bool HasSurvivor(this IMissionX m, ItemRarity RarityType)
        {
            var exists = m.Items.Any(f => f.Class == ItemClass.Worker && f.Rarity == RarityType);

            return(exists);
        }
Ejemplo n.º 12
0
        public static bool HasAnyTransform(this IMissionX m, ItemRarity RarityType)
        {
            var count = m.Items.Any(f => f.Class == ItemClass.ConversionControl && f.Rarity == RarityType);

            return(count);
        }
Ejemplo n.º 13
0
 public static bool HasAnyElementalAlert(this IMissionX m)
 {
     return(m.MissionCategory == Alert.ElemementalZoneWaterCategory || m.MissionCategory == Alert.ElemementalZoneFireCategory || m.MissionCategory == Alert.ElemementalZoneNatureCategory);
 }
Ejemplo n.º 14
0
 public static bool HasEpicHero(this IMissionX m)
 {
     return(m.HasHero(ItemRarity.Epic));
 }
Ejemplo n.º 15
0
 public static bool HasEpicAnyTransform(this IMissionX m)
 {
     return(m.HasAnyTransform(ItemRarity.Epic));
 }
Ejemplo n.º 16
0
        public static bool Has4xLightningInABottle(this IMissionX m, WorldName world = WorldName.Twine_Peaks)
        {
            var rslt = m.Has4x("reagent_c_t02", world);

            return(rslt);
        }
Ejemplo n.º 17
0
        public static bool HasHero(this IMissionX m, ItemRarity RarityType)
        {
            var count = m.Items.Any(f => f.Class == ItemClass.Hero && f.Rarity == RarityType);

            return(count);
        }
Ejemplo n.º 18
0
        public static bool AnyMythic(this IMissionX m)
        {
            var count = m.Items.Any(f => f.Rarity == ItemRarity.Mythic);

            return(count);
        }
Ejemplo n.º 19
0
        public static bool Has4xPureDropOfRain(this IMissionX m, WorldName world = WorldName.Twine_Peaks)
        {
            var rslt = m.Has4x("reagent_c_t01", world);

            return(rslt);
        }
Ejemplo n.º 20
0
 public static bool IsGroupMission(this IMissionX m, WorldName worldName)
 {
     return(m.IsGroupMission2() && m.WorldName == worldName);
 }
Ejemplo n.º 21
0
 public static bool Has4xAny(this IMissionX m)
 {
     return(m.IsGroupMission);
 }
Ejemplo n.º 22
0
 public static bool HasLegendaryAnyTransform(this IMissionX m)
 {
     return(m.HasAnyTransform(ItemRarity.Legendary));
 }
Ejemplo n.º 23
0
        public static bool AnyLegendary(this IMissionX m)
        {
            var count = m.Items.Any(f => f.Rarity == ItemRarity.Legendary);

            return(count);
        }
Ejemplo n.º 24
0
        public static bool Has4xStormShard(this IMissionX m, WorldName world = WorldName.Twine_Peaks)
        {
            var rslt = m.Has4x("reagent_c_t04", world);

            return(rslt);
        }
Ejemplo n.º 25
0
        public static bool IsMissionReward(this IMissionX m, string IdContains)
        {
            var exsts = m.Items.Any(f => f.AlertReward == false && f.ItemType.Contains(IdContains, StringComparison.CurrentCultureIgnoreCase));

            return(exsts);
        }
Ejemplo n.º 26
0
 public static bool HasEpicSurvivor(this IMissionX m)
 {
     return(m.HasSurvivor(ItemRarity.Epic));
 }
Ejemplo n.º 27
0
 public static bool IsGroupMission2(this IMissionX m)
 {
     return(m.IsGroupMission);
 }
Ejemplo n.º 28
0
        public static Embed ToWebhookEmbed(this IMissionX mission, GuildLanguage language = GuildLanguage.EN)
        {
            int          xy    = 0;
            EmbedBuilder embed = new EmbedBuilder();

            try
            {
                if (mission.MissionNameInfo.Name == "Launch the Rocket")
                {
                    return(null);
                }
                string GroupMission = $"";
                if (mission.IsGroupMission)
                {
                    GroupMission = $"{SurvivorStaticData.Get4xGroupMissionImage()}";
                }

                bool firstAlertSet = false;

                var           time          = mission.availableUntil.ToStringHMS();
                var           Translate     = DIManager.Services.GetRequiredService <IJsonStringLocalizer>();
                string        availableTime = Translate.GetBotTranslation(BotTranslationString.MA_ExpreIn, language, time);
                List <string> mapRewards    = new List <string>();
                List <string> alertRewards  = new List <string>();
                string        alertNameStr  = "";
                foreach (var item in mission.Items)
                {
                    if (item.AlertReward && firstAlertSet == false)
                    {
                        firstAlertSet = true;

                        alertNameStr = mission.MissionCategory.ToDescriptionString();
                    }
                    string amount = "";
                    if (item.AlertReward && item.quantity > 1)
                    {
                        amount = $"(**x{item.quantity:#,##0.##}**)";
                    }
                    else
                    {
                        if (item.AlertReward && item.quantity == 4)
                        {
                            amount = $"(**x4**)";
                        }
                        else if (item.AlertReward && item.quantity != 1)
                        {
                            amount = $"(**x{item.quantity}**)";
                        }
                    }
                    var itmInfo = item.GetRealItemName(false, language.ToString());
                    if (item.AlertReward == false)
                    {
                        mapRewards.Add($"<:{itmInfo.Key}:{itmInfo.Key}> *{itmInfo.Value}* {amount}");
                    }
                    else
                    {
                        alertRewards.Add($"<:{itmInfo.Key}:{itmInfo.Key}> *{itmInfo.Value}* {amount}");
                    }
                }
                string mapLevel = mission.MissionLevel.ToString();
                embed.Title       = $"{mapLevel}:zap: {mission.MissionNameInfo.Name} {GroupMission} <:{mission.MissionNameInfo.EmojiId}:{mission.MissionNameInfo.EmojiId}>";
                embed.Description = $"**{Translate.GetBotTranslation(mission.WorldName.ToString().Replace("_", ""), language)}**";
                embed.WithFooter($"{availableTime}");
                embed.AddField(Translate.GetBotTranslation(BotTranslationString.MA_Rewards, language), string.Join("\n", mapRewards.ToArray()), true);
                embed.AddField($"**{alertNameStr}**", string.Join("\n", alertRewards.ToArray()), true);
                string positive_mutations = "";
                string negative_mutations = "";
                int    p = 0, n = 0;
                foreach (var mutation in mission.Modifiers)
                {
                    string mId = Fortnite.Static.Utils.GetImage(mutation.AssetId);
                    if (mutation.IsPositiveMutation.Value)
                    {
                        n++;
                        positive_mutations += $"<:{mId}:{mId}> ";
                        if (n % 5 == 0)
                        {
                            positive_mutations += "\n";
                        }
                    }
                    else
                    {
                        p++;
                        negative_mutations += $"<:{mId}:{mId}> ";
                        if (p % 5 == 0)
                        {
                            negative_mutations += "\n";
                        }
                    }
                }

                if (positive_mutations.Length != 0 && negative_mutations.Length != 0)
                {
                    embed.AddField(Translate.GetBotTranslation(BotTranslationString.MA_NegativeMutation, language), negative_mutations, false);
                    embed.AddField(Translate.GetBotTranslation(BotTranslationString.MA_PositiveMutation, language), positive_mutations, true);
                }
                else if (negative_mutations.Length == 0 || positive_mutations.Length != 0)
                {
                    embed.AddField(Translate.GetBotTranslation(BotTranslationString.MA_PositiveMutation, language), positive_mutations, false);
                }
                else if (negative_mutations.Length != 0 || positive_mutations.Length == 0)
                {
                    embed.AddField(Translate.GetBotTranslation(BotTranslationString.MA_NegativeMutation, language), negative_mutations, false);
                }
                if (mission.AnyEpic())
                {
                    embed.Color = new Color(187, 143, 206);
                }

                if (mission.AnyLegendary())
                {
                    embed.Color = new Color(248, 196, 113);
                }

                if (mission.HasVBuck())
                {
                    embed.Color = new Color(133, 193, 233);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                Console.WriteLine("-------------------------------------------");

                Console.WriteLine(JsonConvert.SerializeObject(mission));

                Console.WriteLine("-------------------------------------------");
            }
            return(embed.Build());
        }