Esempio n. 1
0
        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;
            }
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 5
0
        // 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;
        }
Esempio n. 6
0
 private void AWholeNewWorld(PlayerController player)
 {
     ThanksGame = !ThanksGame;
     if (ThanksGame && player)
     {
         LootEngine.GivePrefabToPlayer(LootEngine.GetItemOfTypeAndQuality <PickupObject>(ItemQuality.B, GameManager.Instance.RewardManager.ItemsLootTable, true).gameObject, player);
     }
 }
Esempio n. 7
0
 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);
                     }
                 }
             }
         }
     }
 }
Esempio n. 8
0
        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);
            }
        }
Esempio n. 10
0
        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);
        }
Esempio n. 13
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);
        }
Esempio n. 14
0
        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;
        }
Esempio n. 15
0
        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;
        }
Esempio n. 16
0
        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;
        }
Esempio n. 17
0
        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);
        }
Esempio n. 18
0
        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);
                    }
                }
            }
Esempio n. 20
0
 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;
        }
Esempio n. 23
0
 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);
 }
Esempio n. 24
0
        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);
        }
Esempio n. 26
0
        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);
                    }
                }
            }
        }
Esempio n. 27
0
        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;
        }
Esempio n. 28
0
        //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;
            }
        }
Esempio n. 29
0
        // 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();
                            }
                        }
                    }
                }
            }
        }
Esempio n. 30
0
        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);
        }