shaoxiadiablo/Assets/AGame/Scripts/Game/Stat/Stat_GrabedAction.cs
2025-05-18 01:04:31 +08:00

257 lines
6.6 KiB
C#

//// ***********************************************************************
//// Assembly : Game
//// Author : Kimch
//// Created : 2020-09-02
//// Description :
//// Last Modified By :
//// Last Modified On :
//// ***********************************************************************
//// <copyright file= "Stat_IdleAction" company="Kimch"></copyright>
//// <summary></summary>
//// ***********************************************************************
//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<string, object> 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<GuideLocalData>().curGuideModule == 1 && (MonoInstancePool.getInstance<GuideLocalData>().curGuideModuleStep == 2 || MonoInstancePool.getInstance<GuideLocalData>().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<Animation>();
// 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);
// }
// }
//}