//// *********************************************************************** //// 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_GrabedAction : Stat_BaseAction // { // private enum ANIM_STEP // { // BE_GRABED, // BE_THRUST, // BE_KICKED, // END // } // private float m_time; // private ANIM_STEP curStep; // private int[] force_grab = new int[7] // { // 40, // 40, // 30, // 80, // 60, // 80, // 60 // }; // private int[] force_kick = new int[7] // { // -200, // -10, // -10, // 240, // 20, // -160, // -100 // }; // private float[] speed_begrab = new float[7] // { // 0.26f, // 0.28f, // 0.24f, // 0.35f, // 0.4f, // 0.22f, // 0.35f // }; // private float[] speed_bethrust = new float[7] // { // 0.5f, // 0.28f, // 0.27f, // 0.25f, // 0.25f, // 0.25f, // 0.35f // }; // private float[] speed_bekicked = new float[7] // { // 0.2f, // 0.25f, // 0.25f, // 0.3f, // 0.25f, // 0.28f, // 0.25f // }; // private float[] times = new float[2]; // public Stat_GrabedAction(Stat_StateManager statMgr) // : base(statMgr) // { // } // public override bool Enter(Dictionary param, bool clearDelegates = false) // { // RecordData(); // m_char.EndAI(); // m_char.ClearSkillEffect(); // m_char.SetColliderEnabled(false); // m_char.StopAnimation(); // base.Enter(param, clearDelegates); // InitAnimData(); // m_char.SetAnimationSpeed("begrabed" + m_char.myGrabstyle, speed_begrab[m_char.myGrabstyle]); // m_time = m_char.PlayAnimationByName("begrabed" + m_char.myGrabstyle); // if (m_time == -1f) // { // return false; // } // AnimationState animationState = m_char.PlayAnimationQueued("bethrust" + m_char.myGrabstyle); // animationState.speed = speed_bethrust[m_char.myGrabstyle]; // times[0] = animationState.length / animationState.speed; // AnimationState animationState2 = m_char.PlayAnimationQueued("bekicked" + m_char.myGrabstyle); // animationState2.speed = speed_bekicked[m_char.myGrabstyle]; // times[1] = animationState2.length / animationState2.speed; // curStep = ANIM_STEP.BE_GRABED; // Vector3 curPos = Game.myPlayer.GetCurPos(); // Vector3 a = Vector3.Normalize(m_char.GetCurPos() - Vector3.right * curPos.x - Vector3.forward * curPos.z); // m_char.myTransform.forward = -a; // m_char.AddRigidBodyForce(a * force_grab[m_char.myGrabstyle]); // SetTimers(); // return true; // } // public override bool Exit() // { // return base.Exit(); // } // public override bool UpdateDelegate() // { // switch (curStep) // { // case ANIM_STEP.BE_GRABED: // Game.myPlayer.UpdateGrabTransform(m_char.GetCurPos(), m_char.myTransform.forward); // m_char.SetCurPos(Game.myPlayer.GetCurPos()); // break; // case ANIM_STEP.BE_THRUST: // Game.myPlayer.UpdateGrabTransform(m_char.GetCurPos(), m_char.myTransform.forward); // break; // } // return true; // } // public override bool CanTransition(enStat stat) // { // if (stat == enStat.STAT_ACTION_DEAD) // { // return true; // } // return false; // } // private void SetTimers() // { // m_statMgr.AddTimer(m_time, TimeEnd_CB); // } // private bool TimeEnd_CB(object[] param) // { // switch (curStep) // { // case ANIM_STEP.BE_GRABED: // Debug.Log("down end, play thrust"); // m_time = times[0]; // curStep = ANIM_STEP.BE_THRUST; // m_char.OnHp(-m_char.GetMaxHp()); // CreateBlood(); // m_char.HideHpBar(); // SetTimers(); // break; // case ANIM_STEP.BE_THRUST: // if (m_char.myGrabstyle == 0 || m_char.myGrabstyle == 3 || m_char.myGrabstyle == 5 || m_char.myGrabstyle == 6) // { // HeroSounds.Instance.Hamer(Game.myPlayer); // } // Game.myPlayer.AddSliderKill(); // UIPlayerState.PlayEnemyDead(); // Debug.Log("play thrust end, play kicked"); // m_char.AddRigidBodyForce(m_char.myTransform.forward * force_kick[m_char.myGrabstyle]); // m_time = times[1]; // curStep = ANIM_STEP.BE_KICKED; // SetTimers(); // if (MonoInstancePool.getInstance().curGuideModule == 1 && (MonoInstancePool.getInstance().curGuideModuleStep == 2 || MonoInstancePool.getInstance().curGuideModuleStep == 6)) // { // GuideManager._instance.getCurEvent()?.next(); // } // break; // case ANIM_STEP.BE_KICKED: // Debug.Log("play kicked end, set end in 1"); // m_time = 1f; // curStep = ANIM_STEP.END; // SetTimers(); // break; // case ANIM_STEP.END: // Debug.Log("monster dead"); // m_char.bNeedPlayDeadModel = false; // m_char.bNeedSplitBlood = false; // m_char.OnDead(); // m_char.myGameObject.SetActiveSafe(false); // break; // } // return false; // } // private void guideNextStep() // { // } // private void RecordData() // { // } // private void InitAnimData() // { // Animation component = PrefabManager.Instance().monsterAniObj.GetComponent(); // string text = "begrabed" + m_char.myGrabstyle; // if (!m_char.HasAnimation(text)) // { // AnimationClip clip = component.GetClip(text); // if ((bool)clip) // { // m_char.AddAnimation(clip, text); // } // } // string text2 = "bethrust" + m_char.myGrabstyle; // if (!m_char.HasAnimation(text2)) // { // AnimationClip clip2 = component.GetClip(text2); // if ((bool)clip2) // { // m_char.AddAnimation(clip2, text2); // } // } // string text3 = "bekicked" + m_char.myGrabstyle; // if (!m_char.HasAnimation(text3)) // { // AnimationClip clip3 = component.GetClip(text3); // if ((bool)clip3) // { // m_char.AddAnimation(clip3, text3); // } // } // m_char.SetAnimationLayer("bethrust0", 3); // m_char.SetAnimationLayer("begrabed0", 3); // m_char.SetAnimationLayer("bekicked0", 3); // } // private void CreateBlood() // { // Transform current_blade = Game.myPlayer.m_hero.m_weapon.current_blade; // Quaternion quaternion = Quaternion.LookRotation(-current_blade.forward, new Vector3(0f, -1.3f, 1f)); // Vector3 pos = current_blade.position + current_blade.forward * 0.01f; // Quaternion rotation = quaternion; // Character.PlayGrabedBloodEffect(pos, rotation); // HeroSounds.Instance.Blood(Game.myPlayer); // } // } //}