Beispiel #1
0
        public void ShockWave()
        {
            if (!explosionWave.activeSelf)
            {
                explosionWave.SetActive(true);
            }
            scaleWave += Time.deltaTime * explosionWaveSpeed;
            explosionWave.transform.localScale = new Vector3(scaleWave, scaleWave, scaleWave);

            if (scaleWave > 4.5f)
            {
                textureValue += Time.deltaTime / scaleMask;
            }
            planetTexture.SetFloat("_Dissolve", textureValue);

            if (scaleWave > 4 && !madeSound)
            {
                GameManager.events.CallPlayDestroySound();
                madeSound = true;
            }

            if (scaleWave > 7.5f)
            {
                scaleMask += Time.deltaTime * (scaleMask / 2);
            }
            waveMask.localScale = new Vector3(scaleMask, scaleMask, scaleMask);

            if (scaleMask > 1)
            {
                planetManager.ApplyRender(manager.currentPlanet);

                scaleMask = .5f;
                scaleWave = 1;
                explosionWave.SetActive(false);
                phase     = DestroyingPhase.none;
                madeSound = false;

                planetTexture.SetColor("_Color_Dissolve", Color.black);
                planetTexture.SetFloat("_Bordure", 0);
                planetTexture.SetFloat("_Dissolve", 0);
                textureValue = 0;
            }
        }
Beispiel #2
0
        public void TextureEffects()
        {
            textureValue += Time.deltaTime / 2;

            Color currentColor = planetTexture.GetColor("_Color_Dissolve");

            planetTexture.SetColor("_Color_Dissolve", Color32.Lerp(Color.black, Color.white, textureValue));
            planetTexture.SetFloat("_Bordure", textureValue);

            if (textureValue > .05f && textureValue < .65f)
            {
                if (!explosionWave.activeSelf)
                {
                    explosionWave.SetActive(true);
                }
                scaleWave += Time.deltaTime * explosionWaveSpeed * 2;
                explosionWave.transform.localScale = new Vector3(scaleWave, scaleWave, scaleWave);
                if (scaleWave > 5.5f)
                {
                    scaleMask += textureValue - .05f;
                }
                waveMask.localScale = new Vector3(scaleMask, scaleMask, scaleMask);
            }
            if (scaleMask > 1.5f || textureValue > .65f)
            {
                explosionWave.SetActive(false);
                scaleMask = .5f;
                scaleWave = 1;
            }



            if (textureValue > 1)
            {
                scaleMask = .5f;
                scaleWave = 1;
                explosionWave.SetActive(false);
                textureValue = 0;
                phase        = DestroyingPhase.Explosion;
            }
        }
Beispiel #3
0
 public override void DeathStarBehave()
 {
     phase = DestroyingPhase.PlanetDissolve;
 }