public override void Enter(OldObjectThief objectThief) { currentStealTarget = objectThief.GetCurrentTargetToSteal(); interactable = currentStealTarget.GetComponent <Interactable>(); speed = objectThief.GetSpeed(); pickupDistance = objectThief.GetPickupDistance(); }
public override OldObjectThiefState FixedUpdate(OldObjectThief objectThief, float t) { if (currentStealTarget != null) { Vector2 directionToTarget = new Vector2((currentStealTarget.transform.position.x - objectThief.transform.position.x), (currentStealTarget.transform.position.z - objectThief.transform.position.z)); directionToTarget = directionToTarget.normalized; objectThief.Move(directionToTarget); if (Vector3.Distance(objectThief.transform.position, currentStealTarget.transform.position) <= pickupDistance) { //Pick up the target currentStealTarget.pickedUpByEnemy = true; pickedUpByMe = true; currentStealTarget.AddSpringJoint(objectThief.AccessRigidBody()); currentStealTarget = null; } } return(null); }
public void SetNewTargetToSteal(OldEnemyStealTarget newTarget) { currentStealTarget = newTarget; }