private void Update() { if (GameHelper.GameManager.data.gameOver) { return; } timer -= Time.deltaTime * GameHelper.GameManager.data.timeScale; t += Time.deltaTime * GameHelper.GameManager.data.timeScale; if (timer <= 0.0f) // Spawn a new NPC { // Choose a new entry, following the histogram float chooseEntry = Random.Range(0.0F, 1.0F); int entryNumber = 0; while (probEntries[entryNumber] < chooseEntry) { entryNumber++; } var entry = PathfinderHelper.Pathfinder.entries[entryNumber]; Vector3 spawnPos = new Vector3(entry.gridX, entry.gridY + 1, 0); GameObject newNPC = Instantiate(npc, spawnPos, Quaternion.identity); NPCDataComponent npcData = newNPC.GetComponent <NPCDataComponent>(); // Check if a dancer has spawn in the last 4 NPC bool dancerFound = false; foreach (DrunkType state in lastNPCStates) { if (state == DrunkType.Dancer) { dancerFound = true; break; } } if (!dancerFound) // If not, modify the drunkType to a DANCER { npcData.drunkType = DrunkType.Dancer; } for (int i = 1; i < lastNPCStates.Length; i++) { lastNPCStates[i - 1] = lastNPCStates[i]; } lastNPCStates[lastNPCStates.Length - 1] = npcData.drunkType; // Set timer timeToPop = t * coeff + startingTimeToPop; timeToPop = timeToPop > startingTimeToPop ? startingTimeToPop : timeToPop; // Does not come across startingTimeToStop timeToPop = timeToPop < endingTimeToPop ? endingTimeToPop : timeToPop; timer = timeToPop; } }
// Start is called before the first frame update private void Start() { _npc = GetComponent <NPCComponent>(); _audioSrc = GetComponent <AudioSource>(); _data = GetComponent <NPCDataComponent>(); _currentTime = minTime; _targetTime = 0; _npc.OnFall += NPCFallAction; GameHelper.GameManager.OnGameOver += GameOverAction; }
private void Start() { _data = GetComponent <NPCDataComponent>(); _body = GetComponent <Rigidbody2D>(); }