public void UpdatePlanets()
        {
            int  count = this.planets.Count;
            bool flag  = this.AreAllPlanetsLoaded();
            GalaxyViewController galaxyViewController = Service.Get <GalaxyViewController>();

            for (int i = 0; i < count; i++)
            {
                Planet planet = this.planets[i];
                if (flag && planet.UpdatePlanetTournamentState())
                {
                    this.RebuildPlanetEvent(planet);
                }
                this.BillboardPlanetObject(planet.EventEffect);
                this.BillboardPlanetObject(planet.PlanetGameObject);
                this.BillboardPlanetObject(planet.PlanetExplosions);
                this.BillboardPlanetObject(planet.PlanetGlowEffect);
                if (planet.PlanetGameObject != null && galaxyViewController.IsInPlanetScreen())
                {
                    planet.PlanetGlowEffect.transform.localScale = Vector3.one;
                    this.OffsetPlanetObject(planet.PlanetGlowEffect, Vector3.zero);
                }
                else if (planet.PlanetGlowEffect != null)
                {
                    planet.PlanetGlowEffect.transform.localScale = Vector3.one * 1.15f;
                    this.OffsetPlanetObject(planet.PlanetGlowEffect, GalaxyPlanetController.PLANET_GLOW_OFFSET);
                }
                if (planet.planetMaterial != null)
                {
                    this.SetPlanetLighting(planet.PlanetGameObject, planet.planetMaterial, Service.Get <CameraManager>().MainCamera.Camera);
                }
            }
        }
Beispiel #2
0
        private void HandleBackButton()
        {
            IState currentState = Service.GameStateMachine.CurrentState;

            if (currentState is IntroCameraState)
            {
                IntroCameraAnimation intro = Service.UXController.Intro;
                if (intro != null)
                {
                    intro.FinishUp(true);
                }
                return;
            }
            for (int i = this.backButtonHandlers.Count - 1; i >= 0; i--)
            {
                if (this.backButtonHandlers[i].HandleBackButtonPress())
                {
                    return;
                }
            }
            UICamera.selectedObject = null;
            UICamera.hoveredObject  = null;
            if (TouchScreenKeyboard.visible)
            {
                return;
            }
            ScreenController screenController = null;

            if (Service.ScreenController != null)
            {
                screenController = Service.ScreenController;
                AlertScreen highestLevelScreen = screenController.GetHighestLevelScreen <AlertScreen>();
                if (highestLevelScreen != null && highestLevelScreen.IsAlwaysOnTop)
                {
                    this.HandleScreenBack(highestLevelScreen);
                    return;
                }
            }
            if (Service.HoloController != null)
            {
                HoloController holoController = Service.HoloController;
                if (holoController.HasAnyCharacter())
                {
                    Service.EventManager.SendEvent(EventId.StoryNextButtonClicked, null);
                    return;
                }
            }
            if (screenController != null)
            {
                ScreenBase     highestLevelScreen2 = screenController.GetHighestLevelScreen <ScreenBase>();
                ClosableScreen highestLevelScreen3 = screenController.GetHighestLevelScreen <ClosableScreen>();
                if (Service.CurrentPlayer.CampaignProgress.FueInProgress || Service.UserInputInhibitor.IsDenying())
                {
                    if (highestLevelScreen2 != null && highestLevelScreen2.AllowFUEBackButton && this.HandleScreenBack(highestLevelScreen2))
                    {
                        return;
                    }
                    this.TryQuit();
                    return;
                }
                else
                {
                    if (highestLevelScreen2 != null && this.HandleScreenBack(highestLevelScreen2))
                    {
                        return;
                    }
                    if (highestLevelScreen3 != null && this.HandleScreenBack(highestLevelScreen3))
                    {
                        return;
                    }
                }
            }
            if (currentState is EditBaseState)
            {
                HomeState.GoToHomeState(null, false);
                return;
            }
            if (Service.BuildingController != null)
            {
                BuildingController buildingController = Service.BuildingController;
                if (buildingController.SelectedBuilding != null)
                {
                    buildingController.EnsureDeselectSelectedBuilding();
                    return;
                }
            }
            if (currentState is BaseLayoutToolState)
            {
                UXController uXController = Service.UXController;
                uXController.HUD.BaseLayoutToolView.CancelBaseLayoutTool();
                return;
            }
            if (Service.GalaxyViewController != null && currentState is GalaxyState)
            {
                GalaxyViewController galaxyViewController = Service.GalaxyViewController;
                galaxyViewController.GoToHome();
                return;
            }
            this.TryQuit();
        }
        private void RebuildPlanetEvent(Planet planet)
        {
            GalaxyViewController galaxyViewController = Service.Get <GalaxyViewController>();
            MiscElementsManager  miscElementsManager  = Service.Get <UXController>().MiscElementsManager;

            this.UpdateEventEffectStatus(planet);
            AssetManager assetManager = Service.Get <AssetManager>();

            if (planet.ParticleFXHandle != AssetHandle.Invalid)
            {
                assetManager.Unload(planet.ParticleFXHandle);
                planet.ParticleFXHandle = AssetHandle.Invalid;
            }
            planet.DestroyParticles();
            int arg_52_0 = 0;
            int b        = this.planetParticleCount - 1;

            this.planetParticleCount = b;
            this.planetParticleCount = Mathf.Max(arg_52_0, b);
            if (planet.Tournament == null)
            {
                if (this.planetsWithActiveEvents.Contains(planet))
                {
                    this.planetsWithActiveEvents.Remove(planet);
                }
                if (this.planetsWithEvent.Contains(planet))
                {
                    this.planetsWithEvent.Remove(planet);
                }
                galaxyViewController.HideBackgroundPlanetUI(planet);
            }
            else
            {
                AssetHandle     particleFXHandle = AssetHandle.Invalid;
                TimedEventState tournamentState  = planet.TournamentState;
                if (tournamentState != TimedEventState.Upcoming)
                {
                    if (tournamentState == TimedEventState.Live)
                    {
                        if (!this.planetsWithEvent.Contains(planet))
                        {
                            this.planetsWithEvent.Add(planet);
                        }
                        if (!this.planetsWithActiveEvents.Contains(planet))
                        {
                            this.planetsWithActiveEvents.Add(planet);
                        }
                        assetManager.Load(ref particleFXHandle, "fx_planet_Conflict", new AssetSuccessDelegate(this.OnEventParticleFXLoaded), null, planet);
                    }
                    else
                    {
                        if (this.planetsWithEvent.Contains(planet))
                        {
                            this.planetsWithEvent.Remove(planet);
                        }
                        if (this.planetsWithActiveEvents.Contains(planet))
                        {
                            this.planetsWithActiveEvents.Remove(planet);
                        }
                    }
                }
                else
                {
                    if (!this.planetsWithEvent.Contains(planet))
                    {
                        this.planetsWithEvent.Add(planet);
                    }
                    assetManager.Load(ref particleFXHandle, "fx_planet_Imminent", new AssetSuccessDelegate(this.OnEventParticleFXLoaded), null, planet);
                }
                planet.ParticleFXHandle = particleFXHandle;
                miscElementsManager.DestroyPlanetBackgroundUI(planet);
                miscElementsManager.CreatePlanetBackgroundUI(planet);
            }
            miscElementsManager.UpdateFrontPlanetEventTimer();
        }
Beispiel #4
0
        public IEnumerator DoRescale()
        {
            yield return(new WaitForEndOfFrame());

            object obj = this.lock_;

            lock (obj)
            {
                float num  = (float)Screen.width;
                float num2 = (float)Screen.height;
                if (this.bNeedCameraReenable)
                {
                    if (this.cameraReenableWaitCount > 20)
                    {
                        this.cameraReenableWaitCount = 0;
                        foreach (Camera current in this.cameraStatus.Keys)
                        {
                            bool enabled = false;
                            bool flag2   = this.cameraStatus.TryGetValue(current, out enabled);
                            current.enabled = enabled;
                        }
                        this.bNeedCameraReenable = false;
                    }
                    else
                    {
                        this.cameraReenableWaitCount++;
                    }
                }
                else if (num2 != this.screenHeight || num != this.screenWidth)
                {
                    if (Service.IsSet <CameraManager>() && Service.Get <CameraManager>() != null)
                    {
                        Service.Get <CameraManager>().CalculateScale(num, num2);
                    }
                    if (Service.IsSet <EventManager>() && Service.Get <EventManager>() != null)
                    {
                        Vector2 vector = new Vector2(num, num2);
                        Service.Get <EventManager>().SendEvent(EventId.ScreenSizeChanged, vector);
                    }
                    if (Service.IsSet <GalaxyViewController>())
                    {
                        GalaxyViewController galaxyViewController = Service.Get <GalaxyViewController>();
                        if (galaxyViewController != null)
                        {
                            galaxyViewController.OnScreenSizeChanged((int)num, (int)num2);
                        }
                    }
                    if (Service.IsSet <ScreenController>() && Service.Get <ScreenController>() != null)
                    {
                        StoreScreen storeScreen = Service.Get <ScreenController>().GetLastScreen() as StoreScreen;
                        if (storeScreen != null)
                        {
                            storeScreen.RestoreIcons();
                        }
                    }
                    if (Service.IsSet <EventManager>() && Service.Get <EventManager>() != null)
                    {
                        Service.Get <EventManager>().SendEvent(EventId.ForceGeometryReload, null);
                    }
                    this.screenWidth  = num;
                    this.screenHeight = num2;
                }
            }
            yield break;
        }