Pulver correctly goes and retrieves the item. Items still need to be enabled again after a failed couroutine
This commit is contained in:
@@ -34,6 +34,10 @@ public class FollowerController : MonoBehaviour
|
||||
private Animator animator;
|
||||
private Transform artTransform;
|
||||
|
||||
[Header("Held Item")]
|
||||
public PickupItemData currentlyHeldItem;
|
||||
public SpriteRenderer heldObjectRenderer;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
aiPath = GetComponent<AIPath>();
|
||||
@@ -224,6 +228,24 @@ public class FollowerController : MonoBehaviour
|
||||
pickupCoroutine = StartCoroutine(PickupSequence(itemPosition, playerTransform));
|
||||
}
|
||||
|
||||
public void SetHeldItem(PickupItemData itemData)
|
||||
{
|
||||
currentlyHeldItem = itemData;
|
||||
if (heldObjectRenderer != null)
|
||||
{
|
||||
if (currentlyHeldItem != null && currentlyHeldItem.mapSprite != null)
|
||||
{
|
||||
heldObjectRenderer.sprite = currentlyHeldItem.mapSprite;
|
||||
heldObjectRenderer.enabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
heldObjectRenderer.sprite = null;
|
||||
heldObjectRenderer.enabled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private System.Collections.IEnumerator PickupSequence(Vector2 itemPosition, Transform playerTransform)
|
||||
{
|
||||
isManualFollowing = false;
|
||||
@@ -239,6 +261,22 @@ public class FollowerController : MonoBehaviour
|
||||
yield return null;
|
||||
}
|
||||
OnPickupArrived?.Invoke();
|
||||
// Set held item and destroy pickup
|
||||
if (heldObjectRenderer != null)
|
||||
{
|
||||
// Find Pickup object at itemPosition
|
||||
Collider2D[] hits = Physics2D.OverlapCircleAll(itemPosition, 0.2f);
|
||||
foreach (var hit in hits)
|
||||
{
|
||||
var pickup = hit.GetComponent<Pickup>();
|
||||
if (pickup != null)
|
||||
{
|
||||
SetHeldItem(pickup.itemData);
|
||||
GameObject.Destroy(pickup.gameObject);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Wait briefly, then return to player
|
||||
yield return new WaitForSeconds(0.2f);
|
||||
if (aiPath != null && playerTransform != null)
|
||||
|
||||
@@ -113,7 +113,6 @@ public class Pickup : MonoBehaviour
|
||||
{
|
||||
followerController.OnPickupReturned -= OnFollowerReturned;
|
||||
pickupInProgress = false;
|
||||
Destroy(gameObject);
|
||||
}
|
||||
playerController.OnArrivedAtTarget += OnPlayerArrived;
|
||||
Vector3 stopPoint = transform.position + (playerObj.transform.position - transform.position).normalized * playerStopDistance;
|
||||
|
||||
Reference in New Issue
Block a user