using UnityEngine; public class PlayerAIMinion : MonoBehaviour { public AnimationCurve m_AimCompensastionCurve; public float range = 5f; private PlayerAPI api; private Vector2 moveDirection; private void Start() { api = GetComponentInParent(); moveDirection = api.data.master.data.aimDirection; if (moveDirection.x > 0.5f) { moveDirection.x = 1f; } else if (moveDirection.x < -0.5f) { moveDirection.x = -1f; } else { moveDirection.x = 0f; } moveDirection.y = 0f; base.transform.root.gameObject.AddComponent().seconds = 4f; } private void Update() { Player otherPlayer = PlayerManager.instance.GetOtherPlayer(api.data.master); api.Move(moveDirection); if (api.data.isWallGrab) { api.Jump(); } if (!api.data.isGrounded) { api.Jump(); } if ((bool)otherPlayer) { api.SetAimDirection(GetAimDirForHitting(otherPlayer.transform.position)); if (PlayerManager.instance.CanSeePlayer(base.transform.position, otherPlayer).canSee && Vector2.Distance(base.transform.position, otherPlayer.transform.position) < range) { api.Attack(); } } } private Vector2 GetAimDirForHitting(Vector3 point) { Vector3 vector = point - base.transform.position; api.SetAimDirection(vector); api.GetMyBullet(); float time = Mathf.Abs(point.x - base.transform.position.x); return point + Vector3.up * m_AimCompensastionCurve.Evaluate(time) - base.transform.position; } }