42 lines
1.3 KiB
C#
42 lines
1.3 KiB
C#
using That_One_Nerd.Unity.Games.ArcadeManiac.Minigames.EntityMarchDream.Bunches.GameInterface;
|
|
using That_One_Nerd.Unity.Games.ArcadeManiac.Misc.Handlers;
|
|
using UnityEngine;
|
|
|
|
namespace That_One_Nerd.Unity.Games.ArcadeManiac.Minigames.EntityMarchDream
|
|
{
|
|
public class CloudPiece : MonoBehaviour
|
|
{
|
|
[Header("(Sin)wave")]
|
|
public float waveOffset;
|
|
public float waveSize;
|
|
public float waveSpeed;
|
|
|
|
private PoolHandler.PoolObject pooled;
|
|
private float startedSeen;
|
|
private Renderer ren;
|
|
private float waveTimer;
|
|
|
|
private void Awake()
|
|
{
|
|
pooled = GetComponent<PoolHandler.PoolObject>();
|
|
ren = GetComponent<Renderer>();
|
|
waveTimer = waveOffset;
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (PauseMenu.IsPaused) return;
|
|
|
|
startedSeen += startedSeen == -1 ? 0 : Time.deltaTime;
|
|
transform.position += new Vector3(Time.deltaTime, 0, 0);
|
|
if (ren.isVisible) startedSeen = -1;
|
|
else if ((!ren.isVisible && startedSeen == -1) || startedSeen >= 2) pooled.Handler.Deposit(gameObject);
|
|
|
|
waveTimer += Time.deltaTime * waveSpeed;
|
|
transform.localScale = Vector3.one * (((Mathf.Cos(waveTimer) + 1) * waveSize / 2) + 1);
|
|
}
|
|
|
|
private void OnEnable() => startedSeen = 0;
|
|
}
|
|
}
|