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(); } }