// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2020-09-02
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
//
//
// ***********************************************************************
using UnityEngine;
namespace G
{
///
///
///
[RequireComponent(typeof(SkillBase))]
public class SkillDragonHead : MonoBehaviour
{
public Transform pt_body;
public ParticleSystem waterPrs;
public Transform zwater;
public Transform endFx;
public AudioClip snd_water;
public AudioClip snd_bite;
private SphereCollider _collider;
private Animation _animation;
private float _activeDelay;
private int _impact;
private float _moveSpeed;
private SkillBase _skillBase;
private bool _lock;
private void Awake()
{
_skillBase = this.GetComponent();
_collider = this.GetComponent();
_animation = this.GetComponent();
_animation["bite_ready"].speed = 0.2f;
}
private void OnEnable()
{
_collider.enabled = false;
_lock = true;
var em = waterPrs.emission;
em.enabled = true;
_animation.Play("bite_ready");
var animState = _animation.PlayQueued("bite");
animState.speed = 0.15f;
animState = _animation.PlayQueued("bite_i");
animState.speed = 0.25f;
_moveSpeed = 0.8f;
_impact = 0;
pt_body.gameObject.SetActive(true);
zwater.localScale = Vector3.one;// * 0.32f;
endFx.gameObject.SetActive(false);
}
private void OnTriggerEnter(Collider other)
{
}
private void Update()
{
if (_animation.IsPlaying("bite_i"))
{
if (_impact != 2)
{
_skillBase.damage *= 4;
_collider.center = Vector3.forward * 0.1f;
_collider.enabled = true;
_impact = 2;
_activeDelay = 0f;
endFx.gameObject.SetActive(true);
_skillBase.PlaySound(snd_bite);
}
else
{
_activeDelay += Time.deltaTime;
if (_activeDelay > 3f)
{
_collider.enabled = false;
this.gameObject.SetActive(false);
this.transform.position = Vector3.one * 16f;
pt_body.gameObject.SetActive(false);
_activeDelay = 0f;
}
else if (_activeDelay > 2f)
{
zwater.localScale -= Vector3.right * (Time.deltaTime * 0.3f);
}
else if (_activeDelay > 1.2f && _lock)
{
_lock = !_lock;
var em = waterPrs.emission;
em.enabled = false;
}
else if (_activeDelay > 0.5f)
{
_collider.enabled = false;
}
}
this.transform.Translate(Vector3.forward * (Time.deltaTime * 0.1f));
}
else if (_animation.IsPlaying("bite"))
{
if (_impact != 1)
{
_skillBase.PlaySound(snd_water);
_activeDelay = 0f;
_collider.center = Vector3.zero;
_collider.enabled = true;
_impact = 1;
}
else
{
_activeDelay += Time.deltaTime;
if (_activeDelay > 0.5f)
{
_collider.enabled = false;
}
}
}
else if (_animation.IsPlaying("bite_ready"))
{
this.transform.Translate(Vector3.forward * (Time.deltaTime * _moveSpeed));
}
}
}
}