/// <summary>
        /// Add an item to the item pool from a string.
        /// </summary>
        /// <param name="unlockableRewardIdentifier">The AchievementDef.unlockableRewardIdentifier, e.g. "Item.Bear"</param>
        public void AddItemFromString(string unlockableRewardIdentifier)
        {
            string pattern   = @"\w+\."; //this just means "[infinite letters until]."
            bool   equipment = false;

            unlockableRewardIdentifier = Regex.Replace(unlockableRewardIdentifier, pattern, ""); //remove "[infinite letters until]." so we have the itemname remaining

            foreach (EquipmentIndex i in EquipmentCatalog.equipmentList)
            {
                EquipmentDef EqDef           = EquipmentCatalog.GetEquipmentDef(i);
                string       equipmentString = EqDef.name;
                if (unlockableRewardIdentifier == equipmentString)
                {
                    Run.instance.availableEquipment.Add(EquipmentCatalog.FindEquipmentIndex(unlockableRewardIdentifier));
                    equipment = true;
                    break; //So we don't search everything if we already have it
                }
            }
            if (!equipment)                                                                             //it doesn't matter if we try to find itemindex for characters or logs, due to the fact that they won't have the same name as an available item, and will not result in an ItemIndex that we can use
            {
                Run.instance.availableItems.Add(ItemCatalog.FindItemIndex(unlockableRewardIdentifier)); //Add the item from this string into the available items
            }
            Run.instance.BuildDropTable();                                                              //Makes it so that everything we added actually gets put into the game pool so we can get it on the next items, you can see it that old items do not have it with command, but hopefully that won't matter :]
            UpdateDroppedCommandDroplets();
        }
Ejemplo n.º 2
0
        public EquipmentList() : base(equipmentList)
        {
            if (UmbraMenu.characterCollected)
            {
                int           buttonPlacement = 1;
                List <Button> buttons         = new List <Button>();
                for (int i = 0; i < UmbraMenu.equipment.Count; i++)
                {
                    var equipmentIndex = UmbraMenu.equipment[i];
                    if (equipmentIndex != EquipmentIndex.None && equipmentIndex != EquipmentCatalog.FindEquipmentIndex("AffixYellow"))
                    {
                        void ButtonAction() => GiveEquipment(equipmentIndex);

                        Color32 equipColor    = ColorCatalog.GetColor(EquipmentCatalog.GetEquipmentDef(equipmentIndex).colorIndex);
                        string  equipmentName = Util.GenerateColoredString(Language.GetString(EquipmentCatalog.GetEquipmentDef(equipmentIndex).nameToken), ColorCatalog.GetColor(EquipmentCatalog.GetEquipmentDef(equipmentIndex).colorIndex));
                        Button  button        = new Button(new NormalButton(this, buttonPlacement, equipmentName, ButtonAction));
                        buttons.Add(button);
                        buttonPlacement++;
                    }
                    else
                    {
                        void ButtonAction() => GiveEquipment(equipmentIndex);

                        string equipmentName = Util.GenerateColoredString(equipmentIndex.ToString(), ColorCatalog.GetColor(ColorCatalog.ColorIndex.Equipment));
                        Button button        = new Button(new NormalButton(this, buttonPlacement, equipmentName, ButtonAction));
                        buttons.Add(button);
                        buttonPlacement++;
                    }
                }
                AddButtons(buttons);
                SetActivatingButton(Utility.FindButtonById(3, 4));
                SetPrevMenuId(3);
            }
        }
 public static void customEquip(Inventory inventory)
 {
     // Custom Equip Blacklist
     string[] customEquiplist = CustomEquipBlacklist.Value.Split(new[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
     // Debug.Log("Current equipment: " + inventory.GetEquipment(0).equipmentDef.name);
     foreach (string equip in customEquiplist)
     {
         if (Int32.TryParse(equip, out int x))
         {
             if (inventory.GetEquipmentIndex() == (EquipmentIndex)x)
             {
                 //Debug.Log("Removed equipment");
                 inventory.SetEquipmentIndex(EquipmentIndex.None);
             }
         }
         else
         {
             EquipmentIndex index = EquipmentCatalog.FindEquipmentIndex(equip);
             Debug.Log("Index: " + index + " Name: " + equip);
             if (index != EquipmentIndex.None)
             {
                 //Debug.Log("Removed equipment");
                 if (inventory.GetEquipmentIndex() == index)
                 {
                     inventory.SetEquipmentIndex(EquipmentIndex.None);
                 }
             }
         }
     }
 }
Ejemplo n.º 4
0
        private static EquipmentIndex StringToEquipmentIndex(string indexStr)
        {
            EquipmentIndex index = EquipmentCatalog.FindEquipmentIndex(indexStr);

            if (index == EquipmentIndex.None)
            {
                AIBlacklister.Logger.LogWarning($"Tried to add equipment to blacklist but '{indexStr}' is not a valid EquipmentIndex.");
            }

            return(index);
        }
Ejemplo n.º 5
0
        public static void UpdateChestListMenu()
        {
            List <Button> buttons = new List <Button>();

            if (isClosestChestEquip)
            {
                for (int i = 0; i < UmbraMenu.equipment.Count; i++)
                {
                    var equipmentIndex = UmbraMenu.equipment[i];
                    if (equipmentIndex != EquipmentIndex.None)
                    {
                        void ButtonAction() => SetChestEquipment(equipmentIndex);

                        if (equipmentIndex != EquipmentCatalog.FindEquipmentIndex("AffixYellow"))
                        {
                            Color32 equipColor    = ColorCatalog.GetColor(EquipmentCatalog.GetEquipmentDef(equipmentIndex).colorIndex);
                            string  equipmentName = Util.GenerateColoredString(Language.GetString(EquipmentCatalog.GetEquipmentDef(equipmentIndex).nameToken), ColorCatalog.GetColor(EquipmentCatalog.GetEquipmentDef(equipmentIndex).colorIndex));
                            Button  button        = new Button(new NormalButton(UmbraMenu.chestItemListMenu, i + 1, equipmentName, ButtonAction));
                            buttons.Add(button);
                        }
                        else
                        {
                            string equipmentName = Util.GenerateColoredString(equipmentIndex.ToString(), ColorCatalog.GetColor(ColorCatalog.ColorIndex.Equipment));
                            Button button        = new Button(new NormalButton(UmbraMenu.chestItemListMenu, i + 1, equipmentName, ButtonAction));
                            buttons.Add(button);
                        }
                    }
                }
            }
            else
            {
                for (int i = 0; i < UmbraMenu.items.Count; i++)
                {
                    var itemIndex = UmbraMenu.items[i];
                    void ButtonAction() => SetChestItem(itemIndex);

                    Color32 itemColor = ColorCatalog.GetColor(ItemCatalog.GetItemDef(itemIndex).colorIndex);
                    if (itemColor.r <= 105 && itemColor.g <= 105 && itemColor.b <= 105)
                    {
                        string itemName = Util.GenerateColoredString(Language.GetString(ItemCatalog.GetItemDef(itemIndex).nameToken), new Color32(0, 0, 0, 255));
                        Button button   = new Button(new NormalButton(UmbraMenu.chestItemListMenu, i + 1, itemName, ButtonAction));
                        buttons.Add(button);
                    }
                    else
                    {
                        string itemName = Util.GenerateColoredString(Language.GetString(ItemCatalog.GetItemDef(itemIndex).nameToken), itemColor);
                        Button button   = new Button(new NormalButton(UmbraMenu.chestItemListMenu, i + 1, itemName, ButtonAction));
                        buttons.Add(button);
                    }
                }
            }
            UmbraMenu.chestItemListMenu.AddButtons(buttons);
        }
Ejemplo n.º 6
0
        private static void LoadBlackListEquipment()
        {
            _equipment = new EquipmentMask();
            foreach (var piece in ShareSuite.EquipmentBlacklist.Value.Split(','))
            {
                // if (int.TryParse(piece.Trim(), out var equipmentIndex))
                //     _equipment.Add((EquipmentIndex) equipmentIndex);
                var equip = EquipmentCatalog.FindEquipmentIndex(piece);
                if (equip == EquipmentIndex.None)
                {
                    continue;
                }

                _equipment.Add(equip);
            }
        }
 public static void AffixOrange()
 {
     if (CloudburstPlugin.EnableElites.Value)
     {
         if (EliteAspectsChanges.AffixOrangeEquip == EquipmentIndex.None)
         {
             EliteAspectsChanges.AffixOrangeEquip = EquipmentCatalog.FindEquipmentIndex("AffixOrange");
             if (EliteAspectsChanges.AffixOrangeEquip != EquipmentIndex.None)
             {
                 EliteAspectsChanges.AffixOrangeIndex = EliteCatalog.GetEquipmentEliteIndex(EliteAspectsChanges.AffixOrangeEquip);
                 EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef(EliteAspectsChanges.AffixOrangeEquip);
                 EliteAspectsChanges.AffixOrangeBuff = equipmentDef.passiveBuff;
             }
         }
     }
 }
 public static void AffixVoid()
 {
     if (Starstorm.EnableElites.Value)
     {
         if (EliteAspectsChanges.AffixVoidEquip == EquipmentIndex.None)
         {
             EliteAspectsChanges.AffixVoidEquip = EquipmentCatalog.FindEquipmentIndex("AffixVoid");
             if (EliteAspectsChanges.AffixVoidEquip != EquipmentIndex.None)
             {
                 EliteAspectsChanges.AffixVoidIndex = EliteCatalog.GetEquipmentEliteIndex(EliteAspectsChanges.AffixVoidEquip);
                 EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef(EliteAspectsChanges.AffixVoidEquip);
                 EliteAspectsChanges.AffixVoidBuff = equipmentDef.passiveBuff;
             }
         }
     }
 }
Ejemplo n.º 9
0
        private void CacheBannedIDS(On.RoR2.EquipmentCatalog.orig_Init orig)
        {
            orig();
            var testStringArray = BannedIDS.Value.Split(',');

            if (testStringArray.Length > 0)
            {
                foreach (string stringToTest in testStringArray)
                {
                    if (EquipmentCatalog.FindEquipmentIndex(stringToTest) == EquipmentIndex.None)
                    {
                        continue;
                    }
                    bannedEquipmentIndices.Add(EquipmentCatalog.FindEquipmentIndex(stringToTest));
                }
            }
        }
Ejemplo n.º 10
0
        private static void CacheWhitelistedEquipment()
        {
            //_logger.LogMessage("Caching whitelisted EQUIPMENT for Recycler.");
            var testStringArray = Recycler_Equipment.Value.Split(',');

            if (testStringArray.Length > 0)
            {
                foreach (string stringToTest in testStringArray)
                {
                    if (EquipmentCatalog.FindEquipmentIndex(stringToTest) == EquipmentIndex.None)
                    {
                        continue;
                    }
                    allowedEquipmentIndices.Add(EquipmentCatalog.FindEquipmentIndex(stringToTest));
                    //_logger.LogMessage("Adding whitelisted equipment: " + stringToTest);
                }
            }
        }
        public static void customEquip(CharacterMaster cm)
        {
            // Custom Equip Blacklist
            string[] customEquiplist = DII.CustomEquipBlacklistAll.Value.Split(new[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);

            foreach (string equip in customEquiplist)
            {
                if (Int32.TryParse(equip, out int x))
                {
                    if (cm.inventory.GetEquipmentIndex() == (EquipmentIndex)x)
                    {
                        cm.inventory.SetEquipmentIndex(EquipmentIndex.None);
                    }
                }
                else
                {
                    EquipmentIndex index = EquipmentCatalog.FindEquipmentIndex(equip);
                    if (index != EquipmentIndex.None)
                    {
                        cm.inventory.SetEquipmentIndex(EquipmentIndex.None);
                    }
                }
            }
        }