using SHADE; using SHADE_Scripting.Audio; using System; public class JumpPad : Script { private Transform tran; private float defaultScale; public float scaleMaxSize = 2.0f; public float scaleDuration = 0.25f; private bool landed = false; private bool scaleUpDone = false; [NonSerialized] private TweenThread scaleUp; [NonSerialized] private TweenThread scaleDown; protected override void awake() { AudioHandler.audioClipHandlers["SFXJumpPad"] = Audio.CreateAudioClip("event:/Props/jumppad_boing"); tran = GameObject.GetComponent(); if (!tran) Debug.LogError("NO TRANSFORM"); defaultScale = tran.LocalScale.y; } protected override void start() { scaleUp = TweenManager.CreateTweenThread(scaleDuration, tran.LocalScale.y, scaleMaxSize, EASING_METHOD.EASE_IN_SINE); scaleDown = TweenManager.CreateTweenThread(scaleDuration, tran.LocalScale.y, defaultScale, EASING_METHOD.EASE_IN_SINE); } protected override void update() { if (landed && tran) { tran.LocalScale = new Vector3(tran.LocalScale.x, scaleUp.GetValue(), tran.LocalScale.z); if (scaleUp.IsCompleted()) { landed = false; scaleUpDone = true; scaleDown.Reset(); } } if (scaleUpDone && !landed) { tran.LocalScale = new Vector3(tran.LocalScale.x, scaleDown.GetValue(), tran.LocalScale.z); if (scaleDown.IsCompleted()) { scaleUpDone = false; } } } protected override void onCollisionEnter(CollisionInfo info) { if (info.GameObject.GetScript() && info.GameObject.GetScript().currentState == PlayerController.RaccoonStates.FALLING) { Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["SFXJumpPad"], GameObject.EntityId); AudioHandler.audioClipHandlers["SFXJumpPad"].Play(); info.GameObject.GetScript().landedOnJumpPad = true; landed = true; scaleUp.Reset(); } } }