// *********************************************************************** // Assembly : Game // Author : Kimch // Created : 2020-09-02 // Description : // Last Modified By : // Last Modified On : // *********************************************************************** // // // *********************************************************************** using System.Collections.Generic; using UnityEngine; namespace G { public class Stat_DashAttackAction : Stat_BaseAction { #pragma warning disable CS0414 // 字段“Stat_DashAttackAction.skillID”已被赋值,但从未使用过它的值 private int skillID; #pragma warning restore CS0414 // 字段“Stat_DashAttackAction.skillID”已被赋值,但从未使用过它的值 private bool end; public Stat_DashAttackAction(Stat_StateManager statMgr) : base(statMgr) { } public override bool Enter(Dictionary param, bool clearDelegates = false) { end = false; base.Enter(param, clearDelegates); //string animName = m_char.GetAnimName("dash_attack"); //if (m_char.PlayAnimation(animName) == -1f) //{ // return false; //} skillID = 444004; m_char.ResetRigidBody(); m_char.SetAtkCollision(false); //((EntityPlayer)m_char).m_canDashAttack = false; m_statMgr.AddTimer(m_curAniLength + 0.8f, AnimationEnd_CB); m_statMgr.AddTimer(0.55f, PlayFx_CB); m_statMgr.AddTimer(0.1f, Force_CB); m_char.invincible = true; return true; } private bool PlayFx_CB(object[] param) { Transform transform = PrefabManager.Instance().Spawn("dash_attack"); transform.gameObject.SetActive(false); int posType = transform.GetComponent().m_posType; bool rotationWithTarget = transform.GetComponent().m_rotationWithTarget; Ef_base.GetPosByType(transform, m_char.transform, posType, rotationWithTarget); Ef_base component = transform.GetComponent(); component.m_user = m_char.transform; component.m_param[0] = 1f; transform.gameObject.SetActive(true); //HeroSounds.Instance.PlayHitSound((EntityPlayer)m_char, 1); return false; } private bool AnimationEnd_CB(object[] param) { end = true; m_char.invincible = false; return SetCurActionState(enStat.STAT_ACTION_MOVE); } private bool Force_CB(object[] param) { Vector3 a = m_char.position - m_char.GetTargetPos(); a.Normalize(); a.y = 0f; m_char.AddForce(-a * 150f); return false; } public override bool CanTransition(enStat stat) { if (stat == enStat.STAT_ACTION_DEAD) { m_char.invincible = false; return true; } if (end) { return true; } return false; } } }