Beispiel #1
0
    void InteractWithObject(C_InteractableObject theObject)
    {
        bool noResult = true;
        if (theObject.conditionResultList.Count != 0)
        {
            foreach(C_ConditionResult conditionResult in theObject.conditionResultList)
            {
                bool checkFailed = false;

                foreach(string condition in conditionResult.conditionsList)
                {
                    string trigger = condition;
                    if(condition[0] == '!')
                    {
                        trigger = condition.Remove(0,1);

                        if(trigger.StartsWith("have_"))
                        {
                            trigger = trigger.Remove(0,5);
                            if(player.inventory.GetItemID(trigger) >= 0)
                            {
                                checkFailed = true;
                                break;
                            }
                        }

                        if(C_ChapterManager.currentChapter.conditionTriggers.Contains(trigger))
                        {
                            checkFailed = true;
                            break;
                        }
                    }
                    else
                    {
                        trigger = condition;
                        if(trigger.StartsWith("have_"))
                        {
                            trigger = trigger.Remove(0,5);
                            if(player.inventory.GetItemID(trigger) < 0)
                            {
                                checkFailed = true;
                                break;
                            }
                        }

                        if(!C_ChapterManager.currentChapter.conditionTriggers.Contains(condition))
                        {
                            checkFailed = true;
                            break;
                        }
                    }
                }

                if(!checkFailed)
                {
                    // Do result
                    noResult = false;
                    _interactObj = theObject;
                    _interactConResIndex = theObject.conditionResultList.IndexOf(conditionResult);
                    _interacting = true;
                    InteractionResult();
                    break;
                }
            }
        }

        if(noResult)
        {
            _activatedButtons = theObject.buttons;
            _activatedButtons.SetActive(true);
            _showButtons = true;
        }

        C_ChapterManager.currentChapter.conditionTriggers.Remove(_selectedItem);
        _selectedItem = "";
        player.inventory.selectedSlot = -1;
    }
Beispiel #2
0
    public void InteractObject(C_InteractableObject theObject)
    {
        theObject.buttons.SetActive (false);
        _skipUpdate = true;

        switch(theObject.interactionType)
        {
        case E_InteractType.None:

            break;

        case E_InteractType.Monologue:

            SetupDialogue(true);
            _dialogueEnabled = true;

            break;

        case E_InteractType.LoadScene:

            C_ChapterManager.currentChapter.lastScene = Application.loadedLevelName;
            Application.LoadLevel(theObject.loadScene);
            break;

        }
    }
Beispiel #3
0
 public void ObserveObject(C_InteractableObject theObject)
 {
     theObject.buttons.SetActive (false);
     //DisplayDescriptionBox(theObject.observeLine);
     if(PlayerPrefs.GetInt("Language") == 1)
         DisplayDescriptionBox(theObject.observeLine);
     else
         DisplayDescriptionBox(theObject.observeLineDutch);
 }