// Token: 0x06001B2F RID: 6959 RVA: 0x00073EB0 File Offset: 0x000720B0 private static int GuessUnlockableSortScore(UnlockableDef unlockableDef) { int num = 0; int num2 = num + 200; int num3 = num2 + 200; int num4 = num3 + 200; int result = num4 + 200; if (unlockableDef == null) { return(10000); } string name = unlockableDef.name; int i = 0; while (i < SurvivorCatalog.idealSurvivorOrder.Length) { SurvivorIndex survivorIndex = SurvivorCatalog.idealSurvivorOrder[i]; if (name.Contains(survivorIndex.ToString())) { if (SurvivorCatalog.GetSurvivorDef(survivorIndex).unlockableName == name) { return(num3 + i * 10); } int num5 = num4 + i * 10; if (name.Contains("Skin")) { num5++; } return(num5); } else { i++; } } ItemDef itemDef = ItemCatalog.allItems.Select(new Func <ItemIndex, ItemDef>(ItemCatalog.GetItemDef)).FirstOrDefault((ItemDef v) => v.unlockableName == unlockableDef.name); if (itemDef != null) { return((int)(num + itemDef.tier)); } EquipmentDef equipmentDef = EquipmentCatalog.allEquipment.Select(new Func <EquipmentIndex, EquipmentDef>(EquipmentCatalog.GetEquipmentDef)).FirstOrDefault((EquipmentDef v) => v.unlockableName == unlockableDef.name); if (equipmentDef == null) { return(result); } if (equipmentDef.isBoss) { return(num2 + 1); } if (equipmentDef.isLunar) { return(num2 - 1); } return(num2); }
// Token: 0x06000585 RID: 1413 RVA: 0x00017050 File Offset: 0x00015250 private static void RegisterEquipment(EquipmentIndex equipmentIndex, EquipmentDef equipmentDef) { equipmentDef.equipmentIndex = equipmentIndex; EquipmentCatalog.equipmentDefs[(int)equipmentIndex] = equipmentDef; if (equipmentDef.canDrop) { EquipmentCatalog.equipmentList.Add(equipmentIndex); } if (equipmentDef.enigmaCompatible) { EquipmentCatalog.enigmaEquipmentList.Add(equipmentIndex); } if (equipmentDef.name == null) { equipmentDef.name = equipmentIndex.ToString(); } string name = equipmentDef.name; string arg = name.ToUpper(CultureInfo.InvariantCulture); if (equipmentDef.nameToken == null) { equipmentDef.nameToken = string.Format(CultureInfo.InvariantCulture, "EQUIPMENT_{0}_NAME", arg); } if (equipmentDef.descriptionToken == null) { equipmentDef.descriptionToken = string.Format(CultureInfo.InvariantCulture, "EQUIPMENT_{0}_DESC", arg); } if (equipmentDef.pickupToken == null) { equipmentDef.pickupToken = string.Format(CultureInfo.InvariantCulture, "EQUIPMENT_{0}_PICKUP", arg); } if (equipmentDef.loreToken == null) { equipmentDef.loreToken = string.Format(CultureInfo.InvariantCulture, "EQUIPMENT_{0}_LORE", arg); } if (equipmentDef.pickupModelPath == null) { equipmentDef.pickupModelPath = "Prefabs/NullModel"; } if (equipmentDef.pickupIconPath == null) { equipmentDef.pickupIconPath = "Textures/ItemIcons/texNullIcon"; } EquipmentCatalog.equipmentNameToIndex[name] = equipmentIndex; }
// Token: 0x060015BF RID: 5567 RVA: 0x0005CB68 File Offset: 0x0005AD68 public override void OverrideRuleChoices(RuleChoiceMask mustInclude, RuleChoiceMask mustExclude) { base.OverrideRuleChoices(mustInclude, mustExclude); base.ForceChoice(mustInclude, mustExclude, "Difficulty.Normal"); base.ForceChoice(mustInclude, mustExclude, "Misc.StartingMoney.50"); base.ForceChoice(mustInclude, mustExclude, "Misc.StageOrder.Random"); base.ForceChoice(mustInclude, mustExclude, "Misc.KeepMoneyBetweenStages.Off"); for (ArtifactIndex artifactIndex = ArtifactIndex.Command; artifactIndex < ArtifactIndex.Count; artifactIndex++) { RuleDef ruleDef = RuleCatalog.FindRuleDef(artifactIndex.ToString()); RuleChoiceDef ruleChoiceDef = (ruleDef != null) ? ruleDef.FindChoice("Off") : null; if (ruleChoiceDef != null) { base.ForceChoice(mustInclude, mustExclude, ruleChoiceDef); } } ItemIndex itemIndex = ItemIndex.Syringe; ItemIndex itemCount = (ItemIndex)ItemCatalog.itemCount; while (itemIndex < itemCount) { ItemDef itemDef = ItemCatalog.GetItemDef(itemIndex); RuleDef ruleDef2 = RuleCatalog.FindRuleDef("Items." + itemDef.name); RuleChoiceDef ruleChoiceDef2 = (ruleDef2 != null) ? ruleDef2.FindChoice("On") : null; if (ruleChoiceDef2 != null) { base.ForceChoice(mustInclude, mustExclude, ruleChoiceDef2); } itemIndex++; } EquipmentIndex equipmentIndex = EquipmentIndex.CommandMissile; EquipmentIndex equipmentCount = (EquipmentIndex)EquipmentCatalog.equipmentCount; while (equipmentIndex < equipmentCount) { EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef(equipmentIndex); RuleDef ruleDef3 = RuleCatalog.FindRuleDef("Equipment." + equipmentDef.name); RuleChoiceDef ruleChoiceDef3 = (ruleDef3 != null) ? ruleDef3.FindChoice("On") : null; if (ruleChoiceDef3 != null) { base.ForceChoice(mustInclude, mustExclude, ruleChoiceDef3); } equipmentIndex++; } }
// 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: 0x060018D8 RID: 6360 RVA: 0x0006AFB8 File Offset: 0x000691B8 public static RuleDef FromEquipment(EquipmentIndex equipmentIndex) { EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef(equipmentIndex); RuleDef ruleDef = new RuleDef("Equipment." + equipmentIndex.ToString(), equipmentDef.nameToken); RuleChoiceDef ruleChoiceDef = ruleDef.AddChoice("On", null, false); ruleChoiceDef.spritePath = equipmentDef.pickupIconPath; ruleChoiceDef.tooltipBodyToken = equipmentDef.nameToken; ruleChoiceDef.unlockableName = equipmentDef.unlockableName; ruleChoiceDef.equipmentIndex = equipmentIndex; ruleChoiceDef.availableInMultiPlayer = equipmentDef.appearsInMultiPlayer; ruleChoiceDef.availableInSinglePlayer = equipmentDef.appearsInSinglePlayer; ruleDef.MakeNewestChoiceDefault(); RuleChoiceDef ruleChoiceDef2 = ruleDef.AddChoice("Off", null, false); ruleChoiceDef2.spritePath = equipmentDef.pickupIconPath; ruleChoiceDef2.materialPath = "Materials/UI/matRuleChoiceOff"; ruleChoiceDef2.tooltipBodyToken = null; return(ruleDef); }
// Token: 0x06001B91 RID: 7057 RVA: 0x00081100 File Offset: 0x0007F300 private static int GuessUnlockableSortScore(string unlockableName) { int num = 0; UnlockableDef unlockableDef = UnlockableCatalog.GetUnlockableDef(unlockableName); if (unlockableDef == null) { return(num); } num += 200; ItemDef itemDef = ItemCatalog.allItems.Select(new Func <ItemIndex, ItemDef>(ItemCatalog.GetItemDef)).FirstOrDefault((ItemDef v) => v.unlockableName == unlockableDef.name); if (itemDef != null) { return((int)(num + itemDef.tier)); } num += 200; EquipmentDef equipmentDef = EquipmentCatalog.allEquipment.Select(new Func <EquipmentIndex, EquipmentDef>(EquipmentCatalog.GetEquipmentDef)).FirstOrDefault((EquipmentDef v) => v.unlockableName == unlockableDef.name); if (equipmentDef != null) { if (equipmentDef.isBoss) { return(num + 1); } if (equipmentDef.isLunar) { return(num - 1); } return(num); } else { num += 200; if (SurvivorCatalog.allSurvivorDefs.FirstOrDefault((SurvivorDef v) => v.unlockableName == unlockableDef.name) != null) { return(num); } return(num + 200); } }
public static List <EquipmentIndex> GetDefaultEquipmentDropList() { var list = new List <EquipmentIndex>(); for (EquipmentIndex equipmentIndex = EquipmentIndex.CommandMissile; equipmentIndex < EquipmentIndex.Count; equipmentIndex++) { if (Run.instance.availableEquipment.HasEquipment(equipmentIndex)) { EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef(equipmentIndex); if (equipmentDef.canDrop) { if (!equipmentDef.isLunar) { list.Add(equipmentIndex); } } } } return(list); }
protected void CreateEquipment() { EquipmentDef equipmentDef = new RoR2.EquipmentDef() { name = "EQUIPMENT_" + EquipmentLangTokenName, nameToken = "EQUIPMENT_" + EquipmentLangTokenName + "_NAME", pickupToken = "EQUIPMENT_" + EquipmentLangTokenName + "_PICKUP", descriptionToken = "EQUIPMENT_" + EquipmentLangTokenName + "_DESCRIPTION", loreToken = "EQUIPMENT_" + EquipmentLangTokenName + "_LORE", pickupModelPath = EquipmentModelPath, pickupIconPath = EquipmentIconPath, appearsInSinglePlayer = AppearsInSinglePlayer, appearsInMultiPlayer = AppearsInMultiPlayer, canDrop = CanDrop, cooldown = Cooldown, enigmaCompatible = EnigmaCompatible, isBoss = IsBoss, isLunar = IsLunar }; var itemDisplayRules = CreateItemDisplayRules(); Index = ItemAPI.Add(new CustomEquipment(equipmentDef, itemDisplayRules)); On.RoR2.EquipmentSlot.PerformEquipmentAction += PerformEquipmentAction; }
// 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); }
public void CalculateInvalidInteractables(List <PickupIndex> itemsToDrop) { List <string> tiersPresentKeys = tiersPresent.Keys.ToList(); foreach (string tier in tiersPresentKeys) { tiersPresent[tier] = false; } subsetTiersPresent.Clear(); foreach (string subsetChest in subsetChests) { subsetTiersPresent.Add(subsetChest, new Dictionary <string, bool>()); foreach (string tier in tiersPresentKeys) { subsetTiersPresent[subsetChest].Add(tier, false); } } foreach (PickupIndex pickupIndex in itemsToDrop) { PickupDef pickupDef = PickupCatalog.GetPickupDef(pickupIndex); if (pickupDef.itemIndex != ItemIndex.None) { if (!Catalogue.scrapItems.ContainsValue(pickupDef.itemIndex)) { if (RoR2.ItemCatalog.tier1ItemList.Contains(pickupDef.itemIndex)) { tiersPresent["tier1"] = true; } else if (RoR2.ItemCatalog.tier2ItemList.Contains(pickupDef.itemIndex)) { tiersPresent["tier2"] = true; } else if (RoR2.ItemCatalog.tier3ItemList.Contains(pickupDef.itemIndex)) { tiersPresent["tier3"] = true; } else if (Catalogue.pearls.Contains(pickupDef.itemIndex)) { tiersPresent["pearl"] = true; } else if (Catalogue.bossItems.Contains(pickupDef.itemIndex)) { tiersPresent["boss"] = true; } else if (RoR2.ItemCatalog.lunarItemList.Contains(pickupDef.itemIndex)) { tiersPresent["lunar"] = true; } if (!RoR2.ItemCatalog.lunarItemList.Contains(pickupDef.itemIndex) && !Catalogue.bossItems.Contains(pickupDef.itemIndex) && !Catalogue.pearls.Contains(pickupDef.itemIndex)) { RoR2.ItemDef itemDef = RoR2.ItemCatalog.GetItemDef(pickupDef.itemIndex); foreach (RoR2.ItemTag itemTag in itemDef.tags) { string interactableName = ""; if (itemTag == RoR2.ItemTag.Damage) { tiersPresent["damage"] = true; interactableName = "CategoryChestDamage"; } else if (itemTag == RoR2.ItemTag.Healing) { tiersPresent["healing"] = true; interactableName = "CategoryChestHealing"; } else if (itemTag == RoR2.ItemTag.Utility) { tiersPresent["utility"] = true; interactableName = "CategoryChestUtility"; } if (subsetChests.Contains(interactableName)) { if (RoR2.ItemCatalog.tier1ItemList.Contains(pickupDef.itemIndex)) { subsetTiersPresent[interactableName]["tier1"] = true; } else if (RoR2.ItemCatalog.tier2ItemList.Contains(pickupDef.itemIndex)) { subsetTiersPresent[interactableName]["tier2"] = true; } else if (RoR2.ItemCatalog.tier3ItemList.Contains(pickupDef.itemIndex)) { subsetTiersPresent[interactableName]["tier3"] = true; } } } } } } else if (pickupDef.equipmentIndex != EquipmentIndex.None) { if (!Catalogue.eliteEquipment.Contains(pickupDef.equipmentIndex)) { RoR2.EquipmentDef equipmentDef = RoR2.EquipmentCatalog.GetEquipmentDef(pickupDef.equipmentIndex); if (equipmentDef.isLunar) { tiersPresent["lunar"] = true; } else if (equipmentDef.isBoss) { } else { tiersPresent["equipment"] = true; } } } } List <string> interactableTypeKeys = interactablesTiers.Keys.ToList(); foreach (string interactableType in interactableTypeKeys) { List <string> interactableTypeTierKeys = interactablesTiers[interactableType].Keys.ToList(); foreach (string tier in interactableTypeTierKeys) { interactablesTiers[interactableType][tier] = false; } } foreach (string tier in tiersPresent.Keys) { if (tiersPresent[tier]) { foreach (string interactableType in interactableTypeKeys) { if (interactablesTiers[interactableType].ContainsKey(tier)) { interactablesTiers[interactableType][tier] = true; } } } } List <string> scrapTierKeys = interactablesTiers["Scrapper"].Keys.ToList(); foreach (string tier in scrapTierKeys) { if (interactablesTiers["Scrapper"][tier]) { if (!itemsToDrop.Contains(PickupCatalog.FindPickupIndex(Catalogue.scrapItems[tierConversion[tier]]))) { interactablesTiers["Scrapper"][tier] = false; } } } interactablesInvalid.Clear(); foreach (string interactableType in interactablesTiers.Keys) { bool interactableValid = false; bool allTrue = true; foreach (string tier in interactablesTiers[interactableType].Keys) { if (interactablesTiers[interactableType][tier]) { interactableValid = true; } else { allTrue = false; } } if (!interactableValid || (allTiersMustBePresent.Contains(interactableType) && !allTrue)) { interactablesInvalid.Add(interactableType); } } }
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()); }