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; } }
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; } }
public override void DeathStarBehave() { phase = DestroyingPhase.PlanetDissolve; }