Exemplo n.º 1
0
    public void Give(Item item, InteractablePNJ npc)
    {
        if (npc.CanAccept(item))
        {
            FBX_Give.instance.Play(new Vector3(draggerTransform.transform.position.x, draggerTransform.transform.position.y, draggerTransform.transform.position.z));

            if (FtueManager.instance.active)
            {
                if (FtueManager.instance.currentStep.drag.active)
                {
                    FtueManager.instance.AttachTarget(scrollElement[FtueManager.instance.currentStep.scrollerIndex].transform);
                    FtueManager.instance.ValidStep();
                }
            }
            else
            {
                PointingBubble.instance.Show(true);
                PointingBubble.instance.ActiveTouchForClose();
            }

            int itemIndex = InventoryPlayer.Instance.GetItemIndex(item.itemType);
            InventoryPlayer.Instance.Give(itemIndex, npc.IDname);
            Events.Instance.Raise(new OnGive(itemIndex));

            npc.ReceiveItem(item.itemType);
            UIManager.instance.PNJState.SetFromItem(item.itemType);
            Events.Instance.Raise(new OnUpdateNPCInfo());
            MajInventory(null);
            if (scroller.CurrentIndex >= scroller.NbElement && scroller.NbElement > 0)
            {
                scroller.Move(1);
            }

            if (FtueManager.instance.active)
            {
                HandleActiveFromInventory();
            }
        }
        else
        {
            PointingBubble.instance.Show(true);
            Events.Instance.Raise(new OnWrongObject());
            PointingBubble.instance.ActiveTouchForClose();
        }
    }