Пример #1
0
        private void ProcessHighDetail(
            RgbDevice device,
            Fragment fragment,
            EffectDetailLevel quality,
            float time)
        {
            Vector4 vector4_1 = this._skyColor * this._lightColor;

            for (int index = 0; index < fragment.Count; ++index)
            {
                Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(index);
                Point   gridPositionOfIndex   = fragment.GetGridPositionOfIndex(index);
                float   amount    = Math.Max(0.0f, (float)(1.0 - (double)NoiseHelper.GetDynamicNoise(gridPositionOfIndex.X, gridPositionOfIndex.Y, time / 20f) * 5.0));
                Vector4 vector4_2 = vector4_1;
                Vector4 vector4_3 = (gridPositionOfIndex.X * 100 + gridPositionOfIndex.Y) % 2 != 0 ? Vector4.Lerp(vector4_2, this._pinkFlowerColor, amount) : Vector4.Lerp(vector4_2, this._yellowFlowerColor, amount);
                if ((double)canvasPositionOfIndex.Y > Math.Sin((double)canvasPositionOfIndex.X) * 0.300000011920929 + 0.699999988079071)
                {
                    vector4_3 = this._groundColor;
                }
                fragment.SetColor(index, vector4_3);
            }
        }
 private void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
 {
     for (int i = 0; i < fragment.Count; i++)
     {
         Point   gridPositionOfIndex   = fragment.GetGridPositionOfIndex(i);
         Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
         float   num    = ((NoiseHelper.GetStaticNoise(gridPositionOfIndex.Y) * 10f + time) % 10f - (canvasPositionOfIndex.X + 2f)) * 0.5f;
         Vector4 vector = _backgroundColor;
         if (num > 0f)
         {
             float num2   = Math.Max(0f, 1.2f - num);
             float amount = MathHelper.Clamp(num2 * num2 * num2, 0f, 1f);
             if (num < 0.2f)
             {
                 num2 = num / 0.2f;
             }
             Vector4 value = Vector4.Lerp(_spiritTrailColor, _spiritColor, amount);
             vector = Vector4.Lerp(vector, value, num2);
         }
         fragment.SetColor(i, vector);
     }
 }
        private void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
        {
            time *= _speed * 0.5f;
            float   num    = time % 1f;
            bool    num2   = time % 2f > 1f;
            Vector4 vector = (num2 ? _frontColor : _backColor);
            Vector4 value  = (num2 ? _backColor : _frontColor);

            num *= 1.2f;
            for (int i = 0; i < fragment.Count; i++)
            {
                float   staticNoise = NoiseHelper.GetStaticNoise(fragment.GetCanvasPositionOfIndex(i) * 0.5f + new Vector2(0f, time * 0.5f));
                Vector4 vector2     = vector;
                staticNoise += num;
                if (staticNoise > 0.999f)
                {
                    float amount = MathHelper.Clamp((staticNoise - 0.999f) / 0.2f, 0f, 1f);
                    vector2 = Vector4.Lerp(vector2, value, amount);
                }
                fragment.SetColor(i, vector2);
            }
        }
Пример #4
0
 private void ProcessHighDetail(
     RgbDevice device,
     Fragment fragment,
     EffectDetailLevel quality,
     float time)
 {
     for (int index = 0; index < fragment.Count; ++index)
     {
         Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(index);
         Vector4 vector4_1             = this._backgroundColor;
         float   num1 = 0.4f + NoiseHelper.GetDynamicNoise(canvasPositionOfIndex * 0.2f, time * 0.5f) * 0.4f;
         float   num2 = 1.1f - canvasPositionOfIndex.Y;
         if ((double)num2 < (double)num1)
         {
             float   staticNoise = NoiseHelper.GetStaticNoise(canvasPositionOfIndex * 0.3f + new Vector2(12.5f, time * 0.2f));
             Vector4 vector4_2   = Vector4.Lerp(this._primaryColor, this._secondaryColor, MathHelper.Clamp(Math.Max(0.0f, (float)(1.0 - (double)staticNoise * (double)staticNoise * 4.0 * (double)staticNoise)), 0.0f, 1f));
             float   amount      = 1f - MathHelper.Clamp((float)(((double)num2 - (double)num1 + 0.200000002980232) / 0.200000002980232), 0.0f, 1f);
             vector4_1 = Vector4.Lerp(vector4_1, vector4_2, amount);
         }
         fragment.SetColor(index, vector4_1);
     }
 }
Пример #5
0
 private void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
 {
     for (int i = 0; i < fragment.Count; i++)
     {
         Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
         Vector4 vector       = _backgroundColor;
         float   dynamicNoise = NoiseHelper.GetDynamicNoise(canvasPositionOfIndex * 0.2f, time * 0.5f);
         float   num          = 0.4f;
         num += dynamicNoise * 0.4f;
         float num2 = 1.1f - canvasPositionOfIndex.Y;
         if (num2 < num)
         {
             float staticNoise = NoiseHelper.GetStaticNoise(canvasPositionOfIndex * 0.3f + new Vector2(12.5f, time * 0.2f));
             staticNoise = Math.Max(0f, 1f - staticNoise * staticNoise * 4f * staticNoise);
             staticNoise = MathHelper.Clamp(staticNoise, 0f, 1f);
             Vector4 value  = Vector4.Lerp(_primaryColor, _secondaryColor, staticNoise);
             float   amount = 1f - MathHelper.Clamp((num2 - num + 0.2f) / 0.2f, 0f, 1f);
             vector = Vector4.Lerp(vector, value, amount);
         }
         fragment.SetColor(i, vector);
     }
 }
Пример #6
0
        private void ProcessHighDetail(
            RgbDevice device,
            Fragment fragment,
            EffectDetailLevel quality,
            float time)
        {
            Vector4 vector4_1 = this._skyColor * this._lightColor;

            for (int index = 0; index < fragment.Count; ++index)
            {
                Point   gridPositionOfIndex   = fragment.GetGridPositionOfIndex(index);
                Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(index);
                float   num1 = (float)(((double)NoiseHelper.GetStaticNoise(gridPositionOfIndex.X) * 10.0 + (double)time * 0.400000005960464) % 10.0);
                float   num2 = 1f;
                if ((double)num1 > 1.0)
                {
                    num2 = MathHelper.Clamp((float)(1.0 - ((double)num1 - 1.39999997615814)), 0.0f, 1f);
                    num1 = 1f;
                }
                float   num3      = (float)(Math.Sin((double)canvasPositionOfIndex.X) * 0.300000011920929 + 0.699999988079071);
                float   num4      = num1 - (1f - canvasPositionOfIndex.Y);
                Vector4 vector4_2 = vector4_1;
                if ((double)num4 > 0.0)
                {
                    float num5 = 1f;
                    if ((double)num4 < 0.200000002980232)
                    {
                        num5 = num4 * 5f;
                    }
                    vector4_2 = Vector4.Lerp(vector4_2, this._baseColor, num5 * num2);
                }
                if ((double)canvasPositionOfIndex.Y > (double)num3)
                {
                    vector4_2 = this._baseColor;
                }
                fragment.SetColor(index, vector4_2);
            }
        }
Пример #7
0
        private void ProcessHighDetail(
            RgbDevice device,
            Fragment fragment,
            EffectDetailLevel quality,
            float time)
        {
            // get_CanvasCenter() to CanvasCenter, maybe (\.get_)(.*?)(\(\)) to .$2
            Vector2 vector2_1 = fragment.CanvasCenter;

            if (quality == null)
            {
                vector2_1 = new Vector2(1.7f, 0.5f);
            }
            time *= 0.5f;
            for (int index = 0; index < fragment.Count; ++index)
            {
                Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(index);
                Vector4 vector4_1             = new Vector4(0.0f, 0.0f, 0.0f, 1f);
                Vector2 vector2_2             = vector2_1;
                float   num1 = (canvasPositionOfIndex - vector2_2).Length();
                float   num2 = (float)((double)num1 * (double)num1 * 0.75);
                float   num3 = (float)(((double)num1 - (double)time) % 1.0);
                if ((double)num3 < 0.0)
                {
                    ++num3;
                }
                float   num4      = (double)num3 <= 0.800000011920929 ? num3 / 0.8f : num3 * (float)(1.0 - ((double)num3 - 1.0 + 0.200000002980232) / 0.200000002980232);
                Vector4 vector4_2 = Vector4.Lerp(this._darkGlowColor, this._lightGlowColor, num4 * num4);
                float   amount1   = num4 * (float)((double)MathHelper.Clamp(1f - num2, 0.0f, 1f) * 0.75 + 0.25);
                vector4_1 = Vector4.Lerp(vector4_1, vector4_2, amount1);
                if ((double)num1 < 0.5)
                {
                    float amount2 = 1f - MathHelper.Clamp((float)(((double)num1 - 0.5 + 0.400000005960464) / 0.400000005960464), 0.0f, 1f);
                    vector4_1 = Vector4.Lerp(vector4_1, this._lightGlowColor, amount2);
                }
                fragment.SetColor(index, vector4_1);
            }
        }
Пример #8
0
        private void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
        {
            Vector4 value  = (_inBloodMoon ? new Vector4(1f, 0f, 0f, 1f) : new Vector4(0f, 0f, 1f, 1f));
            Vector4 vector = new Vector4(0f, 0f, 0f, 0.75f);

            for (int i = 0; i < fragment.Count; i++)
            {
                Point   gridPositionOfIndex   = fragment.GetGridPositionOfIndex(i);
                Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
                float   num     = (NoiseHelper.GetStaticNoise(gridPositionOfIndex.X) * 10f + time) % 10f - canvasPositionOfIndex.Y;
                Vector4 vector2 = vector;
                if (num > 0f)
                {
                    float amount = Math.Max(0f, 1.2f - num);
                    if (num < 0.2f)
                    {
                        amount = num * 5f;
                    }
                    vector2 = Vector4.Lerp(vector2, value, amount);
                }
                fragment.SetColor(i, vector2);
            }
        }
        private void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
        {
            Vector4 vector = new Vector4(0f, 0f, 0f, 0.75f);

            for (int i = 0; i < fragment.Count; i++)
            {
                Point   gridPositionOfIndex   = fragment.GetGridPositionOfIndex(i);
                Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
                float   num     = (NoiseHelper.GetStaticNoise(gridPositionOfIndex.X) * 7f + time * 0.4f) % 7f - canvasPositionOfIndex.Y;
                Vector4 vector2 = vector;
                if (num > 0f)
                {
                    float amount = Math.Max(0f, 1.2f - num);
                    if (num < 0.4f)
                    {
                        amount = num / 0.4f;
                    }
                    int num2 = (gridPositionOfIndex.X % _colors.Length + _colors.Length) % _colors.Length;
                    vector2 = Vector4.Lerp(vector2, _colors[num2], amount);
                }
                fragment.SetColor(i, vector2);
            }
        }
Пример #10
0
        private void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
        {
            //IL_0001: Unknown result type (might be due to invalid IL or missing references)
            //IL_0009: Unknown result type (might be due to invalid IL or missing references)
            //IL_000f: Invalid comparison between Unknown and I4
            bool flag = (int)device.Type == 0 || (int)device.Type == 6;

            for (int i = 0; i < fragment.Count; i++)
            {
                Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
                Point   gridPositionOfIndex   = fragment.GetGridPositionOfIndex(i);
                float   dynamicNoise          = NoiseHelper.GetDynamicNoise(canvasPositionOfIndex * 0.3f, time / 5f);
                dynamicNoise = Math.Max(0f, 1f - dynamicNoise * 2.5f);
                Vector4 vector = Vector4.Lerp(_backgroundColor, _sporeColor, dynamicNoise);
                if (flag)
                {
                    float dynamicNoise2 = NoiseHelper.GetDynamicNoise(gridPositionOfIndex.X, gridPositionOfIndex.Y, time / 100f);
                    dynamicNoise2 = Math.Max(0f, 1f - dynamicNoise2 * 20f);
                    vector        = Vector4.Lerp(vector, _flowerColors[((gridPositionOfIndex.Y * 47 + gridPositionOfIndex.X) % 5 + 5) % 5], dynamicNoise2);
                }
                fragment.SetColor(i, vector);
            }
        }
Пример #11
0
 private void ProcessHighDetail(
     RgbDevice device,
     Fragment fragment,
     EffectDetailLevel quality,
     float time)
 {
     for (int index = 0; index < fragment.Count; ++index)
     {
         Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(index);
         float   staticNoise           = NoiseHelper.GetStaticNoise(fragment.GetGridPositionOfIndex(index).X / 2);
         float   num = (float)(((double)canvasPositionOfIndex.Y + (double)canvasPositionOfIndex.X / 2.0 - (double)staticNoise + (double)time) % 2.0);
         if ((double)num < 0.0)
         {
             num += 2f;
         }
         if ((double)num < 0.200000002980232)
         {
             num = (float)(1.0 - (double)num / 0.200000002980232);
         }
         Vector4 vector4 = Vector4.Lerp(this._primaryColor, this._secondaryColor, num / 2f);
         fragment.SetColor(index, vector4);
     }
 }
Пример #12
0
        private void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
        {
            Vector2 value = new Vector2(1.5f, 0.5f);

            time *= 4f;
            for (int i = 0; i < fragment.Count; i++)
            {
                Vector2 vector  = fragment.GetCanvasPositionOfIndex(i) - value;
                float   num     = vector.Length() * 2f;
                float   num2    = (float)Math.Atan2(vector.Y, vector.X);
                float   amount  = (float)Math.Sin(num * 4f - time - num2) * 0.5f + 0.5f;
                Vector4 vector2 = Vector4.Lerp(_primaryColor, _secondaryColor, amount);
                if (num < 1f)
                {
                    float num3 = num / 1f;
                    num3 *= num3 * num3;
                    float amount2 = (float)Math.Sin(4f - time - num2) * 0.5f + 0.5f;
                    vector2 = Vector4.Lerp(_primaryColor, _secondaryColor, amount2) * num3;
                }
                vector2.W = 1f;
                fragment.SetColor(i, vector2);
            }
        }
Пример #13
0
 private void ProcessHighDetail(
     RgbDevice device,
     Fragment fragment,
     EffectDetailLevel quality,
     float time)
 {
     for (int index = 0; index < fragment.Count; ++index)
     {
         Point   gridPositionOfIndex   = fragment.GetGridPositionOfIndex(index);
         Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(index);
         canvasPositionOfIndex.X -= 1.8f;
         if ((double)canvasPositionOfIndex.X < 0.0)
         {
             canvasPositionOfIndex.X *= -1f;
             gridPositionOfIndex.Y   += 101;
         }
         float num1 = (float)(((double)NoiseHelper.GetStaticNoise(gridPositionOfIndex.Y) * 5.0 + (double)time * 0.400000005960464) % 5.0);
         float num2 = 1f;
         if ((double)num1 > 1.0)
         {
             num2 = 1f - MathHelper.Clamp((float)(((double)num1 - 0.400000005960464 - 1.0) / 0.400000005960464), 0.0f, 1f);
             num1 = 1f;
         }
         float   num3    = num1 - canvasPositionOfIndex.X / 5f;
         Vector4 vector4 = this._backgroundColor;
         if ((double)num3 > 0.0)
         {
             float num4 = 1f;
             if ((double)num3 < 0.200000002980232)
             {
                 num4 = num3 / 0.2f;
             }
             vector4 = (gridPositionOfIndex.X + 7 * gridPositionOfIndex.Y) % 5 != 0 ? Vector4.Lerp(this._backgroundColor, this._vineColor, num4 * num2) : Vector4.Lerp(this._backgroundColor, this._bulbColor, num4 * num2);
         }
         fragment.SetColor(index, vector4);
     }
 }
Пример #14
0
 private void ProcessHighDetail(
     RgbDevice device,
     Fragment fragment,
     EffectDetailLevel quality,
     float time)
 {
     for (int index = 0; index < fragment.Count; ++index)
     {
         Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(index);
         Point   gridPositionOfIndex   = fragment.GetGridPositionOfIndex(index);
         Vector4 vector4 = this._backgroundColor;
         float   num     = (float)(((double)NoiseHelper.GetStaticNoise(gridPositionOfIndex.Y * 7) * 10.0 + (double)time) % 10.0 - ((double)canvasPositionOfIndex.X + 2.0));
         if ((double)num > 0.0)
         {
             float amount = Math.Max(0.0f, 1.2f - num);
             if ((double)num < 0.200000002980232)
             {
                 amount = num * 5f;
             }
             vector4 = Vector4.Lerp(vector4, this._glowColor, amount);
         }
         fragment.SetColor(index, vector4);
     }
 }
 private void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
 {
     time *= 2f;
     for (int i = 0; i < fragment.Count; i++)
     {
         Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
         Vector4 backgroundColor       = _backgroundColor;
         float   num   = time * 0.5f + canvasPositionOfIndex.X + canvasPositionOfIndex.Y;
         float   value = (float)Math.Cos(num) * 2f + 2f;
         value = MathHelper.Clamp(value, 0f, 1f);
         num   = (num + (float)Math.PI) % ((float)Math.PI * 6f);
         Vector4 value2;
         if (num < (float)Math.PI * 2f)
         {
             float staticNoise = NoiseHelper.GetStaticNoise(canvasPositionOfIndex * 0.3f + new Vector2(12.5f, time * 0.2f));
             staticNoise = Math.Max(0f, 1f - staticNoise * staticNoise * 4f * staticNoise);
             staticNoise = MathHelper.Clamp(staticNoise, 0f, 1f);
             value2      = Vector4.Lerp(_fireDarkColor, _fireBrightColor, staticNoise);
         }
         else if (num < (float)Math.PI * 4f)
         {
             float dynamicNoise = NoiseHelper.GetDynamicNoise(new Vector2((canvasPositionOfIndex.X + canvasPositionOfIndex.Y) * 0.2f, 0f), time / 5f);
             dynamicNoise = Math.Max(0f, 1f - dynamicNoise * 1.5f);
             value2       = Vector4.Lerp(_iceDarkColor, _iceBrightColor, dynamicNoise);
         }
         else
         {
             float dynamicNoise2 = NoiseHelper.GetDynamicNoise(canvasPositionOfIndex * 0.15f, time * 0.05f);
             dynamicNoise2 = (float)Math.Sin(dynamicNoise2 * 15f) * 0.5f + 0.5f;
             dynamicNoise2 = Math.Max(0f, 1f - 5f * dynamicNoise2);
             value2        = Vector4.Lerp(_lightningDarkColor, _lightningBrightColor, dynamicNoise2);
         }
         backgroundColor = Vector4.Lerp(backgroundColor, value2, value);
         fragment.SetColor(i, backgroundColor);
     }
 }
Пример #16
0
 private void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
 {
     for (int i = 0; i < fragment.Count; i++)
     {
         Point   gridPositionOfIndex   = fragment.GetGridPositionOfIndex(i);
         Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
         Vector4 value = _baseColor;
         float   num   = ((NoiseHelper.GetStaticNoise(gridPositionOfIndex.X) * 10f + time * 0.2f) % 10f - (1f - canvasPositionOfIndex.Y)) * 2f;
         if (num > 0f)
         {
             float amount = Math.Max(0f, 1.5f - num);
             if (num < 0.5f)
             {
                 amount = num * 2f;
             }
             value = Vector4.Lerp(value, _sporeColor, amount);
         }
         float staticNoise = NoiseHelper.GetStaticNoise(canvasPositionOfIndex * 0.3f + new Vector2(0f, time * 0.1f));
         staticNoise  = Math.Max(0f, 1f - staticNoise * (1f + (1f - canvasPositionOfIndex.Y) * 4f));
         staticNoise *= Math.Max(0f, (canvasPositionOfIndex.Y - 0.3f) / 0.7f);
         value        = Vector4.Lerp(value, _edgeGlowColor, staticNoise);
         fragment.SetColor(i, value);
     }
 }
Пример #17
0
 private void ProcessHighDetail(
     RgbDevice device,
     Fragment fragment,
     EffectDetailLevel quality,
     float time)
 {
     for (int index = 0; index < fragment.Count; ++index)
     {
         Point   gridPositionOfIndex   = fragment.GetGridPositionOfIndex(index);
         Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(index);
         gridPositionOfIndex.X /= 2;
         double num1    = ((double)NoiseHelper.GetStaticNoise(gridPositionOfIndex.X) * 40.0 + (double)time * 1.0) % 40.0;
         float  amount1 = 0.0f;
         float  num2    = (float)(num1 - (double)canvasPositionOfIndex.Y / 1.20000004768372);
         if (num1 > 1.0)
         {
             float num3 = (float)(1.0 - (double)canvasPositionOfIndex.Y / 1.20000004768372);
             amount1 = (float)((1.0 - (double)Math.Min(1f, num2 - num3)) * (1.0 - (double)Math.Min(1f, num3 / 1f)));
         }
         Vector4 vector4 = this._backgroundColor;
         if ((double)num2 > 0.0)
         {
             float amount2 = Math.Max(0.0f, (float)(1.20000004768372 - (double)num2 * 4.0));
             if ((double)num2 < 0.100000001490116)
             {
                 amount2 = num2 / 0.1f;
             }
             vector4 = Vector4.Lerp(Vector4.Lerp(vector4, this._cannonBallColor, amount2), this._splashColor, amount1);
         }
         if ((double)canvasPositionOfIndex.Y > 0.800000011920929)
         {
             vector4 = this._waterColor;
         }
         fragment.SetColor(index, vector4);
     }
 }
Пример #18
0
        private void ProcessHighDetail(RgbDevice device, Fragment fragment, EffectDetailLevel quality, float time)
        {
            //IL_0001: Unknown result type (might be due to invalid IL or missing references)
            //IL_0009: Unknown result type (might be due to invalid IL or missing references)
            //IL_000f: Invalid comparison between Unknown and I4
            //IL_0014: Unknown result type (might be due to invalid IL or missing references)
            if ((int)device.Type != 0 && (int)device.Type != 6)
            {
                ProcessLowDetail(device, fragment, quality, time);
                return;
            }
            bool  flag = true;
            float num  = time * 0.1f % 2f;

            if (num > 1f)
            {
                num  = 2f - num;
                flag = false;
            }
            Vector2 vector = new Vector2(num * 7f - 3.5f, 0f) + fragment.get_CanvasCenter();

            for (int i = 0; i < fragment.Count; i++)
            {
                Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(i);
                Point   gridPositionOfIndex   = fragment.GetGridPositionOfIndex(i);
                Vector4 vector2 = _backgroundColor;
                Vector2 vector3 = canvasPositionOfIndex - vector;
                float   num2    = vector3.Length();
                if (num2 < 0.5f)
                {
                    float amount = 1f - MathHelper.Clamp((num2 - 0.5f + 0.2f) / 0.2f, 0f, 1f);
                    float num3   = MathHelper.Clamp((vector3.X + 0.5f - 0.2f) / 0.6f, 0f, 1f);
                    if (flag)
                    {
                        num3 = 1f - num3;
                    }
                    Vector4 value  = Vector4.Lerp(_eyeColor, _veinColor, num3);
                    float   value2 = (float)Math.Atan2(vector3.Y, vector3.X);
                    if (!flag && (float)Math.PI - Math.Abs(value2) < 0.6f)
                    {
                        value = _mouthColor;
                    }
                    vector2 = Vector4.Lerp(vector2, value, amount);
                }
                if (flag && gridPositionOfIndex.Y == 3 && canvasPositionOfIndex.X > vector.X)
                {
                    float value3 = 1f - Math.Abs(canvasPositionOfIndex.X - vector.X * 2f - 0.5f) / 0.5f;
                    vector2 = Vector4.Lerp(vector2, _laserColor, MathHelper.Clamp(value3, 0f, 1f));
                }
                else if (!flag)
                {
                    Vector2 vector4 = canvasPositionOfIndex - (vector - new Vector2(1.2f, 0f));
                    vector4.Y *= 3.5f;
                    float num4 = vector4.Length();
                    if (num4 < 0.7f)
                    {
                        float dynamicNoise = NoiseHelper.GetDynamicNoise(canvasPositionOfIndex, time);
                        dynamicNoise  = dynamicNoise * dynamicNoise * dynamicNoise;
                        dynamicNoise *= 1f - MathHelper.Clamp((num4 - 0.7f + 0.3f) / 0.3f, 0f, 1f);
                        vector2       = Vector4.Lerp(vector2, _flameColor, dynamicNoise);
                    }
                }
                fragment.SetColor(i, vector2);
            }
        }
Пример #19
0
 private void ProcessHighDetail(
     RgbDevice device,
     Fragment fragment,
     EffectDetailLevel quality,
     float time)
 {
     if (device.Type != null && (int)device.Type != 6)
     {
         this.ProcessLowDetail(device, fragment, quality, time);
     }
     else
     {
         bool  flag = true;
         float num1 = (float)((double)time * 0.100000001490116 % 2.0);
         if ((double)num1 > 1.0)
         {
             num1 = 2f - num1;
             flag = false;
         }
         Vector2 vector2_1 = new Vector2((float)((double)num1 * 7.0 - 3.5), 0.0f) + fragment.CanvasCenter;
         for (int index = 0; index < fragment.Count; ++index)
         {
             Vector2 canvasPositionOfIndex = fragment.GetCanvasPositionOfIndex(index);
             Point   gridPositionOfIndex   = fragment.GetGridPositionOfIndex(index);
             Vector4 vector4_1             = this._backgroundColor;
             Vector2 vector2_2             = canvasPositionOfIndex - vector2_1;
             float   num2 = vector2_2.Length();
             if ((double)num2 < 0.5)
             {
                 float amount1 = 1f - MathHelper.Clamp((float)(((double)num2 - 0.5 + 0.200000002980232) / 0.200000002980232), 0.0f, 1f);
                 float amount2 = MathHelper.Clamp((float)(((double)vector2_2.X + 0.5 - 0.200000002980232) / 0.600000023841858), 0.0f, 1f);
                 if (flag)
                 {
                     amount2 = 1f - amount2;
                 }
                 Vector4 vector4_2 = Vector4.Lerp(this._eyeColor, this._veinColor, amount2);
                 float   num3      = (float)Math.Atan2((double)vector2_2.Y, (double)vector2_2.X);
                 if (!flag && 3.14159274101257 - (double)Math.Abs(num3) < 0.600000023841858)
                 {
                     vector4_2 = this._mouthColor;
                 }
                 vector4_1 = Vector4.Lerp(vector4_1, vector4_2, amount1);
             }
             if (flag && gridPositionOfIndex.Y == 3 && (double)canvasPositionOfIndex.X > (double)vector2_1.X)
             {
                 float num3 = (float)(1.0 - (double)Math.Abs((float)((double)canvasPositionOfIndex.X - (double)vector2_1.X * 2.0 - 0.5)) / 0.5);
                 vector4_1 = Vector4.Lerp(vector4_1, this._laserColor, MathHelper.Clamp(num3, 0.0f, 1f));
             }
             else if (!flag)
             {
                 Vector2 vector2_3 = canvasPositionOfIndex - (vector2_1 - new Vector2(1.2f, 0.0f));
                 vector2_3.Y *= 3.5f;
                 float num3 = vector2_3.Length();
                 if ((double)num3 < 0.699999988079071)
                 {
                     float dynamicNoise = NoiseHelper.GetDynamicNoise(canvasPositionOfIndex, time);
                     float amount       = dynamicNoise * dynamicNoise * dynamicNoise * (1f - MathHelper.Clamp((float)(((double)num3 - 0.699999988079071 + 0.300000011920929) / 0.300000011920929), 0.0f, 1f));
                     vector4_1 = Vector4.Lerp(vector4_1, this._flameColor, amount);
                 }
             }
             fragment.SetColor(index, vector4_1);
         }
     }
 }