Esempio n. 1
0
        // Token: 0x06007CE5 RID: 31973 RVA: 0x00316054 File Offset: 0x00314254
        public void Interact(PlayerController interactor)
        {
            if (!PassiveItem.IsFlagSetAtAll(typeof(CatchingMitts)) || base.projectile == null)
            {
                return;
            }
            PlayerController player = GameManager.Instance.PrimaryPlayer;

            CatchingMitts.cooldownBehavior cooldownBehavior = player.GetComponent <CatchingMitts.cooldownBehavior>();
            if (cooldownBehavior.parentItem.cooldown > 0.25f)
            {
                base.projectile.DieInAir(false, true, true, false);
                this.m_room.DeregisterInteractable(this);
                SpriteOutlineManager.RemoveOutlineFromSprite(base.sprite, false);
                if (player.PlayerHasActiveSynergy("Shortstop"))
                {
                    player.CurrentGun.GainAmmo(1);
                }
                else if (UnityEngine.Random.value <= 0.5f)
                {
                    player.CurrentGun.GainAmmo(1);
                }
                cooldownBehavior.parentItem.cooldown = 0f;
            }
        }
 // Token: 0x06007CE4 RID: 31972 RVA: 0x00316033 File Offset: 0x00314233
 public void OnExitRange(PlayerController interactor)
 {
     if (!PassiveItem.IsFlagSetAtAll(typeof(PickpocketGuide)))
     {
         return;
     }
     SpriteOutlineManager.RemoveOutlineFromSprite(base.sprite, true);
     SpriteOutlineManager.AddOutlineToSprite(base.sprite, Color.black);
 }
 private void Start()
 {
     if (!PassiveItem.IsFlagSetAtAll(typeof(PickpocketGuide)))
     {
         return;
     }
     this.m_room = GameManager.Instance.Dungeon.data.GetAbsoluteRoomFromPosition(base.transform.position.IntXY(VectorConversions.Round));
     this.m_room.RegisterInteractable(this);
 }
Esempio n. 4
0
 // Token: 0x06007CE4 RID: 31972 RVA: 0x00316033 File Offset: 0x00314233
 public void OnExitRange(PlayerController interactor)
 {
     if (!PassiveItem.IsFlagSetAtAll(typeof(CatchingMitts)) || !base.sprite || !base.projectile)
     {
         return;
     }
     SpriteOutlineManager.RemoveOutlineFromSprite(base.sprite, true);
     SpriteOutlineManager.AddOutlineToSprite(base.sprite, Color.black);
 }
		// Token: 0x06007CE3 RID: 31971 RVA: 0x0026DAFF File Offset: 0x0026BCFF
		public void OnEnteredRange(PlayerController interactor)
		{
            if (!PassiveItem.IsFlagSetAtAll(typeof(LootersGloves)))
            {
				return;
            }
			SpriteOutlineManager.RemoveOutlineFromSprite(base.sprite, true);
			SpriteOutlineManager.AddOutlineToSprite(base.sprite, Color.white);
		}
		private void Start()
		{
			if (!PassiveItem.IsFlagSetAtAll(typeof(LootersGloves)))
			{
				return;
			}
			this.m_room = GameManager.Instance.Dungeon.data.GetAbsoluteRoomFromPosition(base.transform.position.IntXY(VectorConversions.Round));
			this.m_room.RegisterInteractable(this);
			SpriteOutlineManager.AddOutlineToSprite(base.sprite, Color.black);
		}
        // Token: 0x06007CE5 RID: 31973 RVA: 0x00316054 File Offset: 0x00314254
        public void Interact(PlayerController interactor)
        {
            if (!PassiveItem.IsFlagSetAtAll(typeof(PickpocketGuide)))
            {
                return;
            }
            PlayerController player            = GameManager.Instance.PrimaryPlayer;
            FloorRewardData  currentRewardData = GameManager.Instance.RewardManager.CurrentRewardData;

            LootEngine.AmmoDropType ammoDropType = LootEngine.AmmoDropType.DEFAULT_AMMO;
            bool   flag  = LootEngine.DoAmmoClipCheck(currentRewardData, out ammoDropType);
            string path  = (ammoDropType != LootEngine.AmmoDropType.SPREAD_AMMO) ? "Ammo_Pickup" : "Ammo_Pickup_Spread";
            float  value = UnityEngine.Random.value;
            float  num   = currentRewardData.ChestSystem_ChestChanceLowerBound;

            if (value <= 0.2f)
            {
                IntVector2 bestRewardLocation = base.sprite.WorldCenter.ToIntVector2();
                LootEngine.SpawnItem((GameObject)BraveResources.Load(path, ".prefab"), bestRewardLocation.ToVector3(), Vector2.up, 1f, true, true, false);
            }
            else if (value <= 0.95f)
            {
                GameObject gameObject;
                if (value <= 0.6f)
                {
                    gameObject = currentRewardData.SingleItemRewardTable.SelectByWeight(false);
                }
                else
                {
                    gameObject = ((UnityEngine.Random.value >= 0.9f) ? GameManager.Instance.RewardManager.FullHeartPrefab.gameObject : GameManager.Instance.RewardManager.HalfHeartPrefab.gameObject);
                }
                DebrisObject debrisObject = LootEngine.SpawnItem(gameObject, base.sprite.WorldCenter.ToIntVector2().ToVector3() + new Vector3(0.25f, 0f, 0f), Vector2.up, 1f, true, true, false);
                AkSoundEngine.PostEvent("Play_OBJ_item_spawn_01", debrisObject.gameObject);
            }
            else
            {
                GameManager.Instance.RewardManager.SpawnTotallyRandomItem(base.sprite.WorldCenter);
            }
            this.m_room.DeregisterInteractable(this);
            PickpocketGuide.unstealthBehavior unstealthBehavior = player.gameObject.GetOrAddComponent <PickpocketGuide.unstealthBehavior>();
            unstealthBehavior.parentItem.BreakStealth(player);
        }
Esempio n. 8
0
        public static void CurseRoomRewardMethod(Action <RoomHandler> orig, RoomHandler self)
        {
            bool harderlotj = JammedSquire.NoHarderLotJ;

            if (harderlotj)
            {
                orig(self);
            }
            else
            {
                orig(self);
                FloorRewardData         currentRewardData = GameManager.Instance.RewardManager.CurrentRewardData;
                LootEngine.AmmoDropType ammoDropType      = LootEngine.AmmoDropType.DEFAULT_AMMO;
                bool   flag  = LootEngine.DoAmmoClipCheck(currentRewardData, out ammoDropType);
                string path  = (ammoDropType != LootEngine.AmmoDropType.SPREAD_AMMO) ? "Ammo_Pickup" : "Ammo_Pickup_Spread";
                float  value = UnityEngine.Random.value;
                float  num   = currentRewardData.ChestSystem_ChestChanceLowerBound;
                //float num2 = GameManager.Instance.PrimaryPlayer.stats.GetStatValue(PlayerStats.StatType.Coolness) / 100f;
                float num3 = (GameManager.Instance.PrimaryPlayer.stats.GetStatValue(PlayerStats.StatType.Curse) / 250f);
                if (GameManager.Instance.CurrentGameType == GameManager.GameType.COOP_2_PLAYER)
                {
                    num3 += GameManager.Instance.SecondaryPlayer.stats.GetStatValue(PlayerStats.StatType.Curse) / 250f;
                }
                if (PassiveItem.IsFlagSetAtAll(typeof(ChamberOfEvilItem)))
                {
                    num3 *= 1.25f;
                }
                num = Mathf.Clamp(num + GameManager.Instance.PrimaryPlayer.AdditionalChestSpawnChance, currentRewardData.ChestSystem_ChestChanceLowerBound, currentRewardData.ChestSystem_ChestChanceUpperBound) + num3;
                bool  flag2 = currentRewardData.SingleItemRewardTable != null;
                bool  flag3 = false;
                float num4  = 0.1f;
                if (!RoomHandler.HasGivenRoomChestRewardThisRun && MetaInjectionData.ForceEarlyChest)
                {
                    flag3 = true;
                }
                if (flag3)
                {
                    if (!RoomHandler.HasGivenRoomChestRewardThisRun && (GameManager.Instance.CurrentFloor == 1 || GameManager.Instance.CurrentFloor == -1))
                    {
                        flag2 = false;
                        num  += num4;
                        if (GameManager.Instance.PrimaryPlayer && GameManager.Instance.PrimaryPlayer.NumRoomsCleared > 4)
                        {
                            num = 1f;
                        }
                    }
                    if (!RoomHandler.HasGivenRoomChestRewardThisRun && self.distanceFromEntrance < RoomHandler.NumberOfRoomsToPreventChestSpawning)
                    {
                        GameManager.Instance.Dungeon.InformRoomCleared(false, false);
                        return;
                    }
                }
                BraveUtility.Log("Current chest spawn chance: " + num, Color.yellow, BraveUtility.LogVerbosity.IMPORTANT);
                if (value > num)
                {
                    if (flag)
                    {
                        IntVector2 bestRewardLocation = self.GetBestRewardLocation(new IntVector2(1, 1), RoomHandler.RewardLocationStyle.CameraCenter, true);
                        LootEngine.SpawnItem((GameObject)BraveResources.Load(path, ".prefab"), bestRewardLocation.ToVector3(), Vector2.up, 1f, true, true, false);
                    }
                    GameManager.Instance.Dungeon.InformRoomCleared(false, false);
                    return;
                }
                if (flag2)
                {
                    float num5 = currentRewardData.PercentOfRoomClearRewardsThatAreChests;
                    if (PassiveItem.IsFlagSetAtAll(typeof(AmazingChestAheadItem)))
                    {
                        num5 *= 2f;
                        num5  = Mathf.Max(0.5f, num5);
                    }
                    flag2 = (UnityEngine.Random.value > num5);
                }
                if (flag2)
                {
                    float      num6 = (GameManager.Instance.CurrentGameType != GameManager.GameType.COOP_2_PLAYER) ? GameManager.Instance.RewardManager.SinglePlayerPickupIncrementModifier : GameManager.Instance.RewardManager.CoopPickupIncrementModifier;
                    GameObject gameObject;
                    if (UnityEngine.Random.value < 1f / num6)
                    {
                        gameObject = currentRewardData.SingleItemRewardTable.SelectByWeight(false);
                    }
                    else
                    {
                        gameObject = ((UnityEngine.Random.value >= 0.9f) ? GameManager.Instance.RewardManager.FullHeartPrefab.gameObject : GameManager.Instance.RewardManager.HalfHeartPrefab.gameObject);
                    }
                    UnityEngine.Debug.Log(gameObject.name + "SPAWNED");
                    DebrisObject debrisObject = LootEngine.SpawnItem(gameObject, self.GetBestRewardLocation(new IntVector2(1, 1), RoomHandler.RewardLocationStyle.CameraCenter, true).ToVector3() + new Vector3(0.25f, 0f, 0f), Vector2.up, 1f, true, true, false);
                    Exploder.DoRadialPush(debrisObject.sprite.WorldCenter.ToVector3ZUp(debrisObject.sprite.WorldCenter.y), 8f, 3f);
                    AkSoundEngine.PostEvent("Play_OBJ_item_spawn_01", debrisObject.gameObject);
                    GameManager.Instance.Dungeon.InformRoomCleared(true, false);
                }
                else
                {
                    IntVector2 bestRewardLocation = self.GetBestRewardLocation(new IntVector2(2, 1), RoomHandler.RewardLocationStyle.CameraCenter, true);
                    bool       isRainbowRun       = GameStatsManager.Instance.IsRainbowRun;
                    if (isRainbowRun)
                    {
                        LootEngine.SpawnBowlerNote(GameManager.Instance.RewardManager.BowlerNoteChest, bestRewardLocation.ToCenterVector2(), self, true);
                        RoomHandler.HasGivenRoomChestRewardThisRun = true;
                    }
                    else
                    {
                        Chest exists = self.SpawnRoomRewardChest(null, bestRewardLocation);
                        if (exists)
                        {
                            RoomHandler.HasGivenRoomChestRewardThisRun = true;
                        }
                    }
                    GameManager.Instance.Dungeon.InformRoomCleared(true, true);
                }
                if (flag)
                {
                    IntVector2 bestRewardLocation = self.GetBestRewardLocation(new IntVector2(1, 1), RoomHandler.RewardLocationStyle.CameraCenter, true);
                    LootEngine.DelayedSpawnItem(1f, (GameObject)BraveResources.Load(path, ".prefab"), bestRewardLocation.ToVector3() + new Vector3(0.25f, 0f, 0f), Vector2.up, 1f, true, true, false);
                }
            }
        }