Example #1
0
 // Start is called before the first frame update
 void Start()
 {
     npc            = GetComponent <OV_NPC>();
     trigger        = GetComponent <CapsuleCollider2D>();
     InteractSymbol = transform.GetChild(1).gameObject;
     InteractSymbol.SetActive(false);
 }
Example #2
0
    private int RunEvent(int _triggerID, LevelScript.LevelEvent[] events, int id = 0)
    {
        focus = GameObject.Find(events[_triggerID].focus);
        OV_NPC npc = focus ? focus.GetComponent <OV_NPC>() : null;

        if (npc)
        {
            npc.eventID = id;
        }

        //schließe vorhergehenden Dialog:
        if (_triggerID > 0)
        {
            if (events[_triggerID].type != LevelScript.EventType.textBox && events[_triggerID - 1].type == LevelScript.EventType.textBox)
            {
                ov_ui.closeTextFields();
            }
        }

        //events:
        switch (events[_triggerID].type)
        {
        case LevelScript.EventType.wait:
            break;

        case LevelScript.EventType.jumpEvent:
            _triggerID += (int)events[_triggerID].eventVal;
            break;

        case LevelScript.EventType.startParallelEvent:
            ++eventIDCount;
            StartCoroutine(ParallelEvent(_triggerID + 1, (int)events[_triggerID].eventVal, eventIDCount, events));
            _triggerID += (int)events[_triggerID].eventVal;
            break;

        case LevelScript.EventType.cameraPosRelativ:
            if (!focus)
            {
                focus = new GameObject(); focus.transform.position = (Vector2)Camera.main.transform.position + events[_triggerID].position; focus.name = "temp";
            }
            Camera.main.GetComponent <CameraScript>().ChangeFocus(focus, (int)events[_triggerID].eventVal);
            break;

        case LevelScript.EventType.cameraPosAbsolut:
            if (!focus)
            {
                focus = new GameObject(); focus.transform.position = events[_triggerID].position; focus.name = "temp";
            }
            Camera.main.GetComponent <CameraScript>().ChangeFocus(focus, (int)events[_triggerID].eventVal);
            break;

        case LevelScript.EventType.spawn:
            GameObject obj     = Resources.Load <GameObject>("Prefabs/Chars/" + events[_triggerID].focus);
            string     objName = obj.name;
            obj      = Instantiate(obj, events[_triggerID].position, Quaternion.identity);
            obj.name = objName;

            obj.GetComponent <OV_NPC>().Set_Spawn((int)events[_triggerID].eventVal);
            obj.GetComponent <OV_NPC>().Set_Stand(events[_triggerID].direction);
            if (obj.CompareTag("Player"))
            {
                OV_Player.block = true;
            }
            break;

        case LevelScript.EventType.stand:
            npc.Set_Stand(events[_triggerID].direction);
            break;

        case LevelScript.EventType.jump:
            npc.Set_Jump();
            break;

        case LevelScript.EventType.sit:
            npc.Set_Sit(events[_triggerID].position, events[_triggerID].direction);
            break;

        case LevelScript.EventType.fall:
            npc.Set_Fall();
            break;

        case LevelScript.EventType.chat:
            npc.Set_Chat();
            break;

        case LevelScript.EventType.continousChat:
            npc.Set_ContinousChat();
            break;

        case LevelScript.EventType.move:
            npc.Set_Move(events[_triggerID].position);
            break;

        case LevelScript.EventType.run:
            npc.Set_Move(events[_triggerID].position, true);
            break;

        case LevelScript.EventType.stayInArea:
            npc.Set_StayInArea(events[_triggerID].eventVal);
            break;

        case LevelScript.EventType.textBox:
            ov_ui.Speak(events[_triggerID]);
            break;

        case LevelScript.EventType.stopSequence:
            _triggerID = 99999999;
            break;

        case LevelScript.EventType.startHub:
            OV_Player.block = false;
            stateType       = GameStateType.hub;
            break;

        case LevelScript.EventType.startCoreGame:
            stateType = GameStateType.coreGame;
            ov_ui.StartCoreGame((int)events[_triggerID].eventVal);
            break;

        case LevelScript.EventType.devInfo:
            DevInfoScript.devInfo.PlayDevInfo(events[_triggerID].focus);
            break;

        case LevelScript.EventType.setSequence:
            SequenceCount = (int)events[_triggerID].eventVal;
            break;

        case LevelScript.EventType.revealScene:
            ov_ui.RevealScene();
            break;

        case LevelScript.EventType.stopGame:
            Debug.Log("Game stopped");
            QuitGame();
            break;
        }
        return(++_triggerID);
    }