| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class ComboPomegaranteBehavior : MonoBehaviour
- {
- private GamingManager _manager;
- // Animation related variables
- private const float BuldgePeakTime = 0.2f;
- private const float BuldgePeakScale = 4f;
- private const float BuldgeFinishTime = 0.3f;
- private const float BuldgeFinishScale = 3f;
- private float TimeSinceBuldge = 0f;
- private const float HitPeakTime = 0.1f;
- private const float HitFinishTime = 0.15f;
- private const float HitPeakScale = 4f;
- private float TimeSinceHit = 0f;
-
- private bool PlayingBuldgeAnim = false;
- private bool PlayingHitAnim = false;
- private bool bPlayBuldgeAnim = false;
- private bool bPlayHitAnim = false;
- private int HitCount = 0;
- private AudioSource hitAudio;
- public void Init(GamingManager manager)
- {
- _manager = manager;
- }
- void Start()
- {
- hitAudio = gameObject.AddComponent<AudioSource>();
- }
- // Update is called once per frame
- void Update()
- {
- if (_manager.IsGameStarted() && !_manager.IsGamePaused())
- {
- if (bPlayBuldgeAnim)
- {
- bPlayBuldgeAnim = false;
- PlayingBuldgeAnim = true;
- }
- if (PlayingBuldgeAnim)
- {
- TimeSinceBuldge += Time.deltaTime;
- if (TimeSinceBuldge > BuldgeFinishTime)
- {
- PlayingBuldgeAnim = false;
- gameObject.transform.localScale = new Vector3(BuldgeFinishScale, BuldgeFinishScale, BuldgeFinishScale);
- TimeSinceBuldge = 0f;
- }
- else if (TimeSinceBuldge < BuldgePeakTime)
- {
- float scale = Mathf.Lerp(1f, BuldgePeakScale, (TimeSinceBuldge / BuldgePeakTime));
- gameObject.transform.localScale = new Vector3(scale, scale, scale);
- }
- else // TimeSinceBuldge > BuldgePeakTime && TimeSinceBuldge < BuldgeFinishTime
- {
- float scale = Mathf.Lerp(BuldgePeakScale, BuldgeFinishScale, (TimeSinceBuldge - BuldgePeakTime) / (BuldgeFinishTime - BuldgePeakTime));
- gameObject.transform.localScale = new Vector3(scale, scale, scale);
- }
- return;
- }
- if (bPlayHitAnim)
- {
- bPlayHitAnim= false;
- PlayingHitAnim = true;
- }
- if (PlayingHitAnim)
- {
- TimeSinceHit += Time.deltaTime;
- if (TimeSinceHit > HitFinishTime)
- {
- PlayingHitAnim = false;
- gameObject.transform.localScale = new Vector3(BuldgeFinishScale, BuldgeFinishScale, BuldgeFinishScale);
- TimeSinceHit = 0f;
- }
- else if (TimeSinceHit < HitPeakTime)
- {
- float scale = Mathf.Lerp(BuldgeFinishScale, HitPeakScale, (TimeSinceHit / HitPeakTime));
- gameObject.transform.localScale = new Vector3(scale, scale, scale);
- }
- else // TimeSinceHit > HitPeakTime && TimeSinceHit < HitFinishTime
- {
- float scale = Mathf.Lerp(HitPeakScale, BuldgeFinishScale, (TimeSinceHit - HitPeakTime) / (HitFinishTime - HitPeakTime));
- gameObject.transform.localScale = new Vector3(scale, scale, scale);
- }
- return;
- }
- }
-
- }
- public void Hit()
- {
- if (HitCount == 0)
- {
- bPlayBuldgeAnim = true;
- }
- else
- {
- bPlayHitAnim= true;
- }
- HitCount++;
- hitAudio.clip = _manager.GetAudioManager().GetRandomSound(SoundCategory.FruitSmash);
- if (UserSettings.ins.openEffect) hitAudio.Play();
- }
- public int GetHitCount()
- {
- return HitCount;
- }
- }
|