Esempio n. 1
0
        public void Init(Saber parentSaber)
        {
            Logger.Log("Replacing Trail", LogLevel.Debug);

            saber = parentSaber;

            if (gameObject.name != "LeftSaber" && gameObject.name != "RightSaber")
            {
                Logger.Log("Parent not LeftSaber or RightSaber", LogLevel.Warning);
                Destroy(this);
            }

            if (saber == null)
            {
                Logger.Log("Saber not found", LogLevel.Warning);
                Destroy(this);
            }

            SaberWeaponTrail[] trails = Resources.FindObjectsOfTypeAll <SaberWeaponTrail>().ToArray();
            for (int i = 0; i < trails.Length; i++)
            {
                SaberWeaponTrail trail = trails[i];
                ReflectionUtil.SetPrivateField(trail, "_multiplierSaberColor", new Color(0f, 0f, 0f, 0f));
                ReflectionUtil.SetPrivateField(trail as Xft.XWeaponTrail, "_whiteSteps", 0);
            }

            SaberWeaponTrail oldtrail = Resources.FindObjectsOfTypeAll <GameCoreInstaller>()
                                        .FirstOrDefault()?.GetPrivateField <BasicSaberModelController>("_basicSaberModelControllerPrefab")
                                        ?.GetPrivateField <SaberWeaponTrail>("_saberWeaponTrail");

            if (oldtrail != null)
            {
                try
                {
                    Logger.Log(ReflectionUtil.GetPrivateField <Color>(oldtrail, "_multiplierSaberColor").ToString(), LogLevel.Debug);
                    //ReflectionUtil.SetPrivateField(oldtrail, "_multiplierSaberColor", new Color(0f, 0f, 0f, 0f));
                    //        oldColorManager = ReflectionUtil.GetPrivateField<ColorManager>(oldtrail, "_colorManager");
                    oldTrailRendererPrefab = ReflectionUtil.GetPrivateField <XWeaponTrailRenderer>(oldtrail, "_trailRendererPrefab");

                    //oldtrail.Start();
                    //oldtrail.gameObject.SetActive(false);
                }
                catch (Exception ex)
                {
                    Logger.Log($"{ex.Message}\n{ex.StackTrace}", LogLevel.Error);
                    throw;
                }

                trail = gameObject.AddComponent <CustomWeaponTrail>();
                trail.init(oldTrailRendererPrefab, Plugin.colorManager, PointStart, PointEnd, TrailMaterial, TrailColor, Length, MultiplierColor, colorType);
            }
            else
            {
                Logger.Log("Trail not found", LogLevel.Debug);
                Destroy(this);
            }
        }
Esempio n. 2
0
        public void Init(Saber saber, ColorManager colorManager)
        {
            Logger.log.Debug($"Replacing Trail for '{saber?.saberType}'");

            if (gameObject.name != "LeftSaber" && gameObject.name != "RightSaber")
            {
                Logger.log.Warn("Parent not LeftSaber or RightSaber");
                Destroy(this);
            }

            if (!saber)
            {
                Logger.log.Warn("Saber not found");
                Destroy(this);
            }

            IEnumerable <SaberWeaponTrail> trails = Resources.FindObjectsOfTypeAll <SaberWeaponTrail>().ToArray();

            foreach (SaberWeaponTrail trail in trails)
            {
                ReflectionUtil.SetPrivateField(trail, "_multiplierSaberColor", new Color(0f, 0f, 0f, 0f));
                ReflectionUtil.SetPrivateField(trail as XWeaponTrail, "_whiteSteps", 0);
            }

            SaberWeaponTrail oldtrail = Resources.FindObjectsOfTypeAll <GameCoreSceneSetup>().FirstOrDefault()
                                        ?.GetPrivateField <BasicSaberModelController>("_basicSaberModelControllerPrefab")
                                        ?.GetPrivateField <SaberWeaponTrail>("_saberWeaponTrail");

            if (oldtrail)
            {
                try
                {
                    //Logger.log.Debug(ReflectionUtil.GetPrivateField<Color>(oldtrail, "_multiplierSaberColor").ToString());
                    oldTrailRendererPrefab = ReflectionUtil.GetPrivateField <XWeaponTrailRenderer>(oldtrail, "_trailRendererPrefab");
                }
                catch (Exception ex)
                {
                    Logger.log.Error(ex);
                    throw;
                }

                trail = gameObject.AddComponent <CustomWeaponTrail>();
                trail.Init(oldTrailRendererPrefab, colorManager, PointStart, PointEnd, TrailMaterial, TrailColor, Length, MultiplierColor, colorType);
            }
            else
            {
                Logger.log.Debug($"Trail not found for '{saber?.saberType}'");
                Destroy(this);
            }
        }
Esempio n. 3
0
        public void Init(Saber parentSaber)
        {
            Console.WriteLine("Replacing Trail");

            saber = parentSaber;

            if (gameObject.name != "LeftSaber" && gameObject.name != "RightSaber")
            {
                Console.WriteLine("Parent not LeftSaber or RightSaber");
                Destroy(this);
            }

            if (saber == null)
            {
                Console.WriteLine("Saber not found");
                Destroy(this);
            }

            SaberWeaponTrail oldtrail = Resources.FindObjectsOfTypeAll <GameCoreInstaller>()
                                        .FirstOrDefault()?.GetPrivateField <BasicSaberModelController>("_basicSaberModelControllerPrefab")
                                        ?.GetPrivateField <SaberWeaponTrail>("_saberWeaponTrail");

            if (oldtrail != null)
            {
                try
                {
                    ReflectionUtil.SetPrivateField(oldtrail, "_multiplierSaberColor", new Color(0f, 0f, 0f, 0f));
                    oldColorManager        = ReflectionUtil.GetPrivateField <ColorManager>(oldtrail, "_colorManager");
                    oldTrailRendererPrefab = ReflectionUtil.GetPrivateField <XWeaponTrailRenderer>(oldtrail, "_trailRendererPrefab");
                    oldtrail.gameObject.SetActive(false);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    Console.WriteLine(e.Message);
                    throw;
                }

                trail = gameObject.AddComponent <CustomWeaponTrail>();
                trail.init(oldTrailRendererPrefab, oldColorManager, PointStart, PointEnd, TrailMaterial, TrailColor, Length, MultiplierColor, colorType);
            }
            else
            {
                Console.WriteLine("Trail not found");
                Destroy(this);
            }
        }
Esempio n. 4
0
        private void Start()
        {
            Console.WriteLine("Replacing Trail");

            if (gameObject.name != "LeftSaber" && gameObject.name != "RightSaber")
            {
                Console.WriteLine("Parent not LeftSaber or RightSaber");
                Destroy(this);
            }

            GameObject _saber = FindParentWithName(this.gameObject, "Saber");

            if (_saber == null)
            {
                Console.WriteLine("Saber not found");
                Destroy(this);
            }

            trail = _saber.GetComponent <XWeaponTrail>();
            if (trail != null)
            {
                ReflectionUtil.SetPrivateField(trail, "PointStart", PointStart);
                ReflectionUtil.SetPrivateField(trail, "PointEnd", PointEnd);
                ReflectionUtil.SetPrivateField(trail, "MyColor", TrailColor);
                ReflectionUtil.SetPrivateField(trail, "MyMaterial", TrailMaterial);
                ReflectionUtil.SetPrivateField(trail, "MaxFrame", Length);

                XWeaponTrailRenderer trailRenderer = ReflectionUtil.GetPrivateField <XWeaponTrailRenderer>(trail, "_trailRenderer");
                MeshRenderer         meshRenderer  = ReflectionUtil.GetPrivateField <MeshRenderer>(trailRenderer, "_meshRenderer");
                meshRenderer.material = TrailMaterial;

                trail.UpdateHeadElem();
                trail.UpdateVertex();
            }
            else
            {
                Console.WriteLine("Trail not found");
                Destroy(this);
            }
        }
Esempio n. 5
0
        private void AddCustomSaberButton()
        {
            _rightScreen = ReflectionUtil.GetPrivateField <VRUIViewController>(_mainMenuViewController, "_releaseInfoViewController");
            _rightPos    = _rightScreen.rectTransform;
            var customSaberButton = CreateButton(_rightPos);

            if (customSaberButton == null)
            {
                return;
            }

            SetButtonText(ref customSaberButton, "Saber Menu");
            customSaberButton.onClick.AddListener(delegate
            {
                if (_sabersMasterViewController == null)
                {
                    _sabersMasterViewController = CreateViewController <CustomSaberMasterViewController>();
                }

                _rightScreen.PresentModalViewController(_sabersMasterViewController, null);
            });
        }
Esempio n. 6
0
        private void AddModMenuButton()
        {
            try
            {
                _rightScreen =
                    ReflectionUtil.GetPrivateField <VRUIViewController>(_mainMenuViewController,
                                                                        "_releaseInfoViewController");
                _rightPos = _rightScreen.gameObject.transform as RectTransform;
                var modMenuButton = CreateButton(_rightPos);
                SetButtonText(ref modMenuButton, "Saber Menu");
                SetButtonIcon(ref modMenuButton, Icons.First(x => x.name == "SingleSaberIcon"));

                if (modMenuButton == null)
                {
                    return;
                }

                // Change button text and add listener
                modMenuButton.onClick.AddListener(delegate
                {
                    try
                    {
                        if (_modMenuController == null)
                        {
                            _modMenuController = CreateViewController <ModMenuMasterViewController>();
                        }
                        try
                        {
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e.ToString());
                            throw;
                        }
                        _rightScreen.PresentModalViewController(_modMenuController, null);
                        //DELETE POSSIBLE DIFFICULTY TEXT
                        var modlisttemp = GameObject.FindObjectOfType <ModsListViewController>();
                        if (modlisttemp != null)
                        {
                            var textmeshs = modlisttemp.gameObject.GetComponentsInChildren <TextMeshProUGUI>();


                            foreach (TextMeshProUGUI textmesh in textmeshs)
                            {
                                if (textmesh.rectTransform.parent.name == "DifficultyTableCell(Clone)")
                                {
                                    DestroyImmediate(textmesh.rectTransform.parent.gameObject);
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                });
            }

            catch (Exception ex)
            {
            }
        }
 public void SetMaterial(Material newMaterial)
 {
     _customMaterial = newMaterial;
     ReflectionUtil.GetPrivateField <MeshRenderer>(_trailRenderer, "_meshRenderer").material = _customMaterial;
 }
        public override void Start()
        {
            base.Start();

            ReflectionUtil.GetPrivateField <MeshRenderer>(_trailRenderer, "_meshRenderer").material = _customMaterial;
        }
Esempio n. 9
0
        private void AddEvents()
        {
            _leftEventManager = _leftSaber.GetComponent <EventManager>();
            if (_leftEventManager == null)
            {
                _leftEventManager = _leftSaber.AddComponent <EventManager>();
            }

            _rightEventManager = _rightSaber.GetComponent <EventManager>();
            if (_rightEventManager == null)
            {
                _rightEventManager = _rightSaber.AddComponent <EventManager>();
            }

            _leftEventManager.OnLevelStart.Invoke();
            _rightEventManager.OnLevelStart.Invoke();
            try
            {
                _beatmapObjectSpawnController = Resources.FindObjectsOfTypeAll <BeatmapObjectSpawnController>().FirstOrDefault();
                if (_beatmapObjectSpawnController == null)
                {
                    Console.WriteLine("SPAWN CONTROLLER NULL");
                    //_beatmapObjectSpawnController = _saberRoot.AddComponent<BeatmapObjectSpawnController>();
                }
                _scoreController = Resources.FindObjectsOfTypeAll <ScoreController>().FirstOrDefault();
                if (_scoreController == null)
                {
                    Console.WriteLine("SCORE CONTROLLER NULL");
                    //_scoreController = _saberRoot.AddComponent<ScoreController>();
                }
                _saberCollisionManager =
                    Resources.FindObjectsOfTypeAll <ObstacleSaberSparkleEffectManager>().FirstOrDefault();
                if (_saberCollisionManager == null)
                {
                    Console.WriteLine("COLLISION MANAGER NULL");
                    //_saberCollisionManager = _saberRoot.AddComponent<ObstacleSaberSparkleEffectManager>();
                }
                _gameEnergyCounter = Resources.FindObjectsOfTypeAll <GameEnergyCounter>().FirstOrDefault();
                if (_gameEnergyCounter == null)
                {
                    Console.WriteLine("energery counter null");
                    //_gameEnergyCounter = _saberRoot.AddComponent<GameEnergyCounter>();
                }
                _beatmapCallback = Resources.FindObjectsOfTypeAll <BeatmapObjectCallbackController>().FirstOrDefault();
                if (_beatmapCallback == null)
                {
                    Console.WriteLine("BEATMAP CALLBACK NULL");
                    //_beatmapCallback = _saberRoot.AddComponent<BeatmapObjectCallbackController>();
                }

                _gamePauseManager = Resources.FindObjectsOfTypeAll <GamePauseManager>().FirstOrDefault();
                if (_gamePauseManager == null)
                {
                    Console.WriteLine("GamePauseManager Null");
                    //_gamePauseManager = _saberRoot.AddComponent<GamePauseManager>();
                }

                _playerHeadAndObstacleInteraction = Resources.FindObjectsOfTypeAll <PlayerHeadAndObstacleInteraction>().FirstOrDefault();
                if (_playerHeadAndObstacleInteraction == null)
                {
                    Console.WriteLine("PlayerHeadAndObstacleInteraction Null");
                    //_playerHeadAndObstacleInteraction = _saberRoot.AddComponent<PlayerHeadAndObstacleInteraction>();
                }

                _beatmapObjectSpawnController.noteWasCutEvent    += SliceCallBack;
                _beatmapObjectSpawnController.noteWasMissedEvent += NoteMissCallBack;
                _scoreController.multiplierDidChangeEvent        += MultiplierCallBack;
                _scoreController.comboDidChangeEvent             += ComboChangeEvent;

                _saberCollisionManager.sparkleEffectDidStartEvent += SaberStartCollide;
                _saberCollisionManager.sparkleEffectDidEndEvent   += SaberEndCollide;

                _gameEnergyCounter.gameEnergyDidReach0Event += FailLevelCallBack;

                _beatmapCallback.beatmapEventDidTriggerEvent += LightEventCallBack;
                //  ReflectionUtil.SetPrivateField(_gamePauseManager, "_gameDidResumeSignal", (Action)OnPauseMenuClosed); //For some reason _gameDidResumeSignal isn't public.
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                Console.WriteLine(e.Message);
                throw;
            }

            try
            {
                MainGameSceneSetup mgs = GetGameSceneSetup();
                BeatmapDataModel   _beatmapDataModel = ReflectionUtil.GetPrivateField <BeatmapDataModel>(mgs, "_beatmapDataModel");
                BeatmapData        beatmapData       = _beatmapDataModel.beatmapData;

                BeatmapLineData[] beatmapLinesData = beatmapData.beatmapLinesData;
                float             LastTime         = 0.0f;

                for (int i = 0; i < beatmapLinesData.Length; i++)
                {
                    BeatmapObjectData[] beatmapObjectsData = beatmapLinesData[i].beatmapObjectsData;
                    for (int j = beatmapObjectsData.Length - 1; j > 0; j--)
                    {
                        if (beatmapObjectsData[j].beatmapObjectType == BeatmapObjectType.Note)
                        {
                            if (((NoteData)beatmapObjectsData[j]).noteType != NoteType.Bomb)
                            {
                                if (beatmapObjectsData[j].time > LastTime)
                                {
                                    LastNoteId = beatmapObjectsData[j].id;
                                    LastTime   = beatmapObjectsData[j].time;
                                }
                                break;
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                Console.WriteLine(e.Message);
                throw;
            }
        }