// 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); }
// 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); }
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); }
// 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("???"); }
// 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); }
// 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); }
// 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++; } }
// 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); }
// 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; }
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); }
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); } }
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); }
// 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(); }
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(); }
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); }
// 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); }
// 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 }); } } }
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(); }
// 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(); } }
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()); }