private void Start() { if (this.itemIDs != null && this.itemIDs.Length > 0) { InvEquipment invEquipment = base.GetComponent <InvEquipment>(); if (invEquipment == null) { invEquipment = base.gameObject.AddComponent <InvEquipment>(); } int max = 12; int i = 0; int num = this.itemIDs.Length; while (i < num) { int num2 = this.itemIDs[i]; InvBaseItem invBaseItem = InvDatabase.FindByID(num2); if (invBaseItem != null) { invEquipment.Equip(new InvGameItem(num2, invBaseItem) { quality = (InvGameItem.Quality)UnityEngine.Random.Range(0, max), itemLevel = NGUITools.RandomRange(invBaseItem.minItemLevel, invBaseItem.maxItemLevel) }); } else { Debug.LogWarning("Can't resolve the item ID of " + num2); } i++; } } UnityEngine.Object.Destroy(this); }
public static bool EquipWeapon_Prefix(InvItem item, bool sfx, InvDatabase __instance) { if (item == null) { return(false); } Agent agent = __instance.agent; if (agent.statusEffects.hasTrait(cTrait.DrawNoBlood) && item.Categories.Contains("Piercing")) { BMHeaderTools.SayDialogue(agent, cDialogue.CantUseSharp, vNameType.Dialogue); GC.audioHandler.Play(__instance.agent, "CantDo"); return(false); } else if (agent.statusEffects.hasTrait(cTrait.AfraidOfLoudNoises) && item.Categories.Contains("Loud") && !item.contents.Contains("Silencer")) { BMHeaderTools.SayDialogue(agent, cDialogue.CantUseLoud, "Dialogue"); GC.audioHandler.Play(__instance.agent, "CantDo"); return(false); } else if (agent.statusEffects.hasTrait(cTrait.SharpOnly) && item.Categories.Contains("Blunt")) { BMHeaderTools.SayDialogue(agent, cDialogue.CantUseBlunt, vNameType.Dialogue); GC.audioHandler.Play(__instance.agent, "CantDo"); return(false); } return(true); }
public static bool DetermineIfCanUseWeapon_Prefix(InvItem item, InvDatabase __instance, ref bool __result) { //TODO: Verify non-equipped items like Time Bomb. //logger.LogDebug("InvDatabase_DetermineIfCanUseWeapon"); //logger.LogDebug("\tItem: " + item.invItemName); //logger.LogDebug("\tSharp: " + vItem.piercing.Contains(item.invItemName)); //logger.LogDebug("\tLoud: " + vItem.loud.Contains(item.invItemName)); Agent agent = __instance.agent; bool fist = (item.invItemName == vItem.Fist); __result = ( (!(item.itemType == "WeaponProjectile") || !agent.statusEffects.hasTrait(vTrait.StubbyFingers) || item.Categories.Contains("NotRealWeapons")) && (fist || item.Categories.Contains("NonViolent") || item.Categories.Contains("NotRealWeapons") || !agent.statusEffects.hasTrait(vTrait.Pacifist)) && (fist || !agent.statusEffects.hasTrait(vTrait.SausageFingers)) && (fist || !agent.statusEffects.hasTrait(vTrait.Harmless)) && (fist || !agent.statusEffects.hasTrait(vTrait.NearHarmless)) && (!vItem.piercing.Contains(item.invItemName) || !agent.statusEffects.hasTrait(cTrait.DrawNoBlood)) && (!vItem.loud.Contains(item.invItemName) || item.contents.Contains(vItem.Silencer) || !agent.statusEffects.hasTrait(cTrait.AfraidOfLoudNoises))) || (agent.isPlayer != 0 && !agent.localPlayer); return(false); }
void Start() { if (itemIDs != null && itemIDs.Length > 0) { InvEquipment eq = GetComponent <InvEquipment>(); if (eq == null) { eq = gameObject.AddComponent <InvEquipment>(); } int qualityLevels = (int)InvGameItem.Quality._LastDoNotUse; for (int i = 0, imax = itemIDs.Length; i < imax; ++i) { int index = itemIDs[i]; InvBaseItem item = InvDatabase.FindByID(index); if (item != null) { InvGameItem gi = new InvGameItem(index, item); gi.quality = (InvGameItem.Quality)Random.Range(0, qualityLevels); gi.itemLevel = NGUITools.RandomRange(item.minItemLevel, item.maxItemLevel); eq.Equip(gi); } else { Debug.LogWarning("Can't resolve the item ID of " + index); } } } Destroy(this); }
private void Start() { if ((this.itemIDs != null) && (this.itemIDs.Length > 0)) { InvEquipment component = base.GetComponent <InvEquipment>(); if (component == null) { component = base.gameObject.AddComponent <InvEquipment>(); } int max = 12; int index = 0; int length = this.itemIDs.Length; while (index < length) { int num4 = this.itemIDs[index]; InvBaseItem bi = InvDatabase.FindByID(num4); if (bi != null) { InvGameItem item = new InvGameItem(num4, bi) { quality = (InvGameItem.Quality)UnityEngine.Random.Range(0, max), itemLevel = NGUITools.RandomRange(bi.minItemLevel, bi.maxItemLevel) }; component.Equip(item); } else { Debug.LogWarning("Can't resolve the item ID of " + num4); } index++; } } UnityEngine.Object.Destroy(this); }
public static void InvDatabase_ThrowWeapon(InvDatabase __instance) { if (__instance.agent?.agentHitboxScript?.heldItem2?.CurrentSprite?.__RogueLibsCustom is RogueSprite sprite) { __instance.agent.agentHitboxScript.heldItem2Renderer.sharedMaterial = sprite.Material; } }
private void Start() { if (itemIDs != null && itemIDs.Length > 0) { InvEquipment invEquipment = GetComponent <InvEquipment>(); if (invEquipment == null) { invEquipment = base.gameObject.AddComponent <InvEquipment>(); } int max = 12; int i = 0; for (int num = itemIDs.Length; i < num; i++) { int num2 = itemIDs[i]; InvBaseItem invBaseItem = InvDatabase.FindByID(num2); if (invBaseItem != null) { InvGameItem invGameItem = new InvGameItem(num2, invBaseItem); invGameItem.quality = (InvGameItem.Quality)Random.Range(0, max); invGameItem.itemLevel = NGUITools.RandomRange(invBaseItem.minItemLevel, invBaseItem.maxItemLevel); invEquipment.Equip(invGameItem); } else { Debug.LogWarning("Can't resolve the item ID of " + num2); } } } Object.Destroy(this); }
/// <summary> /// <para>Finds an item hook that is assignable to a variable of <typeparamref name="TItem"/> type in the current <paramref name="inventory"/>.</para> /// </summary> /// <typeparam name="TItem">The type of the item hook to search for.</typeparam> /// <param name="inventory">The current inventory.</param> /// <returns>An item hook assignable to a variable of <typeparamref name="TItem"/> type, if found; otherwise, <see langword="default"/>.</returns> /// <exception cref="ArgumentNullException"><paramref name="inventory"/> is <see langword="null"/>.</exception> public static TItem GetItem <TItem>(this InvDatabase inventory) { if (inventory is null) { throw new ArgumentNullException(nameof(inventory)); } InvItem item = inventory.InvItemList.Find(i => i.GetHook <TItem>() != null); return(item != null?item.GetHook <TItem>() : default);
public static InvBaseItem FindByID(int id32) { InvDatabase database = GetDatabase(id32 >> 0x10); if (database != null) { return(database.GetItem(id32 & 0xffff)); } return(null); }
/// <summary> /// Helper function that sets the index to the index of the specified item. /// </summary> public static void SelectIndex (InvDatabase db, InvBaseItem item) { mIndex = 0; foreach (InvBaseItem i in db.items) { if (i == item) break; ++mIndex; } }
// Token: 0x060000F7 RID: 247 RVA: 0x00012110 File Offset: 0x00010310 public static InvBaseItem FindByID(int id32) { InvDatabase database = InvDatabase.GetDatabase(id32 >> 16); if (!(database != null)) { return(null); } return(database.GetItem(id32 & 65535)); }
/// <summary> /// Find a database given its ID. /// </summary> static InvDatabase GetDatabase(int dbID) { for (int i = 0, imax = list.Length; i < imax; ++i) { InvDatabase db = list[i]; if (db.databaseID == dbID) { return(db); } } return(null); }
public static bool EquipArmorHead_Prefix(InvItem item, bool sfx, InvDatabase __instance) { if (item.isArmorHead && item != null && __instance.agent.statusEffects.hasTrait(cTrait.FatHead)) { BMHeaderTools.SayDialogue(__instance.agent, cDialogue.CantWearHeadgear, vNameType.Dialogue); GC.audioHandler.Play(__instance.agent, "CantDo"); return(false); } return(true); }
public void setItemInfo(bool b) { if (b) { itemNameLabel.GetComponent <UILabel> ().text = InvDatabase.FindByName(selectedSlot.getObj().name).name; itemInfoLabel.GetComponent <UILabel> ().text = InvDatabase.FindByName(selectedSlot.getObj().name).description; } else { itemInfoLabel.GetComponent <UILabel> ().text = ""; itemNameLabel.GetComponent <UILabel> ().text = ""; } }
/// <summary> /// Helper function that sets the index to the index of the specified item. /// </summary> public static void SelectIndex(InvDatabase db, InvBaseItem item) { mIndex = 0; foreach (InvBaseItem i in db.items) { if (i == item) { break; } ++mIndex; } }
/// <summary> /// Get the full 32-bit ID of the specified item. /// Use this to get a list of items on the character that can get saved out to an external database or file. /// </summary> static public int FindItemID(InvBaseItem item) { for (int i = 0, imax = list.Length; i < imax; ++i) { InvDatabase db = list[i]; if (db.items.Contains(item)) { return((db.databaseID << 16) | item.id16); } } return(-1); }
/// <summary> /// Draw the custom wizard. /// </summary> void OnGUI() { NGUIEditorTools.SetLabelWidth(80f); string newItemName = EditorGUILayout.TextField("Search for:", mItemName); NGUIEditorTools.DrawSeparator(); if (GUI.changed || newItemName != mItemName) { mItemName = newItemName; if (string.IsNullOrEmpty(mItemName)) { mResults.Clear(); } else { FindAllByName(mItemName); } } if (mResults.Count == 0) { if (!string.IsNullOrEmpty(mItemName)) { GUILayout.Label("No matches found"); } } else { Print3("Item ID", "Item Name", "Path", false); NGUIEditorTools.DrawSeparator(); { var __list1 = mResults; var __listCount1 = __list1.Count; for (int __i1 = 0; __i1 < __listCount1; ++__i1) { var fr = (FindResult)__list1[__i1]; { if (Print3(InvDatabase.FindItemID(fr.item).ToString(), fr.item.name, NGUITools.GetHierarchy(fr.db.gameObject), true)) { InvDatabaseInspector.SelectIndex(fr.db, fr.item); Selection.activeGameObject = fr.db.gameObject; EditorUtility.SetDirty(Selection.activeGameObject); } } } } } }
public static int FindItemID(InvBaseItem item) { int i = 0; for (int num = list.Length; i < num; i++) { InvDatabase invDatabase = list[i]; if (invDatabase.items.Contains(item)) { return((invDatabase.databaseID << 16) | item.id16); } } return(-1); }
private static InvDatabase GetDatabase(int dbID) { int i = 0; for (int num = list.Length; i < num; i++) { InvDatabase invDatabase = list[i]; if (invDatabase.databaseID == dbID) { return(invDatabase); } } return(null); }
/// <summary> /// <para>Adds the specified <paramref name="amount"/> of the <typeparamref name="TItem"/> item to the current <paramref name="inventory"/>.</para> /// </summary> /// <typeparam name="TItem">The type of the item to add to the <paramref name="inventory"/>.</typeparam> /// <param name="inventory">The current inventory.</param> /// <param name="amount">The amount of the item to add.</param> /// <returns>The added item, if found in the inventory; otherwise, <see langword="null"/>.</returns> /// <exception cref="ArgumentNullException"><paramref name="inventory"/> is <see langword="null"/>.</exception> /// <exception cref="ArgumentOutOfRangeException"><paramref name="amount"/> is less than or equal to 0.</exception> public static TItem AddItem <TItem>(this InvDatabase inventory, int amount) where TItem : CustomItem { if (inventory is null) { throw new ArgumentNullException(nameof(inventory)); } if (amount <= 0) { throw new ArgumentOutOfRangeException(nameof(amount), amount, $"{nameof(amount)} is less than or equal to 0."); } InvItem item = inventory.AddItem(ItemInfo.Get <TItem>().Name, amount); return(item?.GetHook <TItem>()); }
// Token: 0x06002FA0 RID: 12192 RVA: 0x000E8838 File Offset: 0x000E6C38 private static InvDatabase GetDatabase(int dbID) { int i = 0; int num = InvDatabase.list.Length; while (i < num) { InvDatabase invDatabase = InvDatabase.list[i]; if (invDatabase.databaseID == dbID) { return(invDatabase); } i++; } return(null); }
// Token: 0x06002FA3 RID: 12195 RVA: 0x000E8924 File Offset: 0x000E6D24 public static int FindItemID(InvBaseItem item) { int i = 0; int num = InvDatabase.list.Length; while (i < num) { InvDatabase invDatabase = InvDatabase.list[i]; if (invDatabase.items.Contains(item)) { return(invDatabase.databaseID << 16 | item.id16); } i++; } return(-1); }
private static InvDatabase GetDatabase(int dbID) { int index = 0; int length = list.Length; while (index < length) { InvDatabase database = list[index]; if (database.databaseID == dbID) { return(database); } index++; } return(null); }
public static int FindItemID(InvBaseItem item) { int index = 0; int length = list.Length; while (index < length) { InvDatabase database = list[index]; if (database.items.Contains(item)) { return((database.databaseID << 0x10) | item.id16); } index++; } return(-1); }
/// <summary> /// Draw the custom wizard. /// </summary> void OnGUI() { EditorGUIUtility.LookLikeControls(80f); string newItemName = EditorGUILayout.TextField("Search for:", mItemName); NGUIEditorTools.DrawSeparator(); if (GUI.changed || newItemName != mItemName) { mItemName = newItemName; if (string.IsNullOrEmpty(mItemName)) { mResults.Clear(); } else { FindAllByName(mItemName); } } if (mResults.Count == 0) { if (!string.IsNullOrEmpty(mItemName)) { GUILayout.Label("No matches found"); } } else { Print3("Item ID", "Item Name", "Path", false); NGUIEditorTools.DrawSeparator(); foreach (FindResult fr in mResults) { if (Print3(InvDatabase.FindItemID(fr.item).ToString(), fr.item.name, NGUITools.GetHierarchy(fr.db.gameObject), true)) { InvDatabaseInspector.SelectIndex(fr.db, fr.item); Selection.activeGameObject = fr.db.gameObject; EditorUtility.SetDirty(Selection.activeGameObject); } } } }
/// <summary> /// Find the item with the specified name. /// </summary> static public InvBaseItem FindByName(string exact) { for (int i = 0, imax = list.Length; i < imax; ++i) { InvDatabase db = list[i]; for (int b = 0, bmax = db.items.Count; b < bmax; ++b) { InvBaseItem item = db.items[b]; if (item.name == exact) { return(item); } } } return(null); }
/// <summary> /// Helper function that sets the index to the index of the specified item. /// </summary> public static void SelectIndex(InvDatabase db, InvBaseItem item) { mIndex = 0; { var __list1 = db.items; var __listCount1 = __list1.Count; for (int __i1 = 0; __i1 < __listCount1; ++__i1) { var i = (InvBaseItem)__list1[__i1]; { if (i == item) { break; } ++mIndex; } } } }
public static InvBaseItem FindByName(string exact) { int i = 0; for (int num = list.Length; i < num; i++) { InvDatabase invDatabase = list[i]; int j = 0; for (int count = invDatabase.items.Count; j < count; j++) { InvBaseItem invBaseItem = invDatabase.items[j]; if (invBaseItem.name == exact) { return(invBaseItem); } } } return(null); }
public static InvBaseItem FindByName(string exact) { int index = 0; int length = list.Length; while (index < length) { InvDatabase database = list[index]; int num3 = 0; int count = database.items.Count; while (num3 < count) { InvBaseItem item = database.items[num3]; if (item.name == exact) { return(item); } num3++; } index++; } return(null); }
// Token: 0x06002FA2 RID: 12194 RVA: 0x000E88B0 File Offset: 0x000E6CB0 public static InvBaseItem FindByName(string exact) { int i = 0; int num = InvDatabase.list.Length; while (i < num) { InvDatabase invDatabase = InvDatabase.list[i]; int j = 0; int count = invDatabase.items.Count; while (j < count) { InvBaseItem invBaseItem = invDatabase.items[j]; if (invBaseItem.name == exact) { return(invBaseItem); } j++; } i++; } return(null); }
private void Start() { if (itemIDs != null && itemIDs.Length > 0) { var component = GetComponent <InvEquipment>(); if (component == null) { component = gameObject.AddComponent <InvEquipment>(); } var max = 12; var index = 0; var length = itemIDs.Length; while (index < length) { var num4 = itemIDs[index]; var bi = InvDatabase.FindByID(num4); if (bi != null) { var item = new InvGameItem(num4, bi) { quality = (InvGameItem.Quality)Random.Range(0, max), itemLevel = NGUITools.RandomRange(bi.minItemLevel, bi.maxItemLevel) }; component.Equip(item); } else { Debug.LogWarning("Can't resolve the item ID of " + num4); } index++; } } Destroy(this); }