Exemplo n.º 1
0
    private void OnTriggerEnter(Collider other)
    {
        InteractableItemBase item = other.GetComponent <InteractableItemBase>();

        if (item != null)
        {
            if (item.CanInteract(other))
            {
                interactableItemsInRange.Add(item);


                if (interactableItemsInRange.Count > 0)
                {
                    SetCloserItem();
                }
                else
                {
                    mInteractItem = item;
                    if (photonView.IsMine)
                    {
                        hud.OpenMessagePanel(mInteractItem);
                    }
                }
            }
        }
    }
Exemplo n.º 2
0
    void OnCollisionEnter(Collision collision)
    {
        InteractableItemBase item = collision.collider.gameObject.GetComponent <InteractableItemBase>();

        if (item != null)
        {
            // Hit by a weapon
            if (item.ItemType == EItemType.Weapon)
            {
                if (ActivePlayer.GetComponent <PlayerController>().IsAttacking)
                {
                    //if(Pcon.)

                    //mAgent.enabled = false;
                    ///Destroy(GetComponent<Rigidbody>());
                    if (mIsCutting == false)
                    {
                        StartCoroutine(CutTree());
                    }


                    // Invoke("ShowItemsDeadState", 1.2f);
                }
            }
        }
    }
Exemplo n.º 3
0
 public void DetachItem()
 {
     m_heldObject.Detach();
     m_heldObject = null;
     m_trackedModel.SetActive(true);
     m_itemAttached = false;
 }
Exemplo n.º 4
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;
    }
Exemplo n.º 5
0
    private void OnTriggerEnter(Collider other)
    {
        InteractableItemBase item = other.GetComponent <InteractableItemBase>();

        if (item != null)
        {
            mInteractItem = item;

            Hud.OpenMessagePanel(mInteractItem);
        }

        //도형 표지판을 보았을 때 도형 닌자로 이동
        if (other.gameObject.name == "Sign_Move_ShapeNinja")
        {
            SceneManager.LoadScene("ShapeNinja");
        }


        //도형 표지판을 보았을 때 도형 슈마허로 이동
        if (other.gameObject.name == "Sign_Move_Samasher")
        {
            SceneManager.LoadScene("ShapesSmasher");
        }

        //도형 표지판을 보았을 때 도형 슈마허로 이동
        if (other.gameObject.name == "Sign_Move_ShapeShift")
        {
            SceneManager.LoadScene("ShapeShift");
        }
    }
Exemplo n.º 6
0
    // ------------------ 화면 UI -------------------
    void OnGUI()
    {
        // x 는 값을 더하면 오른쪽으로, 빼면 왼쪽으로
        float x = 20.0f;
        // y 는 값을 더하면 아래로, 빼면 위로
        float y = Screen.height - 40.0f;

        if (this.carried_item != null)              // 들고 있는 Item이 있다면
        {
            //hud.OpenMessagePanel("Press Z to drop / Press X to eat");
            //GUI.Label(new Rect(x, y, 200.0f, 20.0f), "Z : 버린다", guistyle);
            //GUI.Label(new Rect(x + 100.0f, y, 200.0f, 20.0f), "X : 먹는다", guistyle);
        }
        else
        {
            if (this.closest_item != null)           // 들고있지 않은데 주목하고 있다면
            {
                //hud.OpenMessagePanel("Press Z to pick up");
                InteractableItemBase item = this.closest_item.GetComponent <InteractableItemBase>();

                if (item.CanInteract(this.closest_item))
                {
                    mInteractItem = item;

                    hud.OpenMessagePanel(mInteractItem);
                }
                hud.OpenElementalBubble("들어보자");
                //GUI.Label(new Rect(x, y, 200.0f, 20.0f), "Z : 줍는다", guistyle);
            }
            else
            {
                hud.CloseMessagePanel(); hud.CloseElementalBubble();
            }
        }

        switch (this.step)
        {
        case STEP.EATING:
            GUI.Label(new Rect(x, y, 200.0f, 20.0f), "암냠냠", guistyle);
            break;
        }

        GUI.Label(new Rect(x, y - 20.0f, 200.0f, 20.0f), "◀", guistyle);
        GUI.Label(new Rect(x + 100.0f, y - 20.0f, 200.0f, 20.0f), "▶", guistyle);
        switch (this.carried_skill.tag)
        {
        case "Owl":
            GUI.Label(new Rect(x + 30.0f, y - 20.0f, 200.0f, 20.0f), "부엉이", guistyle);
            break;

        case "Alpaca":
            GUI.Label(new Rect(x + 30.0f, y - 20.0f, 200.0f, 20.0f), "알파카", guistyle);
            break;

        case "Turtle":
            GUI.Label(new Rect(x + 30.0f, y - 20.0f, 200.0f, 20.0f), "거북이", guistyle);
            break;
        }
    }
Exemplo n.º 7
0
 private void ResetBite()
 {
     m_timeTillBite      = Random.Range(m_MinBiteTime, m_MaxBiteTime);
     m_biteTime          = 0;
     m_ActualFishTension = 0;
     m_targetFishTension = 0;
     m_CurrentlyHooked   = false;
     m_HookedObj         = null;
 }
Exemplo n.º 8
0
    private void OnTriggerExit(Collider other)
    {
        InteractableItemBase item = other.GetComponent <InteractableItemBase>();

        if (item != null)
        {
            UpdateMInteractItem(item);
        }
    }
Exemplo n.º 9
0
 private void PickupItem(InteractableItemBase item)
 {
     if (item.Attach(transform, this, m_deviceIndex, true))
     {
         m_heldObject = item;
         m_trackedModel.SetActive(false);
         m_attachedThisFrame = true;
     }
 }
Exemplo n.º 10
0
    void OnTriggerEnter(Collider other)
    {
        InteractableItemBase item = other.GetComponentInParent <InteractableItemBase>();

        if (item != null)
        {
            item.OnMouth = true;
        }
    }
Exemplo n.º 11
0
    public void OpenMessagePanel(InteractableItemBase item)
    {
        MessagePanel.SetActive(true);

        Text mpText = MessagePanel.transform.Find("Text").GetComponent <Text>();

        mpText.text = item.InteractText;

        mIsMessagePanelOpened = true;
    }
Exemplo n.º 12
0
    private void OnTriggerExit(Collider other)
    {
        InteractableItemBase item = other.GetComponent <InteractableItemBase>();

        if (item != null)
        {
            Hud.CloseMessagePanel();
            mInteractItem = null;
        }
    }
Exemplo n.º 13
0
    public void HookObject(InteractableItemBase obj)
    {
        m_HookedObject = obj;

        obj.transform.SetParent(m_Hook.transform, true);
        obj.transform.localPosition = Vector3.zero;
        obj.transform.localRotation = Quaternion.identity;

        obj.GetComponent <Rigidbody>().isKinematic = true;
    }
Exemplo n.º 14
0
    private void OnTriggerEnter(Collider other)
    {
        InteractableItemBase item = other.GetComponent <InteractableItemBase>();

        if (item != null)
        {
            mInteractItem = item;

            Hud.OpenMessagePanel(mInteractItem);
        }
    }
Exemplo n.º 15
0
    public void OpenMessagePanel(InteractableItemBase item)
    {
        MessagePanel.SetActive(true);

        Text mpText = MessagePanel.transform.Find("Text").GetComponent <Text>();

        mpText.text = item.InteractText + " " + RichText.Paint(item.Name, item.itemNameColor, true, false);


        mIsMessagePanelOpened = true;
    }
Exemplo n.º 16
0
 public void SetHandObject(GameObject pickup)
 {
     if (pickup != null)
     {
         InteractableItemBase item = pickup.GetComponent <InteractableItemBase>();
         item.transform.parent           = hand.transform;
         item.transform.localPosition    = item.pickupPosition;
         item.transform.localEulerAngles = item.pickupRotation;
         Destroy(item.gameObject.GetComponent <Rigidbody>());
     }
 }
Exemplo n.º 17
0
    private void OnRightClickTriggerClicked(Collider other)
    {
        InteractableItemBase item = other.GetComponent <InteractableItemBase>();

        if (item != null)
        {
            if (item.CanInteract(other))
            {
                mInteractItem = item;
                Hud.OpenMessagePanel(mInteractItem);
            }
        }
    }
Exemplo n.º 18
0
    //Funció per fer apareixer el MessagePanel, i agafar el Missatge: Press key F to Pickup de cadascun dels items
    public void OpenMessagePanel(InteractableItemBase item)
    {
        //Activa el panell MessagePanel que és un child de HUD(on està aquest script assignat)
        MessagePanel.SetActive(true);

        //Inicialitza la variable Text del Message Panel (és un child de Message Panel)
        Text mpText = MessagePanel.transform.Find("Text").GetComponent <Text>();

        //Posa el text que hi hagi a cadascun dels items
        mpText.text = item.InteractText;

        //Posem la variable del MessagePanel a activat
        mIsMessagePanelOpened = true;
    }
Exemplo n.º 19
0
    private void TryInteraction(Collider other)
    {
        InteractableItemBase item = other.GetComponent <InteractableItemBase>();

        if (item != null)
        {
            if (item.CanInteract(other))
            {
                mInteractItem = item;

                Hud.OpenMessagePanel(mInteractItem);
            }
        }
    }
Exemplo n.º 20
0
    private void Hook()
    {
        List <InteractableItemBase> bucket = GetFishBucket();

        if (bucket != null && bucket.Count > 0)
        {
            m_CurrentlyHooked = true;
            m_HookedObj       = (InteractableItemBase)GameObject.Instantiate(bucket[0], Vector3.zero, Quaternion.identity);
            m_FishingRod.HookObject(m_HookedObj);
            m_biteTime = 0;

            m_currentBucket = bucket;
        }
    }
    //Funció per acabar la funció anterior OnTriggerEnter, una vegada ja no hi hagi trigger
    private void OnTriggerExit(Collider other)
    {
        //Inicialitzem la variable item
        InteractableItemBase item = other.GetComponent <InteractableItemBase>();

        //si hi ha un item
        if (item != null)
        {
            //Cridem a la funció que desaparegui el missatge per pantalla
            Hud.CloseMessagePanel();

            //Posem a buit la variable mInteractItem, ja que no hi ha objecte amb qui interactua
            mInteractItem = null;
        }
    }
Exemplo n.º 22
0
    void SetCloserItem()
    {
        float minDistance = interactableItemsInRange.Where(x =>
                                                           x.GetDistanceToPlayer(transform.position) < 2f).Min(x => x.distance);
        var closerItem = interactableItemsInRange.Where(x => x.distance == minDistance);

        foreach (InteractableItemBase itemInRange in closerItem)
        {
            mInteractItem = itemInRange;
            if (photonView.IsMine)
            {
                hud.OpenMessagePanel(mInteractItem);
            }
        }
    }
Exemplo n.º 23
0
    public int GetItemCount(InteractableItemBase item)
    {
        foreach (InventorySlot slot in mSlots)
        {
            if (slot.FirstItem == null)
            {
                break;
            }

            if (slot.FirstItem.Name == item.Name)
            {
                return(slot.Count);
            }
        }
        return(0);
    }
Exemplo n.º 24
0
    public GUIStyle guistyle;                       // Font 스타일

    private void Pick_Or_Drop_Control()             // 물건을 줍거나 떨어뜨리기 위한 method 입니다.
    {
        do
        {
            if (!this.key.pick)                                                             // '줍기/버리기' Z키가 눌리지 않았으면 종료
            {
                break;
            }

            // 주목중인 아이템을 인벤토리로
            InteractWithItem();

            // 주목 중인 아이템을 삭제
            this.closest_item = null;
            mInteractItem     = null;
        } while (false);
    }
    //Funció per posar a la variable Item l'objecte interactuat i connectar amb l'inventari (HUD)
    private void OnTriggerEnter(Collider other)
    {
        //Inicialitzem la variable item
        InteractableItemBase item = other.GetComponent <InteractableItemBase>();

        //si hi ha un item
        if (item != null)
        {
            //si amb aquest item es pot interactuar
            if (item.CanInteract(other))
            {
                // Activem la variable mInteractItem amb l'item
                mInteractItem = item;

                //Cridem a la funció que aparegui el missatge per pantalla passant-li el paràmetre item (mInteractItem)
                Hud.OpenMessagePanel(mInteractItem);
            }
        }
    }
Exemplo n.º 26
0
    private void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.CompareTag("redEnemy") && PlayerPrefs.GetInt("infight") != 1)
        {
            PlayerPrefs.SetInt("infight", 1);
            Debug.Log("nowayjskdfffffffffffffffffffffffffffffffff");
            PlayerPosition.Instance.position = transform.position;
            PlayerPosition.Instance.rotation = transform.rotation;
            SceneManager.LoadScene(fight1);
        }
        else if (other.gameObject.CompareTag("stoneEnemy1") && PlayerPrefs.GetInt("infight") != 1)
        {
            PlayerPrefs.SetInt("infight", 1);
            PlayerPosition.Instance.position = transform.position;
            PlayerPosition.Instance.rotation = transform.rotation;
            SceneManager.LoadScene(fight2);
        }
        else if (other.gameObject.CompareTag("stoneEnemy2") && PlayerPrefs.GetInt("infight") != 1)
        {
            PlayerPrefs.SetInt("infight", 1);
            PlayerPosition.Instance.position = transform.position;
            PlayerPosition.Instance.rotation = transform.rotation;
            SceneManager.LoadScene(fight3);
        }
        else if (other.gameObject.CompareTag("boss") && PlayerPrefs.GetInt("infight") != 1)
        {
            PlayerPrefs.SetInt("infight", 1);
            PlayerPosition.Instance.position = transform.position;
            PlayerPosition.Instance.rotation = transform.rotation;
            SceneManager.LoadScene(bossfight);
        }
        InteractableItemBase item = other.GetComponent <InteractableItemBase>();

        if (item != null)
        {
            if (item.CanInteract(other))
            {
                mInteractItem = item;

                Hud.OpenMessagePanel(mInteractItem);
            }
        }
    }
Exemplo n.º 27
0
    void OnCollisionEnter(Collision collision)
    {
        InteractableItemBase item = collision.collider.gameObject.GetComponent <InteractableItemBase>();

        if (item != null)
        {
            // Hit by a weapon
            if (item.ItemType == EItemType.Weapon)
            {
                if (Player.GetComponent <PlayerController>().IsAttacking)
                {
                    mIsDead        = true;
                    mAgent.enabled = false;
                    Destroy(GetComponent <Rigidbody>());
                    Debug.Log(transform.name + " is dead");

                    Invoke("ShowItemsDeadState", 1.2f);
                }
            }
        }
    }
    private void OnTriggerEnter(Collider other)
    {
        InteractableItemBase item = other.GetComponent <InteractableItemBase>();

        if (item != null)
        {
            if (item.CanInteract(other))
            {
                mInteractItem = item;

                Hud.OpenMessagePanel(mInteractItem);
            }
        }

        if (other.GetComponent <EggBehaviour>() != null)
        {
            Debug.Log(EggsCount);
            EggsCount++;
            Destroy(other.gameObject);
        }
    }
Exemplo n.º 29
0
    void OnCollisionEnter(Collision collision)
    {
        InteractableItemBase item = collision.collider.gameObject.GetComponent <InteractableItemBase>();

        if (item != null)
        {
            // Hit by a weapon
            if (item.ItemType == EItemType.Weapon)
            {
                /*if(Player.GetComponent<PlayerController>().IsAttacking)
                 * {
                 *  mIsDead = true;
                 *  mAgent.enabled = false;
                 *  mAnimator.SetTrigger("die");
                 *  Destroy(GetComponent<Rigidbody>());
                 *
                 *  Invoke("ShowItemsDeadState", 1.2f);
                 * }*/
            }
        }
    }
Exemplo n.º 30
0
    void OnCollisionEnter(Collision collision)
    {
        InteractableItemBase item = collision.collider.gameObject.GetComponent <InteractableItemBase>();

        if (item != null)
        {
            //-------------------This causes enemy to die, disabling for now
            //// Hit by a weapon
            //if (item.ItemType == EItemType.Weapon)
            //{
            //    if (Player.GetComponent<PlayerController>().IsAttacking)
            //    {
            //        mIsDead = true;
            //        _navMeshAgent.enabled = false;
            //        _animator.SetTrigger("death");
            //        Destroy(GetComponent<Rigidbody>());
            //        Debug.Log(transform.name + " is ded");

            //        Invoke("ShowItemsDeadState", 1.2f);
            //    }
            //}
        }
    }