SHADE_Y3/Assets/Scripts/UI/SC_StealFoodPopUp.cs

112 lines
2.9 KiB
C#

using System;
using SHADE_Scripting.Audio;
using SHADE;
public class StealFoodPopUp : Script
{
[NonSerialized]
private TweenThread rot;
[NonSerialized]
private TweenThread scaleX;
[NonSerialized]
private TweenThread scaleY;
[NonSerialized]
private TweenThread scaleOutX;
[NonSerialized]
private TweenThread scaleOutY;
private Transform tran;
public float popInDuration = 0.3f;
public float popOutDuration = 0.3f;
public float stayDuration = 1.0f;
public float rotationAmt = 1800;
public float scaleAmtX = 538;
public float scaleAmtY = 377;
private bool popInDone = false;
private bool stayDone = false;
private bool createThreadOnce = true;
private float timer = 0;
private bool playAudio = true;
protected override void start()
{
rot = TweenManager.CreateTweenThread(popInDuration * 0.4f, 0, rotationAmt, EASING_METHOD.LINEAR);
scaleX = TweenManager.CreateTweenThread(popInDuration, 0, scaleAmtX, EASING_METHOD.EASE_OUT_BACK);
scaleY = TweenManager.CreateTweenThread(popInDuration, 0, scaleAmtY, EASING_METHOD.EASE_OUT_BACK);
tran = GetComponent<Transform>();
if (!tran)
Debug.LogError("Missing Transform");
else
{
tran.LocalScale = new Vector3(0.0f, 0.0f, 1.0f);
tran.LocalEulerAngles = new Vector3(0.0f, 0.0f, 0.0f);
}
AudioHandler.audioClipHandlers["StealFood"] = Audio.CreateAudioClip("event:/UI/spin_in");
}
protected override void update()
{
if (!GameManager.Instance.PreviewLevelDone)
{
if (rot != null && scaleX != null && scaleY != null)
{
rot.Reset();
scaleX.Reset();
scaleY.Reset();
}
return;
}
if (playAudio)
{
AudioHandler.audioClipHandlers["StealFood"].Play();
playAudio = false;
}
if (!popInDone && rot != null && scaleX != null && scaleY != null)
{
tran.LocalEulerAngles = new Vector3(0.0f, 0.0f, SHADE.Math.DegreesToRadians(rot.GetValue()));
tran.LocalScale = new Vector3(scaleX.GetValue(), scaleY.GetValue(), 1);
}
else
{
timer += Time.DeltaTimeF;
if (timer >= stayDuration)
stayDone = true;
}
if (rot != null && scaleX != null && scaleY != null && rot.IsCompleted() && scaleX.IsCompleted() && scaleY.IsCompleted())
popInDone = true;
if (stayDone)
{
if (createThreadOnce)
{
scaleOutX = TweenManager.CreateTweenThread(popOutDuration, scaleAmtX, 0, EASING_METHOD.EASE_IN_SINE);
scaleOutY = TweenManager.CreateTweenThread(popOutDuration, scaleAmtY, 0, EASING_METHOD.EASE_IN_SINE);
createThreadOnce = false;
}
if (scaleOutX != null && scaleOutY != null)
tran.LocalScale = new Vector3(scaleOutX.GetValue(), scaleOutY.GetValue(), 1);
if (scaleOutX != null && scaleOutY != null && scaleOutX.IsCompleted() && scaleOutY.IsCompleted())
{
GameObject.SetActive(false);
GameManager.Instance.stealFoodPopUpDone = true;
}
}
}
}