34 lines
1.2 KiB
C#
34 lines
1.2 KiB
C#
using System;
|
|
using Core.Extensions;
|
|
using UnityEngine;
|
|
|
|
public class AutomatedPlayer : AutoControlledEntity
|
|
{
|
|
public Player player;
|
|
public float playerMinDistance;
|
|
|
|
private void FixedUpdate()
|
|
{
|
|
if (!stats.isStalled)
|
|
{
|
|
Vector2 direction = new Vector2(0, stats.rb.linearVelocityY);
|
|
Entity target = player;
|
|
if (!closestEntity && Vector3.Distance(player.transform.position, transform.position) <= playerMinDistance)
|
|
{
|
|
stats.rb.linearVelocity = direction; //repeated code sucks but it works in this case i guess
|
|
return; //do not bother running any more code lol you're already next to the player and no enemies nearby
|
|
}
|
|
if (closestEntity && Vector3.Distance(closestEntity.transform.position, transform.position) < maxTargettingRange)
|
|
{
|
|
target = closestEntity;
|
|
}
|
|
direction.x = (target.transform.position - transform.position).normalized.x * stats.speed;
|
|
if (/*(target.transform.position.y - transform.position.y > maxHeightDifference ||*/ (DetectWalls() && Vector3.Distance(target.transform.position, transform.position) > minTargetJumpDistance)/*)*/ && stats.OnGround())
|
|
{
|
|
direction.y = stats.jumpPower;
|
|
}
|
|
FlipSprite(direction);
|
|
stats.rb.linearVelocity = direction;
|
|
}
|
|
}
|
|
}
|