You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.6 KiB

  1. using System.Collections;
  2. using UnityEngine;
  3. public class CubeWithCrystals : ActiveBlock
  4. {
  5. public GameObject crystals;
  6. public override int GetInitative()
  7. {
  8. return 3;
  9. }
  10. public override IEnumerator OnRoundEnd(PlayerData[] allPlayers)
  11. {
  12. StartCoroutine(GrowCoroutine());
  13. yield return new WaitForSeconds(1.0f);
  14. StartCoroutine(ShrinkCoroutine());
  15. isFinished = true;
  16. }
  17. IEnumerator GrowCoroutine()
  18. {
  19. float elapsedTime = 0;
  20. Vector3 startPosition = crystals.transform.position;
  21. Vector3 endPosition = new Vector3(crystals.transform.position.x, crystals.transform.position.y + 1.0f, crystals.transform.position.z);
  22. float time = 0.8f;
  23. while (elapsedTime < time)
  24. {
  25. transform.position = Vector3.Lerp(startPosition, endPosition, (elapsedTime / time));
  26. yield return new WaitForEndOfFrame();
  27. elapsedTime += Time.deltaTime;
  28. }
  29. crystals.transform.position = endPosition;
  30. }
  31. IEnumerator ShrinkCoroutine()
  32. {
  33. float elapsedTime = 0;
  34. Vector3 startPosition = crystals.transform.position;
  35. Vector3 endPosition = new Vector3(crystals.transform.position.x, crystals.transform.position.y - 1.0f, crystals.transform.position.z);
  36. float time = 0.8f;
  37. while (elapsedTime < time)
  38. {
  39. transform.position = Vector3.Lerp(startPosition, endPosition, (elapsedTime / time));
  40. yield return new WaitForEndOfFrame();
  41. elapsedTime += Time.deltaTime;
  42. }
  43. crystals.transform.position = endPosition;
  44. }
  45. }