123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using System;
- using ExtensionMethods;
- using UnityEngine;
- public class PlayerChaseAbility : CharacterState
- {
- public void Chase()
- {
- if (R.Player.Enhancement.Chase == 0)
- {
- return;
- }
- if (this.stateMachine.currentState.IsInArray(PlayerAction.SpHurtSta) || this.stateMachine.currentState.IsInArray(PlayerAction.HurtSta))
- {
- return;
- }
- this._enemy = this.GetChaseEnemy();
- if (this._enemy != null)
- {
- Vector3 position = this._enemy.position;
- this.listener.PlayFlashSound();
- position.y = Mathf.Clamp(position.y, LayerManager.YNum.GetGroundHeight(this._enemy.gameObject), float.MaxValue);
- Transform transform = R.Effect.Generate(182, null, position, default(Vector3), default(Vector3), true);
- Vector3 localScale = transform.localScale;
- localScale.x = (float)((UnityEngine.Random.Range(0, 2) != 0) ? -1 : 1);
- transform.localScale = localScale;
- EnemyBaseHurt component = this._enemy.GetComponent<EnemyBaseHurt>();
- if (R.Player.Enhancement.Chase != 3)
- {
- component.ChaseEnd();
- }
- else if (component.currentChaseTime < 2)
- {
- component.ChaseStart();
- }
- else
- {
- component.ChaseEnd();
- }
- }
- }
- private Transform GetChaseEnemy()
- {
- for (int i = 0; i < R.Enemy.Count; i++)
- {
- EnemyAttribute enemyAttribute = R.Enemy.EnemyAttributes[i];
- if (enemyAttribute.canBeChased)
- {
- return enemyAttribute.transform;
- }
- }
- return null;
- }
- private Transform _enemy;
- }
|