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