//// *********************************************************************** //// 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_GrabAtkAction : Stat_BaseAction // { // private int m_animationIndex = -1; // private bool m_isFinish; // private string[] aniName = new string[3]; // public Stat_GrabAtkAction(Stat_StateManager statMgr) // : base(statMgr) // { // } // public override bool Enter(Dictionary param, bool clearDelegates = false) // { // if (param == null || param.Count <= 0 || !param.ContainsKey("grab_animation_id")) // { // Debug.LogError("param is error"); // return false; // } // m_isFinish = false; // m_animationIndex = -1; // m_animationIndex = (int)param["grab_animation_id"]; // if (m_animationIndex == -1) // { // Debug.LogError("AnimationIndex is error"); // return false; // } // Vector3 b = (Vector3)param["grab_enemy"]; // Vector3 vector = m_char.transform.position - b; // base.Enter(param, clearDelegates); // m_char.ResetRigidBody(); // m_char.GetComponent().Sleep(); // m_char.SetAtkCollision(false); // m_char.SetAtkCollision(true); // m_char.transform.forward = vector.normalized; // m_char.GetComponent().enabled = false; // m_char.invincible = true; // m_char.SetGrabColliderEnabled(false); // if (Game.myGeneral != null) // { // CharacterData data = Game.myGeneral.m_data; // if (data != null) // { // Game.myGeneral.invincible = true; // if (!Game.myGeneral.IsDead()) // { // Game.myGeneral.SetCurActionState(enStat.STAT_ACTION_IDLE, null, true); // } // Game.myGeneral.EndAI(true); // } // } // SetAnimationName(m_animationIndex); // AnimationState animationState = null; // float num = 0f; // if (aniName[0] != string.Empty) // { // m_char.m_animation.Play(aniName[0]); // num += m_char.m_animation[aniName[0]].length / m_char.m_animation[aniName[0]].speed; // } // for (int i = 1; i < aniName.Length; i++) // { // animationState = m_char.m_animation.PlayQueued(aniName[i], QueueMode.CompleteOthers); // animationState.speed = m_char.m_animation[aniName[i]].speed; // num += animationState.length / animationState.speed; // if (i == 1) // { // if (m_animationIndex == 1 || m_animationIndex == 2 || m_animationIndex == 4) // { // m_statMgr.AddTimer(num, PlayHitFx_CB); // } // } // else // { // m_statMgr.AddTimer(num, AnimationEnd_CB); // } // } // return true; // } // public override bool CanTransition(enStat stat) // { // if (stat == enStat.STAT_ACTION_DEAD) // { // return true; // } // return m_isFinish; // } // protected bool PlayHitFx_CB(object[] param) // { // HitFx(); // return false; // } // protected bool AnimationEnd_CB(object[] param) // { // if (m_char.bNeedAddHpAfterGrab) // { // Transform transform = PrefabManager.Instance().Spawn("ef_other_jiaxue_01", m_char.transform.position, Quaternion.identity); // float num = m_char.GetDataMaxPro(2); // if (m_char.m_data.HasBuffState(140)) // { // BufferParams stateParam = m_char.m_data.getStateParam(140); // num = (int)(num * (1f + (float)stateParam.percent) + (int)stateParam.num); // } // m_char.OnHp((int)(num * StaticGlobal_parameter.Instance().getFloat(850047, "parameter"))); // transform.parent = m_char.transform; // } // m_isFinish = true; // m_char.StopAnimation(); // //if (MonoInstancePool.getInstance().curGuideModule == 1 && MonoInstancePool.getInstance().curGuideModuleStep <= 4) // //{ // // SetCurActionState(enStat.STAT_ACTION_IDLE); // // return false; // //} // if (m_char.normalAtkEnableMove) // { // SetCurActionState(enStat.STAT_ACTION_MOVE); // } // else // { // SetCurActionState(enStat.STAT_ACTION_IDLE); // } // return false; // } // public override bool ExitDelegate() // { // m_char.GetComponent().enabled = true; // m_char.invincible = false; // m_char.SetGrabColliderEnabled(false); // Debug.Log("退出GrabAtk状态"); // if (Game.myGeneral != null) // { // CharacterData data = Game.myGeneral.m_data; // if (data != null) // { // Game.myGeneral.invincible = false; // Game.myGeneral.StartAI(); // } // } // return true; // } // private void SetAnimationName(int aniIndex) // { // float delay = 0f; // switch (aniIndex) // { // case 0: // delay = 1.6f; // aniName[0] = "grab10"; // aniName[1] = "grab10_finish"; // aniName[2] = "grab10_finish2"; // break; // case 1: // delay = 1.6f; // aniName[0] = "grab11"; // aniName[1] = "grab11_finish"; // aniName[2] = "grab11_finish2"; // break; // case 2: // delay = 2f; // aniName[0] = "grab12"; // aniName[1] = "grab12_finish"; // aniName[2] = "grab12_finish2"; // break; // case 3: // delay = 1.6f; // aniName[0] = "grab20"; // aniName[1] = "grab20_finish"; // aniName[2] = "grab20_finish2"; // break; // case 4: // delay = 1.6f; // aniName[0] = "grab21"; // aniName[1] = "grab21_finish"; // aniName[2] = "grab21_finish2"; // break; // case 5: // delay = 3f; // aniName[0] = "grab22"; // aniName[1] = "grab22_finish"; // aniName[2] = "grab22_finish2"; // break; // case 6: // delay = 1.2f; // aniName[0] = "grab30"; // aniName[1] = "grab30_finish"; // aniName[2] = "grab30_finish2"; // break; // default: // Debug.LogError("进入了奇怪的地方 = = 查bug吧骚年"); // break; // } // var myPlayer = m_char as EntityMainPlayer; // if (myPlayer != null) // { // myPlayer.m_camScript.ZoomIn(5, 13, delay); // } // } // private void HitFx() // { // var myPlayer = m_char as EntityMainPlayer; // if (myPlayer != null) // { // myPlayer.SuperSkillHit(); // } // } // } //}