Exemplo n.º 1
0
        protected override void OnBlank(SilencerInstance silencerInstance, Vector2 centerPoint, PlayerController user)
        {
            var ddgm = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(Library.VenomGoop);

            ddgm.TimedAddGoopCircle(Owner.sprite.WorldCenter, 8f, .35f);
            base.OnBlank(silencerInstance, centerPoint, user);
        }
Exemplo n.º 2
0
        private void HandleBlankOnDestruction(Projectile obj)
        {
            GameObject silencerVFX    = (GameObject)ResourceCache.Acquire("Global VFX/BlankVFX_Ghost");
            GameObject bigSilencerVFX = (GameObject)ResourceCache.Acquire("Global VFX/BlankVFX");

            if (useTinyBlank)
            {
                AkSoundEngine.PostEvent("Play_OBJ_silenceblank_small_01", base.gameObject);
            }
            else
            {
                AkSoundEngine.PostEvent("Play_OBJ_silenceblank_use_01", base.gameObject);
            }
            GameObject       gameObject                = new GameObject("silencer");
            SilencerInstance silencerInstance          = gameObject.AddComponent <SilencerInstance>();
            float            additionalTimeAtMaxRadius = 0.25f;
            PlayerController player = obj.Owner as PlayerController;

            if (player)
            {
                if (useTinyBlank)
                {
                    silencerInstance.TriggerSilencer(((!obj.specRigidbody) ? obj.transform.position.XY() : obj.specRigidbody.UnitCenter), 20f, 10f, silencerVFX, 0f, 3f, 3f, 3f, 30f, 3f, additionalTimeAtMaxRadius, player, true, false);
                }
                else
                {
                    silencerInstance.TriggerSilencer(((!obj.specRigidbody) ? obj.transform.position.XY() : obj.specRigidbody.UnitCenter), 50f, 25f, bigSilencerVFX, 0.15f, 0.2f, 50f, 10f, 140f, 15f, 0.5f, player, true, false);
                }
            }
        }
Exemplo n.º 3
0
            static void Postfix(PlayerController __instance)
            {
                if (__instance.AcceptingNonMotionInput)
                {
                    BraveInput instanceForPlayer = BraveInput.GetInstanceForPlayer(__instance.PlayerIDX);
                    bool       isKeyboard        = instanceForPlayer.IsKeyboardAndMouse(false);
                    if (isKeyboard)
                    {
                        if (Input.GetKeyDown(KeyCode.H))
                        {
                            util.ToggleHealthBars();
                            logger.LogInfo($"Toggled health bars to {util.healthBars}");
                        }
                        if (Input.GetKeyDown(KeyCode.Z))
                        {
                            util.ToggleAutoBlank();
                            logger.LogInfo($"Toggled auto blank to {util.autoBlank}");
                        }

                        if (Input.GetKeyDown(KeyCode.G))
                        {
                            SilencerInstance.DestroyBulletsInRange(GameManager.Instance.PrimaryPlayer.CenterPosition, 10000, true, true);
                        }
                        if (Input.GetKeyDown(KeyCode.I))
                        {
                            ReadFiles();
                        }
                        if (Input.GetKeyDown(KeyCode.U))
                        {
                            SpawnItems();
                        }

                        if (Input.GetKeyDown(KeyCode.O))
                        {
                            BraveTime.RegisterTimeScaleMultiplier(0.5f, __instance.gameObject);
                            logger.LogInfo($"Applied time multiplier");
                        }

                        if (Input.GetKeyDown(KeyCode.P))
                        {
                            BraveTime.ClearMultiplier(__instance.gameObject);
                            logger.LogInfo($"Cleared time multiplier");
                        }

                        if (Input.GetKeyDown(KeyCode.K))
                        {
                            configGodModeEnabled.Value = !configGodModeEnabled.Value;
                            logger.LogInfo($"Toggled godmode to {configGodModeEnabled.Value}");
                        }

                        if (Input.GetKeyDown(KeyCode.J))
                        {
                            configInfiniteAmmoEnabled.Value = !configInfiniteAmmoEnabled.Value;
                            logger.LogInfo($"Toggled infinite ammo to {configInfiniteAmmoEnabled.Value}");
                        }
                    }
                }
            }
Exemplo n.º 4
0
        protected override void OnBlank(SilencerInstance silencerInstance, Vector2 centerPoint, PlayerController user)
        {
            var bundle = ResourceManager.LoadAssetBundle("shared_auto_001");
            var goop   = bundle.LoadAsset <GoopDefinition>("assets/data/goops/napalmgoopquickignite.asset");
            var ddgm   = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(goop);

            ddgm.TimedAddGoopCircle(Owner.sprite.WorldCenter, 8f, .35f);
            base.OnBlank(silencerInstance, centerPoint, user);
        }
Exemplo n.º 5
0
        private void doMiniBlank(Vector2 position)
        {
            GameObject silencerVFX = (GameObject)ResourceCache.Acquire("Global VFX/BlankVFX_Ghost");

            AkSoundEngine.PostEvent("Play_OBJ_silenceblank_small_01", base.gameObject);
            GameObject       gameObject                = new GameObject("silencer");
            SilencerInstance silencerInstance          = gameObject.AddComponent <SilencerInstance>();
            float            additionalTimeAtMaxRadius = 0.25f;

            silencerInstance.TriggerSilencer(position, 25f, 5f, silencerVFX, 0f, 3f, 3f, 3f, 250f, 5f, additionalTimeAtMaxRadius, owner, false, false);
        }
Exemplo n.º 6
0
        private void DoMicroBlank(Vector2 center)
        {
            PlayerController player      = this.Owner;
            GameObject       silencerVFX = (GameObject)ResourceCache.Acquire("Global VFX/BlankVFX_Ghost");

            AkSoundEngine.PostEvent("Play_ITM_Crisis_Stone_Impact_01", base.gameObject);
            GameObject       gameObject                = new GameObject("silencer");
            SilencerInstance silencerInstance          = gameObject.AddComponent <SilencerInstance>();
            float            additionalTimeAtMaxRadius = 0.25f;

            silencerInstance.TriggerSilencer(center, 20f, 3f, silencerVFX, 0f, 3f, 3f, 3f, 30f, 3f, additionalTimeAtMaxRadius, player, true, false);
        }
Exemplo n.º 7
0
        private void DoMicroBlank(Vector2 center, float knockbackForce = 30f)
        {
            PlayerController owner       = base.LastOwner;
            GameObject       silencerVFX = (GameObject)ResourceCache.Acquire("Global VFX/BlankVFX_Ghost");

            AkSoundEngine.PostEvent("Play_OBJ_silenceblank_small_01", base.gameObject);
            GameObject       gameObject                = new GameObject("silencer");
            SilencerInstance silencerInstance          = gameObject.AddComponent <SilencerInstance>();
            float            additionalTimeAtMaxRadius = 0.25f;

            silencerInstance.TriggerSilencer(center, 25f, 5f, silencerVFX, 0f, 3f, 3f, 3f, 250f, 5f, additionalTimeAtMaxRadius, owner, false, false);
        }
Exemplo n.º 8
0
        private void DoBlankDisappear(SpeculativeRigidbody myRigidbody, PixelCollider myCollider, SpeculativeRigidbody other, PixelCollider otherCollider)
        {
            PlayerController owner     = base.Owner;
            Projectile       component = other.GetComponent <Projectile>();

            if (component != null && !(component.Owner is PlayerController))
            {
                GameObject silencerVFX = (GameObject)ResourceCache.Acquire("Global VFX/BlankVFX_Ghost");
                AkSoundEngine.PostEvent("Play_OBJ_silenceblank_small_01", base.gameObject);
                GameObject       gameObject                = new GameObject("silencer");
                SilencerInstance silencerInstance          = gameObject.AddComponent <SilencerInstance>();
                float            additionalTimeAtMaxRadius = 0.25f;
                silencerInstance.TriggerSilencer(myRigidbody.UnitCenter, 25f, 5f, silencerVFX, 0f, 3f, 3f, 3f, 250f, 5f, additionalTimeAtMaxRadius, owner, false, false);
            }
            ArmourGuonStone.guonHook.Dispose();
        }
        public override void OnReloadPressed(PlayerController player, Gun gun, bool bSOMETHING)
        {
            if (HasReloaded && gun.ClipShotsRemaining < gun.ClipCapacity / 2)
            {
                HasReloaded = false;
                PlayerController owner       = this.gun.CurrentOwner as PlayerController;
                GameObject       silencerVFX = (GameObject)ResourceCache.Acquire("Global VFX/BlankVFX_Ghost");
                AkSoundEngine.PostEvent("Play_OBJ_silenceblank_small_01", base.gameObject);
                GameObject       gameObject                = new GameObject("silencer");
                SilencerInstance silencerInstance          = gameObject.AddComponent <SilencerInstance>();
                float            additionalTimeAtMaxRadius = 0.25f;
                silencerInstance.TriggerSilencer(owner.sprite.WorldCenter, 25f, 5f, silencerVFX, 0f, 3f, 3f, 3f, 250f, 5f, additionalTimeAtMaxRadius, owner, false, false);
            }

            base.OnReloadPressed(player, gun, bSOMETHING);
        }
Exemplo n.º 10
0
        public static void TransmogrifyHook(Action <AIActor, AIActor, GameObject> orig, AIActor aiactor, AIActor EnemyPrefab, GameObject EffectVFX)
        {
            orig(aiactor, EnemyPrefab, EffectVFX);

            if (GameManager.Instance.PrimaryPlayer != null)
            {
                if ((GameManager.Instance.PrimaryPlayer.HasPickupID(SpellbookID) && ((GameManager.Instance.PrimaryPlayer.HasPickupID(145) || GameManager.Instance.PrimaryPlayer.HasPickupID(61)))))
                {
                    GameObject silencerVFX = (GameObject)ResourceCache.Acquire("Global VFX/BlankVFX_Ghost");
                    AkSoundEngine.PostEvent("Play_OBJ_silenceblank_small_01", GameManager.Instance.PrimaryPlayer.gameObject);
                    GameObject       gameObject                = new GameObject("silencer");
                    SilencerInstance silencerInstance          = gameObject.AddComponent <SilencerInstance>();
                    float            additionalTimeAtMaxRadius = 0.25f;
                    silencerInstance.TriggerSilencer(aiactor.CenterPosition, 20f, 5f, silencerVFX, 0f, 3f, 3f, 3f, 30f, 3f, additionalTimeAtMaxRadius, GameManager.Instance.PrimaryPlayer, true, false);
                }
            }
        }
Exemplo n.º 11
0
        public void BadGas(PlayerController user)
        {
            PlayerController owner       = base.Owner;
            GameObject       silencerVFX = (GameObject)ResourceCache.Acquire("Global VFX/BlankVFX_Ghost");

            AkSoundEngine.PostEvent("Play_OBJ_silenceblank_small_01", base.gameObject);
            GameObject       gameObject                = new GameObject("silencer");
            SilencerInstance silencerInstance          = gameObject.AddComponent <SilencerInstance>();
            float            additionalTimeAtMaxRadius = 0.25f;

            silencerInstance.TriggerSilencer(user.specRigidbody.UnitCenter, 25f, 5f, silencerVFX, 0f, 3f, 3f, 3f, 250f, 5f, additionalTimeAtMaxRadius, owner, false, false);
            user.CurrentRoom.ApplyActionToNearbyEnemies(user.CenterPosition, 30f, delegate(AIActor enemy, float dist)
            {
                enemy.gameActor.ApplyEffect(this.poisonEffect, 1f, null);
            });
            Notify(null, "Bad Gas");
        }
Exemplo n.º 12
0
 public static void DoEasyBlank(this PlayerController blankOwner, Vector2 blankPosition, EasyBlankType type)
 {
     if (type == EasyBlankType.MINI)
     {
         GameObject silencerVFX = (GameObject)ResourceCache.Acquire("Global VFX/BlankVFX_Ghost");
         AkSoundEngine.PostEvent("Play_OBJ_silenceblank_small_01", blankOwner.gameObject);
         GameObject       gameObject                = new GameObject("silencer");
         SilencerInstance silencerInstance          = gameObject.AddComponent <SilencerInstance>();
         float            additionalTimeAtMaxRadius = 0.25f;
         silencerInstance.TriggerSilencer(blankPosition, 25f, 5f, silencerVFX, 0f, 3f, 3f, 3f, 250f, 5f, additionalTimeAtMaxRadius, blankOwner, false, false);
     }
     else if (type == EasyBlankType.FULL)
     {
         GameObject bigSilencerVFX = (GameObject)ResourceCache.Acquire("Global VFX/BlankVFX");
         AkSoundEngine.PostEvent("Play_OBJ_silenceblank_use_01", blankOwner.gameObject);
         GameObject       gameObject       = new GameObject("silencer");
         SilencerInstance silencerInstance = gameObject.AddComponent <SilencerInstance>();
         silencerInstance.TriggerSilencer(blankPosition, 50f, 25f, bigSilencerVFX, 0.15f, 0.2f, 50f, 10f, 140f, 15f, 0.5f, blankOwner, true, false);
     }
 }
Exemplo n.º 13
0
        //private static Projectile demonProjectile;

        protected override void DoEffect(PlayerController user)
        {
            base.DoEffect(user);
            if (user == null && user.specRigidbody == null)
            {
                return;
            }
            Projectile     ghostProjectile = user.HandleProjectile(11, 20, 15, false, user.specRigidbody.UnitCenter, true, user.CurrentGun != null ? user.CurrentGun.CurrentAngle + UnityEngine.Random.Range(-90f, 90f) : 0, 9);
            HomingModifier homing          = ghostProjectile.gameObject.AddComponent <HomingModifier>();

            homing.HomingRadius            = float.MaxValue;
            homing.AngularVelocity         = 180;
            ghostProjectile.OnDestruction += delegate(Projectile spooky)
            {
                GameObject silencerVFX = (GameObject)ResourceCache.Acquire("Global VFX/BlankVFX_Ghost");
                AkSoundEngine.PostEvent("Play_OBJ_silenceblank_small_01", base.gameObject);
                GameObject       gameObject       = new GameObject("silencer");
                SilencerInstance silencerInstance = gameObject.AddComponent <SilencerInstance>();
                silencerInstance.TriggerSilencer(spooky.specRigidbody.UnitCenter, 20f, 3, silencerVFX, 0f, 3f, 3f, 3f, 30f, 3f, 0.25f, user, false, false);
            };
        }
Exemplo n.º 14
0
 private void DoMicroBlank(Vector2 center)
 {
     try
     {
         PlayerController owner = gun.CurrentOwner as PlayerController;
         if (gun && owner)
         {
             GameObject silencerVFX = (GameObject)ResourceCache.Acquire("Global VFX/BlankVFX_Ghost");
             AkSoundEngine.PostEvent("Play_OBJ_silenceblank_small_01", base.gameObject);
             GameObject       gameObject                = new GameObject("silencer");
             SilencerInstance silencerInstance          = gameObject.AddComponent <SilencerInstance>();
             float            additionalTimeAtMaxRadius = 0.25f;
             silencerInstance.TriggerSilencer(center, 25f, 5f, silencerVFX, 0f, 3f, 3f, 3f, 250f, 5f, additionalTimeAtMaxRadius, owner, false, false);
         }
     }
     catch (Exception e)
     {
         ETGModConsole.Log(e.Message);
         ETGModConsole.Log(e.StackTrace);
     }
 }
Exemplo n.º 15
0
        private void InternalForceBlank(Vector2 center, float overrideRadius = 25f, float overrideTimeAtMaxRadius = 0.5f, bool silent = false, bool breaksWalls = true, bool breaksObjects = true, float overrideForce = -1f, Action <Projectile> customCallback = null)
        {
            GameObject silencerVFX = (!silent) ? ((GameObject)BraveResources.Load("Global VFX/BlankVFX", ".prefab")) : null;

            if (!silent)
            {
                AkSoundEngine.PostEvent("Play_OBJ_silenceblank_use_01", base.gameObject);
                AkSoundEngine.PostEvent("Stop_ENM_attack_cancel_01", base.gameObject);
            }
            GameObject       gameObject       = new GameObject("silencer");
            SilencerInstance silencerInstance = gameObject.AddComponent <SilencerInstance>();

            if (customCallback != null)
            {
                silencerInstance.UsesCustomProjectileCallback = true;
                silencerInstance.OnCustomBlankedProjectile    = customCallback;
            }
            silencerInstance.TriggerSilencer(center, 50f, overrideRadius, silencerVFX, (!silent) ? 0.15f : 0f, (!silent) ? 0.2f : 0f, (float)((!silent) ? 50 : 0), (float)((!silent) ? 10 : 0), (!silent) ? ((overrideForce < 0f) ? 140f : overrideForce) : 0f, (float)((!breaksObjects) ? 0 : ((!silent) ? 15 : 5)), overrideTimeAtMaxRadius, base.Owner, breaksWalls, false);
            if (base.Owner)
            {
                base.Owner.DoVibration(Vibration.Time.Quick, Vibration.Strength.Medium);
            }
        }
Exemplo n.º 16
0
 private void OnHitEnemy(Projectile bullet, SpeculativeRigidbody enemy, bool fatal)
 {
     if (bullet.Owner is PlayerController && (bullet.Owner as PlayerController).PlayerHasActiveSynergy("Parallel Lines"))
     {
         if (UnityEngine.Random.value <= 0.1f)
         {
             if (UnityEngine.Random.value <= 0.5f)
             {
                 GameObject silencerVFX = (GameObject)ResourceCache.Acquire("Global VFX/BlankVFX_Ghost");
                 AkSoundEngine.PostEvent("Play_OBJ_silenceblank_small_01", base.gameObject);
                 GameObject       gameObject                = new GameObject("silencer");
                 SilencerInstance silencerInstance          = gameObject.AddComponent <SilencerInstance>();
                 float            additionalTimeAtMaxRadius = 0.25f;
                 silencerInstance.TriggerSilencer(bullet.specRigidbody.UnitCenter, 25f, 5f, silencerVFX, 0f, 3f, 3f, 3f, 250f, 5f, additionalTimeAtMaxRadius, bullet.Owner as PlayerController, false, false);
             }
             else
             {
                 ExplosionData data = DataCloners.CopyExplosionData(StaticExplosionDatas.explosiveRoundsExplosion);
                 data.ignoreList.Add(bullet.ProjectilePlayerOwner().specRigidbody);
                 Exploder.Explode(bullet.specRigidbody.UnitCenter, data, Vector2.zero);
             }
         }
     }
 }
Exemplo n.º 17
0
        public void BlankModHook(Action <SilencerInstance, BlankModificationItem, Vector2, PlayerController> orig, SilencerInstance silencer, BlankModificationItem bmi, Vector2 centerPoint, PlayerController user)
        {
            orig(silencer, bmi, centerPoint, user);

            if (user.HasPickupID(ShatterblankID))
            {
                float degrees = 0;
                for (int i = 0; i < 15; i++)
                {
                    GameObject proj             = shatterProj.gameObject;
                    bool       needsToAddBounce = false;
                    bool       isBeamInstead    = false;
                    if (user.PlayerHasActiveSynergy("Frag Mental"))
                    {
                        if (user.CurrentGun && UnityEngine.Random.value <= 0.2f)
                        {
                            if (user.CurrentGun.DefaultModule.shootStyle == ProjectileModule.ShootStyle.Charged)
                            {
                                for (int j = 0; j < user.CurrentGun.DefaultModule.chargeProjectiles.Count; j++)
                                {
                                    if (user.CurrentGun.DefaultModule.chargeProjectiles[j] != null && user.CurrentGun.DefaultModule.chargeProjectiles[j].Projectile != null)
                                    {
                                        proj = user.CurrentGun.DefaultModule.chargeProjectiles[j].Projectile.gameObject;
                                        break;
                                    }
                                }
                            }
                            else if (user.CurrentGun.DefaultModule.shootStyle == ProjectileModule.ShootStyle.Beam)
                            {
                                proj          = user.CurrentGun.DefaultModule.projectiles[0].gameObject;
                                isBeamInstead = true;
                            }
                            else
                            {
                                proj = user.CurrentGun.DefaultModule.projectiles[0].gameObject;
                            }
                            needsToAddBounce = true;
                        }
                    }
                    if (isBeamInstead)
                    {
                        BeamController beam = BeamController.FreeFireBeam(proj.GetComponent <Projectile>(), user, degrees, 3, true);
                        if (beam && beam.GetComponent <Projectile>())
                        {
                            Projectile component = beam.GetComponent <Projectile>();
                            if (user.stats.GetStatValue(PlayerStats.StatType.Damage) >= 1)
                            {
                                component.baseData.damage *= user.stats.GetStatValue(PlayerStats.StatType.Damage);
                            }
                            component.baseData.range *= user.stats.GetStatValue(PlayerStats.StatType.RangeMultiplier);
                            component.baseData.speed *= user.stats.GetStatValue(PlayerStats.StatType.ProjectileSpeed);
                            component.UpdateSpeed();
                            component.baseData.range *= 4f;
                            BounceProjModifier bounce = component.gameObject.AddComponent <BounceProjModifier>();
                            bounce.numberOfBounces += 3;
                        }
                    }
                    else
                    {
                        GameObject gameObject = SpawnManager.SpawnProjectile(proj, centerPoint, Quaternion.Euler(0, 0, degrees), true);
                        Projectile component  = gameObject.GetComponent <Projectile>();
                        if (component != null)
                        {
                            component.TreatedAsNonProjectileForChallenge = true;
                            component.Owner   = user;
                            component.Shooter = user.specRigidbody;
                            user.DoPostProcessProjectile(component);
                            if (user.stats.GetStatValue(PlayerStats.StatType.Damage) >= 1)
                            {
                                component.baseData.damage *= user.stats.GetStatValue(PlayerStats.StatType.Damage);
                            }
                            component.baseData.range *= user.stats.GetStatValue(PlayerStats.StatType.RangeMultiplier);
                            component.baseData.speed *= user.stats.GetStatValue(PlayerStats.StatType.ProjectileSpeed);
                            component.UpdateSpeed();
                            if (needsToAddBounce)
                            {
                                component.baseData.range *= 4f;
                                BounceProjModifier bounce = component.gameObject.AddComponent <BounceProjModifier>();
                                bounce.numberOfBounces += 3;
                            }
                        }
                    }
                    degrees += 24;
                }
            }
        }
Exemplo n.º 18
0
 private static void WindowFunction(int windowID)
 {
     if (windowID == 0)
     {
         GUILayout.BeginArea(new Rect(5f, 15f, 290f, 400f));
         GUILayout.Label(string.Format("Current Actor Name: {0}", GameManager.Instance.PrimaryPlayer.ActorName), new GUILayoutOption[0]);
         GUILayout.Label(string.Format("Current Gun Name: {0}", GameManager.Instance.PrimaryPlayer.CurrentGun.name), new GUILayoutOption[0]);
         if (GUILayout.Button(string.Format("Stealthed {0}", GameManager.Instance.PrimaryPlayer.IsStealthed ? "On" : "Off"), new GUILayoutOption[0]))
         {
             if (GameManager.Instance.PrimaryPlayer.IsStealthed)
             {
                 GameManager.Instance.PrimaryPlayer.gameActor.SetIsStealthed(false, "box");
             }
             else
             {
                 GameManager.Instance.PrimaryPlayer.gameActor.SetIsStealthed(true, "box");
             }
         }
         if (GUILayout.Button(string.Format("Clear Floor", new object[0]), new GUILayoutOption[0]))
         {
             GameManager.Instance.Dungeon.FloorCleared();
         }
         if (GUILayout.Button(string.Format("Heal All Players", new object[0]), new GUILayoutOption[0]))
         {
             for (int i = 0; i < GameManager.Instance.AllPlayers.Length; i++)
             {
                 if (GameManager.Instance.AllPlayers[i].healthHaver.IsAlive)
                 {
                     GameManager.Instance.AllPlayers[i].healthHaver.FullHeal();
                 }
             }
         }
         if (GUILayout.Button(string.Format("Change to Random Gun", new object[0]), new GUILayoutOption[0]))
         {
             GameManager.Instance.PrimaryPlayer.inventory.AddGunToInventory(PickupObjectDatabase.GetRandomGun(), true);
         }
         if (GUILayout.Button(string.Format("Add 100 currency", new object[0]), new GUILayoutOption[0]))
         {
             GameStatsManager.Instance.RegisterStatChange(TrackedStats.META_CURRENCY, 100f);
             GameManager.Instance.PrimaryPlayer.carriedConsumables.Currency += 100;
         }
         if (GUILayout.Button(string.Format("Unlimited Ammo {0}", ModMenu.unlimAmmo ? "On" : "Off"), new GUILayoutOption[0]))
         {
             ModMenu.unlimAmmo = !ModMenu.unlimAmmo;
         }
         if (GUILayout.Button(string.Format("Destroy Enemy Bullets", new object[0]), new GUILayoutOption[0]))
         {
             SilencerInstance.DestroyBulletsInRange(GameManager.Instance.PrimaryPlayer.transform.PositionVector2(), 100f, true, false, null, false, null, false, null);
         }
         if (GUILayout.Button(string.Format("Teleport Hax {0}", ModMenu.teleportHax ? "On" : "Off"), new GUILayoutOption[0]))
         {
             ModMenu.teleportHax = !ModMenu.teleportHax;
         }
         if (GUILayout.Button(string.Format("Spawn Currency", new object[0]), new GUILayoutOption[0]))
         {
             LootEngine.SpawnCurrency(GameManager.Instance.PrimaryPlayer.CenterPosition, 1000, false);
         }
         if (GUILayout.Button(string.Format("Can always steal {0}", ModMenu.canAlwaysSteal ? "On" : "Off"), new GUILayoutOption[0]))
         {
             ModMenu.canAlwaysSteal = !ModMenu.canAlwaysSteal;
         }
         if (GUILayout.Button(string.Format("Add Ammo Automatically {0}", ModMenu.addAmmoAutomatically ? "On" : "Off"), new GUILayoutOption[0]))
         {
             ModMenu.addAmmoAutomatically = !ModMenu.addAmmoAutomatically;
         }
         if (GUILayout.Button(string.Format("Auto Heal {0}", ModMenu.autoHeal ? "On" : "Off"), new GUILayoutOption[0]))
         {
             ModMenu.autoHeal = !ModMenu.autoHeal;
         }
         if (GUILayout.Button(string.Format("Increase Base Ammo", new object[0]), new GUILayoutOption[0]))
         {
             GameManager.Instance.PrimaryPlayer.CurrentGun.SetBaseMaxAmmo(10000);
         }
         GUILayout.EndArea();
     }
     if (windowID == 1)
     {
         GUILayout.BeginArea(new Rect(5f, 15f, 290f, 400f));
         ModMenu.scrollViewVector = GUILayout.BeginScrollView(ModMenu.scrollViewVector, new GUILayoutOption[]
         {
             GUILayout.Width(280f),
             GUILayout.Height(380f)
         });
         if (GameManager.Instance.PrimaryPlayer.inventory.AllGuns != null)
         {
             for (int j = 0; j < GameManager.Instance.PrimaryPlayer.inventory.AllGuns.Count; j++)
             {
                 if (GUILayout.Button(string.Format("Get Ammo for {0}", GameManager.Instance.PrimaryPlayer.inventory.AllGuns[j].DisplayName), ModMenu.BtnStyle, new GUILayoutOption[0]))
                 {
                     GameManager.Instance.PrimaryPlayer.inventory.AllGuns[j].GainAmmo(1000);
                 }
                 GUILayout.Label(string.Concat(new object[]
                 {
                     "Gun Name: ",
                     GameManager.Instance.PrimaryPlayer.inventory.AllGuns[j].name,
                     "\nDisplay Name: ",
                     GameManager.Instance.PrimaryPlayer.inventory.AllGuns[j].DisplayName,
                     "\nGun Ammo: ",
                     GameManager.Instance.PrimaryPlayer.inventory.AllGuns[j].ammo,
                     "\n================"
                 }), new GUILayoutOption[0]);
             }
         }
         GUILayout.EndScrollView();
         GUILayout.EndArea();
     }
     if (windowID == 2)
     {
         GUILayout.BeginArea(new Rect(5f, 15f, 490f, 400f));
         ModMenu.scrollViewVector2 = GUILayout.BeginScrollView(ModMenu.scrollViewVector2, new GUILayoutOption[]
         {
             GUILayout.Width(480f),
             GUILayout.Height(380f)
         });
         int count = PickupObjectDatabase.Instance.Objects.Count;
         for (int k = 0; k < PickupObjectDatabase.Instance.Objects.Count; k++)
         {
             if (PickupObjectDatabase.Instance.Objects[k] != null && PickupObjectDatabase.Instance.Objects[k] is Gun)
             {
                 EncounterTrackable component = PickupObjectDatabase.Instance.Objects[k].GetComponent <EncounterTrackable>();
                 if (component && component.PrerequisitesMet())
                 {
                     if (GUILayout.Button(string.Format("Add {0} to your Inventory", PickupObjectDatabase.Instance.Objects[k].DisplayName), ModMenu.BtnStyle, new GUILayoutOption[0]))
                     {
                         GameManager.Instance.PrimaryPlayer.inventory.AddGunToInventory(PickupObjectDatabase.Instance.Objects[k] as Gun, true);
                     }
                     GUILayout.Label(string.Concat(new object[]
                     {
                         "Gun Name: ",
                         PickupObjectDatabase.Instance.Objects[k].name,
                         "\nDisplay Name: ",
                         PickupObjectDatabase.Instance.Objects[k].DisplayName,
                         "\nItem Quality: ",
                         PickupObjectDatabase.Instance.Objects[k].quality.ToString(),
                         "\n================"
                     }), new GUILayoutOption[0]);
                 }
             }
         }
         GUILayout.EndScrollView();
         GUILayout.EndArea();
     }
     if (windowID == 3)
     {
         GUILayout.BeginArea(new Rect(5f, 15f, 490f, 400f));
         ModMenu.scrollViewVector3 = GUILayout.BeginScrollView(ModMenu.scrollViewVector3, new GUILayoutOption[]
         {
             GUILayout.Width(480f),
             GUILayout.Height(380f)
         });
         for (int l = 0; l < PickupObjectDatabase.Instance.Objects.Count; l++)
         {
             if (PickupObjectDatabase.Instance.Objects[l] != null && PickupObjectDatabase.Instance.Objects[l] is PassiveItem)
             {
                 EncounterTrackable component2 = PickupObjectDatabase.Instance.Objects[l].GetComponent <EncounterTrackable>();
                 if (component2 && component2.PrerequisitesMet())
                 {
                     if (GUILayout.Button(string.Format("Add {0} to your Inventory", PickupObjectDatabase.Instance.Objects[l].DisplayName), ModMenu.BtnStyle, new GUILayoutOption[0]))
                     {
                         GameManager.Instance.PrimaryPlayer.AcquirePassiveItem(PickupObjectDatabase.Instance.Objects[l] as PassiveItem);
                     }
                     GUILayout.Label(string.Concat(new object[]
                     {
                         "Item Name: ",
                         PickupObjectDatabase.Instance.Objects[l].name,
                         "\nDisplay Name: ",
                         PickupObjectDatabase.Instance.Objects[l].DisplayName,
                         "\n================"
                     }), new GUILayoutOption[0]);
                 }
             }
         }
         GUILayout.EndScrollView();
         GUILayout.EndArea();
     }
 }
Exemplo n.º 19
0
 protected override void OnBlank(SilencerInstance silencerInstance, Vector2 centerPoint, PlayerController user)
 {
     EnemyListing();
     base.OnBlank(silencerInstance, centerPoint, user);
 }
 public void BlankModHook(Action <SilencerInstance, BlankModificationItem, Vector2, PlayerController> orig, SilencerInstance silencer, BlankModificationItem bmi, Vector2 centerPoint, PlayerController user)
 {
     orig(silencer, bmi, centerPoint, user);
     try
     {
         if (user.HasPickupID(SilverAmmoletID))
         {
             RoomHandler currentRoom = user.CurrentRoom;
             if (currentRoom.HasActiveEnemies(RoomHandler.ActiveEnemyType.All))
             {
                 foreach (AIActor aiactor in currentRoom.GetActiveEnemies(RoomHandler.ActiveEnemyType.All))
                 {
                     if (aiactor.behaviorSpeculator != null)
                     {
                         if (aiactor.IsBlackPhantom)
                         {
                             float procChance = 0.5f;
                             if (user.HasPickupID(538))
                             {
                                 procChance = 0.7f;
                             }
                             if (UnityEngine.Random.value <= procChance)
                             {
                                 aiactor.UnbecomeBlackPhantom();
                             }
                         }
                     }
                 }
             }
         }
     }
     catch (Exception e)
     {
         ETGModConsole.Log(e.Message);
         ETGModConsole.Log(e.StackTrace);
     }
 }
Exemplo n.º 21
0
        public void BlankModHook(Action <SilencerInstance, BlankModificationItem, Vector2, PlayerController> orig, SilencerInstance silencer, BlankModificationItem bmi, Vector2 centerPoint, PlayerController user)
        {
            orig(silencer, bmi, centerPoint, user);

            if (user.HasPickupID(HepatizonAmmoletID))
            {
                RoomHandler    currentRoom   = user.CurrentRoom;
                List <AIActor> activeEnemies = currentRoom.GetActiveEnemies(RoomHandler.ActiveEnemyType.All);
                if (activeEnemies != null)
                {
                    for (int i = 0; i < activeEnemies.Count; i++)
                    {
                        if (UnityEngine.Random.value <= 0.33f)
                        {
                            activeEnemies[i].ApplyEffect(StaticStatusEffects.StandardPlagueEffect);
                        }
                    }
                }
            }
        }
Exemplo n.º 22
0
        public static void BlankModHook(Action <SilencerInstance, BlankModificationItem, Vector2, PlayerController> orig, SilencerInstance silencer, BlankModificationItem bmi, Vector2 centerPoint, PlayerController user)
        {
            orig(silencer, bmi, centerPoint, user);

            if (user.HasPickupID(BarrierID))
            {
                if (onCooldown == false)
                {
                    Gun        gun        = PickupObjectDatabase.GetById(380) as Gun;
                    Gun        currentGun = user.CurrentGun;
                    GameObject shield     = gun.ObjectToInstantiateOnReload.gameObject;
                    GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(shield, user.sprite.WorldCenter, Quaternion.identity);
                    SingleSpawnableGunPlacedObject m_extantAmp   = gameObject.GetInterface <SingleSpawnableGunPlacedObject>();
                    BreakableShieldController      shieldOptions = gameObject.GetComponent <BreakableShieldController>();
                    if (gameObject)
                    {
                        m_extantAmp.Initialize(currentGun);
                        shieldOptions.Initialize(currentGun);
                        onCooldown = true;
                        GameManager.Instance.StartCoroutine(StartCooldown());
                    }
                }
            }
        }
Exemplo n.º 23
0
        public void BlankModHook(Action <SilencerInstance, BlankModificationItem, Vector2, PlayerController> orig, SilencerInstance silencer, BlankModificationItem bmi, Vector2 centerPoint, PlayerController user)
        {
            orig(silencer, bmi, centerPoint, user);

            if (user.HasPickupID(ID))
            {
                silencer.UsesCustomProjectileCallback = true;
                silencer.OnCustomBlankedProjectile   += OnBlankedProjectile;
            }
        }
        public static void BlankModHook(Action <SilencerInstance, BlankModificationItem, Vector2, PlayerController> orig, SilencerInstance silencer, BlankModificationItem bmi, Vector2 centerPoint, PlayerController user)
        {
            orig(silencer, bmi, centerPoint, user);

            if (user.HasPickupID(FuriousAmmoletID) && instance != null)
            {
                try
                {
                    user.StartCoroutine(instance.InflictRage(user));
                }
                catch (Exception e)
                {
                    ETGModConsole.Log(e.Message);
                }
            }
        }
Exemplo n.º 25
0
 public void BlankModHook(Action <SilencerInstance, BlankModificationItem, Vector2, PlayerController> orig, SilencerInstance silencer, BlankModificationItem bmi, Vector2 centerPoint, PlayerController user)
 {
     orig(silencer, bmi, centerPoint, user);
     try
     {
         if (user.HasPickupID(ReaverletID))
         {
             RoomHandler currentRoom = user.CurrentRoom;
             if (currentRoom.HasActiveEnemies(RoomHandler.ActiveEnemyType.All))
             {
                 //AkSoundEngine.PostEvent("Play_wpn_kthulu_soul_01", base.gameObject);
                 foreach (AIActor aiactor in currentRoom.GetActiveEnemies(RoomHandler.ActiveEnemyType.All))
                 {
                     if (aiactor.behaviorSpeculator != null)
                     {
                         this.AffectEnemy(aiactor);
                     }
                 }
             }
         }
     }
     catch (Exception e)
     {
         ETGModConsole.Log(e.Message);
         ETGModConsole.Log(e.StackTrace);
     }
 }
Exemplo n.º 26
0
        public void BlankModHook(Action <SilencerInstance, BlankModificationItem, Vector2, PlayerController> orig, SilencerInstance silencer, BlankModificationItem bmi, Vector2 centerPoint, PlayerController user)
        {
            orig(silencer, bmi, centerPoint, user);

            if (user.HasPickupID(WickerAmmoletID))
            {
                //AkSoundEngine.PostEvent("Play_ENM_bombshee_scream_01", Owner.gameObject);
                RoomHandler currentRoom = user.CurrentRoom;
                if (currentRoom.HasActiveEnemies(RoomHandler.ActiveEnemyType.All))
                {
                    foreach (AIActor aiactor in currentRoom.GetActiveEnemies(RoomHandler.ActiveEnemyType.All))
                    {
                        if (aiactor.behaviorSpeculator != null)
                        {
                            aiactor.behaviorSpeculator.FleePlayerData = fleeData;
                            FleePlayerData fleePlayerData = new FleePlayerData();
                            GameManager.Instance.StartCoroutine(WickerAmmolet.RemoveFear(aiactor));
                        }
                    }
                }
            }
        }
        public void BlankModHook(Action <SilencerInstance, BlankModificationItem, Vector2, PlayerController> orig, SilencerInstance silencer, BlankModificationItem bmi, Vector2 centerPoint, PlayerController user)
        {
            orig(silencer, bmi, centerPoint, user);

            if (user.HasPickupID(KinAmmoletID))
            {
                RoomHandler currentRoom = user.CurrentRoom;
                if (currentRoom.IsSealed)
                {
                    string enemyToSpawnGUID = "01972dee89fc4404a5c408d50007dad5";
                    bool   shouldJam        = false;
                    if (user.PlayerHasActiveSynergy("Shotgun Club") && UnityEngine.Random.value <= 0.5f)
                    {
                        enemyToSpawnGUID = "128db2f0781141bcb505d8f00f9e4d47";
                    }
                    if (user.PlayerHasActiveSynergy("Friends On The Other Side"))
                    {
                        shouldJam = true;
                    }

                    CompanionisedEnemyUtility.SpawnCompanionisedEnemy(user, enemyToSpawnGUID, centerPoint.ToIntVector2(), false, ExtendedColours.brown, 15, 2, shouldJam, true);
                    if ((user.PlayerHasActiveSynergy("Aim Twice, Shoot Once")))
                    {
                        CompanionisedEnemyUtility.SpawnCompanionisedEnemy(user, enemyToSpawnGUID, centerPoint.ToIntVector2(), false, ExtendedColours.brown, 15, 2, shouldJam, true);
                    }
                }
            }
        }
Exemplo n.º 28
0
        public void BlankModHook(Action <SilencerInstance, BlankModificationItem, Vector2, PlayerController> orig, SilencerInstance silencer, BlankModificationItem bmi, Vector2 centerPoint, PlayerController user)
        {
            orig(silencer, bmi, centerPoint, user);

            if (user.HasPickupID(KeymmoletID))
            {
                RoomHandler currentRoom = user.CurrentRoom;
                Chest[]     allChests   = FindObjectsOfType <Chest>();
                foreach (Chest chest in allChests)
                {
                    if (chest.transform.position.GetAbsoluteRoom() == currentRoom)
                    {
                        if (chest.ChestIdentifier == Chest.SpecialChestIdentifier.RAT && chest.IsLocked)
                        {
                            TextBubble.DoAmbientTalk(chest.transform, new Vector3(1, 2, 0), "Nice try", 4f);
                        }
                        else
                        {
                            chest.ForceUnlock();
                        }
                    }
                }
            }
        }
 public static void BlankModificationHook(Action <SilencerInstance, BlankModificationItem, Vector2, PlayerController> orig, SilencerInstance self, BlankModificationItem bmi, Vector2 centerPoint, PlayerController user)
 {
     orig(self, bmi, centerPoint, user);
     if (bmi is SpecialBlankModificationItem)
     {
         (bmi as SpecialBlankModificationItem).OnBlank(centerPoint, user);
     }
 }
Exemplo n.º 30
0
 public void BlankModHook(Action <SilencerInstance, Vector2, float, float, GameObject, float, float, float, float, float, float, float, PlayerController, bool, bool> orig, SilencerInstance silencer, Vector2 pos, float expandSpeed, float maxRadius, GameObject vfx, float distIntensity, float distRadius, float pushForce, float pushRadius, float knockbackForce, float knockbackRadius, float additionalTimeAtMaxRadius, PlayerController user, bool breaksWalls = true, bool skipBreakables = true)
 {
     if (silencer && !silencer.ForceNoDamage && user != null)
     {
         if (user.HasPickupID(IvoryAmmoletID))
         {
             GameObject smallVFX = (GameObject)ResourceCache.Acquire("Global VFX/BlankVFX_Ghost");
             orig(silencer, pos, expandSpeed * 0.5f, maxRadius / 5, smallVFX, 0, 0, pushForce / 16, pushRadius / 3, knockbackForce * 0.5f, knockbackRadius / 3f, additionalTimeAtMaxRadius * 0.5f, user, breaksWalls, skipBreakables);
         }
         else
         {
             orig(silencer, pos, expandSpeed, maxRadius, vfx, distIntensity, distRadius, pushForce, pushRadius, knockbackForce, knockbackRadius, additionalTimeAtMaxRadius, user, breaksWalls, skipBreakables);
         }
     }
     else
     {
         Debug.Log("Ivory Ammolet Silencer Hook: DEFAULTED TO BASE. Silencer: " + (silencer == null) + "Owner: " + (user == null) + " ForceNoDMG: " + (silencer.ForceNoDamage));
         orig(silencer, pos, expandSpeed, maxRadius, vfx, distIntensity, distRadius, pushForce, pushRadius, knockbackForce, knockbackRadius, additionalTimeAtMaxRadius, user, breaksWalls, skipBreakables);
     }
 }