Exemplo n.º 1
0
        private void InstallSaberSparkles(MutationContext ctx, SaberBurnMarkSparkles burnSparkles)
        {
            var siraBurnSparkles = burnSparkles.Upgrade <SaberBurnMarkSparkles, SiraSaberBurnMarkSparkles>();

            ctx.Container.QueueForInject(siraBurnSparkles);
            ctx.Container.Bind <SaberBurnMarkSparkles>().To <SiraSaberBurnMarkSparkles>().FromInstance(siraBurnSparkles).AsCached();
        }
Exemplo n.º 2
0
 public static void PostfixStart(ref SaberBurnMarkSparkles __instance)
 {
     if (!(__instance is SiraSaberBurnMarkSparkles))
     {
         __instance.gameObject.AddComponent <SiraSaberBurnMarkSparkles>();
     }
 }
Exemplo n.º 3
0
 public static bool PrefixCancelMethod(ref SaberBurnMarkSparkles __instance)
 {
     if (!(__instance is SiraSaberBurnMarkSparkles))
     {
         return(false);
     }
     return(true);
 }
Exemplo n.º 4
0
        ////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////

        /// <summary>
        /// Prefix
        /// </summary>
        /// <param name="__instance">SaberBurnMarkSparkles instance</param>
        internal static void Postfix(ref SaberBurnMarkSparkles __instance)
        {
            m_SaberBurnMarkSparkles = __instance;

            if (Config.GameTweaker.Enabled)
            {
                /// Apply
                SetRemoveSaberBurnMarkSparkles(Config.GameTweaker.RemoveSaberBurnMarkSparkles);
            }
        }
Exemplo n.º 5
0
        public SiraSaberBurnMarkSparkles()
        {
            SaberBurnMarkSparkles original = GetComponent <SaberBurnMarkSparkles>();

            foreach (FieldInfo info in original.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic))
            {
                info.SetValue(this, info.GetValue(original));
            }
            Destroy(original);
        }
Exemplo n.º 6
0
        public SiraSaberEffectManager(IGamePause gamePause, SaberManager saberManager, SaberClashChecker saberClashChecker, SaberBurnMarkArea saberBurnMarkArea,
                                      SaberBurnMarkSparkles saberBurnMarkSparkles, ObstacleSaberSparkleEffectManager obstacleSaberSparkleEffectManager)
        {
            _gamePause = gamePause;
            saberClashChecker.Init(saberManager);
            _saberManagers.Add(saberClashChecker as SiraSaberClashChecker);
            _saberManagers.Add(saberBurnMarkArea as SiraSaberBurnMarkArea);
            _saberManagers.Add(saberBurnMarkSparkles as SiraSaberBurnMarkSparkles);
            _saberManagers.Add(obstacleSaberSparkleEffectManager as SiraObstacleSaberSparkleEffectManager);

            _siraSaberClashChecker = saberClashChecker as SiraSaberClashChecker;
        }
Exemplo n.º 7
0
        internal SiraSaberEffectManager([InjectOptional] IGamePause gamePause, SaberManager saberManager, SaberClashChecker saberClashChecker, SaberBurnMarkArea saberBurnMarkArea,
                                        SaberBurnMarkSparkles saberBurnMarkSparkles, ObstacleSaberSparkleEffectManager obstacleSaberSparkleEffectManager)
        {
            _gamePause    = gamePause;
            _saberManager = saberManager;
            saberClashChecker.Init(saberManager);
            _saberManagers.Add(saberClashChecker as SiraSaberClashChecker);
            _saberManagers.Add(saberBurnMarkArea as SiraSaberBurnMarkArea);
            _saberManagers.Add(saberBurnMarkSparkles as SiraSaberBurnMarkSparkles);
            _saberManagers.Add(obstacleSaberSparkleEffectManager as SiraObstacleSaberSparkleEffectManager);

            _siraSaberClashChecker = saberClashChecker as SiraSaberClashChecker;
            _siraObstacleSaberSparkleEffectManager = obstacleSaberSparkleEffectManager as SiraObstacleSaberSparkleEffectManager;
        }
        private IEnumerator OnGameCoreCoroutine()
        {
            if (_audioTimeSyncController == null)
            {
                _audioTimeSyncController = Resources.FindObjectsOfTypeAll <AudioTimeSyncController>().FirstOrDefault();
                _audioSource             = _audioTimeSyncController.GetPrivateField <AudioSource>("_audioSource");
            }
            _originalTimeScale = _audioTimeSyncController.timeScale;

            if (_gamePause == null)
            {
                _gamePause = Resources.FindObjectsOfTypeAll <GamePause>().FirstOrDefault();
            }
            _gamePause.didResumeEvent += OnPauseResume;

            // wait for CustomSaber mod
            yield return(new WaitUntil(() => Resources.FindObjectsOfTypeAll <Saber>().Any()));

            yield return(new WaitForSecondsRealtime(0.1f));

            if (_playerController == null)
            {
                _playerController = Resources.FindObjectsOfTypeAll <PlayerController>().FirstOrDefault();
            }
            if (_rightSaberTransform == null)
            {
                _rightSaberTransform = _playerController.rightSaber.transform;
            }
            if (_leftSaberTransform == null)
            {
                _leftSaberTransform = _playerController.leftSaber.transform;
            }
            if (_saberClashChecker == null)
            {
                _saberClashChecker = Resources.FindObjectsOfTypeAll <SaberClashChecker>().FirstOrDefault();
            }
            if (_saberBurnMarkArea == null)
            {
                _saberBurnMarkArea = Resources.FindObjectsOfTypeAll <SaberBurnMarkArea>().FirstOrDefault();
            }
            if (_saberBurnMarkSparkles == null)
            {
                _saberBurnMarkSparkles = Resources.FindObjectsOfTypeAll <SaberBurnMarkSparkles>().FirstOrDefault();
            }

            // need some wait to GetNoteOffset
            if (Config.centering)
            {
                if (_beatmapObjectSpawnController == null)
                {
                    _beatmapObjectSpawnController = Resources.FindObjectsOfTypeAll <BeatmapObjectSpawnController>().FirstOrDefault();
                }
                BeatmapObjectSpawnMovementData beatmapObjectSpawnMovementData = _beatmapObjectSpawnController.GetPrivateField <BeatmapObjectSpawnMovementData>("_beatmapObjectSpawnMovementData");
                Vector3 leftBase = beatmapObjectSpawnMovementData.GetNoteOffset(0, NoteLineLayer.Base);
                Vector3 rightTop = beatmapObjectSpawnMovementData.GetNoteOffset(3, NoteLineLayer.Top);
                NoteJumpManualUpdate.center = (leftBase + rightTop) / 2;
                //Logger.log.Debug($"leftBase={leftBase.x}, {leftBase.y}, {leftBase.z}");
                //Logger.log.Debug($"rightTop={rightTop.x}, {rightTop.y}, {rightTop.z}");
            }

            if (Config.hideSabers)
            {
                SetSaberVisible(_playerController.rightSaber, false);
                SetSaberVisible(_playerController.leftSaber, false);
                SetTrailWidth(0f);
                _saberClashChecker.enabled     = false;
                _saberBurnMarkArea.enabled     = false;
                _saberBurnMarkSparkles.enabled = false;
            }

            if (Config.hideSaberEffects)
            {
                SetTrailWidth(0f);
                _saberClashChecker.enabled     = false;
                _saberBurnMarkArea.enabled     = false;
                _saberBurnMarkSparkles.enabled = false;
            }

            if (Config.boxing)
            {
                SetTrailWidth(0.05f);
            }

            if (Config.headbang)
            {
                SetTrailWidth(0f);
            }

            if (Config.vacuum)
            {
                if (_gameEnergyCounter == null)
                {
                    _gameEnergyCounter = Resources.FindObjectsOfTypeAll <GameEnergyCounter>().FirstOrDefault();
                }
                _gameEnergyCounter.SetPrivateField("_hitBombEnergyDrain", 0f);
            }

            if (GameObject.Find("vacuum_saber_right"))
            {
                SetTrailWidth(0f);
            }

            if (Config.feetAvatar)
            {
                StartCoroutine(FindAvatarCoroutine());
            }

            UpdateSaberActive();

            _init = true;
        }