private void BreakEgg(float resultValue, float maxValue, CoreDamageTypes damageTypes, DamageCategory damageCategory, Vector2 damageDirection) { float value = UnityEngine.Random.Range(0.0f, 1.0f); bool flag = value < 0.15; if (flag && !Owner.HasPickupID(817)) { PlayerController player = this.Owner; float curHealth = player.healthHaver.GetCurrentHealth(); AkSoundEngine.PostEvent("Play_WPN_egg_impact_01", base.gameObject); player.PlayEffectOnActor(ResourceCache.Acquire("Global VFX/VFX_Healing_Sparkles_001") as GameObject, Vector3.zero, true, false, false); player.healthHaver.ForceSetCurrentHealth(curHealth + 0.5f); UnityEngine.Object.Destroy(base.gameObject, 1f); player.DropPassiveItem(this); PickupObject.ItemQuality itemQuality = PickupObject.ItemQuality.D; PickupObject itemOfTypeAndQuality = LootEngine.GetItemOfTypeAndQuality <PickupObject>(itemQuality, (UnityEngine.Random.value >= 0.5f) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable, false); if (itemOfTypeAndQuality) { LootEngine.SpawnItem(itemOfTypeAndQuality.gameObject, base.transform.position, Vector2.up, 0.1f, true, false, false); } } else { return; } }
private void HandleRatBossSetup() { GameObject SpecialRatBoss = DungeonPlaceableUtility.InstantiateDungeonPlaceable(EnemyDatabase.GetOrLoadByGuid("6868795625bd46f3ae3e4377adce288b").gameObject, m_ParentRoom, new IntVector2(17, 28), true, AIActor.AwakenAnimationType.Awaken, true); AIActor RatBossAIActor = SpecialRatBoss.GetComponent <AIActor>(); if (RatBossAIActor != null) { PickupObject.ItemQuality targetQuality = (UnityEngine.Random.value >= 0.2f) ? ((!BraveUtility.RandomBool()) ? PickupObject.ItemQuality.C : PickupObject.ItemQuality.D) : PickupObject.ItemQuality.B; GenericLootTable lootTable = (!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable; PickupObject item = LootEngine.GetItemOfTypeAndQuality <PickupObject>(targetQuality, lootTable, false); PickupObject item2 = LootEngine.GetItemOfTypeAndQuality <PickupObject>(targetQuality, lootTable, false); Destroy(RatBossAIActor.gameObject.GetComponent <ResourcefulRatDeathController>()); Destroy(RatBossAIActor.gameObject.GetComponent <ResourcefulRatRewardRoomController>()); RatBossAIActor.State = AIActor.ActorState.Awakening; RatBossAIActor.StealthDeath = true; RatBossAIActor.healthHaver.gameObject.AddComponent <ExpandSpawnGlitchObjectOnDeath>(); ExpandSpawnGlitchObjectOnDeath ObjectSpawnerComponent = RatBossAIActor.healthHaver.gameObject.GetComponent <ExpandSpawnGlitchObjectOnDeath>(); ObjectSpawnerComponent.spawnRatCorpse = true; ObjectSpawnerComponent.ratCorpseSpawnsKey = true; ObjectSpawnerComponent.parentEnemyWasRat = true; if (item && item2) { RatBossAIActor.AdditionalSafeItemDrops = new List <PickupObject> { item, item2 }; } RatBossAIActor.healthHaver.enabled = true; RatBossAIActor.healthHaver.forcePreventVictoryMusic = true; RatBossAIActor.ConfigureOnPlacement(m_ParentRoom); RatBossAIActor.specRigidbody.CollideWithOthers = true; } }
public static T GetWeightedRandomItem <T>() where T : PickupObject { float r = Random.Range(0, 1.3f); PickupObject.ItemQuality quality; if (r < .5f) { quality = PickupObject.ItemQuality.D; } else if (r < .9f) { quality = PickupObject.ItemQuality.C; } else if (r < 1.2f) { quality = PickupObject.ItemQuality.B; } else if (r < 1.25f) { quality = PickupObject.ItemQuality.A; } else { quality = PickupObject.ItemQuality.S; } var table = typeof(Gun) == typeof(T) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable; return(LootEngine.GetItemOfTypeAndQuality <T>(quality, table, false)); }
protected override void Update() { PlayerController player = Owner as PlayerController; if (player.inventory.AllGuns.Count <= 2) { this.currentGun = player.CurrentGun; //currentGun.HasEverBeenAcquiredByPlayer = true; //player.inventory.RemoveGunFromInventory(currentGun); //currentGun.DropGun(0.5f); } else if (player.inventory.AllGuns.Count >= 3) { //Gun currentGun = player.CurrentGun; this.currentGun.HasEverBeenAcquiredByPlayer = true; player.inventory.RemoveGunFromInventory(this.currentGun); this.currentGun.DropGun(0.5f); } PlayerItem item = LootEngine.GetItemOfTypeAndQuality <PlayerItem>(ItemQuality.D, GameManager.Instance.RewardManager.ItemsLootTable, true); base.Update(); bool flag = base.Owner; if (flag) { this.HandleRads(base.Owner); } }
// Token: 0x060006D4 RID: 1748 RVA: 0x0003AD10 File Offset: 0x00038F10 public static void Accept(PlayerController player, GameObject npc) { PickupObject.ItemQuality itemQuality = ItemQuality.D; PickupObject itemOfTypeAndQuality = LootEngine.GetItemOfTypeAndQuality <Gun>(itemQuality, GameManager.Instance.RewardManager.GunsLootTable, false); LootEngine.SpawnItem(itemOfTypeAndQuality.gameObject, player.specRigidbody.UnitCenter, Vector2.down, 1f, false, true, false); OldManBreach.storedPlayer = player; }
private void AWholeNewWorld(PlayerController player) { ThanksGame = !ThanksGame; if (ThanksGame && player) { LootEngine.GivePrefabToPlayer(LootEngine.GetItemOfTypeAndQuality <PickupObject>(ItemQuality.B, GameManager.Instance.RewardManager.ItemsLootTable, true).gameObject, player); } }
private void OnEnemyDamaged(float damage, bool fatal, HealthHaver enemyHealth) { if (enemyHealth.specRigidbody != null) { bool flag2 = enemyHealth.aiActor && fatal; if (flag2) { if (ItemChanceBoost == true) { this.random = UnityEngine.Random.Range(0.00f, 1.00f); if (random <= 0.08f) { this.RollRnG(); this.Spawnquality = (PickupObject.ItemQuality)(RnG); this.target = LootEngine.GetItemOfTypeAndQuality <PickupObject>(this.Spawnquality, GameManager.Instance.RewardManager.ItemsLootTable, false); LootEngine.SpawnItem(this.target.gameObject, enemyHealth.specRigidbody.UnitCenter, Vector2.down, 0f, false, true, false); ItemChanceBoost = false; } } else //if (ItemChanceBoost == false) { this.random = UnityEngine.Random.Range(0.00f, 1.00f); if (random <= 0.025f) { this.RollRnG(); this.Spawnquality = (PickupObject.ItemQuality)(RnG); this.target = LootEngine.GetItemOfTypeAndQuality <PickupObject>(this.Spawnquality, GameManager.Instance.RewardManager.ItemsLootTable, false); LootEngine.SpawnItem(this.target.gameObject, enemyHealth.specRigidbody.UnitCenter, Vector2.down, 0f, false, true, false); } } { if (GunChanceBoost == true) { this.random = UnityEngine.Random.Range(0.00f, 1.00f); if (random <= 0.08f) { this.RollRnG(); this.Spawnquality = (PickupObject.ItemQuality)(RnG); this.target1 = LootEngine.GetItemOfTypeAndQuality <PickupObject>(this.Spawnquality, GameManager.Instance.RewardManager.GunsLootTable, false); LootEngine.SpawnItem(this.target1.gameObject, enemyHealth.specRigidbody.UnitCenter, Vector2.down, 0f, false, true, false); GunChanceBoost = false; } } else // if (GunChanceBoost == false) { this.random = UnityEngine.Random.Range(0.00f, 1.00f); if (random <= 0.025f) { this.RollRnG(); this.Spawnquality = (PickupObject.ItemQuality)(RnG); this.target1 = LootEngine.GetItemOfTypeAndQuality <PickupObject>(this.Spawnquality, GameManager.Instance.RewardManager.GunsLootTable, false); LootEngine.SpawnItem(this.target1.gameObject, enemyHealth.specRigidbody.UnitCenter, Vector2.down, 0f, false, true, false); } } } } } }
private void RerollItem(DebrisObject debris) { int checkLimit = 0; PickupObject targetedItem = debris.gameObject.GetComponent <PickupObject>(); if (targetedItem != null) { ItemQuality targetTier = targetedItem.quality; int chanceToDowngrade = 10; int chanceToUpgrade = 80; ItemQuality newItemQuality = targetTier; PickupObject newItemObject = PickupObjectDatabase.GetByName("cel:test_item"); int RollToCheckUpgradeStatus = UnityEngine.Random.Range(0, 101); if (RollToCheckUpgradeStatus <= chanceToDowngrade && targetTier != ItemQuality.D) { newItemQuality = targetTier - 1; } else if (RollToCheckUpgradeStatus >= chanceToUpgrade && targetTier != ItemQuality.S) { newItemQuality = targetTier + 1; } GenericLootTable lootTableItems = GameManager.Instance.RewardManager.ItemsLootTable; if (targetedItem is PassiveItem) { do { newItemObject = LootEngine.GetItemOfTypeAndQuality <PassiveItem>(newItemQuality, lootTableItems); checkLimit++; } while (newItemObject.PickupObjectId == targetedItem.PickupObjectId && checkLimit < 10); } else if (targetedItem is PlayerItem) { do { newItemObject = LootEngine.GetItemOfTypeAndQuality <PlayerItem>(newItemQuality, lootTableItems); checkLimit++; } while (newItemObject.PickupObjectId == targetedItem.PickupObjectId && checkLimit < 10); } if (UnityEngine.Random.Range(0, 101) <= 1) { Chest rainbow_Chest = GameManager.Instance.RewardManager.Rainbow_Chest; Chest chest2 = Chest.Spawn(rainbow_Chest, targetedItem.sprite.WorldCenter.ToIntVector2(VectorConversions.Round)); chest2.BecomeGlitchChest(); chest2.sprite.renderer.material.shader = ShaderCache.Acquire("Brave/Internal/RainbowChestShader"); chest2.RegisterChestOnMinimap(chest2.GetAbsoluteParentRoom()); } else { LootEngine.DoDefaultPurplePoof(targetedItem.sprite.WorldCenter); LootEngine.SpawnItem(newItemObject.gameObject, targetedItem.sprite.WorldCenter, Vector2.zero, 0); } Destroy(targetedItem.gameObject); } }
protected void CreateRewardItem() { PickupObject.ItemQuality itemQuality = PickupObject.ItemQuality.B; PickupObject itemOfTypeAndQuality = LootEngine.GetItemOfTypeAndQuality <PickupObject>(itemQuality, (UnityEngine.Random.value >= 0.5f) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable, false); if (itemOfTypeAndQuality) { LootEngine.SpawnItem(itemOfTypeAndQuality.gameObject, base.transform.position, Vector2.up, 0.1f, true, false, false); } }
protected override void DoEffect(PlayerController user) { PickupObject.ItemQuality itemQuality = ItemQuality.D; PickupObject itemOfTypeAndQuality = LootEngine.GetItemOfTypeAndQuality <Gun>(itemQuality, GameManager.Instance.RewardManager.GunsLootTable, false); LootEngine.SpawnItem(itemOfTypeAndQuality.gameObject, LastOwner.specRigidbody.UnitCenter, Vector2.up, 1f, false, true, false); PickupObject stuffdone = LootEngine.GetItemOfTypeAndQuality <PassiveItem>(itemQuality, GameManager.Instance.RewardManager.ItemsLootTable, false); LootEngine.SpawnItem(stuffdone.gameObject, LastOwner.specRigidbody.UnitCenter, Vector2.up, 1f, false, true, false); PickupObject dothingitdo = LootEngine.GetItemOfTypeAndQuality <PlayerItem>(itemQuality, GameManager.Instance.RewardManager.ItemsLootTable, false); LootEngine.SpawnItem(dothingitdo.gameObject, LastOwner.specRigidbody.UnitCenter, Vector2.up, 1f, false, true, false); }
private void DoItemSpawn() { if (ItemList == null) { ItemList = new List <PickupObject>(); if (numberOfDefaultItemsToSpawn == 1) { PickupObject.ItemQuality targetQuality = (Random.value >= 0.2f) ? ((!BraveUtility.RandomBool()) ? PickupObject.ItemQuality.C : PickupObject.ItemQuality.D) : PickupObject.ItemQuality.B; GenericLootTable lootTable = (!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable; PickupObject item = LootEngine.GetItemOfTypeAndQuality <PickupObject>(targetQuality, lootTable, false); if (item) { LootEngine.SpawnItem(item.gameObject, specRigidbody.GetUnitCenter(ColliderType.HitBox), Vector2.zero, 0f, true, true, false); } return; } else { for (int i = 0; i < numberOfDefaultItemsToSpawn; i++) { PickupObject.ItemQuality targetQuality = (Random.value >= 0.2f) ? ((!BraveUtility.RandomBool()) ? PickupObject.ItemQuality.C : PickupObject.ItemQuality.D) : PickupObject.ItemQuality.B; GenericLootTable lootTable = (!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable; PickupObject item = LootEngine.GetItemOfTypeAndQuality <PickupObject>(targetQuality, lootTable, false); if (item) { ItemList.Add(item); } } } } if (ItemList.Count <= 0) { return; } if (ItemList.Count == 1) { LootEngine.SpawnItem(ItemList[0].gameObject, specRigidbody.GetUnitCenter(ColliderType.HitBox), Vector2.zero, 0f, true, true, false); return; } else if (ItemList.Count > 1) { foreach (PickupObject pickupObject in ItemList) { LootEngine.SpawnItem(pickupObject.gameObject, specRigidbody.GetUnitCenter(ColliderType.HitBox), Vector2.zero, 0f, true, true, false); } } return; }
private void GiveItem() { float itemOrGun = UnityEngine.Random.value; PickupObject itemToSpawn = null; if (itemOrGun > 0.5) { itemToSpawn = LootEngine.GetItemOfTypeAndQuality <PickupObject>(PickupObject.ItemQuality.A, GameManager.Instance.RewardManager.ItemsLootTable, true); } else { itemToSpawn = LootEngine.GetItemOfTypeAndQuality <Gun>(PickupObject.ItemQuality.A, GameManager.Instance.RewardManager.GunsLootTable, true); } LootEngine.SpawnItem(itemToSpawn.gameObject, Owner.sprite.WorldCenter, Vector2.zero, 0); }
public static void Init() { string name = "Enigma"; string resourcePath = "BunnyMod/Resources/Artifacts/enigma.png"; GameObject gameObject = new GameObject(); ArtifactOfEnigma boomGuon = gameObject.AddComponent <ArtifactOfEnigma>(); ItemBuilder.AddSpriteToObject(name, resourcePath, gameObject); string shortDesc = "Active Gambler"; string longDesc = "Your active item changes on use or after 30 seconds. Timer starts on pickup."; boomGuon.SetupItem(shortDesc, longDesc, "bny"); boomGuon.quality = PickupObject.ItemQuality.EXCLUDED; boomGuon.Spawnquality = (PickupObject.ItemQuality)UnityEngine.Random.Range(1, 6); boomGuon.target = LootEngine.GetItemOfTypeAndQuality <PlayerItem>(boomGuon.Spawnquality, GameManager.Instance.RewardManager.ItemsLootTable, false); }
protected override void DoEffect(PlayerController user) { base.DoEffect(user); for (int i = 0; i < 15; i++) {/* * switch (rando.Next(1, 7)) * { * default: * case 1: * LootEngine.SpawnItem(PickupObjectDatabase.GetById(GreenCandy.GreenCandyID).gameObject, base.LastOwner.CurrentRoom.GetRandomVisibleClearSpot(1, 1).ToVector2(), Vector2.zero, 1f, false, true, false); * break; * case 2: * LootEngine.SpawnItem(PickupObjectDatabase.GetById(BlueCandy.BlueCandyID).gameObject, base.LastOwner.CurrentRoom.GetRandomVisibleClearSpot(1, 1).ToVector2(), Vector2.zero, 1f, false, true, false); * break; * case 3: * LootEngine.SpawnItem(PickupObjectDatabase.GetById(GoldenCandy.GoldenCandyID).gameObject, base.LastOwner.CurrentRoom.GetRandomVisibleClearSpot(1, 1).ToVector2(), Vector2.zero, 1f, false, true, false); * break; * case 4: * LootEngine.SpawnItem(PickupObjectDatabase.GetById(KeyCandy.GreyCandyID).gameObject, base.LastOwner.CurrentRoom.GetRandomVisibleClearSpot(1, 1).ToVector2(), Vector2.zero, 1f, false, true, false); * break; * case 5: * LootEngine.SpawnItem(PickupObjectDatabase.GetById(RedCandy.RedCandyID).gameObject, base.LastOwner.CurrentRoom.GetRandomVisibleClearSpot(1, 1).ToVector2(), Vector2.zero, 1f, false, true, false); * break; * case 6: * LootEngine.SpawnItem(PickupObjectDatabase.GetById(HeartCandy.HeartCandyID).gameObject, base.LastOwner.CurrentRoom.GetRandomVisibleClearSpot(1, 1).ToVector2(), Vector2.zero, 1f, false, true, false); * break; * }*/ } List <PickupObject> contents = new List <PickupObject>() { LootEngine.GetItemOfTypeAndQuality <PickupObject>(ItemQuality.A, GameManager.Instance.RewardManager.ItemsLootTable, false), LootEngine.GetItemOfTypeAndQuality <PickupObject>(ItemQuality.A, GameManager.Instance.RewardManager.ItemsLootTable, false), LootEngine.GetItemOfTypeAndQuality <PickupObject>(ItemQuality.A, GameManager.Instance.RewardManager.ItemsLootTable, false), LootEngine.GetItemOfTypeAndQuality <PickupObject>(ItemQuality.A, GameManager.Instance.RewardManager.ItemsLootTable, false), LootEngine.GetItemOfTypeAndQuality <PickupObject>(ItemQuality.A, GameManager.Instance.RewardManager.GunsLootTable, false), LootEngine.GetItemOfTypeAndQuality <PickupObject>(ItemQuality.S, GameManager.Instance.RewardManager.ItemsLootTable, false), LootEngine.GetItemOfTypeAndQuality <PickupObject>(ItemQuality.S, GameManager.Instance.RewardManager.ItemsLootTable, false), LootEngine.GetItemOfTypeAndQuality <PickupObject>(ItemQuality.S, GameManager.Instance.RewardManager.ItemsLootTable, false), }; Chest chest = Chest.Spawn(GameManager.Instance.RewardManager.C_Chest, user.sprite.WorldCenter + Vector2.down, user.sprite.WorldCenter.GetAbsoluteRoom(), true); chest.IsLocked = false; chest.contents = contents; chest.sprite.renderer.material.shader = ShaderCache.Acquire("Brave/LitCutoutUberPhantom"); chest.sprite.usesOverrideMaterial = true; thechest = chest; }
private IEnumerator ProperActiveReset() { ChangeSpiceWeight(); yield return(new WaitForSeconds(30f)); { base.Owner.activeItems.Clear(); { base.Owner.spiceCount = -1; this.Spawnquality = (PickupObject.ItemQuality)UnityEngine.Random.Range(1, 6); this.target = LootEngine.GetItemOfTypeAndQuality <PlayerItem>(this.Spawnquality, GameManager.Instance.RewardManager.ItemsLootTable, false); LootEngine.TryGivePrefabToPlayer(this.target.gameObject, base.Owner, true); } GameManager.Instance.StartCoroutine(ProperActiveReset()); } yield break; }
private IEnumerator DoReward(PlayerController user, Vector2 positionToSpawn, int pickupObject) { float curseAmount = 1; if (pickupObject == SpecialAPIsStuffIDs.CrownOfTheJammedID) { GameObject superReaper = PrefabDatabase.Instance.SuperReaper; Vector2 vector = positionToSpawn - new Vector2(5, 3); Instantiate(superReaper, vector.ToVector3ZUp(0f), Quaternion.identity); } if (pickupObject == 442) { curseAmount = 3; StatModifier damageup = new StatModifier(); damageup.statToBoost = PlayerStats.StatType.Damage; damageup.amount = 1.2f; damageup.modifyType = StatModifier.ModifyMethod.MULTIPLICATIVE; user.ownerlessStatModifiers.Add(damageup); user.stats.RecalculateStats(user, false, false); } //ETGModConsole.Log("DoReward Triggered"); yield return(new WaitForSeconds(1f)); // ETGModConsole.Log("Passed The Wait"); if (UnityEngine.Random.value <= 0.5f) { PassiveItem itemOfTypeAndQuality = LootEngine.GetItemOfTypeAndQuality <PassiveItem>(AOrSWhatWillItBe(), GameManager.Instance.RewardManager.ItemsLootTable, false); LootEngine.SpawnItem(itemOfTypeAndQuality.gameObject, positionToSpawn, Vector2.left, 0f, false, true, true); } else { Gun itemOfTypeAndQuality = LootEngine.GetItemOfTypeAndQuality <Gun>(AOrSWhatWillItBe(), GameManager.Instance.RewardManager.GunsLootTable, false); LootEngine.SpawnItem(itemOfTypeAndQuality.gameObject, positionToSpawn, Vector2.left, 0f, false, true, true); } StatModifier statModifier4 = new StatModifier(); statModifier4.statToBoost = PlayerStats.StatType.Curse; statModifier4.amount = curseAmount; statModifier4.modifyType = StatModifier.ModifyMethod.ADDITIVE; user.ownerlessStatModifiers.Add(statModifier4); user.stats.RecalculateStats(user, false, false); yield break; }
public static void Init() { string itemName = "The Lead Hand"; string resourceName = "BunnyMod/Resources/theleadhand"; GameObject obj = new GameObject(itemName); LeadHand leadhand = obj.AddComponent <LeadHand>(); ItemBuilder.AddSpriteToObject(itemName, resourceName, obj); string shortDesc = "The Reclaimer"; string longDesc = "The Jammed are a gift from Kaliber, you are simply not attuned to be granted their gifts.\n\nMay this relic showcase some of the hidden gifts of the Jammed."; leadhand.SetupItem(shortDesc, longDesc, "bny"); leadhand.quality = PickupObject.ItemQuality.B; leadhand.AddPassiveStatModifier(PlayerStats.StatType.Curse, 1.5f, StatModifier.ModifyMethod.ADDITIVE); leadhand.AddToSubShop(ItemBuilder.ShopType.Cursula, 1f); leadhand.Spawnquality = (PickupObject.ItemQuality)UnityEngine.Random.Range(1, 6); leadhand.target = LootEngine.GetItemOfTypeAndQuality <PassiveItem>(leadhand.Spawnquality, GameManager.Instance.RewardManager.ItemsLootTable, false); }
private IEnumerator CoolDown(PlayerController usingPlayer) { yield return(new WaitForSeconds(2f)); { usingPlayer.activeItems.Clear(); yield return(new WaitForSeconds(1f)); { base.Owner.spiceCount = -1; ChangeSpiceWeight(); this.Spawnquality = (PickupObject.ItemQuality)UnityEngine.Random.Range(1, 6); this.target = LootEngine.GetItemOfTypeAndQuality <PlayerItem>(this.Spawnquality, GameManager.Instance.RewardManager.ItemsLootTable, false); LootEngine.TryGivePrefabToPlayer(this.target.gameObject, base.Owner, true); } } yield break; }
public IEnumerator GiveGregDeathPayout(PlayerController playerOwner, Vector3 positionToSpawn, PickupObject itemInPlayerInventory, bool isGoodMimic, bool hasSynergyFreeRange, bool hasSynergyGregSalad) { itemInPlayerInventory.CanBeDropped = false; PickupObject itemToSpawn = null; if (hasSynergyFreeRange) { float randomType = UnityEngine.Random.value; if (randomType <= 0.25f) { itemToSpawn = LootEngine.GetItemOfTypeAndQuality <PlayerItem>(PickupObject.ItemQuality.A, GameManager.Instance.RewardManager.ItemsLootTable, true); } else if (randomType <= 0.625f) { itemToSpawn = LootEngine.GetItemOfTypeAndQuality <Gun>(PickupObject.ItemQuality.A, GameManager.Instance.RewardManager.GunsLootTable, true); } else { itemToSpawn = LootEngine.GetItemOfTypeAndQuality <PassiveItem>(PickupObject.ItemQuality.A, GameManager.Instance.RewardManager.ItemsLootTable, true); } } else { itemToSpawn = LootEngine.GetItemOfTypeAndQuality <CompanionItem>(PickupObject.ItemQuality.A, GameManager.Instance.RewardManager.ItemsLootTable, true); } yield return(new WaitForSeconds(1f)); LootEngine.SpawnItem(itemToSpawn.gameObject, positionToSpawn, Vector2.zero, 1f, false, true, true); if (hasSynergyGregSalad) { for (int i = 0; i < 5; i++) { LootEngine.SpawnItem(PickupObjectDatabase.GetById(BraveUtility.RandomElement(lootIDlist)).gameObject, positionToSpawn, Vector2.zero, 1f, false, true, false); } } for (int i = 0; i < playerOwner.passiveItems.Count; i++) { if (playerOwner.passiveItems[i] == itemInPlayerInventory) { playerOwner.RemovePassiveItemAtIndex(i); // if (isGoodMimic) playerOwner.AcquirePassiveItemPrefabDirectly(PickupObjectDatabase.GetById(664) as PassiveItem); } } }
protected override void DoEffect(PlayerController user) { base.DoEffect(user); foreach (AIActor aiactor in user.CurrentRoom.GetActiveEnemies(Dungeonator.RoomHandler.ActiveEnemyType.All)) { if (aiactor != null && aiactor.healthHaver != null && aiactor.healthHaver.IsAlive && !aiactor.healthHaver.IsBoss && !aiactor.IsMimicEnemy && !aiactor.IsHarmlessEnemy) { int num = UnityEngine.Random.Range(1, 5); ItemQuality quality; if (num == 1) { quality = ItemQuality.D; } else if (num == 2) { quality = ItemQuality.C; } else if (num == 3) { quality = ItemQuality.B; } else if (num == 4) { quality = ItemQuality.A; } else { quality = ItemQuality.S; } GenericLootTable lootTable = UnityEngine.Random.value <= 0.5f ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable; bool spawnsExtraItem = false; if (UnityEngine.Random.value < 0.5f && user.PlayerHasActiveSynergy("#WONDA-WONDER_WONDER-WONDA!!!")) { spawnsExtraItem = true; GenericLootTable singleItemRewardTable = GameManager.Instance.RewardManager.CurrentRewardData.SingleItemRewardTable; LootEngine.SpawnItem(singleItemRewardTable.SelectByWeight(false), aiactor.sprite.WorldCenter, Vector2.right, 1f, true, false, false); } PickupObject po = LootEngine.GetItemOfTypeAndQuality <PickupObject>(quality, lootTable); LootEngine.SpawnItem(po.gameObject, aiactor.sprite.WorldCenter, spawnsExtraItem ? Vector2.left : Vector2.zero, spawnsExtraItem ? 1f : 0f, true, false, false); LootEngine.DoDefaultItemPoof(aiactor.sprite.WorldCenter); aiactor.EraseFromExistence(true); } } }
private IEnumerator DoSurprise() { yield return(new WaitForSeconds(0.7f)); AkSoundEngine.PostEvent("play_obj_chest_open_01", gameObject); DoConfetti(sprite.WorldBottomCenter); PickupObject.ItemQuality targetQuality = PickupObject.ItemQuality.D; float m_RandomFloat = UnityEngine.Random.value; Vector2 SpawnPosition = specRigidbody.GetPixelCollider(ColliderType.HitBox).UnitCenter; if (UnityEngine.Random.value < 0.3) { targetQuality = (m_RandomFloat >= 0.2f) ? ((!BraveUtility.RandomBool()) ? PickupObject.ItemQuality.B : PickupObject.ItemQuality.C) : PickupObject.ItemQuality.B; } else { targetQuality = (m_RandomFloat >= 0.2f) ? ((!BraveUtility.RandomBool()) ? PickupObject.ItemQuality.C : PickupObject.ItemQuality.D) : PickupObject.ItemQuality.C; } SurpriseChestEnemySpawnPool = SurpriseChestEnemySpawnPool.Shuffle(); AIActor Enemy = AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(BraveUtility.RandomElement(SurpriseChestEnemySpawnPool)), SpawnPosition, m_room, true, AIActor.AwakenAnimationType.Spawn, true); if (Enemy) { Enemy.IgnoreForRoomClear = false; GenericLootTable lootTable = (!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable; PickupObject item = LootEngine.GetItemOfTypeAndQuality <PickupObject>(targetQuality, lootTable, false); if (item) { Enemy.AdditionalSafeItemDrops.Add(item); } ExpandParadropController paraDropController = Enemy.gameObject.AddComponent <ExpandParadropController>(); paraDropController.Configured = true; } yield return(null); if (Enemy && !Enemy.IgnoreForRoomClear) { m_room.SealRoom(); } yield break; }
private IEnumerator Misdirect() { yield return(new WaitForSeconds(1f)); PlayerController player = this.LastOwner; PickupObject.ItemQuality itemQuality = PickupObject.ItemQuality.S; PickupObject.ItemQuality itemQuality2 = PickupObject.ItemQuality.A; PickupObject itemOfTypeAndQuality = LootEngine.GetItemOfTypeAndQuality <PickupObject>(itemQuality, GameManager.Instance.RewardManager.ItemsLootTable, false); PickupObject itemOfTypeAndQuality2 = LootEngine.GetItemOfTypeAndQuality <PickupObject>(itemQuality2, GameManager.Instance.RewardManager.ItemsLootTable, false); LootEngine.SpawnItem(itemOfTypeAndQuality.gameObject, player.specRigidbody.UnitCenter, Vector2.left, 1f, false, true, false); LootEngine.SpawnItem(itemOfTypeAndQuality2.gameObject, player.specRigidbody.UnitCenter, Vector2.right, 1f, false, true, false); yield return(new WaitForSeconds(15f)); string text; string header; header = "I told you not to press it"; text = "Prepare to feel the pain"; this.Notify(header, text); yield return(new WaitForSeconds(2f)); Material glitchPass = new Material(Shader.Find("Brave/Internal/GlitchUnlit")); Pixelator.Instance.RegisterAdditionalRenderPass(glitchPass); yield return(new WaitForSeconds(2f)); GameManager.Instance.InjectedFlowPath = "Core Game Flows/Secret_DoubleBeholster_Flow"; Pixelator.Instance.FadeToBlack(0.5f, false, 0f); GameManager.Instance.DelayedLoadNextLevel(0.5f); yield return(new WaitForSeconds(1f)); PlayerController user = this.LastOwner; user.healthHaver.NextShotKills = true; yield break; }
public static void ChestPreOpen(Action <Chest, PlayerController> orig, Chest chest, PlayerController opener) { if (opener.CurrentGun && opener.CurrentGun.PickupObjectId == EntropewID) { if (opener.CurrentGun.ammo >= 150) { chest.PredictContents(opener); List <PickupObject> newCont = new List <PickupObject>(); int itemNum = chest.contents.Count; for (int i = 0; i < itemNum; i++) { PickupObject item = LootEngine.GetItemOfTypeAndQuality <PickupObject>(LootHelpers.RandomTier(), null, false); newCont.Add(item); } chest.contents.Clear(); chest.contents.AddRange(newCont); opener.CurrentGun.ammo -= 150; } } orig(chest, opener); }
public void DropLoot(HealthHaver enemyHealth, bool fatal) { bool flag = enemyHealth.aiActor && enemyHealth.aiActor.IsBlackPhantom; if (flag) { this.random = UnityEngine.Random.Range(0.00f, 1.00f); if (random <= 0.15f) { this.random = UnityEngine.Random.Range(0.00f, 1.00f); if (random <= 0.99f) { int num3 = UnityEngine.Random.Range(0, 3); bool flag3 = num3 == 0; if (flag3) { LootEngine.SpawnItem(PickupObjectDatabase.GetById(224).gameObject, enemyHealth.specRigidbody.UnitCenter, Vector2.zero, 1f, false, true, false); } bool flag4 = num3 == 1; if (flag4) { LootEngine.SpawnItem(PickupObjectDatabase.GetById(67).gameObject, enemyHealth.specRigidbody.UnitCenter, Vector2.zero, 1f, false, true, false); } bool flag6 = num3 == 2; if (flag6) { LootEngine.SpawnItem(PickupObjectDatabase.GetById(78).gameObject, enemyHealth.specRigidbody.UnitCenter, Vector2.right, 1f, false, true, false); } } else { this.Spawnquality = (PickupObject.ItemQuality)UnityEngine.Random.Range(1, 6); this.target = LootEngine.GetItemOfTypeAndQuality <PassiveItem>(this.Spawnquality, GameManager.Instance.RewardManager.ItemsLootTable, false); LootEngine.SpawnItem(this.target.gameObject, enemyHealth.specRigidbody.UnitCenter, Vector2.up, 1f, false, true, false); } } } }
private PickupObject OpenRandom(PlayerController user) { PickupObject.ItemQuality startQuality = PickupObject.ItemQuality.D; PickupObject.ItemQuality endQuality = PickupObject.ItemQuality.S; PickupObject.ItemQuality itemQuality = (PickupObject.ItemQuality)UnityEngine.Random.Range((int)startQuality, (int)(endQuality + 1)); PickupObject itemOfTypeAndQuality = (UnityEngine.Random.value >= 0.5f) ? LootEngine.GetItemOfTypeAndQuality <PickupObject>(itemQuality, GameManager.Instance.RewardManager.GunsLootTable, false) : LootEngine.GetItemOfTypeAndQuality <PickupObject>(itemQuality, GameManager.Instance.RewardManager.ItemsLootTable, false); DebrisObject debrisObject = LootEngine.SpawnItem(itemOfTypeAndQuality.gameObject, user.CenterPosition, Vector2.up, 1f, true, true, false); if (debrisObject) { Vector2 v = (!debrisObject.sprite) ? (debrisObject.transform.position.XY() + new Vector2(0.5f, 0.5f)) : debrisObject.sprite.WorldCenter; GameObject gameObject = SpawnManager.SpawnVFX((GameObject)BraveResources.Load("Global VFX/VFX_BlackPhantomDeath", ".prefab"), v, Quaternion.identity, false); if (gameObject && gameObject.GetComponent <tk2dSprite>()) { tk2dSprite component = gameObject.GetComponent <tk2dSprite>(); component.HeightOffGround = 5f; component.UpdateZDepth(); } return(debrisObject.GetComponentInChildren <PickupObject>()); } return(null); }
public void DropLoot(HealthHaver enemyHealth, bool fatal) { bool flag = enemyHealth.aiActor && enemyHealth.aiActor.IsBlackPhantom; if (flag) { this.random = UnityEngine.Random.Range(0.00f, 1.00f); if (random <= 0.166f) { this.random = UnityEngine.Random.Range(0.00f, 1.00f); if (random <= 0.99f) { int id = BraveUtility.RandomElement <int>(LeadHand.Lootdrops); LootEngine.SpawnItem(PickupObjectDatabase.GetById(id).gameObject, enemyHealth.specRigidbody.UnitCenter, Vector2.zero, 0f, false, true, false); } else { this.Spawnquality = (PickupObject.ItemQuality)UnityEngine.Random.Range(1, 6); this.target = LootEngine.GetItemOfTypeAndQuality <PassiveItem>(this.Spawnquality, GameManager.Instance.RewardManager.ItemsLootTable, false); LootEngine.SpawnItem(this.target.gameObject, enemyHealth.specRigidbody.UnitCenter, Vector2.up, 1f, false, true, false); } } } }
private static IEnumerator ToilEnemyDupe(AIActor AIActor) { yield return(null); string guid = AIActor.EnemyGuid; var enemyPrefab = EnemyDatabase.GetOrLoadByGuid(guid); AIActor aiactor = AIActor.Spawn(enemyPrefab, AIActor.gameActor.CenterPosition.ToIntVector2(VectorConversions.Floor), AIActor.GetAbsoluteParentRoom(), true, AIActor.AwakenAnimationType.Default, true); HasBeenAffectedByCurrentChallenge challengitude = aiactor.gameObject.AddComponent <HasBeenAffectedByCurrentChallenge>(); challengitude.linkedOther = AIActor; HasBeenAffectedByCurrentChallenge challengitude2 = AIActor.gameObject.AddComponent <HasBeenAffectedByCurrentChallenge>(); challengitude2.linkedOther = aiactor; aiactor.procedurallyOutlined = true; AIActor.procedurallyOutlined = true; aiactor.IsWorthShootingAt = AIActor.IsWorthShootingAt; aiactor.IgnoreForRoomClear = AIActor.IgnoreForRoomClear; aiactor.AssignedCurrencyToDrop = AIActor.AssignedCurrencyToDrop; aiactor.AdditionalSafeItemDrops = AIActor.AdditionalSafeItemDrops; aiactor.AdditionalSimpleItemDrops = AIActor.AdditionalSimpleItemDrops; aiactor.CanTargetEnemies = AIActor.CanTargetEnemies; aiactor.CanTargetPlayers = AIActor.CanTargetPlayers; if (AIActor.IsInReinforcementLayer) { aiactor.HandleReinforcementFallIntoRoom(0f); } if (AIActor.GetComponent <KillOnRoomClear>() != null) { KillOnRoomClear kill = aiactor.gameObject.GetOrAddComponent <KillOnRoomClear>(); kill.overrideDeathAnim = AIActor.GetComponent <KillOnRoomClear>().overrideDeathAnim; kill.preventExplodeOnDeath = AIActor.GetComponent <KillOnRoomClear>().preventExplodeOnDeath; } if (aiactor.EnemyGuid == "22fc2c2c45fb47cf9fb5f7b043a70122") { aiactor.CollisionDamage = 0f; aiactor.specRigidbody.AddCollisionLayerIgnoreOverride(CollisionMask.LayerToMask(CollisionLayer.PlayerHitBox)); aiactor.specRigidbody.AddCollisionLayerIgnoreOverride(CollisionMask.LayerToMask(CollisionLayer.Projectile)); } else if (aiactor.EnemyGuid == "249db525a9464e5282d02162c88e0357") { if (aiactor.gameObject.GetComponent <SpawnEnemyOnDeath>()) { UnityEngine.Object.Destroy(aiactor.gameObject.GetComponent <SpawnEnemyOnDeath>()); } } else if (EasyEnemyTypeLists.VanillaMimics.Contains(aiactor.EnemyGuid)) { if (AIActor.AdditionalSafeItemDrops != null && aiactor.AdditionalSafeItemDrops != null) { List <PickupObject> newDrops = new List <PickupObject>(); PickupObject.ItemQuality qual = PickupObject.ItemQuality.D; int itemsToReAdd = 0; for (int i = (aiactor.AdditionalSafeItemDrops.Count - 1); i >= 0; i--) { if (!BabyGoodChanceKin.lootIDlist.Contains(aiactor.AdditionalSafeItemDrops[i].PickupObjectId)) { qual = aiactor.AdditionalSafeItemDrops[i].quality; itemsToReAdd++; } else { newDrops.Add(PickupObjectDatabase.GetById(aiactor.AdditionalSafeItemDrops[i].PickupObjectId)); } } if (itemsToReAdd > 0) { for (int i = 0; i < itemsToReAdd; i++) { PickupObject item = LootEngine.GetItemOfTypeAndQuality <PassiveItem>(qual, null, false); if (UnityEngine.Random.value <= 0.5f) { item = LootEngine.GetItemOfTypeAndQuality <Gun>(qual, null, false); } newDrops.Add(item); } aiactor.AdditionalSafeItemDrops = newDrops; } } } GameManager.Instance.StartCoroutine(Shrimk(aiactor)); GameManager.Instance.StartCoroutine(Shrimk(AIActor)); aiactor.specRigidbody.Reinitialize(); yield break; }
//Doubles the damage, makes the next shot kill the player, and stores the amount we buffed the player for later private void StartEffect(PlayerController user) { int gunRng = UnityEngine.Random.Range(1, 100); PlayerController player = this.LastOwner; switch (gunRng) { case 1: PickupObject.ItemQuality itemQualityS = PickupObject.ItemQuality.S; PickupObject itemOfTypeAndQualityS = LootEngine.GetItemOfTypeAndQuality <PickupObject>(itemQualityS, GameManager.Instance.RewardManager.GunsLootTable, false); LootEngine.SpawnItem(itemOfTypeAndQualityS.gameObject, player.specRigidbody.UnitCenter, Vector2.left, 1f, false, true, false); break; case 2: case 3: PickupObject.ItemQuality itemQualityA = PickupObject.ItemQuality.A; PickupObject itemOfTypeAndQualityA = LootEngine.GetItemOfTypeAndQuality <PickupObject>(itemQualityA, GameManager.Instance.RewardManager.GunsLootTable, false); LootEngine.SpawnItem(itemOfTypeAndQualityA.gameObject, player.specRigidbody.UnitCenter, Vector2.left, 1f, false, true, false); break; case 4: case 5: case 6: case 7: PickupObject.ItemQuality itemQualityB = PickupObject.ItemQuality.B; PickupObject itemOfTypeAndQualityB = LootEngine.GetItemOfTypeAndQuality <PickupObject>(itemQualityB, GameManager.Instance.RewardManager.GunsLootTable, false); LootEngine.SpawnItem(itemOfTypeAndQualityB.gameObject, player.specRigidbody.UnitCenter, Vector2.left, 1f, false, true, false); break; case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: PickupObject.ItemQuality itemQualityC = PickupObject.ItemQuality.C; PickupObject itemOfTypeAndQualityC = LootEngine.GetItemOfTypeAndQuality <PickupObject>(itemQualityC, GameManager.Instance.RewardManager.GunsLootTable, false); LootEngine.SpawnItem(itemOfTypeAndQualityC.gameObject, player.specRigidbody.UnitCenter, Vector2.left, 1f, false, true, false); break; case 16: case 17: case 18: case 19: case 20: case 21: case 22: case 23: case 24: case 25: case 26: case 27: case 28: case 29: case 30: case 31: PickupObject.ItemQuality itemQualityD = PickupObject.ItemQuality.D; PickupObject itemOfTypeAndQualityD = LootEngine.GetItemOfTypeAndQuality <PickupObject>(itemQualityD, GameManager.Instance.RewardManager.GunsLootTable, false); LootEngine.SpawnItem(itemOfTypeAndQualityD.gameObject, player.specRigidbody.UnitCenter, Vector2.left, 1f, false, true, false); break; default: LootEngine.SpawnItem(PickupObjectDatabase.GetById(31).gameObject, player.specRigidbody.UnitCenter, Vector2.left, 1f, false, true, false); break; } }
// Token: 0x060001C4 RID: 452 RVA: 0x00012A0C File Offset: 0x00010C0C public static void Accept(PlayerController player, GameObject shrine) { int num3 = UnityEngine.Random.Range(0, 19); bool DTier = num3 == 0 | num3 == 1 | num3 == 2; if (DTier) { ShrineOfTheLeadLord.RnG = 1; } bool CTier = num3 == 3 | num3 == 4 | num3 == 5 | num3 == 6 | num3 == 7 | num3 == 8 | num3 == 9; if (CTier) { ShrineOfTheLeadLord.RnG = 2; } bool BTier = num3 == 10 | num3 == 11 | num3 == 12 | num3 == 13 | num3 == 14 | num3 == 15; if (BTier) { ShrineOfTheLeadLord.RnG = 3; } bool ATier = num3 == 16 | num3 == 17 | num3 == 18; if (ATier) { ShrineOfTheLeadLord.RnG = 4; } bool STier = num3 == 19; if (STier) { ShrineOfTheLeadLord.RnG = 5; } PlayerController primaryPlayer = GameManager.Instance.PrimaryPlayer; ShrineOfTheLeadLord.Spawnquality = (PickupObject.ItemQuality)(RnG); int num4 = UnityEngine.Random.Range(0, 2); bool DTGUN = num4 == 0; if (DTGUN) { ShrineOfTheLeadLord.target = LootEngine.GetItemOfTypeAndQuality <PickupObject>(ShrineOfTheLeadLord.Spawnquality, GameManager.Instance.RewardManager.ItemsLootTable, false); LootEngine.SpawnItem(ShrineOfTheLeadLord.target.gameObject, primaryPlayer.specRigidbody.UnitCenter, Vector2.left, 0f, false, true, false); } bool ietm = num4 == 1; if (ietm) { ShrineOfTheLeadLord.target1 = LootEngine.GetItemOfTypeAndQuality <PickupObject>(ShrineOfTheLeadLord.Spawnquality, GameManager.Instance.RewardManager.GunsLootTable, false); LootEngine.SpawnItem(ShrineOfTheLeadLord.target1.gameObject, primaryPlayer.specRigidbody.UnitCenter, Vector2.right, 0f, false, true, false); } string header = "The bargain has been accepted."; string text = "The Jammed are released."; player.PlayEffectOnActor(ResourceCache.Acquire("Global VFX/VFX_Curse") as GameObject, Vector3.zero, true, false, false); ShrineOfTheLeadLord.Notify(header, text); shrine.GetComponent <ShrineFactory.CustomShrineController>().numUses++; shrine.GetComponent <ShrineFactory.CustomShrineController>().GetRidOfMinimapIcon(); AkSoundEngine.PostEvent("Play_ENM_darken_world_01", shrine); if (GameManager.HasInstance && GameManager.Instance.Dungeon != null && GameManager.Instance.Dungeon.data != null) { foreach (RoomHandler room in GameManager.Instance.Dungeon.data.rooms) { if (room.area.PrototypeRoomCategory == PrototypeDungeonRoom.RoomCategory.BOSS && room.area.PrototypeRoomBossSubcategory == PrototypeDungeonRoom.RoomBossSubCategory.FLOOR_BOSS && room.GetActiveEnemies(RoomHandler.ActiveEnemyType.RoomClear) != null) { foreach (AIActor aiactor in room.GetActiveEnemies(RoomHandler.ActiveEnemyType.RoomClear)) { //bool result; if (aiactor != null && aiactor.healthHaver != null && aiactor.healthHaver.IsBoss && aiactor.healthHaver.IsAlive && !aiactor.IsBlackPhantom) { aiactor.BecomeBlackPhantom(); } } } } } }
private void spawnRecycledItem() { PickupObject itemOfTypeAndQuality = LootEngine.GetItemOfTypeAndQuality <PickupObject>(itemToGiveQuality, GameManager.Instance.RewardManager.ItemsLootTable, false); LootEngine.SpawnItem(itemOfTypeAndQuality.gameObject, LastOwner.specRigidbody.UnitCenter, Vector2.left, 1f, false, true, false); }