コード例 #1
0
 // Token: 0x06001927 RID: 6439 RVA: 0x00078D04 File Offset: 0x00076F04
 public Color GetPickupColorDark()
 {
     if (this.value >= 0)
     {
         if (this.value < 78)
         {
             return(ColorCatalog.GetColor(ItemCatalog.GetItemDef((ItemIndex)this.value).darkColorIndex));
         }
         if (this.value < 105)
         {
             return(ColorCatalog.GetColor(EquipmentCatalog.GetEquipmentDef((EquipmentIndex)(this.value - 78)).colorIndex));
         }
         if (this.value < 106)
         {
             return(ColorCatalog.GetColor(ColorCatalog.ColorIndex.LunarItem));
         }
     }
     return(Color.black);
 }
コード例 #2
0
 // Token: 0x06001924 RID: 6436 RVA: 0x00078B6C File Offset: 0x00076D6C
 public GameObject GetPickupDisplayPrefab()
 {
     if (this.value >= 0)
     {
         if (this.value < 78)
         {
             return(Resources.Load <GameObject>(ItemCatalog.GetItemDef((ItemIndex)this.value).pickupModelPath));
         }
         if (this.value < 105)
         {
             return(Resources.Load <GameObject>(EquipmentCatalog.GetEquipmentDef((EquipmentIndex)(this.value - 78)).pickupModelPath));
         }
         if (this.value < 106)
         {
             return(Resources.Load <GameObject>("Prefabs/PickupModels/PickupLunarCoin"));
         }
     }
     return(null);
 }
コード例 #3
0
ファイル: ItemDropManager.cs プロジェクト: jjpdx/SeikoML
        public static List <ItemIndex> GetDefaultDropList(ItemTier itemTier)
        {
            var list = new List <ItemIndex>();

            for (ItemIndex itemIndex = ItemIndex.Syringe; itemIndex < ItemIndex.Count; itemIndex++)
            {
                if (Run.instance.availableItems.HasItem(itemIndex))
                {
                    ItemDef itemDef = ItemCatalog.GetItemDef(itemIndex);

                    if (itemDef.tier == itemTier)
                    {
                        list.Add(itemIndex);
                    }
                }
            }

            return(list);
        }
コード例 #4
0
 // Token: 0x06001928 RID: 6440 RVA: 0x00078D84 File Offset: 0x00076F84
 public string GetPickupNameToken()
 {
     if (this.value >= 0)
     {
         if (this.value < 78)
         {
             return(ItemCatalog.GetItemDef((ItemIndex)this.value).nameToken);
         }
         if (this.value < 105)
         {
             return(EquipmentCatalog.GetEquipmentDef((EquipmentIndex)(this.value - 78)).nameToken);
         }
         if (this.value < 106)
         {
             return("PICKUP_LUNAR_COIN");
         }
     }
     return("???");
 }
コード例 #5
0
        // Token: 0x06000E12 RID: 3602 RVA: 0x0003ED4C File Offset: 0x0003CF4C
        private MageElement CalcElementToAward()
        {
            for (int i = 0; i < MageCalibrationController.elementCounter.Length; i++)
            {
                MageCalibrationController.elementCounter[i] = 0;
            }
            Inventory inventory = this.characterBody.inventory;

            if (!inventory)
            {
                return(MageElement.None);
            }
            List <ItemIndex> itemAcquisitionOrder = inventory.itemAcquisitionOrder;

            for (int j = 0; j < itemAcquisitionOrder.Count; j++)
            {
                ItemCatalog.GetItemDef(itemAcquisitionOrder[j]);
            }
            EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef(inventory.currentEquipmentIndex);

            if (equipmentDef != null && equipmentDef.mageElement != MageElement.None)
            {
                MageCalibrationController.elementCounter[(int)equipmentDef.mageElement] += 2;
            }
            MageElement result = MageElement.None;
            int         num    = 0;

            for (MageElement mageElement = MageElement.Fire; mageElement < MageElement.Count; mageElement += 1)
            {
                int num2 = MageCalibrationController.elementCounter[(int)mageElement];
                if (num2 > num)
                {
                    result = mageElement;
                    num    = num2;
                }
            }
            if (num >= 5)
            {
                return(result);
            }
            return(MageElement.None);
        }
コード例 #6
0
        // Token: 0x06000D77 RID: 3447 RVA: 0x0003C894 File Offset: 0x0003AA94
        public bool HasAtLeastXTotalItemsOfTier(ItemTier itemTier, int x)
        {
            int       num       = 0;
            ItemIndex itemIndex = ItemIndex.Syringe;
            ItemIndex itemCount = (ItemIndex)ItemCatalog.itemCount;

            while (itemIndex < itemCount)
            {
                if (ItemCatalog.GetItemDef(itemIndex).tier == itemTier)
                {
                    num += this.GetItemCount(itemIndex);
                    if (num >= x)
                    {
                        return(true);
                    }
                }
                itemIndex++;
            }
            return(false);
        }
コード例 #7
0
        // Token: 0x060004F2 RID: 1266 RVA: 0x00013E8C File Offset: 0x0001208C
        private void GenerateRuntimeValues()
        {
            this.runtimeItemRuleGroups      = new DisplayRuleGroup[ItemCatalog.itemCount];
            this.runtimeEquipmentRuleGroups = new DisplayRuleGroup[EquipmentCatalog.equipmentCount];
            int i         = 0;
            int itemCount = ItemCatalog.itemCount;

            while (i < itemCount)
            {
                this.runtimeItemRuleGroups[i] = this.FindItemDisplayRuleGroup(ItemCatalog.GetItemDef((ItemIndex)i).name);
                i++;
            }
            int j = 0;
            int equipmentCount = EquipmentCatalog.equipmentCount;

            while (j < equipmentCount)
            {
                this.runtimeEquipmentRuleGroups[j] = this.FindEquipmentDisplayRuleGroup(EquipmentCatalog.GetEquipmentDef((EquipmentIndex)j).name);
                j++;
            }
        }
コード例 #8
0
        // Token: 0x060005FA RID: 1530 RVA: 0x00018A68 File Offset: 0x00016C68
        private static bool IsPickupAllowedForMonsters(PickupIndex pickupIndex)
        {
            PickupDef pickupDef = PickupCatalog.GetPickupDef(pickupIndex);

            if (pickupDef == null)
            {
                return(false);
            }
            ItemDef itemDef = ItemCatalog.GetItemDef(pickupDef.itemIndex);

            if (itemDef == null)
            {
                return(false);
            }
            for (int i = 0; i < ArenaMissionController.forbiddenTags.Length; i++)
            {
                if (itemDef.ContainsTag(ArenaMissionController.forbiddenTags[i]))
                {
                    return(false);
                }
            }
            return(true);
        }
コード例 #9
0
        // Token: 0x0600138F RID: 5007 RVA: 0x0005F7EC File Offset: 0x0005D9EC
        public void OnInteractionBegin(Interactor activator)
        {
            if (!this.CanBeAffordedByInteractor(activator))
            {
                return;
            }
            CharacterBody component = activator.GetComponent <CharacterBody>();

            switch (this.costType)
            {
            case CostType.Money:
                if (component)
                {
                    CharacterMaster master = component.master;
                    if (master)
                    {
                        master.money -= (uint)this.cost;
                    }
                }
                break;

            case CostType.PercentHealth:
            {
                HealthComponent component2 = activator.GetComponent <HealthComponent>();
                if (component2)
                {
                    float health = component2.health;
                    float num    = component2.fullHealth * (float)this.cost / 100f;
                    if (health > num)
                    {
                        component2.TakeDamage(new DamageInfo
                            {
                                damage     = num,
                                attacker   = base.gameObject,
                                position   = base.transform.position,
                                damageType = DamageType.BypassArmor
                            });
                    }
                }
                break;
            }

            case CostType.Lunar:
            {
                NetworkUser networkUser = Util.LookUpBodyNetworkUser(activator.gameObject);
                if (networkUser)
                {
                    networkUser.DeductLunarCoins((uint)this.cost);
                }
                break;
            }

            case CostType.WhiteItem:
            case CostType.GreenItem:
            case CostType.RedItem:
            {
                ItemTier itemTier = PurchaseInteraction.CostTypeToItemTier(this.costType);
                if (component)
                {
                    Inventory inventory = component.inventory;
                    if (inventory)
                    {
                        ItemIndex            itemIndex  = ItemIndex.None;
                        ShopTerminalBehavior component3 = base.GetComponent <ShopTerminalBehavior>();
                        if (component3)
                        {
                            itemIndex = component3.CurrentPickupIndex().itemIndex;
                        }
                        WeightedSelection <ItemIndex> weightedSelection = new WeightedSelection <ItemIndex>(8);
                        foreach (ItemIndex itemIndex2 in ItemCatalog.allItems)
                        {
                            if (itemIndex2 != itemIndex)
                            {
                                int itemCount = inventory.GetItemCount(itemIndex2);
                                if (itemCount > 0 && ItemCatalog.GetItemDef(itemIndex2).tier == itemTier)
                                {
                                    weightedSelection.AddChoice(itemIndex2, (float)itemCount);
                                }
                            }
                        }
                        List <ItemIndex> list = new List <ItemIndex>();
                        int num2 = 0;
                        while (weightedSelection.Count > 0 && num2 < this.cost)
                        {
                            int num3 = weightedSelection.EvaluteToChoiceIndex(this.rng.nextNormalizedFloat);
                            WeightedSelection <ItemIndex> .ChoiceInfo choice = weightedSelection.GetChoice(num3);
                            ItemIndex value = choice.value;
                            int       num4  = (int)choice.weight;
                            num4--;
                            if (num4 <= 0)
                            {
                                weightedSelection.RemoveChoice(num3);
                            }
                            else
                            {
                                weightedSelection.ModifyChoiceWeight(num3, (float)num4);
                            }
                            list.Add(value);
                            num2++;
                        }
                        for (int i = num2; i < this.cost; i++)
                        {
                            list.Add(itemIndex);
                        }
                        for (int j = 0; j < list.Count; j++)
                        {
                            ItemIndex itemIndex3 = list[j];
                            PurchaseInteraction.CreateItemTakenOrb(component.corePosition, base.gameObject, itemIndex3);
                            inventory.RemoveItem(itemIndex3, 1);
                            if (itemIndex3 != itemIndex)
                            {
                                Action <PurchaseInteraction, Interactor> action = PurchaseInteraction.onItemSpentOnPurchase;
                                if (action != null)
                                {
                                    action(this, activator);
                                }
                            }
                        }
                    }
                }
                break;
            }
            }
            IEnumerable <StatDef> statDefsToIncrement = this.purchaseStatNames.Select(new Func <string, StatDef>(StatDef.Find));

            StatManager.OnPurchase <IEnumerable <StatDef> >(component, this.costType, statDefsToIncrement);
            this.onPurchase.Invoke(activator);
            this.lastActivator = activator;
        }
コード例 #10
0
        public void ShrineRestackInventory([NotNull] Xoroshiro128Plus rng)
        {
            if (!NetworkServer.active)
            {
                Debug.LogWarning("[Server] function 'System.Void RoR2.Inventory::ShrineRestackInventory(Xoroshiro128Plus)' called on client");
                return;
            }
            List <ItemIndex> list  = new List <ItemIndex>();
            List <ItemIndex> list2 = new List <ItemIndex>();
            List <ItemIndex> list3 = new List <ItemIndex>();
            List <ItemIndex> list4 = new List <ItemIndex>();
            List <ItemIndex> list5 = new List <ItemIndex>();
            int num  = 0;
            int num2 = 0;
            int num3 = 0;
            int num4 = 0;
            int num5 = 0;

            for (int i = 0; i < this.itemStacks.Length; i++)
            {
                ItemIndex itemIndex = (ItemIndex)i;
                if (this.itemStacks[i] > 0)
                {
                    switch (ItemCatalog.GetItemDef(itemIndex).tier)
                    {
                    case ItemTier.Tier1:
                        num += this.itemStacks[i];
                        list.Add(itemIndex);
                        break;

                    case ItemTier.Tier2:
                        num2 += this.itemStacks[i];
                        list2.Add(itemIndex);
                        break;

                    case ItemTier.Tier3:
                        num3 += this.itemStacks[i];
                        list3.Add(itemIndex);
                        break;

                    case ItemTier.Lunar:
                        num4 += this.itemStacks[i];
                        list4.Add(itemIndex);
                        break;

                    case ItemTier.Boss:
                        num5 += this.itemStacks[i];
                        list5.Add(itemIndex);
                        break;

                    default:
                        goto IL_12C;
                    }
                    this.itemAcquisitionOrder.Remove(itemIndex);
                    this.ResetItem(itemIndex);
                }
                IL_12C :;
            }
            ItemIndex itemIndex2 = (list.Count == 0) ? ItemIndex.None : rng.NextElementUniform <ItemIndex>(list);
            ItemIndex itemIndex3 = (list2.Count == 0) ? ItemIndex.None : rng.NextElementUniform <ItemIndex>(list2);
            ItemIndex itemIndex4 = (list3.Count == 0) ? ItemIndex.None : rng.NextElementUniform <ItemIndex>(list3);
            ItemIndex itemIndex5 = (list4.Count == 0) ? ItemIndex.None : rng.NextElementUniform <ItemIndex>(list4);
            ItemIndex itemIndex6 = (list5.Count == 0) ? ItemIndex.None : rng.NextElementUniform <ItemIndex>(list5);

            this.GiveItem(itemIndex2, num);
            this.GiveItem(itemIndex3, num2);
            this.GiveItem(itemIndex4, num3);
            this.GiveItem(itemIndex5, num4);
            this.GiveItem(itemIndex6, num5);
            base.SetDirtyBit(8U);
        }
コード例 #11
0
        private static void HandlePickupMessage(NetworkMessage netMsg)
        {
            Debug.Log("GenericPickupController.HandlePickupMessage: Received pickup message.");
            ReadOnlyCollection <NotificationQueue> readOnlyInstancesList = NotificationQueue.readOnlyInstancesList;

            GenericPickupController.PickupMessage pickupMessage = GenericPickupController.pickupMessageInstance;
            netMsg.ReadMessage <GenericPickupController.PickupMessage>(pickupMessage);
            GameObject  masterGameObject = pickupMessage.masterGameObject;
            PickupIndex pickupIndex      = pickupMessage.pickupIndex;
            uint        pickupQuantity   = pickupMessage.pickupQuantity;

            pickupMessage.Reset();
            if (!masterGameObject)
            {
                Debug.Log("GenericPickupController.HandlePickupMessage: failed! masterObject is not valid.");
                return;
            }
            CharacterMaster component = masterGameObject.GetComponent <CharacterMaster>();

            if (!component)
            {
                Debug.Log("GenericPickupController.HandlePickupMessage: failed! master component is not valid.");
                return;
            }
            PlayerCharacterMasterController component2 = component.GetComponent <PlayerCharacterMasterController>();

            if (component2)
            {
                NetworkUser networkUser = component2.networkUser;
                if (networkUser)
                {
                    LocalUser localUser = networkUser.localUser;
                    if (localUser != null)
                    {
                        localUser.userProfile.DiscoverPickup(pickupIndex);
                    }
                }
            }
            for (int i = 0; i < readOnlyInstancesList.Count; i++)
            {
                readOnlyInstancesList[i].OnPickup(component, pickupIndex);
            }
            CharacterBody body = component.GetBody();

            if (!body)
            {
                Debug.Log("GenericPickupController.HandlePickupMessage: failed! characterBody is not valid.");
            }
            ItemDef itemDef = ItemCatalog.GetItemDef(pickupIndex.itemIndex);

            if (itemDef != null && itemDef.hidden)
            {
                Debug.LogFormat("GenericPickupController.HandlePickupMessage: skipped item {0}, marked hidden.", new object[]
                {
                    itemDef.nameToken
                });
                return;
            }
            Chat.AddPickupMessage(body, pickupIndex.GetPickupNameToken(), pickupIndex.GetPickupColor(), pickupQuantity);
            if (body)
            {
                Util.PlaySound("Play_UI_item_pickup", body.gameObject);
            }
        }
コード例 #12
0
        public bool AlternateSpawnBehavior(GameObject spawnTarget, bool canBeElite)
        {
            if (this.currentMonsterCard.CardIsValid() && this.monsterCredit >= (float)this.currentMonsterCard.cost)
            {
                SpawnCard             spawnCard             = this.currentMonsterCard.spawnCard;
                DirectorPlacementRule directorPlacementRule = new DirectorPlacementRule
                {
                    placementMode   = DirectorPlacementRule.PlacementMode.Approximate,
                    spawnOnTarget   = spawnTarget.transform,
                    preventOverhead = this.currentMonsterCard.preventOverhead
                };
                DirectorCore.GetMonsterSpawnDistance(this.currentMonsterCard.spawnDistance, out directorPlacementRule.minDistance, out directorPlacementRule.maxDistance);
                directorPlacementRule.minDistance *= this.spawnDistanceMultiplier;
                directorPlacementRule.maxDistance *= this.spawnDistanceMultiplier;
                GameObject gameObject = DirectorCore.instance.TrySpawnObject(spawnCard, directorPlacementRule, this.rng);
                if (gameObject)
                {
                    int             cost          = this.currentMonsterCard.cost;
                    float           num3          = 1f;
                    float           num4          = 1f;
                    CharacterMaster component     = gameObject.GetComponent <CharacterMaster>();
                    GameObject      bodyObject    = component.GetBodyObject();
                    CharacterBody   characterBody = bodyObject.GetComponent <CharacterBody>();
                    if (this.isBoss)
                    {
                        if (!this.bossGroup)
                        {
                            GameObject gameObject2 = UnityEngine.Object.Instantiate <GameObject>(Resources.Load <GameObject>("Prefabs/NetworkedObjects/BossGroup"));
                            NetworkServer.Spawn(gameObject2);
                            this.bossGroup = gameObject2.GetComponent <BossGroup>();
                            this.bossGroup.dropPosition = this.dropPosition;
                        }
                        this.bossGroup.AddMember(component);
                    }
                    // assumes CombatDirector.maximumNumberToSpawnBeforeSkipping == 4f; maybe add a check for this?
                    if (canBeElite) //try to make the mob elite before adding bonus items
                    {
                        if ((float)cost * CombatDirector.eliteMultiplierCost <= this.monsterCredit)
                        {
                            num3 = 4.7f;
                            num4 = 2f;
                            component.inventory.SetEquipmentIndex(EliteCatalog.GetEliteDef(this.currentActiveEliteIndex).eliteEquipmentIndex);
                            cost = (int)((float)cost * CombatDirector.eliteMultiplierCost);

                            //This is where we add the bonus items
                            var minCost = ((int)this.monsterCredit) / 4;  //CombatDirector.maximumNumberToSpawnBeforeSkipping
                            while (cost < minCost)
                            {
                                var newItem   = BalanceMod.Hooks.mobItemSelection.Evaluate(this.rng.nextNormalizedFloat);
                                var itemIndex = newItem.itemIndex;
                                var itemCount = newItem.itemCount;
                                // Debug.Log($"Giving {itemCount} of item {itemIndex}");
                                if (BalanceMod.Hooks.PatchLateGameMonsterSpawns_EnemyItemsInChat)
                                {
                                    Chat.AddPickupMessage(characterBody, ItemCatalog.GetItemDef(itemIndex).nameToken, BalanceMod.Hooks.GetItemColor(itemIndex), (uint)itemCount);
                                }
                                component.inventory.GiveItem(itemIndex, itemCount);
                                cost *= 2;
                            }
                        }
                    }
                    else
                    {                                                //This is where we add the bonus items
                        var minCost = ((int)this.monsterCredit) / 4; //CombatDirector.maximumNumberToSpawnBeforeSkipping
                        while (cost < minCost)
                        {
                            var newItem   = BalanceMod.Hooks.mobItemSelection.Evaluate(this.rng.nextNormalizedFloat);
                            var itemIndex = newItem.itemIndex;
                            var itemCount = newItem.itemCount;
                            // Debug.Log($"Giving {itemCount} of item {itemIndex}");
                            if (BalanceMod.Hooks.PatchLateGameMonsterSpawns_EnemyItemsInChat)
                            {
                                Chat.AddPickupMessage(characterBody, ItemCatalog.GetItemDef(itemIndex).nameToken, BalanceMod.Hooks.GetItemColor(itemIndex), (uint)itemCount);
                            }
                            component.inventory.GiveItem(itemIndex, itemCount);
                            cost *= 2;
                        }
                    }
                    this.monsterCredit -= (float)cost;
                    if (this.isBoss)
                    {
                        int livingPlayerCount = Run.instance.livingPlayerCount;
                        num3 *= Mathf.Pow((float)livingPlayerCount, 1f);
                    }
                    //elites have +400% hp and +100% damage
                    component.inventory.GiveItem(ItemIndex.BoostHp, Mathf.RoundToInt((num3 - 1f) * 10f));
                    component.inventory.GiveItem(ItemIndex.BoostDamage, Mathf.RoundToInt((num4 - 1f) * 10f));
                    DeathRewards component2 = bodyObject.GetComponent <DeathRewards>();
                    if (component2)
                    {
                        component2.expReward  = (uint)((float)cost * this.expRewardCoefficient * Run.instance.compensatedDifficultyCoefficient);
                        component2.goldReward = (uint)((float)cost * this.expRewardCoefficient * 2f * Run.instance.compensatedDifficultyCoefficient);
                    }
                    if (this.spawnEffectPrefab && NetworkServer.active)
                    {
                        Vector3 origin = gameObject.transform.position;
                        if (characterBody)
                        {
                            origin = characterBody.corePosition;
                        }
                        EffectManager.instance.SpawnEffect(this.spawnEffectPrefab, new EffectData
                        {
                            origin = origin
                        }, true);
                    }
                    return(true);
                }
            }
            return(false);
        }
コード例 #13
0
        // Token: 0x06001271 RID: 4721 RVA: 0x0004F6DC File Offset: 0x0004D8DC
        private void Start()
        {
            Inventory          component = base.GetComponent <Inventory>();
            List <PickupIndex> list      = (from v in Run.instance.availableTier1DropList
                                            where ItemCatalog.GetItemDef(v.itemIndex) != null && ItemCatalog.GetItemDef(v.itemIndex).DoesNotContainTag(ItemTag.AIBlacklist)
                                            select v).ToList <PickupIndex>();
            List <PickupIndex> list2 = (from v in Run.instance.availableTier2DropList
                                        where ItemCatalog.GetItemDef(v.itemIndex) != null && ItemCatalog.GetItemDef(v.itemIndex).DoesNotContainTag(ItemTag.AIBlacklist)
                                        select v).ToList <PickupIndex>();
            List <PickupIndex> list3 = (from v in Run.instance.availableTier3DropList
                                        where ItemCatalog.GetItemDef(v.itemIndex) != null && ItemCatalog.GetItemDef(v.itemIndex).DoesNotContainTag(ItemTag.AIBlacklist)
                                        select v).ToList <PickupIndex>();
            List <PickupIndex> availableEquipmentDropList = Run.instance.availableEquipmentDropList;

            this.GrantItems(component, list, this.tier1Types, this.tier1StackSize);
            this.GrantItems(component, list2, this.tier2Types, this.tier2StackSize);
            this.GrantItems(component, list3, this.tier3Types, this.tier3StackSize);
            component.GiveRandomEquipment();
        }
コード例 #14
0
        private static void Init()
        {
            RuleCatalog.AddCategory("RULE_HEADER_DIFFICULTY", new Color32(28, 99, 150, byte.MaxValue));
            RuleCatalog.AddRule(RuleDef.FromDifficulty());
            RuleCatalog.AddCategory("RULE_HEADER_ARTIFACTS", new Color32(74, 50, 149, byte.MaxValue), "RULE_ARTIFACTS_EMPTY_TIP", new Func <bool>(RuleCatalog.HiddenTestFalse));
            for (ArtifactIndex artifactIndex = ArtifactIndex.Command; artifactIndex < ArtifactIndex.Count; artifactIndex++)
            {
                RuleCatalog.AddRule(RuleDef.FromArtifact(artifactIndex));
            }
            RuleCatalog.AddCategory("RULE_HEADER_ITEMS", new Color32(147, 225, 128, byte.MaxValue), null, new Func <bool>(RuleCatalog.HiddenTestItemsConvar));
            List <ItemIndex> list      = new List <ItemIndex>();
            ItemIndex        itemIndex = ItemIndex.Syringe;
            ItemIndex        itemCount = (ItemIndex)ItemCatalog.itemCount;

            while (itemIndex < itemCount)
            {
                list.Add(itemIndex);
                itemIndex++;
            }
            foreach (ItemIndex itemIndex2 in from i in list
                     where ItemCatalog.GetItemDef(i).inDroppableTier
                     orderby ItemCatalog.GetItemDef(i).tier
                     select i)
            {
                RuleCatalog.AddRule(RuleDef.FromItem(itemIndex2));
            }
            RuleCatalog.AddCategory("RULE_HEADER_EQUIPMENT", new Color32(byte.MaxValue, 128, 0, byte.MaxValue), null, new Func <bool>(RuleCatalog.HiddenTestItemsConvar));
            List <EquipmentIndex> list2          = new List <EquipmentIndex>();
            EquipmentIndex        equipmentIndex = EquipmentIndex.CommandMissile;
            EquipmentIndex        equipmentCount = (EquipmentIndex)EquipmentCatalog.equipmentCount;

            while (equipmentIndex < equipmentCount)
            {
                list2.Add(equipmentIndex);
                equipmentIndex++;
            }
            foreach (EquipmentIndex equipmentIndex2 in from i in list2
                     where EquipmentCatalog.GetEquipmentDef(i).canDrop
                     select i)
            {
                RuleCatalog.AddRule(RuleDef.FromEquipment(equipmentIndex2));
            }
            RuleCatalog.AddCategory("RULE_HEADER_MISC", new Color32(192, 192, 192, byte.MaxValue), null, new Func <bool>(RuleCatalog.HiddenTestFalse));
            RuleDef       ruleDef       = new RuleDef("Misc.StartingMoney", "RULE_MISC_STARTING_MONEY");
            RuleChoiceDef ruleChoiceDef = ruleDef.AddChoice("0", 0U, true);

            ruleChoiceDef.tooltipNameToken = "RULE_STARTINGMONEY_CHOICE_0_NAME";
            ruleChoiceDef.tooltipBodyToken = "RULE_STARTINGMONEY_CHOICE_0_DESC";
            ruleChoiceDef.tooltipNameColor = ColorCatalog.GetColor(ColorCatalog.ColorIndex.LunarCoin);
            RuleChoiceDef ruleChoiceDef2 = ruleDef.AddChoice("15", 15U, true);

            ruleChoiceDef2.tooltipNameToken = "RULE_STARTINGMONEY_CHOICE_15_NAME";
            ruleChoiceDef2.tooltipBodyToken = "RULE_STARTINGMONEY_CHOICE_15_DESC";
            ruleChoiceDef2.tooltipNameColor = ColorCatalog.GetColor(ColorCatalog.ColorIndex.LunarCoin);
            ruleDef.MakeNewestChoiceDefault();
            RuleChoiceDef ruleChoiceDef3 = ruleDef.AddChoice("50", 50U, true);

            ruleChoiceDef3.tooltipNameToken = "RULE_STARTINGMONEY_CHOICE_50_NAME";
            ruleChoiceDef3.tooltipBodyToken = "RULE_STARTINGMONEY_CHOICE_50_DESC";
            ruleChoiceDef3.spritePath       = "Textures/MiscIcons/texRuleBonusStartingMoney";
            ruleChoiceDef3.tooltipNameColor = ColorCatalog.GetColor(ColorCatalog.ColorIndex.LunarCoin);
            RuleCatalog.AddRule(ruleDef);
            RuleDef       ruleDef2       = new RuleDef("Misc.StageOrder", "RULE_MISC_STAGE_ORDER");
            RuleChoiceDef ruleChoiceDef4 = ruleDef2.AddChoice("Normal", StageOrder.Normal, true);

            ruleChoiceDef4.tooltipNameToken = "RULE_STAGEORDER_CHOICE_NORMAL_NAME";
            ruleChoiceDef4.tooltipBodyToken = "RULE_STAGEORDER_CHOICE_NORMAL_DESC";
            ruleChoiceDef4.tooltipNameColor = ColorCatalog.GetColor(ColorCatalog.ColorIndex.LunarCoin);
            ruleDef2.MakeNewestChoiceDefault();
            RuleChoiceDef ruleChoiceDef5 = ruleDef2.AddChoice("Random", StageOrder.Random, true);

            ruleChoiceDef5.tooltipNameToken = "RULE_STAGEORDER_CHOICE_RANDOM_NAME";
            ruleChoiceDef5.tooltipBodyToken = "RULE_STAGEORDER_CHOICE_RANDOM_DESC";
            ruleChoiceDef5.spritePath       = "Textures/MiscIcons/texRuleMapIsRandom";
            ruleChoiceDef5.tooltipNameColor = ColorCatalog.GetColor(ColorCatalog.ColorIndex.LunarCoin);
            RuleCatalog.AddRule(ruleDef2);
            RuleDef ruleDef3 = new RuleDef("Misc.KeepMoneyBetweenStages", "RULE_MISC_KEEP_MONEY_BETWEEN_STAGES");

            ruleDef3.AddChoice("On", true, true).tooltipBodyToken   = "RULE_KEEPMONEYBETWEENSTAGES_CHOICE_ON_DESC";
            ruleDef3.AddChoice("Off", false, true).tooltipBodyToken = "RULE_KEEPMONEYBETWEENSTAGES_CHOICE_OFF_DESC";
            ruleDef3.MakeNewestChoiceDefault();
            RuleCatalog.AddRule(ruleDef3);
            for (int k = 0; k < RuleCatalog.allRuleDefs.Count; k++)
            {
                RuleDef ruleDef4 = RuleCatalog.allRuleDefs[k];
                ruleDef4.globalIndex = k;
                for (int j = 0; j < ruleDef4.choices.Count; j++)
                {
                    RuleChoiceDef ruleChoiceDef6 = ruleDef4.choices[j];
                    ruleChoiceDef6.localIndex  = j;
                    ruleChoiceDef6.globalIndex = RuleCatalog.allChoicesDefs.Count;
                    RuleCatalog.allChoicesDefs.Add(ruleChoiceDef6);
                }
            }
            RuleCatalog.availability.MakeAvailable();
        }
コード例 #15
0
        public void RollItem()
        {
            if (!NetworkServer.active)
            {
                Debug.LogWarning("[Server] function 'System.Void RoR2.ScavBackpackBehavior::RollItem()' called on client");
                return;
            }
            WeightedSelection <List <PickupIndex> > weightedSelection = new WeightedSelection <List <PickupIndex> >(8);

            weightedSelection.AddChoice((from v in Run.instance.availableTier1DropList
                                         where ItemCatalog.GetItemDef(v.itemIndex) != null && ItemCatalog.GetItemDef(v.itemIndex).ContainsTag(this.requiredItemTag)
                                         select v).ToList <PickupIndex>(), this.tier1Chance);
            weightedSelection.AddChoice((from v in Run.instance.availableTier2DropList
                                         where ItemCatalog.GetItemDef(v.itemIndex) != null && ItemCatalog.GetItemDef(v.itemIndex).ContainsTag(this.requiredItemTag)
                                         select v).ToList <PickupIndex>(), this.tier2Chance);
            weightedSelection.AddChoice((from v in Run.instance.availableTier3DropList
                                         where ItemCatalog.GetItemDef(v.itemIndex) != null && ItemCatalog.GetItemDef(v.itemIndex).ContainsTag(this.requiredItemTag)
                                         select v).ToList <PickupIndex>(), this.tier3Chance);
            weightedSelection.AddChoice((from v in Run.instance.availableLunarDropList
                                         where ItemCatalog.GetItemDef(v.itemIndex) != null && ItemCatalog.GetItemDef(v.itemIndex).ContainsTag(this.requiredItemTag)
                                         select v).ToList <PickupIndex>(), this.lunarChance);
            List <PickupIndex> dropList = weightedSelection.Evaluate(Run.instance.treasureRng.nextNormalizedFloat);

            this.PickFromList(dropList);
        }
コード例 #16
0
        // Token: 0x0600117F RID: 4479 RVA: 0x00056D90 File Offset: 0x00054F90
        private MageElement CalcElementToAward()
        {
            for (int i = 0; i < MageCalibrationController.elementCounter.Length; i++)
            {
                MageCalibrationController.elementCounter[i] = 0;
            }
            Inventory inventory = this.characterBody.inventory;

            if (!inventory)
            {
                return(MageElement.None);
            }
            List <ItemIndex> itemAcquisitionOrder = inventory.itemAcquisitionOrder;

            for (int j = 0; j < itemAcquisitionOrder.Count; j++)
            {
                ItemIndex itemIndex = itemAcquisitionOrder[j];
                ItemDef   itemDef   = ItemCatalog.GetItemDef(itemIndex);
                if (itemDef.mageElement != MageElement.None)
                {
                    int num = 0;
                    switch (itemDef.tier)
                    {
                    case ItemTier.Tier1:
                        num = 1;
                        break;

                    case ItemTier.Tier2:
                        num = 2;
                        break;

                    case ItemTier.Tier3:
                        num = 3;
                        break;

                    case ItemTier.Lunar:
                        num = 3;
                        break;
                    }
                    MageCalibrationController.elementCounter[(int)itemDef.mageElement] += num * inventory.GetItemCount(itemIndex);
                }
            }
            EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef(inventory.currentEquipmentIndex);

            if (equipmentDef != null && equipmentDef.mageElement != MageElement.None)
            {
                MageCalibrationController.elementCounter[(int)equipmentDef.mageElement] += 2;
            }
            MageElement result = MageElement.None;
            int         num2   = 0;

            for (MageElement mageElement = MageElement.Fire; mageElement < MageElement.Count; mageElement += 1)
            {
                int num3 = MageCalibrationController.elementCounter[(int)mageElement];
                if (num3 > num2)
                {
                    result = mageElement;
                    num2   = num3;
                }
            }
            if (num2 >= 5)
            {
                return(result);
            }
            return(MageElement.None);
        }
コード例 #17
0
 // Token: 0x06001870 RID: 6256 RVA: 0x000744E8 File Offset: 0x000726E8
 private static void DefineItems()
 {
     ItemCatalog.itemDefs = new ItemDef[78];
     ItemCatalog.RegisterItem(ItemIndex.AACannon, new ItemDef
     {
         tier             = ItemTier.NoTier,
         nameToken        = "ITEM_AACANNON_NAME",
         pickupToken      = "ITEM_AACANNON_PICKUP",
         descriptionToken = "ITEM_AACANNON_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.AlienHead, new ItemDef
     {
         tier             = ItemTier.Tier3,
         pickupModelPath  = "Prefabs/PickupModels/PickupAlienHead",
         pickupIconPath   = "Textures/ItemIcons/texAlienHeadIcon",
         nameToken        = "ITEM_ALIENHEAD_NAME",
         pickupToken      = "ITEM_ALIENHEAD_PICKUP",
         descriptionToken = "ITEM_ALIENHEAD_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.AttackSpeedOnCrit, new ItemDef
     {
         tier             = ItemTier.Tier2,
         pickupModelPath  = "Prefabs/PickupModels/PickupWolfPelt",
         pickupIconPath   = "Textures/ItemIcons/texWolfPeltIcon",
         nameToken        = "ITEM_ATTACKSPEEDONCRIT_NAME",
         pickupToken      = "ITEM_ATTACKSPEEDONCRIT_PICKUP",
         descriptionToken = "ITEM_ATTACKSPEEDONCRIT_DESC",
         addressToken     = "",
         unlockableName   = "Items.AttackSpeedOnCrit"
     });
     ItemCatalog.RegisterItem(ItemIndex.Bandolier, new ItemDef
     {
         tier             = ItemTier.Tier2,
         pickupModelPath  = "Prefabs/PickupModels/PickupBandolier",
         pickupIconPath   = "Textures/ItemIcons/texBandolierIcon",
         nameToken        = "ITEM_BANDOLIER_NAME",
         pickupToken      = "ITEM_BANDOLIER_PICKUP",
         descriptionToken = "ITEM_BANDOLIER_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.Bear, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupBear",
         pickupIconPath   = "Textures/ItemIcons/texBearIcon",
         nameToken        = "ITEM_BEAR_NAME",
         pickupToken      = "ITEM_BEAR_PICKUP",
         descriptionToken = "ITEM_BEAR_DESC",
         addressToken     = "",
         unlockableName   = "Items.Bear"
     });
     ItemCatalog.RegisterItem(ItemIndex.Behemoth, new ItemDef
     {
         tier             = ItemTier.Tier3,
         pickupModelPath  = "Prefabs/PickupModels/PickupBehemoth",
         pickupIconPath   = "Textures/ItemIcons/texBehemothIcon",
         nameToken        = "ITEM_BEHEMOTH_NAME",
         pickupToken      = "ITEM_BEHEMOTH_PICKUP",
         descriptionToken = "ITEM_BEHEMOTH_DESC",
         addressToken     = "",
         mageElement      = MageElement.Fire
     });
     ItemCatalog.RegisterItem(ItemIndex.BleedOnHit, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupTriTip",
         pickupIconPath   = "Textures/ItemIcons/texTriTipIcon",
         nameToken        = "ITEM_BLEEDONHIT_NAME",
         pickupToken      = "ITEM_BLEEDONHIT_PICKUP",
         descriptionToken = "ITEM_BLEEDONHIT_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.BoostDamage, new ItemDef
     {
         tier             = ItemTier.NoTier,
         pickupModelPath  = null,
         pickupIconPath   = null,
         nameToken        = "ITEM_BOOSTDAMAGE_NAME",
         pickupToken      = "ITEM_BOOSTDAMAGE_PICKUP",
         descriptionToken = "ITEM_BOOSTDAMAGE_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.BoostHp, new ItemDef
     {
         tier             = ItemTier.NoTier,
         pickupModelPath  = null,
         pickupIconPath   = null,
         nameToken        = "ITEM_BOOSTHP_NAME",
         pickupToken      = "ITEM_BOOSTHP_PICKUP",
         descriptionToken = "ITEM_BOOSTHP_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.BounceNearby, new ItemDef
     {
         tier             = ItemTier.Tier3,
         pickupModelPath  = "Prefabs/PickupModels/PickupHook",
         pickupIconPath   = "Textures/ItemIcons/texHookIcon",
         nameToken        = "ITEM_BOUNCENEARBY_NAME",
         pickupToken      = "ITEM_BOUNCENEARBY_PICKUP",
         descriptionToken = "ITEM_BOUNCENEARBY_DESC",
         addressToken     = "",
         unlockableName   = "Items.BounceNearby"
     });
     ItemCatalog.RegisterItem(ItemIndex.ChainLightning, new ItemDef
     {
         tier             = ItemTier.Tier2,
         pickupModelPath  = "Prefabs/PickupModels/PickupUkulele",
         pickupIconPath   = "Textures/ItemIcons/texUkuleleIcon",
         nameToken        = "ITEM_CHAINLIGHTNING_NAME",
         pickupToken      = "ITEM_CHAINLIGHTNING_PICKUP",
         descriptionToken = "ITEM_CHAINLIGHTNING_DESC",
         addressToken     = "",
         mageElement      = MageElement.Lightning
     });
     ItemCatalog.RegisterItem(ItemIndex.Clover, new ItemDef
     {
         tier             = ItemTier.Tier3,
         pickupModelPath  = "Prefabs/PickupModels/PickupClover",
         pickupIconPath   = "Textures/ItemIcons/texCloverIcon",
         nameToken        = "ITEM_CLOVER_NAME",
         pickupToken      = "ITEM_CLOVER_PICKUP",
         descriptionToken = "ITEM_CLOVER_DESC",
         addressToken     = "",
         unlockableName   = "Items.Clover"
     });
     ItemCatalog.RegisterItem(ItemIndex.CooldownOnCrit, new ItemDef
     {
         tier             = ItemTier.NoTier,
         pickupModelPath  = "Prefabs/PickupModels/PickupSkull",
         nameToken        = "ITEM_COOLDOWNONCRIT_NAME",
         pickupToken      = "ITEM_COOLDOWNONCRIT_PICKUP",
         descriptionToken = "ITEM_COOLDOWNONCRIT_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.CritGlasses, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupGlasses",
         pickupIconPath   = "Textures/ItemIcons/texGlassesIcon",
         nameToken        = "ITEM_CRITGLASSES_NAME",
         pickupToken      = "ITEM_CRITGLASSES_PICKUP",
         descriptionToken = "ITEM_CRITGLASSES_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.Crowbar, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupCrowbar",
         pickupIconPath   = "Textures/ItemIcons/texCrowbarIcon",
         nameToken        = "ITEM_CROWBAR_NAME",
         pickupToken      = "ITEM_CROWBAR_PICKUP",
         descriptionToken = "ITEM_CROWBAR_DESC",
         addressToken     = "",
         unlockableName   = "Items.Crowbar"
     });
     ItemCatalog.RegisterItem(ItemIndex.Dagger, new ItemDef
     {
         tier             = ItemTier.Tier3,
         pickupModelPath  = "Prefabs/PickupModels/PickupDagger",
         pickupIconPath   = "Textures/ItemIcons/texDaggerIcon",
         nameToken        = "ITEM_DAGGER_NAME",
         pickupToken      = "ITEM_DAGGER_PICKUP",
         descriptionToken = "ITEM_DAGGER_PICKUP",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.EquipmentMagazine, new ItemDef
     {
         tier             = ItemTier.Tier2,
         pickupModelPath  = "Prefabs/PickupModels/PickupBattery",
         pickupIconPath   = "Textures/ItemIcons/texBatteryIcon",
         nameToken        = "ITEM_EQUIPMENTMAGAZINE_NAME",
         pickupToken      = "ITEM_EQUIPMENTMAGAZINE_PICKUP",
         descriptionToken = "ITEM_EQUIPMENTMAGAZINE_DESC",
         addressToken     = "",
         unlockableName   = "Items.EquipmentMagazine"
     });
     ItemCatalog.RegisterItem(ItemIndex.ExplodeOnDeath, new ItemDef
     {
         tier             = ItemTier.Tier2,
         pickupModelPath  = "Prefabs/PickupModels/PickupWilloWisp",
         pickupIconPath   = "Textures/ItemIcons/texWilloWispIcon",
         nameToken        = "ITEM_EXPLODEONDEATH_NAME",
         pickupToken      = "ITEM_EXPLODEONDEATH_PICKUP",
         descriptionToken = "ITEM_EXPLODEONDEATH_DESC",
         addressToken     = "",
         mageElement      = MageElement.Fire
     });
     ItemCatalog.RegisterItem(ItemIndex.FallBoots, new ItemDef
     {
         tier             = ItemTier.Tier3,
         pickupModelPath  = "Prefabs/PickupModels/PickupGravBoots",
         pickupIconPath   = "Textures/ItemIcons/texGravBootsIcon",
         nameToken        = "ITEM_FALLBOOTS_NAME",
         pickupToken      = "ITEM_FALLBOOTS_PICKUP",
         descriptionToken = "ITEM_FALLBOOTS_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.Feather, new ItemDef
     {
         tier             = ItemTier.Tier2,
         pickupModelPath  = "Prefabs/PickupModels/PickupFeather",
         pickupIconPath   = "Textures/ItemIcons/texFeatherIcon",
         nameToken        = "ITEM_FEATHER_NAME",
         pickupToken      = "ITEM_FEATHER_PICKUP",
         descriptionToken = "ITEM_FEATHER_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.HealOnCrit, new ItemDef
     {
         tier             = ItemTier.Tier2,
         pickupModelPath  = "Prefabs/PickupModels/PickupScythe",
         pickupIconPath   = "Textures/ItemIcons/texScytheIcon",
         nameToken        = "ITEM_HEALONCRIT_NAME",
         pickupToken      = "ITEM_HEALONCRIT_PICKUP",
         descriptionToken = "ITEM_HEALONCRIT_DESC",
         unlockableName   = "Items.HealOnCrit",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.HealWhileSafe, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupSnail",
         pickupIconPath   = "Textures/ItemIcons/texSnailIcon",
         nameToken        = "ITEM_HEALWHILESAFE_NAME",
         pickupToken      = "ITEM_HEALWHILESAFE_PICKUP",
         descriptionToken = "ITEM_HEALWHILESAFE_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.Icicle, new ItemDef
     {
         tier             = ItemTier.Tier3,
         pickupModelPath  = "Prefabs/PickupModels/PickupFrostRelic",
         pickupIconPath   = "Textures/ItemIcons/texFrostRelicIcon",
         nameToken        = "ITEM_ICICLE_NAME",
         pickupToken      = "ITEM_ICICLE_PICKUP",
         descriptionToken = "ITEM_ICICLE_DESC",
         addressToken     = "",
         mageElement      = MageElement.Ice
     });
     ItemCatalog.RegisterItem(ItemIndex.IgniteOnKill, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupGasoline",
         pickupIconPath   = "Textures/ItemIcons/texGasolineIcon",
         nameToken        = "ITEM_IGNITEONKILL_NAME",
         pickupToken      = "ITEM_IGNITEONKILL_PICKUP",
         descriptionToken = "ITEM_IGNITEONKILL_DESC",
         addressToken     = "",
         mageElement      = MageElement.Fire
     });
     ItemCatalog.RegisterItem(ItemIndex.Infusion, new ItemDef
     {
         tier             = ItemTier.Tier2,
         nameToken        = "ITEM_INFUSION_NAME",
         pickupToken      = "ITEM_INFUSION_PICKUP",
         descriptionToken = "ITEM_INFUSION_DESC",
         pickupModelPath  = "Prefabs/PickupModels/PickupInfusion",
         pickupIconPath   = "Textures/ItemIcons/texInfusionIcon",
         addressToken     = "",
         unlockableName   = "Items.Infusion"
     });
     ItemCatalog.RegisterItem(ItemIndex.LevelBonus, new ItemDef
     {
         tier             = ItemTier.NoTier,
         nameToken        = "ITEM_LEVELBONUS_NAME",
         pickupToken      = "ITEM_LEVELBONUS_PICKUP",
         descriptionToken = "ITEM_LEVELBONUS_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.Hoof, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupHoof",
         pickupIconPath   = "Textures/ItemIcons/texHoofIcon",
         nameToken        = "ITEM_HOOF_NAME",
         pickupToken      = "ITEM_HOOF_PICKUP",
         descriptionToken = "ITEM_HOOF_DESC",
         addressToken     = "",
         unlockableName   = "Items.Hoof"
     });
     ItemCatalog.RegisterItem(ItemIndex.Knurl, new ItemDef
     {
         tier             = ItemTier.Boss,
         pickupModelPath  = "Prefabs/PickupModels/PickupKnurl",
         pickupIconPath   = "Textures/ItemIcons/texKnurlIcon",
         nameToken        = "ITEM_KNURL_NAME",
         pickupToken      = "ITEM_KNURL_PICKUP",
         descriptionToken = "ITEM_KNURL_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.GhostOnKill, new ItemDef
     {
         tier             = ItemTier.Tier3,
         pickupModelPath  = "Prefabs/PickupModels/PickupMask",
         pickupIconPath   = "Textures/ItemIcons/texMaskIcon",
         nameToken        = "ITEM_GHOSTONKILL_NAME",
         pickupToken      = "ITEM_GHOSTONKILL_PICKUP",
         descriptionToken = "ITEM_GHOSTONKILL_DESC"
     });
     ItemCatalog.RegisterItem(ItemIndex.Medkit, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupMedkit",
         pickupIconPath   = "Textures/ItemIcons/texMedkitIcon",
         nameToken        = "ITEM_MEDKIT_NAME",
         pickupToken      = "ITEM_MEDKIT_PICKUP",
         descriptionToken = "ITEM_MEDKIT_DESC",
         addressToken     = "",
         unlockableName   = "Items.Medkit"
     });
     ItemCatalog.RegisterItem(ItemIndex.Missile, new ItemDef
     {
         tier             = ItemTier.Tier2,
         pickupModelPath  = "Prefabs/PickupModels/PickupMissileLauncher",
         pickupIconPath   = "Textures/ItemIcons/texMissileLauncherIcon",
         nameToken        = "ITEM_MISSILE_NAME",
         pickupToken      = "ITEM_MISSILE_PICKUP",
         descriptionToken = "ITEM_MISSILE_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.Mushroom, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupMushroom",
         pickupIconPath   = "Textures/ItemIcons/texMushroomIcon",
         nameToken        = "ITEM_MUSHROOM_NAME",
         pickupToken      = "ITEM_MUSHROOM_PICKUP",
         descriptionToken = "ITEM_MUSHROOM_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.NovaOnHeal, new ItemDef
     {
         tier             = ItemTier.Tier3,
         pickupModelPath  = "Prefabs/PickupModels/PickupDevilHorns",
         pickupIconPath   = "Textures/ItemIcons/texDevilHornsIcon",
         nameToken        = "ITEM_NOVAONHEAL_NAME",
         pickupToken      = "ITEM_NOVAONHEAL_PICKUP",
         descriptionToken = "ITEM_NOVAONHEAL_DESC",
         addressToken     = "",
         unlockableName   = "Items.NovaOnHeal"
     });
     ItemCatalog.RegisterItem(ItemIndex.PersonalShield, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupShieldGenerator",
         pickupIconPath   = "Textures/ItemIcons/texPersonalShieldIcon",
         nameToken        = "ITEM_PERSONALSHIELD_NAME",
         pickupToken      = "ITEM_PERSONALSHIELD_PICKUP",
         descriptionToken = "ITEM_PERSONALSHIELD_DESC",
         addressToken     = "",
         mageElement      = MageElement.Lightning
     });
     ItemCatalog.RegisterItem(ItemIndex.Phasing, new ItemDef
     {
         tier             = ItemTier.Tier2,
         pickupModelPath  = "Prefabs/PickupModels/PickupStealthkit",
         pickupIconPath   = "Textures/ItemIcons/texStealthkitIcon",
         nameToken        = "ITEM_PHASING_NAME",
         pickupToken      = "ITEM_PHASING_PICKUP",
         descriptionToken = "ITEM_PHASING_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.PlantOnHit, new ItemDef
     {
         tier             = ItemTier.NoTier,
         nameToken        = "ITEM_PLANTONHIT_NAME",
         pickupToken      = "ITEM_PLANTONHIT_PICKUP",
         descriptionToken = "ITEM_PLANTONHIT_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.PlasmaCore, new ItemDef
     {
         tier             = ItemTier.NoTier,
         nameToken        = "ITEM_PLASMACORE_NAME",
         pickupToken      = "ITEM_PLASMACORE_PICKUP",
         descriptionToken = "ITEM_PLASMACORE_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.ShieldOnly, new ItemDef
     {
         tier             = ItemTier.Lunar,
         pickupModelPath  = "Prefabs/PickupModels/PickupShieldBug",
         pickupIconPath   = "Textures/ItemIcons/texShieldBugIcon",
         nameToken        = "ITEM_SHIELDONLY_NAME",
         pickupToken      = "ITEM_SHIELDONLY_PICKUP",
         descriptionToken = "ITEM_SHIELDONLY_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.Seed, new ItemDef
     {
         tier             = ItemTier.Tier2,
         pickupModelPath  = "Prefabs/PickupModels/PickupSeed",
         pickupIconPath   = "Textures/ItemIcons/texSeedIcon",
         nameToken        = "ITEM_SEED_NAME",
         pickupToken      = "ITEM_SEED_PICKUP",
         descriptionToken = "ITEM_SEED_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.ShockNearby, new ItemDef
     {
         tier             = ItemTier.Tier3,
         pickupModelPath  = "Prefabs/PickupModels/PickupTeslaCoil",
         pickupIconPath   = "Textures/ItemIcons/texTeslaCoilIcon",
         nameToken        = "ITEM_SHOCKNEARBY_NAME",
         pickupToken      = "ITEM_SHOCKNEARBY_PICKUP",
         descriptionToken = "ITEM_SHOCKNEARBY_DESC",
         addressToken     = "",
         unlockableName   = "Items.ShockNearby"
     });
     ItemCatalog.RegisterItem(ItemIndex.SprintOutOfCombat, new ItemDef
     {
         tier             = ItemTier.Tier2,
         pickupModelPath  = "Prefabs/PickupModels/PickupWhip",
         pickupIconPath   = "Textures/ItemIcons/texWhipIcon",
         nameToken        = "ITEM_SPRINTOUTOFCOMBAT_NAME",
         pickupToken      = "ITEM_SPRINTOUTOFCOMBAT_PICKUP",
         descriptionToken = "ITEM_SPRINTOUTOFCOMBAT_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.Syringe, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupSyringeCluster",
         pickupIconPath   = "Textures/ItemIcons/texSyringeIcon",
         nameToken        = "ITEM_SYRINGE_NAME",
         pickupToken      = "ITEM_SYRINGE_PICKUP",
         descriptionToken = "ITEM_SYRINGE_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.Talisman, new ItemDef
     {
         tier             = ItemTier.Tier3,
         pickupModelPath  = "Prefabs/PickupModels/PickupTalisman",
         pickupIconPath   = "Textures/ItemIcons/texTalismanIcon",
         nameToken        = "ITEM_TALISMAN_NAME",
         pickupToken      = "ITEM_TALISMAN_PICKUP",
         descriptionToken = "ITEM_TALISMAN_DESC",
         addressToken     = "",
         unlockableName   = "Items.Talisman"
     });
     ItemCatalog.RegisterItem(ItemIndex.TempestOnKill, new ItemDef
     {
         tier             = ItemTier.NoTier,
         pickupModelPath  = "Prefabs/PickupModels/PickupWaxBird",
         pickupIconPath   = "Textures/ItemIcons/texWaxBirdIcon",
         nameToken        = "ITEM_TEMPESTONKILL_NAME",
         pickupToken      = "ITEM_TEMPESTONKILL_PICKUP",
         descriptionToken = "ITEM_TEMPESTONKILL_DESC",
         addressToken     = "",
         unlockableName   = "Items.TempestOnKill"
     });
     ItemCatalog.RegisterItem(ItemIndex.JumpBoost, new ItemDef
     {
         tier             = ItemTier.Tier2,
         pickupModelPath  = "Prefabs/PickupModels/PickupWaxBird",
         pickupIconPath   = "Textures/ItemIcons/texWaxBirdIcon",
         nameToken        = "ITEM_JUMPBOOST_NAME",
         pickupToken      = "ITEM_JUMPBOOST_PICKUP",
         descriptionToken = "ITEM_JUMPBOOST_DESC",
         addressToken     = "",
         unlockableName   = "Items.JumpBoost"
     });
     ItemCatalog.RegisterItem(ItemIndex.Tooth, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupToothNecklace",
         pickupIconPath   = "Textures/ItemIcons/texToothNecklaceIcon",
         nameToken        = "ITEM_TOOTH_NAME",
         pickupToken      = "ITEM_TOOTH_PICKUP",
         descriptionToken = "ITEM_TOOTH_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.WarCryOnCombat, new ItemDef
     {
         tier             = ItemTier.NoTier,
         pickupModelPath  = "Prefabs/PickupModels/PickupPauldron",
         pickupIconPath   = "Textures/ItemIcons/texPauldronIcon",
         nameToken        = "ITEM_WARCRYONCOMBAT_NAME",
         pickupToken      = "ITEM_WARCRYONCOMBAT_PICKUP",
         descriptionToken = "ITEM_WARCRYONCOMBAT_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.WarCryOnMultiKill, new ItemDef
     {
         tier             = ItemTier.Tier2,
         pickupModelPath  = "Prefabs/PickupModels/PickupPauldron",
         pickupIconPath   = "Textures/ItemIcons/texPauldronIcon",
         nameToken        = "ITEM_WARCRYONMULTIKILL_NAME",
         pickupToken      = "ITEM_WARCRYONMULTIKILL_PICKUP",
         descriptionToken = "ITEM_WARCRYONMULTIKILL_DESC",
         addressToken     = "",
         unlockableName   = "Items.WarCryOnMultiKill"
     });
     ItemCatalog.RegisterItem(ItemIndex.WardOnLevel, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupWarbanner",
         pickupIconPath   = "Textures/ItemIcons/texWarbannerIcon",
         nameToken        = "ITEM_WARDONLEVEL_NAME",
         pickupToken      = "ITEM_WARDONLEVEL_PICKUP",
         descriptionToken = "ITEM_WARDONLEVEL_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.StunChanceOnHit, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupStunGrenade",
         pickupIconPath   = "Textures/ItemIcons/texStunGrenadeIcon",
         nameToken        = "ITEM_STUNCHANCEONHIT_NAME",
         pickupToken      = "ITEM_STUNCHANCEONHIT_PICKUP",
         descriptionToken = "ITEM_STUNCHANCEONHIT_DESC",
         addressToken     = "",
         mageElement      = MageElement.Lightning
     });
     ItemCatalog.RegisterItem(ItemIndex.Firework, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupFirework",
         pickupIconPath   = "Textures/ItemIcons/texFireworkIcon",
         nameToken        = "ITEM_FIREWORK_NAME",
         pickupToken      = "ITEM_FIREWORK_PICKUP",
         descriptionToken = "ITEM_FIREWORK_DESC",
         addressToken     = "",
         unlockableName   = "Items.Firework"
     });
     ItemCatalog.RegisterItem(ItemIndex.LunarDagger, new ItemDef
     {
         tier             = ItemTier.Lunar,
         pickupModelPath  = "Prefabs/PickupModels/PickupLunarDagger",
         pickupIconPath   = "Textures/ItemIcons/texLunarDaggerIcon",
         nameToken        = "ITEM_LUNARDAGGER_NAME",
         pickupToken      = "ITEM_LUNARDAGGER_PICKUP",
         descriptionToken = "ITEM_LUNARDAGGER_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.GoldOnHit, new ItemDef
     {
         tier             = ItemTier.Lunar,
         pickupModelPath  = "Prefabs/PickupModels/PickupBoneCrown",
         pickupIconPath   = "Textures/ItemIcons/texBoneCrownIcon",
         nameToken        = "ITEM_GOLDONHIT_NAME",
         pickupToken      = "ITEM_GOLDONHIT_PICKUP",
         descriptionToken = "ITEM_GOLDONHIT_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.BeetleGland, new ItemDef
     {
         tier             = ItemTier.Boss,
         pickupModelPath  = "Prefabs/PickupModels/PickupBeetleGland",
         pickupIconPath   = "Textures/ItemIcons/texBeetleGlandIcon",
         nameToken        = "ITEM_BEETLEGLAND_NAME",
         pickupToken      = "ITEM_BEETLEGLAND_PICKUP",
         descriptionToken = "ITEM_BEETLEGLAND_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.BurnNearby, new ItemDef
     {
         tier             = ItemTier.NoTier,
         pickupModelPath  = "Prefabs/PickupModels/PickupPotion",
         pickupIconPath   = "Textures/ItemIcons/texPotionIcon",
         nameToken        = "ITEM_BURNNEARBY_NAME",
         pickupToken      = "ITEM_BURNNEARBY_PICKUP",
         descriptionToken = "ITEM_BURNNEARBY_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.CritHeal, new ItemDef
     {
         tier             = ItemTier.NoTier,
         pickupModelPath  = "Prefabs/PickupModels/PickupCorpseflower",
         pickupIconPath   = "Textures/ItemIcons/texCorpseflowerIcon",
         nameToken        = "ITEM_CRITHEAL_NAME",
         pickupToken      = "ITEM_CRITHEAL_PICKUP",
         descriptionToken = "ITEM_CRITHEAL_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.CrippleWardOnLevel, new ItemDef
     {
         tier             = ItemTier.NoTier,
         pickupModelPath  = "Prefabs/PickupModels/PickupEffigy",
         pickupIconPath   = "Textures/ItemIcons/texEffigyIcon",
         nameToken        = "ITEM_CRIPPLEWARDONLEVEL_NAME",
         pickupToken      = "ITEM_CRIPPLEWARDONLEVEL_PICKUP",
         descriptionToken = "ITEM_CRIPPLEWARDONLEVEL_DESC",
         addressToken     = "",
         unlockableName   = "Items.CrippleWardOnLevel"
     });
     ItemCatalog.RegisterItem(ItemIndex.SprintBonus, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupSoda",
         pickupIconPath   = "Textures/ItemIcons/texSodaIcon",
         nameToken        = "ITEM_SPRINTBONUS_NAME",
         pickupToken      = "ITEM_SPRINTBONUS_PICKUP",
         descriptionToken = "ITEM_SPRINTBONUS_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.SecondarySkillMagazine, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupDoubleMag",
         pickupIconPath   = "Textures/ItemIcons/texDoubleMagIcon",
         nameToken        = "ITEM_SECONDARYSKILLMAGAZINE_NAME",
         pickupToken      = "ITEM_SECONDARYSKILLMAGAZINE_PICKUP",
         descriptionToken = "ITEM_SECONDARYSKILLMAGAZINE_DESC",
         addressToken     = "",
         unlockableName   = "Items.SecondarySkillMagazine"
     });
     ItemCatalog.RegisterItem(ItemIndex.StickyBomb, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupStickyBomb",
         pickupIconPath   = "Textures/ItemIcons/texStickyBombIcon",
         nameToken        = "ITEM_STICKYBOMB_NAME",
         pickupToken      = "ITEM_STICKYBOMB_PICKUP",
         descriptionToken = "ITEM_STICKYBOMB_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.TreasureCache, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupKey",
         pickupIconPath   = "Textures/ItemIcons/texKeyIcon",
         nameToken        = "ITEM_TREASURECACHE_NAME",
         pickupToken      = "ITEM_TREASURECACHE_PICKUP",
         descriptionToken = "ITEM_TREASURECACHE_DESC",
         addressToken     = "",
         unlockableName   = "Items.TreasureCache"
     });
     ItemCatalog.RegisterItem(ItemIndex.BossDamageBonus, new ItemDef
     {
         tier             = ItemTier.Tier1,
         pickupModelPath  = "Prefabs/PickupModels/PickupAPRounds",
         pickupIconPath   = "Textures/ItemIcons/texAPRoundsIcon",
         nameToken        = "ITEM_BOSSDAMAGEBONUS_NAME",
         pickupToken      = "ITEM_BOSSDAMAGEBONUS_PICKUP",
         descriptionToken = "ITEM_BOSSDAMAGEBONUS_DESC",
         addressToken     = "",
         unlockableName   = "Items.BossDamageBonus"
     });
     ItemCatalog.RegisterItem(ItemIndex.SprintArmor, new ItemDef
     {
         tier             = ItemTier.Tier2,
         pickupModelPath  = "Prefabs/PickupModels/PickupBuckler",
         pickupIconPath   = "Textures/ItemIcons/texBucklerIcon",
         nameToken        = "ITEM_SPRINTARMOR_NAME",
         pickupToken      = "ITEM_SPRINTARMOR_PICKUP",
         descriptionToken = "ITEM_SPRINTARMOR_DESC",
         addressToken     = ""
     });
     ItemCatalog.RegisterItem(ItemIndex.IceRing, new ItemDef
     {
         tier            = ItemTier.Tier2,
         pickupModelPath = "Prefabs/PickupModels/PickupIceRing",
         pickupIconPath  = "Textures/ItemIcons/texIceRingIcon",
         unlockableName  = "Items.ElementalRings"
     });
     ItemCatalog.RegisterItem(ItemIndex.FireRing, new ItemDef
     {
         tier            = ItemTier.Tier2,
         pickupModelPath = "Prefabs/PickupModels/PickupFireRing",
         pickupIconPath  = "Textures/ItemIcons/texFireRingIcon",
         unlockableName  = "Items.ElementalRings"
     });
     ItemCatalog.RegisterItem(ItemIndex.SlowOnHit, new ItemDef
     {
         tier            = ItemTier.Tier2,
         pickupModelPath = "Prefabs/PickupModels/PickupBauble",
         pickupIconPath  = "Textures/ItemIcons/texBaubleIcon"
     });
     ItemCatalog.RegisterItem(ItemIndex.ExtraLife, new ItemDef
     {
         tier            = ItemTier.Tier3,
         pickupModelPath = "Prefabs/PickupModels/PickupHippo",
         pickupIconPath  = "Textures/ItemIcons/texHippoIcon",
         unlockableName  = "Items.ExtraLife"
     });
     ItemCatalog.RegisterItem(ItemIndex.ExtraLifeConsumed, new ItemDef
     {
         tier            = ItemTier.NoTier,
         pickupModelPath = "Prefabs/PickupModels/PickupHippo",
         pickupIconPath  = "Textures/ItemIcons/texHippoIconConsumed"
     });
     ItemCatalog.RegisterItem(ItemIndex.UtilitySkillMagazine, new ItemDef
     {
         tier            = ItemTier.Tier3,
         pickupModelPath = "Prefabs/PickupModels/PickupAfterburner",
         pickupIconPath  = "Textures/ItemIcons/texAfterburnerIcon"
     });
     ItemCatalog.RegisterItem(ItemIndex.HeadHunter, new ItemDef
     {
         tier            = ItemTier.Tier3,
         pickupModelPath = "Prefabs/PickupModels/PickupSkullcrown",
         pickupIconPath  = "Textures/ItemIcons/texSkullcrownIcon"
     });
     ItemCatalog.RegisterItem(ItemIndex.KillEliteFrenzy, new ItemDef
     {
         tier            = ItemTier.Tier3,
         pickupModelPath = "Prefabs/PickupModels/PickupBrainstalk",
         pickupIconPath  = "Textures/ItemIcons/texBrainstalkIcon",
         unlockableName  = "Items.KillEliteFrenzy"
     });
     ItemCatalog.RegisterItem(ItemIndex.RepeatHeal, new ItemDef
     {
         tier            = ItemTier.Lunar,
         pickupModelPath = "Prefabs/PickupModels/PickupCorpseflower",
         pickupIconPath  = "Textures/ItemIcons/texCorpseflowerIcon"
     });
     ItemCatalog.RegisterItem(ItemIndex.IncreaseHealing, new ItemDef
     {
         tier            = ItemTier.Tier3,
         pickupModelPath = "Prefabs/PickupModels/PickupAntler",
         pickupIconPath  = "Textures/ItemIcons/texAntlerIcon",
         unlockableName  = "Items.IncreaseHealing"
     });
     ItemCatalog.RegisterItem(ItemIndex.AutoCastEquipment, new ItemDef
     {
         tier            = ItemTier.Lunar,
         pickupModelPath = "Prefabs/PickupModels/PickupFossil",
         pickupIconPath  = "Textures/ItemIcons/texFossilIcon",
         unlockableName  = "Items.AutoCastEquipment"
     });
     ItemCatalog.RegisterItem(ItemIndex.DrizzlePlayerHelper, new ItemDef
     {
         tier      = ItemTier.NoTier,
         hidden    = true,
         canRemove = false
     });
     ItemCatalog.RegisterItem(ItemIndex.Ghost, new ItemDef
     {
         tier      = ItemTier.NoTier,
         hidden    = false,
         canRemove = false
     });
     ItemCatalog.RegisterItem(ItemIndex.HealthDecay, new ItemDef
     {
         tier      = ItemTier.NoTier,
         hidden    = false,
         canRemove = false
     });
     ItemCatalog.RegisterItem(ItemIndex.MageAttunement, new ItemDef
     {
         tier      = ItemTier.NoTier,
         hidden    = true,
         canRemove = false
     });
     for (ItemIndex itemIndex = ItemIndex.Syringe; itemIndex < ItemIndex.Count; itemIndex++)
     {
         if (ItemCatalog.GetItemDef(itemIndex) == null)
         {
             Debug.LogErrorFormat("Item {0} is unregistered!", new object[]
             {
                 itemIndex
             });
         }
     }
 }
コード例 #18
0
ファイル: RuleCatalog.cs プロジェクト: HexiDave/RoR2-Mod
        static patch_RuleCatalog()
        {
            allRuleDefs                = new List <RuleDef>();
            allChoicesDefs             = new List <RuleChoiceDef>();
            allCategoryDefs            = new List <RuleCategoryDef>();
            ruleDefsByGlobalName       = new Dictionary <string, RuleDef>();
            ruleChoiceDefsByGlobalName = new Dictionary <string, RuleChoiceDef>();
            ruleShowItems              = new BoolConVar("rule_show_items", ConVarFlags.None, "1",
                                                        "Whether or not to allow voting on items in the pregame rules.");
            RuleCatalog.AddCategory("RULE_HEADER_DIFFICULTY", new Color32(28, 99, 150, byte.MaxValue));
            RuleCatalog.AddRule(RuleDef.FromDifficulty());
            RuleCatalog.AddCategory("RULE_HEADER_ARTIFACTS", new Color32(74, 50, 149, byte.MaxValue), null,
                                    RuleCatalog.HiddenTestFalse);
            for (ArtifactIndex artifactIndex = 0; artifactIndex < ArtifactIndex.Count; artifactIndex++)
            {
                RuleCatalog.AddRule(RuleDef.FromArtifact(artifactIndex));
            }

            RuleCatalog.AddCategory("RULE_HEADER_ITEMS", new Color32(147, 225, 128, byte.MaxValue), null,
                                    RuleCatalog.HiddenTestItemsConvar);
            var list = new List <ItemIndex>();

            for (ItemIndex itemIndex = 0; itemIndex < ItemIndex.Count; itemIndex++)
            {
                list.Add(itemIndex);
            }

            foreach (var itemIndex2 in from i in list
                     where ItemCatalog.GetItemDef(i).inDroppableTier
                     orderby ItemCatalog.GetItemDef(i).tier
                     select i)
            {
                RuleCatalog.AddRule(RuleDef.FromItem(itemIndex2));
            }

            RuleCatalog.AddCategory("RULE_HEADER_EQUIPMENT", new Color32(byte.MaxValue, 128, 0, byte.MaxValue), null,
                                    RuleCatalog.HiddenTestItemsConvar);
            var list2 = new List <EquipmentIndex>();

            for (EquipmentIndex equipmentIndex = 0; equipmentIndex < EquipmentIndex.Count; equipmentIndex++)
            {
                list2.Add(equipmentIndex);
            }

            foreach (var equipmentIndex2 in from i in list2
                     where EquipmentCatalog.GetEquipmentDef(i).canDrop
                     select i)
            {
                RuleCatalog.AddRule(RuleDef.FromEquipment(equipmentIndex2));
            }

            RuleCatalog.AddCategory("RULE_HEADER_MISC", new Color32(192, 192, 192, byte.MaxValue), null,
                                    RuleCatalog.HiddenTestFalse);
            var ruleDef       = new RuleDef("Misc.StartingMoney", "RULE_MISC_STARTING_MONEY");
            var ruleChoiceDef = ruleDef.AddChoice("0", 0, true);

            ruleChoiceDef.tooltipNameToken = "RULE_STARTINGMONEY_CHOICE_0_NAME";
            ruleChoiceDef.tooltipBodyToken = "RULE_STARTINGMONEY_CHOICE_0_DESC";
            ruleChoiceDef.tooltipNameColor = ColorCatalog.GetColor(ColorCatalog.ColorIndex.LunarCoin);
            var ruleChoiceDef2 = ruleDef.AddChoice("15", 15, true);

            ruleChoiceDef2.tooltipNameToken = "RULE_STARTINGMONEY_CHOICE_15_NAME";
            ruleChoiceDef2.tooltipBodyToken = "RULE_STARTINGMONEY_CHOICE_15_DESC";
            ruleChoiceDef2.tooltipNameColor = ColorCatalog.GetColor(ColorCatalog.ColorIndex.LunarCoin);
            ruleDef.MakeNewestChoiceDefault();
            var ruleChoiceDef3 = ruleDef.AddChoice("50", 50, true);

            ruleChoiceDef3.tooltipNameToken = "RULE_STARTINGMONEY_CHOICE_50_NAME";
            ruleChoiceDef3.tooltipBodyToken = "RULE_STARTINGMONEY_CHOICE_50_DESC";
            ruleChoiceDef3.spritePath       = "Textures/MiscIcons/texRuleBonusStartingMoney";
            ruleChoiceDef3.tooltipNameColor = ColorCatalog.GetColor(ColorCatalog.ColorIndex.LunarCoin);
            RuleCatalog.AddRule(ruleDef);
            var ruleDef2       = new RuleDef("Misc.StageOrder", "RULE_MISC_STAGE_ORDER");
            var ruleChoiceDef4 = ruleDef2.AddChoice("Normal", 0, true);

            ruleChoiceDef4.tooltipNameToken = "RULE_STAGEORDER_CHOICE_NORMAL_NAME";
            ruleChoiceDef4.tooltipBodyToken = "RULE_STAGEORDER_CHOICE_NORMAL_DESC";
            ruleChoiceDef4.tooltipNameColor = ColorCatalog.GetColor(ColorCatalog.ColorIndex.LunarCoin);
            ruleDef2.MakeNewestChoiceDefault();
            var ruleChoiceDef5 = ruleDef2.AddChoice("Random", 1, true);

            ruleChoiceDef5.tooltipNameToken = "RULE_STAGEORDER_CHOICE_RANDOM_NAME";
            ruleChoiceDef5.tooltipBodyToken = "RULE_STAGEORDER_CHOICE_RANDOM_DESC";
            ruleChoiceDef5.spritePath       = "Textures/MiscIcons/texRuleMapIsRandom";
            ruleChoiceDef5.tooltipNameColor = ColorCatalog.GetColor(ColorCatalog.ColorIndex.LunarCoin);
            RuleCatalog.AddRule(ruleDef2);
            var ruleDef3 = new RuleDef("Misc.KeepMoneyBetweenStages", "RULE_MISC_KEEP_MONEY_BETWEEN_STAGES");

            ruleDef3.AddChoice("On", 1, true).tooltipBodyToken  = "RULE_KEEPMONEYBETWEENSTAGES_CHOICE_ON_DESC";
            ruleDef3.AddChoice("Off", 0, true).tooltipBodyToken = "RULE_KEEPMONEYBETWEENSTAGES_CHOICE_OFF_DESC";
            ruleDef3.MakeNewestChoiceDefault();
            RuleCatalog.AddRule(ruleDef3);
            for (var k = 0; k < RuleCatalog.allRuleDefs.Count; k++)
            {
                var ruleDef4 = RuleCatalog.allRuleDefs[k];
                ruleDef4.globalIndex = k;
                for (var j = 0; j < ruleDef4.choices.Count; j++)
                {
                    var ruleChoiceDef6 = ruleDef4.choices[j];
                    ruleChoiceDef6.localIndex  = j;
                    ruleChoiceDef6.globalIndex = RuleCatalog.allChoicesDefs.Count;
                    RuleCatalog.allChoicesDefs.Add(ruleChoiceDef6);
                }
            }

            RuleCatalog.availability.MakeAvailable();
        }
コード例 #19
0
        // Token: 0x06000FCA RID: 4042 RVA: 0x000454BC File Offset: 0x000436BC
        private void RebuildModel()
        {
            GameObject y = this.hidden ? this.pickupIndex.GetHiddenPickupDisplayPrefab() : this.pickupIndex.GetPickupDisplayPrefab();

            if (this.modelPrefab == y)
            {
                return;
            }
            this.DestroyModel();
            this.modelPrefab = y;
            this.modelScale  = base.transform.lossyScale.x;
            if (this.modelPrefab != null)
            {
                this.modelObject   = UnityEngine.Object.Instantiate <GameObject>(this.modelPrefab);
                this.modelRenderer = this.modelObject.GetComponentInChildren <Renderer>();
                if (this.modelRenderer)
                {
                    this.modelObject.transform.rotation = Quaternion.identity;
                    Vector3 size = this.modelRenderer.bounds.size;
                    float   num  = size.x * size.y * size.z;
                    if (num <= 1E-45f)
                    {
                        Debug.LogError("PickupDisplay bounds are zero! This is not allowed!");
                        num = 1f;
                    }
                    this.modelScale *= Mathf.Pow(PickupDisplay.idealVolume, 0.33333334f) / Mathf.Pow(num, 0.33333334f);
                    if (this.highlight)
                    {
                        this.highlight.targetRenderer = this.modelRenderer;
                        this.highlight.isOn           = true;
                        this.highlight.pickupIndex    = this.pickupIndex;
                    }
                }
                this.modelObject.transform.parent        = base.transform;
                this.modelObject.transform.localPosition = this.localModelPivotPosition;
                this.modelObject.transform.localRotation = Quaternion.identity;
                this.modelObject.transform.localScale    = new Vector3(this.modelScale, this.modelScale, this.modelScale);
            }
            if (this.tier1ParticleEffect)
            {
                this.tier1ParticleEffect.SetActive(false);
            }
            if (this.tier2ParticleEffect)
            {
                this.tier2ParticleEffect.SetActive(false);
            }
            if (this.tier3ParticleEffect)
            {
                this.tier3ParticleEffect.SetActive(false);
            }
            if (this.equipmentParticleEffect)
            {
                this.equipmentParticleEffect.SetActive(false);
            }
            if (this.lunarParticleEffect)
            {
                this.lunarParticleEffect.SetActive(false);
            }
            if (this.pickupIndex.itemIndex != ItemIndex.None)
            {
                switch (ItemCatalog.GetItemDef(this.pickupIndex.itemIndex).tier)
                {
                case ItemTier.Tier1:
                    if (this.tier1ParticleEffect)
                    {
                        this.tier1ParticleEffect.SetActive(true);
                    }
                    break;

                case ItemTier.Tier2:
                    if (this.tier2ParticleEffect)
                    {
                        this.tier2ParticleEffect.SetActive(true);
                    }
                    break;

                case ItemTier.Tier3:
                    if (this.tier3ParticleEffect)
                    {
                        this.tier3ParticleEffect.SetActive(true);
                    }
                    break;
                }
            }
            else if (this.pickupIndex.equipmentIndex != EquipmentIndex.None && this.equipmentParticleEffect)
            {
                this.equipmentParticleEffect.SetActive(true);
            }
            if (this.bossParticleEffect)
            {
                this.bossParticleEffect.SetActive(this.pickupIndex.IsBoss());
            }
            if (this.lunarParticleEffect)
            {
                this.lunarParticleEffect.SetActive(this.pickupIndex.IsLunar());
            }
            foreach (ParticleSystem particleSystem in this.coloredParticleSystems)
            {
                particleSystem.gameObject.SetActive(this.modelPrefab != null);
                particleSystem.main.startColor = this.pickupIndex.GetPickupColor();
            }
        }
コード例 #20
0
        private static void Init()
        {
            List <PickupDef> list = new List <PickupDef>();

            for (int i = 0; i < ItemCatalog.itemCount; i++)
            {
                ItemIndex itemIndex  = (ItemIndex)i;
                ItemDef   itemDef    = ItemCatalog.GetItemDef(itemIndex);
                PickupDef pickupDef  = new PickupDef();
                PickupDef pickupDef2 = pickupDef;
                string    str        = "ItemIndex.";
                ItemIndex itemIndex2 = (ItemIndex)i;
                pickupDef2.internalName        = str + itemIndex2.ToString();
                pickupDef.itemIndex            = itemIndex;
                pickupDef.displayPrefab        = itemDef.pickupModelPrefab;
                pickupDef.dropletDisplayPrefab = PickupCatalog.< Init > g__GetPickupDropletDisplayPrefabForTier | 11_0 (itemDef.tier);
                pickupDef.nameToken            = itemDef.nameToken;
                pickupDef.baseColor            = ColorCatalog.GetColor(itemDef.colorIndex);
                pickupDef.darkColor            = ColorCatalog.GetColor(itemDef.darkColorIndex);
                pickupDef.unlockableName       = itemDef.unlockableName;
                pickupDef.interactContextToken = "ITEM_PICKUP_CONTEXT";
                pickupDef.isLunar     = (itemDef.tier == ItemTier.Lunar);
                pickupDef.isBoss      = (itemDef.tier == ItemTier.Boss);
                pickupDef.iconTexture = itemDef.pickupIconTexture;
                list.Add(pickupDef);
            }
            GameObject dropletDisplayPrefab = Resources.Load <GameObject>("Prefabs/ItemPickups/EquipmentOrb");

            for (int j = 0; j < EquipmentCatalog.equipmentCount; j++)
            {
                EquipmentIndex equipmentIndex  = (EquipmentIndex)j;
                EquipmentDef   equipmentDef    = EquipmentCatalog.GetEquipmentDef(equipmentIndex);
                PickupDef      pickupDef3      = new PickupDef();
                PickupDef      pickupDef4      = pickupDef3;
                string         str2            = "EquipmentIndex.";
                EquipmentIndex equipmentIndex2 = (EquipmentIndex)j;
                pickupDef4.internalName         = str2 + equipmentIndex2.ToString();
                pickupDef3.equipmentIndex       = equipmentIndex;
                pickupDef3.displayPrefab        = equipmentDef.pickupModelPrefab;
                pickupDef3.dropletDisplayPrefab = dropletDisplayPrefab;
                pickupDef3.nameToken            = equipmentDef.nameToken;
                pickupDef3.baseColor            = ColorCatalog.GetColor(equipmentDef.colorIndex);
                pickupDef3.darkColor            = pickupDef3.baseColor;
                pickupDef3.unlockableName       = equipmentDef.unlockableName;
                pickupDef3.interactContextToken = "EQUIPMENT_PICKUP_CONTEXT";
                pickupDef3.isLunar     = equipmentDef.isLunar;
                pickupDef3.isBoss      = equipmentDef.isBoss;
                pickupDef3.iconTexture = equipmentDef.pickupIconTexture;
                list.Add(pickupDef3);
            }
            PickupDef pickupDef5 = new PickupDef();

            pickupDef5.internalName         = "LunarCoin.Coin0";
            pickupDef5.coinValue            = 1U;
            pickupDef5.nameToken            = "PICKUP_LUNAR_COIN";
            pickupDef5.displayPrefab        = Resources.Load <GameObject>("Prefabs/PickupModels/PickupLunarCoin");
            pickupDef5.dropletDisplayPrefab = Resources.Load <GameObject>("Prefabs/ItemPickups/LunarOrb");
            pickupDef5.baseColor            = ColorCatalog.GetColor(ColorCatalog.ColorIndex.LunarItem);
            pickupDef5.darkColor            = pickupDef5.baseColor;
            pickupDef5.interactContextToken = "LUNAR_COIN_PICKUP_CONTEXT";
            list.Add(pickupDef5);
            Action <List <PickupDef> > action = PickupCatalog.modifyPickups;

            if (action != null)
            {
                action(list);
            }
            PickupCatalog.SetEntries(list.ToArray());
        }