示例#1
0
        /// <summary>
        /// Buys an item.
        /// </summary>
        private IEnumerator PurchaseItem(ItemStore item)
        {
            if (HasChosenAnItem)
            {
                yield break;
            }

            SetDestinationToWaypoint(item.itemWaypoint);

            yield return(waitUntilPathComplete);

            anim.SetTrigger(Think);

            yield return(waitOnPurchase);

            anim.SetTrigger(Grab);

            yield return(waitOnPurchase);

            item.transform.parent        = carryPosition;
            item.transform.localPosition = Vector3.zero;
            SetDestinationToWaypoint(npcPayWaypoints[Random.Range(0, npcPayWaypoints.Count)]);

            yield return(new WaitUntil(() => Vector3.Distance(agent.destination, agent.transform.position) < 0.2f));

            yield return(waitOnPurchase);

            anim.SetTrigger(Drop);
            item.transform.position = store.itemPurchasePosition.position;

            yield return(waitOnPurchase);

            Coins         -= store.BuyItem(item);
            HasPaidForItem = true;

            yield return(waitOnPurchase);

            anim.SetTrigger(Grab);
            item.transform.localPosition = Vector3.zero;

            yield return(waitOnPurchase);

            StartCoroutine(nameof(GoToExit));
        }