コード例 #1
0
 public void ResetDuration(EMPConfig eMPConfig)
 {
     stateTimer = 0;
     if (state != LightState.Overload)
     {
         state = LightState.Off;
     }
     EEA_MelonCoroutines.Stop(coroutine);
     StartFlickerAt = UnityEngine.Random.RandomRange((float)(eMPConfig.Duration * 0.5), eMPConfig.Duration);
     Duration       = eMPConfig.Duration;
 }
コード例 #2
0
        private IEnumerator FlickerLight(CollectedLight cLight)
        {
            cLight.light.ChangeIntensity(cLight.originalIntensity / UnityEngine.Random.Range(1, 3));
            yield return(new WaitForSeconds(UnityEngine.Random.Range(0.1f, 0.2f)));

            cLight.light.ChangeIntensity(cLight.originalIntensity / UnityEngine.Random.Range(1, 3));
            yield return(new WaitForSeconds(UnityEngine.Random.Range(0.1f, 0.2f)));

            cLight.light.ChangeIntensity(cLight.originalIntensity / UnityEngine.Random.Range(1, 3));
            yield return(new WaitForSeconds(UnityEngine.Random.Range(0.1f, 0.2f)));

            cLight.light.ChangeIntensity(cLight.originalIntensity / UnityEngine.Random.Range(1, 3));
            yield return(new WaitForSeconds(UnityEngine.Random.Range(0.1f, 0.2f)));

            coroutine = EEA_MelonCoroutines.Start(FlickerLight(cLight)) as IEnumerator;
            yield break;
        }
コード例 #3
0
        private void Flicker(int iterations, bool finalState, float startDelayMin = 0.8f, float startDelayMax = 2.5f)
        {
            var inventory = EEA_MelonCoroutines.Start(FlickerHudElement(GuiManager.PlayerLayer.Inventory, iterations, finalState, startDelayMin, startDelayMax));
            var compass   = EEA_MelonCoroutines.Start(FlickerHudElement(GuiManager.PlayerLayer.m_compass, iterations, finalState, startDelayMin, startDelayMax));
            var warden    = EEA_MelonCoroutines.Start(FlickerHudElement(GuiManager.PlayerLayer.m_wardenObjective, iterations, finalState, startDelayMin, startDelayMax));
            var status    = EEA_MelonCoroutines.Start(FlickerHudElement(GuiManager.PlayerLayer.m_playerStatus, iterations, finalState, startDelayMin, startDelayMax));
            var chat      = EEA_MelonCoroutines.Start(FlickerHudElement(GuiManager.PlayerLayer.m_gameEventLog, iterations, finalState, startDelayMin, startDelayMax));

            var flashLight = EEA_MelonCoroutines.Start(FlickerFlashlight(iterations, finalState));

            coroutines.Add(inventory);
            coroutines.Add(compass);
            coroutines.Add(warden);
            coroutines.Add(status);
            coroutines.Add(flashLight);
            coroutines.Add(chat);
        }
コード例 #4
0
        public void ResetDuration(float newDuration)
        {
            Duration = newDuration;
            foreach (var item in coroutines)
            {
                EEA_MelonCoroutines.Stop(item as IEnumerator);
            }
            coroutines.Clear();

            if (state == HUDState.FlickerOn)
            {
                stateTimer = Clock.Time + FlashDuration;
            }
            if (state == HUDState.End)
            {
                state = HUDState.FlickerOff;
            }
        }
コード例 #5
0
        void Update()
        {
            switch (state)
            {
            case LightState.Overload:
                CollectedLight.light.ChangeIntensity(CollectedLight.originalIntensity + buildIntensity);
                buildIntensity += 1f;
                if (CollectedLight.originalIntensity + buildIntensity > 5f)
                {
                    state = LightState.Off;
                }
                break;

            case LightState.Off:
                CollectedLight.light.ChangeIntensity(0);
                state      = LightState.Flicker;
                stateTimer = Clock.Time + StartFlickerAt;
                break;

            case LightState.Flicker:
                if (stateTimer < Clock.Time)
                {
                    coroutine  = EEA_MelonCoroutines.Start(FlickerLight(CollectedLight)) as IEnumerator;
                    state      = LightState.On;
                    stateTimer = Clock.Time + Duration - StartFlickerAt - UnityEngine.Random.Range(0, 5f);
                }
                break;

            case LightState.On:
                if (stateTimer < Clock.Time)
                {
                    EEA_MelonCoroutines.Stop(coroutine);
                    CollectedLight.light.ChangeIntensity(CollectedLight.originalIntensity);
                    Destroy(this);
                }
                break;
            }
        }