示例#1
0
    public void InteractWithItem()
    {
        if (mInteractItem != null)
        {
            mInteractItem.OnInteract();

            if (mInteractItem is InventoryItemBase)
            {
                InventoryItemBase inventoryItem = mInteractItem as InventoryItemBase;
                Inventory.AddItem(inventoryItem);
                inventoryItem.OnPickup();

                if (inventoryItem.UseItemAfterPickup)
                {
                    Inventory.UseItem(inventoryItem);
                }
                Hud.CloseMessagePanel();
                mInteractItem = null;
            }
            //else
            //{
            //    if (mInteractItem.ContinueInteract())
            //    {
            //        Hud.OpenMessagePanel(mInteractItem);
            //    }
            //    else
            //    {
            //        Hud.CloseMessagePanel();
            //        mInteractItem = null;
            //    }
            //}
        }
    }
示例#2
0
    public void RightClickInteractWithAnItem(InteractableItemBase mInteractItem) //Exact same method as InteractWithItemAnimEvent() which is Being called in the animation events, this is for rightclickmenu
    {
        if (mInteractItem != null)
        {
            mInteractItem.OnInteract();

            if (mInteractItem is InventoryItemBase)                                   //If the interactable item is an InventoryItemBase (like axe)
            {
                InventoryItemBase inventoryItem = mInteractItem as InventoryItemBase; // inventoryItem becomes the interacted with item if it is an Instance of InventoryItemBase? (as is like is keyword + cast)
                Inventory.AddItem(inventoryItem);

                inventoryItem.OnPickup();

                if (inventoryItem.UseItemAfterPickup)
                {
                    Inventory.UseItem(inventoryItem);
                }
            }
        }
        else
        {
            Debug.Log("mInteractItem is null");
        }

        Hud.CloseMessagePanel();

        mInteractItem = null;
    }
    private void TryBuy()
    {
        if (AccumulatedMoney - AllCost > 0)
        {
            AccumulatedMoney -= AllCost;
            SetTextAccumulatedMoney();

            foreach (RectTransform item in transforms)
            {
                if (item.childCount != 0)
                {
                    InventoryItemBase itemBase = item.GetChild(0).GetComponent <ItemCatalog>().InventoryItem;

                    inventory.AddItem(itemBase);

                    itemBase.OnPickup();

                    if (itemBase.UseItemAfterPickup)
                    {
                        inventory.UseItem(itemBase);
                    }
                }
            }
        }

        ClearBusket();
    }
示例#4
0
    private void OnMouseDown()
    {
        Debug.Log("collide");

        //inventory.AddItem(gameObject);

        //ajout de l''item
        inventory.AddItem(itembase);

//appel methode pour désactiver l'objet'
        itembase.OnPickup();
        Debug.Log(itembase.ToString());
    }
示例#5
0
    public void AddItem(InventoryItemBase item)
    {
        if (nSlots.Count < SLOTS)
        {
            Collider collider = (item as MonoBehaviour).GetComponent <Collider>();
            if (collider.enabled)
            {
                collider.enabled = false;
                nSlots.Add(item);
                item.OnPickup();

                if (ItemAdded != null)
                {
                    ItemAdded(this, new InventoryEventArgs(item));
                }
            }
        }
    }
    public void PickupItem()
    {
        mInteractItem.OnInteract();

        if (mInteractItem is InventoryItemBase)
        {
            InventoryItemBase inventoryItem = mInteractItem as InventoryItemBase;
            Inventory.AddItem(inventoryItem);
            inventoryItem.OnPickup();

            if (inventoryItem.UseItemAfterPickup)
            {
                Inventory.UseItem(inventoryItem);
            }
        }

        Hud.CloseMessagePanel();

        mInteractItem = null;
    }
示例#7
0
    public void SetQuestCompleted(Quest quest)
    {
        foreach (var reward in quest.Rewards)
        {
            for (int i = 0; i < reward.Count; i++)
            {
                InventoryItemBase item = Instantiate <InventoryItemBase>(reward.Item);
                Inventory.AddItem(item);
                item.OnPickup();
            }
        }

        questUI.QuestSolved(quest);

        if (QuestCompleted != null)
        {
            QuestCompleted.Invoke();
        }

        mQuests.Remove(quest);
    }
示例#8
0
    public void InteractWithItem()
    {
        if (mInteractItem != null)
        {
            mInteractItem.OnInteract();

            if (mInteractItem is InventoryItemBase)
            {
                InventoryItemBase inventoryItem = mInteractItem as InventoryItemBase;
                Inventory.AddItem(inventoryItem);
                inventoryItem.OnPickup();

                if (inventoryItem.UseItemAfterPickup)
                {
                    Inventory.UseItem(inventoryItem);
                }
                Hud.CloseMessagePanel();
                mInteractItem = null;
            }
            else
            {
                if (mInteractItem.ContinueInteract())
                {
                    Hud.OpenMessagePanel(mInteractItem);
                }
                else
                {
                    Hud.CloseMessagePanel();
                    mInteractItem = null;
                }
            }

            // Check all quests if completed or quest tasks
            foreach (var quest in mQuests.GetRange(0, mQuests.Count))
            {
                quest.CheckCompleted();
            }
        }
    }
示例#9
0
    public void InteractWithItemAnimEvent() //Being called in the animation events
    {
        if (mInteractItem != null)
        {
            mInteractItem.OnInteract();


            if (mInteractItem is InventoryItemBase)                                   //If the interactable item is an InventoryItemBase (like axe)
            {
                InventoryItemBase inventoryItem = mInteractItem as InventoryItemBase; // inventoryItem becomes the interacted with item if it is an Instance of InventoryItemBase? (as is like is keyword + cast)
                Inventory.AddItem(inventoryItem);
                inventoryItem.OnPickup();

                if (inventoryItem.UseItemAfterPickup)
                {
                    Inventory.UseItem(inventoryItem);
                }
            }
        }

        Hud.CloseMessagePanel();

        mInteractItem = null;
    }
示例#10
0
    public void InteractWithItem()
    {
        if (mInteractItem != null)
        {
            mInteractItem.OnInteract();

            if (mInteractItem is InventoryItemBase)
            {
                InventoryItemBase inventoryItem = mInteractItem as InventoryItemBase;
                Inventory.AddItem(inventoryItem);
                UpdateMInteractItem(mInteractItem);
                inventoryItem.OnPickup();

                if (inventoryItem.UseItemAfterPickup)
                {
                    Inventory.UseItem(inventoryItem);
                }
            }
        }

        //hud.CloseMessagePanel();

        //mInteractItem = null;
    }
        void Update()
        {
            if (Global.USER_INPUT_ENABLED)
            {
                if (!m_Jump && CrossPlatformInputManager.GetButtonDown("Jump")) //If we are not currently performing a jump...
                {
                    if (m_StaminaSystem.AttemptJump())
                    {
                        m_Jump = true;
                    }
                    else
                    {
                        m_Jump = false;
                    }
                }

                //UNDER CONSTRUCTION
                //if (m_AutoRunPressed = CrossPlatformInputManager.GetButtonDown("AutoRun"))
                //{
                //    m_isAutoRunning = !m_isAutoRunning;
                //}

                //check if trying to interact with an npc or an item.
                if (CrossPlatformInputManager.GetButtonDown("Interact"))
                {
                    //it's an NPC
                    if (m_PersonRequestingToBeSpokenWith != null)
                    {
                        if (!alreadySpeaking)
                        {//!!ORDER IS IMPORTANT HERE!!\\
                            alreadySpeaking = true;
                            SetPlayerPositionForConversation();
                            m_PersonRequestingToBeSpokenWith.GetComponent <Interactable>().Interact();
                        }
                        else
                        {
                            //you're talking
                        }
                    }

                    //its an item
                    if (mItemRequestingToBeCollected != null)
                    {
                        animator.SetTrigger("Pickup");
                        //mItemRequestingToBeCollected.GetDetailsAboutItem();
                        inventory.AddItem(mItemRequestingToBeCollected);
                        //OnPickup() destroys rigidbody
                        mItemRequestingToBeCollected.OnPickup();

                        if (hud.IsMessagePanelOpened)
                        {
                            hud.CloseMessagePanel();
                        }
                        mItemRequestingToBeCollected = null;
                    }
                    else
                    {
                        Debug.Log("item is null or not able to be collected");
                    }
                }
                if (CrossPlatformInputManager.GetButtonDown("SelfHeal"))
                {
                    m_SpecialAbilities.AttemptSpecialAbility(0, this.gameObject);
                }
                if (CrossPlatformInputManager.GetButtonDown("AOE"))
                {
                    m_SpecialAbilities.AttemptSpecialAbility(1, this.gameObject);
                }
                if (CrossPlatformInputManager.GetButtonDown("PowerAttack"))
                {
                    m_SpecialAbilities.AttemptSpecialAbility(2, m_WeaponSystem.GetCurrentTarget());
                }
            }
        }