// *********************************************************************** // Assembly : Game // Author : Kimch // Created : 2020-09-02 // Description : // Last Modified By : // Last Modified On : // *********************************************************************** // // // *********************************************************************** using UnityEngine; namespace G { public class Cha_Control_ride_cha : MonoBehaviour { public Transform horseSpine; public Transform horse; public Transform dummy_weapon; public Transform ef_souleat; public Transform ef_damage; public Transform ef_twirl; public Transform spear; public Transform coin; private Transform ef_swing; private bool _isfinish; private Ef_swing1_ride script_swing; private Cha_Control_ride_horse script_horse; private Ef_twirl script_twirl; private Cam_Move_ride script_cam; private float _attackDelay; private float _particleDelay; private float _falldownDelay; public int amount_soulstone; public int _coinCount; public int _monsterCount; public int _behitCount; private Animator _animator; private Ef_Coin[] _scriptCoins = new Ef_Coin[8]; private int _coinFxIndex = 0; private Ef_Coin script_coin { get { _coinFxIndex++; if (_coinFxIndex >= _scriptCoins.Length) _coinFxIndex = 0; return _scriptCoins[_coinFxIndex]; } } #region Method void PlayAnim(string anim) { _animator.Play(anim); } void PlayAnim(string anim, int layer) { _animator.Play(anim, layer); } #endregion #region Unity private void Awake() { //myanimation = this.GetComponent(); _animator = GetComponent(); } private void Start() { script_cam = Camera.main.GetComponent(); ef_swing = transform.Find("ef_swing1"); _scriptCoins[0] = coin.GetComponent(); for (int i = 1; i < _scriptCoins.Length; i++) { _scriptCoins[i] = Object.Instantiate(_scriptCoins[0]); } script_swing = ef_swing.GetComponent(); script_horse = horse.GetComponent(); script_twirl = ef_twirl.GetComponent(); PlayAnim("ride1"); } //float _progress; private void Update() { if (!_isfinish) { //_progress += Time.deltaTime * 0.033f; //UI_InRide.Instance.GainComplete(_progress); //gauge_navi.position += Vector3.right * Time.deltaTime * 0.033f; } transform.position = horseSpine.position + Vector3.up * -0.085f; transform.rotation = horse.rotation; if (_falldownDelay > 0f) { _falldownDelay -= Time.deltaTime; } else if (_attackDelay > 0f) { _attackDelay -= Time.deltaTime; } if (_particleDelay > 0f) { _particleDelay -= Time.deltaTime; if (_particleDelay < 0f) { //ef_souleat.particleEmitter().emit = false; //ef_damage.particleEmitter().emit = false; _particleDelay = 0f; } } } #endregion public void Damaged() { if (!_isfinish) { GetSoulStone(-3); } } public void Attack(bool isRight) { if (_attackDelay > 0f) { return; } Vector3 position = this.transform.position; if (position.y < 0.01f) { if (isRight) { PlayAnim("attack_ride1", 1); ef_swing.localRotation = Quaternion.Euler(20f, 60f, 170f); script_swing.SwingOn(0.16f, 2, 2, 18, 1, 0); } else { PlayAnim("attack_ride2", 1); ef_swing.localRotation = Quaternion.Euler(20f, -60f, 10f); script_swing.SwingOn(0.16f, 2, 2, 18, 1, 0); } _attackDelay = 1f; } } public void GetSoulStone(int a) { amount_soulstone = Mathf.Max(0, amount_soulstone + a); if (a == 1) { ef_souleat.gameObject.SetActive(false); ef_souleat.gameObject.SetActive(true); //ef_souleat.particleEmitter().emit = true; script_twirl.TwirlOn(4, 4, 20, false); this.GetComponent().Play(); script_coin.GetCoin(transform.position); _coinCount++; SoundProxy.PlayFxAsync("bt_cha_get_item2"); UI_InRide.Instance.GainProp(3001, amount_soulstone); } else if (a < 0) { //screen_effect.gameObject.SetActive(true); script_cam.Hitcam(); //ef_damage.particleEmitter().emit = true; _behitCount++; UI_InRide.Instance.GainAttacked(_behitCount, a); //_coinCount--; } else { _monsterCount++; //_coinCount += 2; UI_InRide.Instance.GainKiller(0, _monsterCount, a); } //stage_num.text = amount_soulstone.ToString(); _particleDelay = 0.5f; } public void FallDown() { if (!_isfinish && _falldownDelay <= 0f) { script_horse.FallDown(); GetSoulStone(-3); script_cam.Hitcam2(); _falldownDelay = 1f; } } public void Finish() { _isfinish = true; } public void RisePocket() { GameObject.FindWithTag("dummy").GetComponent().PickPocket(); } public void CrynStop() { script_twirl.TwirlOff(); Object.Destroy(spear.gameObject); PlayAnim("ride2"); } } }