Exemplo n.º 1
0
        private IEnumerator HandleTimeSlowDuration()
        {
            float newAdditionalTableFlipSlowTime = GetAdditionalTableFlipSlowTime() + 1.5f;

            SetAdditionalTableFlipSlowTime(newAdditionalTableFlipSlowTime);
            float newAdditionalTableFlipSlowTime2 = Mathf.Min(3f, GetAdditionalTableFlipSlowTime());

            SetAdditionalTableFlipSlowTime(newAdditionalTableFlipSlowTime2);
            if (GetTableFlipTimeIsActive())
            {
                yield break;
            }
            SetTableFlipTimeIsActive(true);
            BraveTime.RegisterTimeScaleMultiplier(0.5f, this.gameObject);
            float elapsed = 0f;

            while (elapsed < GetAdditionalTableFlipSlowTime())
            {
                elapsed += BraveTime.DeltaTime;
                yield return(null);
            }
            SetAdditionalTableFlipSlowTime(0f);
            SetTableFlipTimeIsActive(false);
            BraveTime.ClearMultiplier(this.gameObject);
            yield break;
        }
 protected override void Update()
 {
     if (gun.CurrentOwner && gun.CurrentOwner is PlayerController)
     {
         PlayerController owna = gun.CurrentOwner as PlayerController;
         if (owna.IsDodgeRolling)
         {
             if (TimeIsFrozen)
             {
                 BraveTime.ClearMultiplier(base.gameObject);
                 TimeIsFrozen = false;
             }
         }
         if (gun.IsCharging)
         {
             if (!TimeIsFrozen && !owna.IsDodgeRolling)
             {
                 BraveTime.SetTimeScaleMultiplier(0.01f, base.gameObject);
                 TimeIsFrozen = true;
             }
         }
         else
         {
             if (TimeIsFrozen)
             {
                 BraveTime.ClearMultiplier(base.gameObject);
                 TimeIsFrozen = false;
             }
         }
     }
     base.Update();
 }
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 DoEffect(PlayerController user)
 {
     GameManager.Instance.PauseRaw(true);
     BraveTime.RegisterTimeScaleMultiplier(0f, GameManager.Instance.gameObject);
     AkSoundEngine.PostEvent("Stop_SND_All", GameManager.Instance.gameObject);
     GameManager.Instance.StartCoroutine(OcarinaOfTime.HandleReturn(user));
     AkSoundEngine.PostEvent("Play_UI_gameover_start_01", GameManager.Instance.gameObject);
     base.DoEffect(user);
 }
 public override void OnSwitchedAwayFromThisGun()
 {
     if (TimeIsFrozen)
     {
         BraveTime.ClearMultiplier(base.gameObject);
         TimeIsFrozen = false;
     }
     base.OnSwitchedAwayFromThisGun();
 }
Exemplo n.º 6
0
        private void ImprovedMindControl(PlayerController player)
        {
            var Enemy = EnemyDatabase.GetOrLoadByGuid("01972dee89fc4404a5c408d50007dad5");

            if (player.PlayerHasActiveSynergy("Skilled & Killed"))
            {
                Enemy = EnemyDatabase.GetOrLoadByGuid("70216cae6c1346309d86d4a0b4603045");
            }
            if (player.PlayerHasActiveSynergy("Darkened Soul"))
            {
                Enemy = EnemyDatabase.GetOrLoadByGuid("39e6f47a16ab4c86bec4b12984aece4c");
            }
            if (player.PlayerHasActiveSynergy("Ridin' Shotgun"))
            {
                Enemy = EnemyDatabase.GetOrLoadByGuid("128db2f0781141bcb505d8f00f9e4d47");
            }
            AIActor             aiactor       = AIActor.Spawn(Enemy.aiActor, player.CenterPosition, GameManager.Instance.PrimaryPlayer.CurrentRoom, true, AIActor.AwakenAnimationType.Spawn, true);
            MindControlNotGamer THEBRAINWAVES = aiactor.gameObject.GetOrAddComponent <MindControlNotGamer>();

            THEBRAINWAVES.owner = player;
            GameManager.Instance.MainCameraController.StopTrackingPlayer();
            GameManager.Instance.MainCameraController.SetManualControl(true, false);
            aiactor.IgnoreForRoomClear = true;
            aiactor.CanTargetEnemies   = true;
            aiactor.HitByEnemyBullets  = true;
            aiactor.MovementSpeed      = player.stats.MovementSpeed;
            aiactor.gameObject.AddComponent <KillOnRoomClear>();
            player.healthHaver.IsVulnerable = false;
            player.ToggleRenderer(false, "arbitrary teleporter.");
            player.ToggleGunRenderers(false, "arbitrary teleporter.");
            player.ToggleHandRenderers(false, "arbitrary teleporter.");
            aiactor.healthHaver.OnDeath += this.SummonPlayer;
            if (player.PlayerHasActiveSynergy(SynergyNameToCheck))
            {
                BraveTime.ClearMultiplier(base.gameObject);
                Gamer = true;
                player.RemovePassiveItem(279);
                aiactor.healthHaver.OnDamaged += this.SwapPositions;
                BraveTime.ClearMultiplier(base.gameObject);
            }
            daguy            = aiactor;
            player.IsVisible = false;
            player.specRigidbody.CollideWithOthers = false;

            player.MovementModifiers   += this.NoMotionModifier;
            player.IsStationary         = true;
            player.CurrentStoneGunTimer = 9999999999999999999999f;
            StartCoroutine("jaja");
        }
Exemplo n.º 7
0
        private IEnumerator CauseDeath(AIActor aiActor, PlayerController user)
        {
            //GameManager.Instance.PauseRaw(true);

            Pixelator.Instance.DoFinalNonFadedLayer = true;
            //int PreviousLayer = aiActor.gameObject.layer;
            float elapsed  = 0f;
            float duration = 0.8f;

            user.healthHaver.IsVulnerable = false;
            user.SetInputOverride("tiddy");
            RadialSlowInterface Rad;

            Rad = new RadialSlowInterface
            {
                RadialSlowHoldTime     = 6f,
                RadialSlowOutTime      = 2f,
                RadialSlowTimeModifier = 0f,
                DoesSepia            = false,
                UpdatesForNewEnemies = true,
                audioEvent           = "Play_OBJ_time_bell_01",
            };
            Rad.DoRadialSlow(user.CenterPosition, user.CurrentRoom);
            //aiActor.LocalTimeScale = 0;
            GameObject          clockhairObject = Instantiate(BraveResources.Load <GameObject>("Clockhair", ".prefab"));
            ClockhairController clockhair       = clockhairObject.GetComponent <ClockhairController>();

            elapsed  = 0f;
            duration = clockhair.ClockhairInDuration;
            Vector3 clockhairTargetPosition = aiActor.sprite.WorldCenter;
            Vector3 clockhairStartPosition  = clockhairTargetPosition + new Vector3(-20f, 5f, 0f);

            clockhair.renderer.enabled = false;
            clockhair.spriteAnimator.Play("clockhair_intro");
            clockhair.hourAnimator.Play("hour_hand_intro");
            clockhair.minuteAnimator.Play("minute_hand_intro");
            clockhair.secondAnimator.Play("second_hand_intro");
            bool hasWobbled = false;

            while (elapsed < duration)
            {
                if (GameManager.INVARIANT_DELTA_TIME == 0f)
                {
                    elapsed += 0.05f;
                }
                elapsed += GameManager.INVARIANT_DELTA_TIME;
                float   t2              = elapsed / duration;
                float   smoothT         = Mathf.SmoothStep(0f, 1f, t2);
                Vector3 currentPosition = Vector3.Slerp(clockhairStartPosition, clockhairTargetPosition, smoothT);
                clockhairObject.transform.position = currentPosition.WithZ(0f);
                if (t2 > 0.5f)
                {
                    clockhair.renderer.enabled = true;
                    clockhair.spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                }
                if (t2 > 0.75f)
                {
                    clockhair.hourAnimator.GetComponent <Renderer>().enabled   = true;
                    clockhair.minuteAnimator.GetComponent <Renderer>().enabled = true;
                    clockhair.secondAnimator.GetComponent <Renderer>().enabled = true;
                    clockhair.hourAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                    clockhair.minuteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                    clockhair.secondAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                }
                if (!hasWobbled && clockhair.spriteAnimator.CurrentFrame == clockhair.spriteAnimator.CurrentClip.frames.Length - 1)
                {
                    clockhair.spriteAnimator.Play("clockhair_wobble");
                    hasWobbled = true;
                }
                clockhair.sprite.UpdateZDepth();
                //aiActor.spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                yield return(null);
            }
            if (!hasWobbled)
            {
                clockhair.spriteAnimator.Play("clockhair_wobble");
            }
            clockhair.SpinToSessionStart(clockhair.ClockhairSpinDuration);
            elapsed  = 0f;
            duration = clockhair.ClockhairSpinDuration + clockhair.ClockhairPauseBeforeShot;
            while (elapsed < duration)
            {
                if (GameManager.INVARIANT_DELTA_TIME == 0f)
                {
                    elapsed += 0.05f;
                }
                elapsed += GameManager.INVARIANT_DELTA_TIME;
                clockhair.spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                yield return(null);
            }
            elapsed  = 0f;
            duration = 0.1f;
            clockhairStartPosition  = clockhairObject.transform.position;
            clockhairTargetPosition = clockhairStartPosition + new Vector3(0f, 12f, 0f);
            clockhair.spriteAnimator.Play("clockhair_fire");
            clockhair.hourAnimator.GetComponent <Renderer>().enabled   = false;
            clockhair.minuteAnimator.GetComponent <Renderer>().enabled = false;
            clockhair.secondAnimator.GetComponent <Renderer>().enabled = false;
            while (elapsed < duration)
            {
                if (GameManager.INVARIANT_DELTA_TIME == 0f)
                {
                    elapsed += 0.05f;
                }
                elapsed += GameManager.INVARIANT_DELTA_TIME;
                clockhair.spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                //aiActor.spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                yield return(null);
            }
            aiActor.healthHaver.ApplyDamage(10000000f, Vector2.zero, "You Died.", CoreDamageTypes.None, DamageCategory.Unstoppable, false, null, true);
            elapsed  = 0f;
            duration = 1f;
            while (elapsed < duration)
            {
                if (GameManager.INVARIANT_DELTA_TIME == 0f)
                {
                    elapsed += 0.05f;
                }
                elapsed += GameManager.INVARIANT_DELTA_TIME;
                if (clockhair.spriteAnimator.CurrentFrame == clockhair.spriteAnimator.CurrentClip.frames.Length - 1)
                {
                    clockhair.renderer.enabled = false;
                }
                else
                {
                    clockhair.spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                }
                //aiActor.spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                yield return(null);
            }

            Pixelator.Instance.FadeToColor(0.25f, Pixelator.Instance.FadeColor, true);
            Pixelator.Instance.LerpToLetterbox(1f, 0.25f);
            Pixelator.Instance.DoFinalNonFadedLayer = false;
            // aiActor.gameObject.SetLayerRecursively(PreviousLayer);
            // GameManager.Instance.ForceUnpause();
            //GameManager.Instance.PreventPausing = false;
            BraveTime.ClearMultiplier(GameManager.Instance.gameObject);
            yield return(new WaitForSeconds(1f));

            //GameManager.Instance.PrimaryPlayer.CurrentInputState = PlayerInputState.AllInput;
            //if (GameManager.Instance.SecondaryPlayer) { GameManager.Instance.SecondaryPlayer.CurrentInputState = PlayerInputState.AllInput; }
            //GameManager.Instance.MainCameraController.SetManualControl(false, true);
            user.ClearInputOverride("tiddy");

            Destroy(clockhairObject);

            user.healthHaver.IsVulnerable = true;
            yield break;
        }
        private IEnumerator HandleDeathSequence()
        {
            GameManager.Instance.PauseRaw(true);
            Pixelator.Instance.DoFinalNonFadedLayer = true;
            aiShooter.CurrentGun.gameObject.SetActive(false);
            aiShooter.gunAttachPoint.gameObject.SetActive(false);
            aiShooter.ToggleHandRenderers(false, "Death Sequance");
            int PreviousLayer = gameObject.layer;

            gameObject.SetLayerRecursively(LayerMask.NameToLayer("Unfaded"));
            float          elapsed         = 0f;
            float          duration        = 0.8f;
            tk2dBaseSprite spotlightSprite = (Instantiate(BraveResources.Load <GameObject>("DeathShadow", ".prefab"), specRigidbody.UnitCenter, Quaternion.identity)).GetComponent <tk2dBaseSprite>();

            spotlightSprite.spriteAnimator.ignoreTimeScale = true;
            spotlightSprite.spriteAnimator.Play();
            tk2dSpriteAnimator whooshAnimator = spotlightSprite.transform.GetChild(0).GetComponent <tk2dSpriteAnimator>();

            whooshAnimator.ignoreTimeScale = true;
            whooshAnimator.Play();
            Pixelator.Instance.CustomFade(0.6f, 0f, Color.white, Color.black, 0.1f, 0.5f);
            Pixelator.Instance.LerpToLetterbox(0.35f, 0.8f);
            spotlightSprite.color = Color.white;
            yield return(StartCoroutine(InvariantWait(0.4f)));

            GameObject          clockhairObject = Instantiate(BraveResources.Load <GameObject>("Clockhair", ".prefab"));
            ClockhairController clockhair       = clockhairObject.GetComponent <ClockhairController>();

            elapsed  = 0f;
            duration = clockhair.ClockhairInDuration;
            Vector3 clockhairTargetPosition = sprite.WorldCenter;
            Vector3 clockhairStartPosition  = clockhairTargetPosition + new Vector3(-20f, 5f, 0f);

            clockhair.renderer.enabled = false;
            clockhair.spriteAnimator.Play("clockhair_intro");
            clockhair.hourAnimator.Play("hour_hand_intro");
            clockhair.minuteAnimator.Play("minute_hand_intro");
            clockhair.secondAnimator.Play("second_hand_intro");
            bool hasWobbled = false;

            while (elapsed < duration)
            {
                if (GameManager.INVARIANT_DELTA_TIME == 0f)
                {
                    elapsed += 0.05f;
                }
                elapsed += GameManager.INVARIANT_DELTA_TIME;
                float   t2              = elapsed / duration;
                float   smoothT         = Mathf.SmoothStep(0f, 1f, t2);
                Vector3 currentPosition = Vector3.Slerp(clockhairStartPosition, clockhairTargetPosition, smoothT);
                clockhairObject.transform.position = currentPosition.WithZ(0f);
                if (t2 > 0.5f)
                {
                    clockhair.renderer.enabled = true;
                    clockhair.spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                }
                if (t2 > 0.75f)
                {
                    clockhair.hourAnimator.GetComponent <Renderer>().enabled   = true;
                    clockhair.minuteAnimator.GetComponent <Renderer>().enabled = true;
                    clockhair.secondAnimator.GetComponent <Renderer>().enabled = true;
                    clockhair.hourAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                    clockhair.minuteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                    clockhair.secondAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                }
                if (!hasWobbled && clockhair.spriteAnimator.CurrentFrame == clockhair.spriteAnimator.CurrentClip.frames.Length - 1)
                {
                    clockhair.spriteAnimator.Play("clockhair_wobble");
                    hasWobbled = true;
                }
                clockhair.sprite.UpdateZDepth();
                spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                yield return(null);
            }
            if (!hasWobbled)
            {
                clockhair.spriteAnimator.Play("clockhair_wobble");
            }
            clockhair.SpinToSessionStart(clockhair.ClockhairSpinDuration);
            elapsed  = 0f;
            duration = clockhair.ClockhairSpinDuration + clockhair.ClockhairPauseBeforeShot;
            while (elapsed < duration)
            {
                if (GameManager.INVARIANT_DELTA_TIME == 0f)
                {
                    elapsed += 0.05f;
                }
                elapsed += GameManager.INVARIANT_DELTA_TIME;
                clockhair.spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                yield return(null);
            }
            elapsed  = 0f;
            duration = 0.1f;
            clockhairStartPosition  = clockhairObject.transform.position;
            clockhairTargetPosition = clockhairStartPosition + new Vector3(0f, 12f, 0f);
            clockhair.spriteAnimator.Play("clockhair_fire");
            clockhair.hourAnimator.GetComponent <Renderer>().enabled   = false;
            clockhair.minuteAnimator.GetComponent <Renderer>().enabled = false;
            clockhair.secondAnimator.GetComponent <Renderer>().enabled = false;
            //Setup Daeth Animation Here;
            if (m_GungeoneerMimicBossController && m_GungeoneerMimicBossController.m_Player)
            {
                // aiActor.aiAnimator.enabled = false;
                if (m_GungeoneerMimicBossController.m_Player.UseArmorlessAnim)
                {
                    spriteAnimator.Play(DeathClipName_Armorless);
                }
                else
                {
                    spriteAnimator.Play(DeathClipName);
                }
            }
            while (elapsed < duration)
            {
                if (GameManager.INVARIANT_DELTA_TIME == 0f)
                {
                    elapsed += 0.05f;
                }
                elapsed += GameManager.INVARIANT_DELTA_TIME;
                clockhair.spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                yield return(null);
            }
            elapsed  = 0f;
            duration = 1f;
            while (elapsed < duration)
            {
                if (GameManager.INVARIANT_DELTA_TIME == 0f)
                {
                    elapsed += 0.05f;
                }
                elapsed += GameManager.INVARIANT_DELTA_TIME;
                if (clockhair.spriteAnimator.CurrentFrame == clockhair.spriteAnimator.CurrentClip.frames.Length - 1)
                {
                    clockhair.renderer.enabled = false;
                }
                else
                {
                    clockhair.spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                }
                spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME);
                yield return(null);
            }
            yield return(StartCoroutine(InvariantWait(1f)));

            Pixelator.Instance.FadeToColor(0.25f, Pixelator.Instance.FadeColor, true);
            Pixelator.Instance.LerpToLetterbox(1f, 0.25f);
            Destroy(spotlightSprite.gameObject);
            Pixelator.Instance.DoFinalNonFadedLayer = false;
            gameObject.SetLayerRecursively(PreviousLayer);
            GameManager.Instance.ForceUnpause();
            GameManager.Instance.PreventPausing = false;
            BraveTime.ClearMultiplier(GameManager.Instance.gameObject);
            yield return(new WaitForSeconds(1f));

            GameManager.Instance.PrimaryPlayer.CurrentInputState = PlayerInputState.AllInput;
            if (GameManager.Instance.SecondaryPlayer)
            {
                GameManager.Instance.SecondaryPlayer.CurrentInputState = PlayerInputState.AllInput;
            }
            GameManager.Instance.MainCameraController.SetManualControl(false, true);
            Destroy(clockhairObject);
            healthHaver.DeathAnimationComplete(null, null);
            if (gameObject.GetComponent <ExpandGungeoneerMimicIntroDoer>())
            {
                Destroy(gameObject.GetComponent <ExpandGungeoneerMimicIntroDoer>().MirrorBase);
                Destroy(gameObject.GetComponent <ExpandGungeoneerMimicIntroDoer>().MirrorShatterFX);
            }
            yield break;
        }