public static void AllItemsAre() { if (itemPool.Count == 0) { return; } foreach (PickupObject pickupObject in UnityEngine.Object.FindObjectsOfType <PickupObject>()) { //ETGModConsole.Log("ID: " + pickupObject.PickupObjectId + " | InstanceID: " + pickupObject.GetInstanceID() + " | Name: " + pickupObject.name); bool continueThen = false; foreach (PickupObject item in itemPool) { if (item.PickupObjectId == pickupObject.PickupObjectId) { continueThen = true; break; } } if (continueThen) { continue; } if (pickupObject.GetComponentInParent <AIActor>() != null) { if (pickupObject.GetComponentInParent <AIActor>().IsMimicEnemy) { continue; } } if (pickupObject.GetComponentInParent <BeholsterTentacleController>() != null) { continue; } if (GameManager.Instance.PrimaryPlayer != null) { if (GameManager.Instance.PrimaryPlayer.characterIdentity == PlayableCharacters.Pilot) { if (pickupObject.PickupObjectId == Game.Items.Get("trusty_lockpicks").PickupObjectId) { continue; } } else if (GameManager.Instance.PrimaryPlayer.characterIdentity == PlayableCharacters.Convict) { if (pickupObject.PickupObjectId == Game.Items.Get("molotov").PickupObjectId) { continue; } } else if (GameManager.Instance.PrimaryPlayer.characterIdentity == PlayableCharacters.Soldier) { if (pickupObject.PickupObjectId == Game.Items.Get("supply_drop").PickupObjectId) { continue; } } else if (GameManager.Instance.PrimaryPlayer.characterIdentity == PlayableCharacters.Robot) { if (pickupObject.PickupObjectId == Game.Items.Get("coolant_leak").PickupObjectId) { continue; } } } if (!settingBools[2] && pickupObject.PickupObjectId == glassGuonID) { continue; } else if (!settingBools[12] && pickupObject.PickupObjectId == mapItemID) { continue; } else if (!settingBools[1] && pickupObject.PickupObjectId == junkID) { continue; } else if (pickupObject.PickupObjectId == keyID) { continue; } else if (pickupObject.PickupObjectId == heartID) { continue; } else if (pickupObject.PickupObjectId == GlobalItemIds.Blank) { continue; } else if (pickupObject.PickupObjectId == halfHeartID) { continue; } if (pickupObject as Gun != null && settingBools[3]) { Gun gun = pickupObject.GetComponent <Gun>(); if (gun.HasBeenPickedUp) { safeItems.Add(gun.GetInstanceID()); continue; } else { if (!safeItems.Contains(gun.GetInstanceID())) { LootEngine.SpawnItem(itemPool.ElementAt(UnityEngine.Random.Range(0, itemPool.Count)).gameObject, pickupObject.transform.position, Vector2.up, 1.0f); UnityEngine.Object.Destroy(gun.gameObject); } } } else if (pickupObject as PassiveItem != null && settingBools[4]) { PassiveItem passiveItem = pickupObject.GetComponent <PassiveItem>(); if (passiveItem.PickedUp) { safeItems.Add(passiveItem.GetInstanceID()); continue; } else { if (!safeItems.Contains(passiveItem.GetInstanceID())) { { LootEngine.SpawnItem(itemPool.ElementAt(UnityEngine.Random.Range(0, itemPool.Count)).gameObject, pickupObject.transform.position, Vector2.up, 1.0f); UnityEngine.Object.Destroy(passiveItem.gameObject); } } } } else if (pickupObject as PlayerItem != null && settingBools[5]) { PlayerItem playerItem = pickupObject.GetComponent <PlayerItem>(); if (playerItem.LastOwner != null) { safeItems.Add(playerItem.GetInstanceID()); continue; } else { if (!safeItems.Contains(playerItem.GetInstanceID())) { LootEngine.SpawnItem(itemPool.ElementAt(UnityEngine.Random.Range(0, itemPool.Count)).gameObject, pickupObject.transform.position, Vector2.up, 1.0f); UnityEngine.Object.Destroy(playerItem.gameObject); } } } else { continue; } } foreach (ShopItemController shopItem in UnityEngine.Object.FindObjectsOfType <ShopItemController>()) { bool continueSoon = false; foreach (PickupObject itemToTest in itemPool) { if (itemToTest.PickupObjectId == shopItem.item.PickupObjectId) { continueSoon = true; } } if (!settingBools[3] && shopItem.item is Gun) { continue; } else if (!settingBools[4] && shopItem.item is PassiveItem) { continue; } else if (!settingBools[5] && shopItem.item is PlayerItem) { continue; } if (continueSoon) { continue; } else { if (StaticReferenceManager.AllShops.Count > 0) { if (!settingBools[6] && (shopItem.item.PickupObjectId == halfHeartID || shopItem.item.PickupObjectId == heartID)) { continue; } else if (!settingBools[7] && shopItem.item.PickupObjectId == shieldID) { continue; } else if (!settingBools[8] && shopItem.item.PickupObjectId == blankID) { continue; } else if (!settingBools[9] && (shopItem.item.PickupObjectId == ammoID || shopItem.item.PickupObjectId == spreadAmmoID)) { continue; } else if (!settingBools[10] && shopItem.item.PickupObjectId == keyID) { continue; } else if (!settingBools[2] && shopItem.item.PickupObjectId == glassGuonID) { continue; } else if (!settingBools[12] && shopItem.item.PickupObjectId == mapItemID) { continue; } else if (!settingBools[1] && shopItem.item.PickupObjectId == junkID) { continue; } else if (shopItem.IsResourcefulRatKey) { continue; } else { float distanceToClosest = 555555f; BaseShopController shopToUse = StaticReferenceManager.AllShops.First(); foreach (BaseShopController shop in StaticReferenceManager.AllShops) { foreach (Transform tran in shop.spawnPositions) { if (shopItem.GetDistanceToPoint(tran.position) < distanceToClosest) { distanceToClosest = shopItem.GetDistanceToPoint(tran.position); shopToUse = shop; } } foreach (Transform tran in shop.spawnPositionsGroup2) { if (shopItem.GetDistanceToPoint(tran.position) < distanceToClosest) { distanceToClosest = shopItem.GetDistanceToPoint(tran.position); shopToUse = shop; } } } int priceBefore = shopItem.CurrentPrice; shopItem.Initialize(itemPool.ElementAt(UnityEngine.Random.Range(0, itemPool.Count)), shopToUse); if (!settingBools[11]) { shopItem.OverridePrice = priceBefore; } else if (shopItem.OverridePrice == 9999) { ETGModConsole.Log("New Payday item in shop... adjusting price to avoid 9999 cost item"); shopItem.OverridePrice = 69; //heheheheheheh } } } } } foreach (RewardPedestal pedestal in UnityEngine.Object.FindObjectsOfType <RewardPedestal>()) { if (pedestal.pickedUp || pedestal.contents == null) { continue; } bool conAfter = false; foreach (PickupObject idem in itemPool) { if (pedestal.contents.PickupObjectId == idem.PickupObjectId) { conAfter = true; } } if (conAfter) { continue; } if (!settingBools[3] && pedestal.contents is Gun) { continue; } else if (!settingBools[4] && pedestal.contents is PassiveItem) { continue; } else if (!settingBools[5] && pedestal.contents is PlayerItem) { continue; } else if (!settingBools[2] && pedestal.contents.PickupObjectId == glassGuonID) { continue; } else if (!settingBools[12] && pedestal.contents.PickupObjectId == mapItemID) { continue; } else if (!settingBools[1] && pedestal.contents.PickupObjectId == junkID) { continue; } else if (!settingBools[13] && pedestal.contents.PickupObjectId == crestID) { continue; } else if (!settingBools[0] && masterRoundIDs.Contains(pedestal.contents.PickupObjectId)) { continue; } PickupObject idemInstead = itemPool[UnityEngine.Random.Range(0, itemPool.Count)]; pedestal.contents = null; pedestal.IsBossRewardPedestal = false; pedestal.UsesSpecificItem = true; pedestal.SpecificItemId = idemInstead.PickupObjectId; pedestal.ForceConfiguration(); pedestal.spawnTransform.GetComponentInChildren <tk2dSprite>().sprite.Collection = idemInstead.sprite.Collection; pedestal.spawnTransform.GetComponentInChildren <tk2dSprite>().sprite.spriteId = idemInstead.sprite.spriteId; SpriteOutlineManager.AddOutlineToSprite(pedestal.spawnTransform.GetComponentInChildren <tk2dSprite>(), Color.black, 0.1f, 0.05f, SpriteOutlineManager.OutlineType.NORMAL); pedestal.spawnTransform.GetComponentInChildren <tk2dSprite>().HeightOffGround = 0.25f; pedestal.spawnTransform.GetComponentInChildren <tk2dSprite>().depthUsesTrimmedBounds = true; pedestal.spawnTransform.GetComponentInChildren <tk2dSprite>().PlaceAtPositionByAnchor(pedestal.spawnTransform.position, tk2dSprite.Anchor.LowerCenter); pedestal.spawnTransform.GetComponentInChildren <tk2dSprite>().transform.position = pedestal.spawnTransform.GetComponentInChildren <tk2dSprite>().transform.position.Quantize(1f / 16f); pedestal.spawnTransform.GetComponentInChildren <tk2dSprite>().UpdateZDepth(); } }