using UnityEngine; using UnityEngine.EventSystems; using System.Collections; using System.Collections.Generic; public class Star : MonoBehaviour, IPointerClickHandler { #region Config public Rigidbody2D Rigidbody { get { if (Rigidbody_ == null) { Rigidbody_ = GetComponent(); } return Rigidbody_; } set { Rigidbody_ = value; } } public BoxCollider2D BoxCollider { get { if (BoxCollider_ == null) { BoxCollider_ = GetComponent(); } return BoxCollider_; } set { BoxCollider_ = value; } } public SpriteRenderer SpriteRenderer { get { if (SpriteRenderer_ == null) { SpriteRenderer_ = GetComponentInChildren(); SpriteRenderer_.CreateTweenScale(0, 0.75f, 0.25f, false, true, Curve.EaseOutQuad); TweenRoot tween = SpriteRenderer_.CreateTweenSr(0, 1, 0.25f, true, false, Curve.EaseOutQuad); tween.OnBackwardFinish = () => { ResourceManager.Save(gameObject, true); GardenManager.StarList.Remove(this); }; } return SpriteRenderer_; } set { SpriteRenderer_ = value; } } public Rigidbody2D Rigidbody_; public BoxCollider2D BoxCollider_; public SpriteRenderer SpriteRenderer_; public static float Time; public float Timer; public float MinSpeed = 1.5f; public float MaxSpeed = 3f; public float YSpeed = 6f; public float YFreezePosition; public static float MinigameCD; #endregion public void Update() { Timer += UnityEngine.Time.deltaTime; if (Timer >= Time) { Timer = 0; SpriteRenderer.TweenBacSr(); } if (transform.position.y <= YFreezePosition - 0.1f) { Rigidbody.velocity = new Vector2(); Rigidbody.isKinematic = true; } } public void Init(float freezY, bool forceLeft, bool forceRight) { AudioManager.PlayClip(AudioLabel.Bubble); float speedX = Mathf.Lerp(MinSpeed, MaxSpeed, Random.Range(0f, 1f)); if (forceLeft) { speedX = -speedX; } else if (forceRight) { } else { if (Random.Range(0f, 1f) < 0.5f) { speedX = -speedX; } } Rigidbody.velocity = new Vector2(speedX, YSpeed); Rigidbody.isKinematic = false; BoxCollider.enabled = true; Timer = 0; YFreezePosition = freezY; SpriteRenderer.GetTweenSr().InDestination = true; SpriteRenderer.GetTweenScale().InOrigin = true; SpriteRenderer.TweenForScale(); } public void OnPointerClick(PointerEventData eventData) { AudioManager.PlayClip(AudioLabel.GetCurrent); Rigidbody.velocity = new Vector2(); Rigidbody.isKinematic = true; BoxCollider.enabled = false; InfoBoxManager.GardenInfoBox.Display(Language.GetStr(LanguageLabel.Object__Star) + MinigameCD.ToString("0") + Auxiliary.GetUnit((int)MinigameCD, Unit.Second), 10f, Color.white, ResourceManager.LoadSprite("Atlas", Folder.Atlas)); Move2D move2D = new Move2D(transform); move2D.Restrain2D = Restrain2D.Y; Vector3 destination = PlayerManager.Player.ChildDic[PlayerLabel.EnterGameTra].position; move2D.StartMove(destination, 0.5f, false, Curve.EaseOutQuad); move2D = new Move2D(transform); move2D.Restrain2D = Restrain2D.X; destination = PlayerManager.Player.ChildDic[PlayerLabel.EnterGameTra].position; move2D.StartMove(destination, 0.5f, false, Curve.Linear); DelayCall.Call ( 0.4f, () => { SpriteRenderer.TweenBacSr(); Manager.MinigameCDTimer -= MinigameCD; } ); } }