using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class CubeWithCrystals : ActiveBlock
|
|
{
|
|
public GameObject crystals;
|
|
|
|
public override int GetInitative()
|
|
{
|
|
return 3;
|
|
}
|
|
|
|
public override IEnumerator OnRoundEnd(PlayerData[] allPlayers)
|
|
{
|
|
StartCoroutine(GrowCoroutine());
|
|
yield return new WaitForSeconds(0.5f);
|
|
StartCoroutine(ShrinkCoroutine());
|
|
isFinished = true;
|
|
//yield break;
|
|
}
|
|
|
|
IEnumerator GrowCoroutine()
|
|
{
|
|
float elapsedTime = 0;
|
|
Vector3 startPosition = crystals.transform.position;
|
|
Vector3 endPosition = new Vector3(crystals.transform.position.x, crystals.transform.position.y + 1.0f, crystals.transform.position.z);
|
|
float time = 0.8f;
|
|
while (elapsedTime < time)
|
|
{
|
|
transform.position = Vector3.Lerp(startPosition, endPosition, (elapsedTime / time));
|
|
yield return new WaitForEndOfFrame();
|
|
elapsedTime += Time.deltaTime;
|
|
}
|
|
crystals.transform.position = endPosition;
|
|
}
|
|
|
|
IEnumerator ShrinkCoroutine()
|
|
{
|
|
float elapsedTime = 0;
|
|
Vector3 startPosition = crystals.transform.position;
|
|
Vector3 endPosition = new Vector3(crystals.transform.position.x, crystals.transform.position.y - 1.0f, crystals.transform.position.z);
|
|
float time = 0.8f;
|
|
while (elapsedTime < time)
|
|
{
|
|
transform.position = Vector3.Lerp(startPosition, endPosition, (elapsedTime / time));
|
|
yield return new WaitForEndOfFrame();
|
|
elapsedTime += Time.deltaTime;
|
|
}
|
|
crystals.transform.position = endPosition;
|
|
}
|
|
}
|