using Common.Utility.CombatEvent; using Fort23.Core; using GameLogic.Combat.CombatTool; using GameLogic.Combat.Hero.State; using UnityEngine; namespace GameLogic.Combat.Hero { public class MagicWeaponIdleState : CombatHeroStateBasic { private CombatMagicWeaponEntity myCombatMagicWeaponEntity; private Vector3 startPos; private Vector3 endPos; private float _addTime; private float _currTime; private float _awaitTime; public MagicWeaponIdleState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity) { myCombatMagicWeaponEntity = combatHeroEntity as CombatMagicWeaponEntity; } protected override void ProEnter() { _awaitTime = 1.0f; } protected override void ProUpdate(float t) { if (myCombatMagicWeaponEntity.MagicWeaponCollisionId >= 0) { myCombatMagicWeaponEntity.CombatAIBasic.ChangeState(CombatHeroStateType.move); return; } _awaitTime -= t; if (_awaitTime <= 0) { myCombatMagicWeaponEntity.CombatAIBasic.ChangeState(CombatHeroStateType.att); return; } Quaternion newQuaternion = Quaternion.LookRotation(Vector3.up); myCombatMagicWeaponEntity.GameObject.transform.rotation = Quaternion.RotateTowards( myCombatMagicWeaponEntity.GameObject.transform.rotation, newQuaternion, 5); } protected override void ProExit() { } public override bool IsUpdateLockTarget() { return false; } protected override void ProDispose() { } } }