private void Start() { _spawner = this; GetPersonSpawnCountFromPref(); SpawnPersons(initialPersonCount); }
public override void OnInspectorGUI() { PersonSpawner personSpawnerTarget = (PersonSpawner)target; personSpawnerTarget.randomSpawn = EditorGUILayout.Toggle("Random Spawn", personSpawnerTarget.randomSpawn); if (personSpawnerTarget.randomSpawn) { personSpawnerTarget.numPeople = EditorGUILayout.IntField("Number of NPCs", personSpawnerTarget.numPeople); } else { personSpawnerTarget.columns = EditorGUILayout.IntField("NPC Columns", personSpawnerTarget.columns); personSpawnerTarget.rows = EditorGUILayout.IntField("NPC Rows", personSpawnerTarget.rows); } setupFoldout = EditorGUILayout.Foldout(setupFoldout, "Additional Settings", true); if (setupFoldout) { personSpawnerTarget.boundaries = (SpawnBoundaries)EditorGUILayout.ObjectField("Boundaries Script", personSpawnerTarget.boundaries, typeof(SpawnBoundaries), true); personSpawnerTarget.peopleParent = (Transform)EditorGUILayout.ObjectField("People Parent", personSpawnerTarget.peopleParent, typeof(Transform), true); personSpawnerTarget.personPrefab = (GameObject)EditorGUILayout.ObjectField("Person Prefab", personSpawnerTarget.personPrefab, typeof(GameObject), true); } }
public void ActivatePowerUp() { switch (type) { case PowerUpType.PopulationGrowth: PersonSpawner.SpawnExtraPersons(1); NotificationManager.Notify(NotificationType.PopulationPowerUp); break; case PowerUpType.ExtraCannon: FindObjectOfType <Cannon>().AddExtraCannonBall(1); NotificationManager.Notify(NotificationType.ExtraCannonPowerUp); break; case PowerUpType.SpeedIncrease: PersonMovementController.UpdatePersonSpeed(); NotificationManager.Notify(NotificationType.SpeedPowerUp); break; default: throw new ArgumentOutOfRangeException(); } UpdatePowerUpCost(); }
public void ActivateSpawners() { for (int i = 0; i < transform.childCount; i++) { PersonSpawner spawner = transform.GetChild(i).GetComponent <PersonSpawner>(); spawner.gameObject.SetActive(true); } }
private void Reset() { Cannon.Reset(); PersonSpawner.Reset(); GameProgressManager.Reset(); PowerUp.Reset(); _notifiedAllMonstersEffected = false; }
public void UnsetPerson() { if (this.smile != null) { ChangeSmile(0); } this.spawner.RemoveSlot(); this.spawner = null; }
private void Awake() { _patrolPoints = FindObjectsOfType <PatrolPoint>(); _spawnNext = FindObjectOfType <PersonSpawner>(); _target = FindObjectOfType <PlayerController>(); _nav = GetComponent <NavMeshAgent>(); _nav.updateRotation = false; }
public void SetPerson(PersonSpawner person) { this.spawner = person; this.spawner.SetSlot(this); if (this.smile != null) { this.smile.color = this.spawner.GetColor(); ChangeSmile(1); } }
private void CheckGameEnding() { if (GameState != GameState.Playing) { return; } var numberOfDeadPersons = GameObject.FindGameObjectsWithTag(Person.GetTag(PersonTags.Dead)).Length; var numberOfInfectedPersons = GameObject.FindGameObjectsWithTag(Person.GetTag(PersonTags.Infected)).Length; if (numberOfDeadPersons == PersonSpawner.GetPersonCount()) { GameWon(); return; } if (numberOfDeadPersons + numberOfInfectedPersons == PersonSpawner.GetPersonCount() && !_notifiedAllMonstersEffected) { NotificationManager.Notify(NotificationType.AllMonstersInfected); _notifiedAllMonstersEffected = true; } if (Cannon.CannonBallsRemaining() != 0) { return; } var cannonBallsInAir = GameObject.FindGameObjectsWithTag("CannonBall"); if (cannonBallsInAir.Length != 0) { return; } // counting all the infected and contagious persons var remainingInfectedPersonsCount = GameObject.FindGameObjectsWithTag(Person.GetTag(PersonTags.Infected)).Length; if (remainingInfectedPersonsCount != 0) { return; } if (GameProgressManager.GetCurrentProgressState() == GameProgressState.Complete) { GameWon(); } else { GameOver(); } }
private void UpdateSpawnPoints() { for (int i = 0; i < transform.childCount; i++) { PersonSpawner spawner = transform.GetChild(i).GetComponent <PersonSpawner>(); spawner.spawnChance = spawnChances[wantedLevel]; spawner.robberChance = robberChances[wantedLevel]; spawner.policeChance = policeChances[wantedLevel]; spawner.soldierChance = soldierChances[wantedLevel]; spawner.bankerChance = bankerChance; } }
public static async void LoadAllInto(List <Person> persons, Action action) { await Task.Run(() => { if (!Directory.Exists(DataFilepath)) { Directory.CreateDirectory(DataFilepath); persons.AddRange(PersonSpawner.SpawnPersons(50)); SaveAll(persons); } else { persons.AddRange(Directory.EnumerateFiles(DataFilepath).Select(LoadFrom)); } action(); }); }
public void OnPointerClick(PointerEventData eventData) { if (IsActionable) { GameObject target = eventData.pointerCurrentRaycast.gameObject; PersonSpawner spawner = target.GetComponent <PersonSpawner>(); PersonSlot slot = target.GetComponent <PersonSlot>(); if (spawner != null) { SelectSpawner(spawner); } if (slot != null) { SelectSlot(slot); } } }
private void SelectSpawner(PersonSpawner spawner) { if (this.selected == spawner) { this.selected.Unselect(); this.selected = null; } else { if (this.selected != null) { this.selected.Unselect(); } this.selected = spawner; this.selected.Select(); } ShowSlots(); }
public static void UpdateProgress() { _gameProgressManager.animator.Play("ProgressBarAnimation", -1, 0f); _gameProgressManager.gameProgress += 6f / (PersonSpawner.GetPersonCount() * 5f); if (_gameProgressManager.gameProgress > _gameProgressManager.progressSlider.maxValue) { if (!_notifiedProgressMax) { NotificationManager.Notify(NotificationType.LevelUp); _notifiedProgressMax = true; } _progressState = GameProgressState.Complete; } else { _progressState = GameProgressState.NotComplete; } _gameProgressManager.UpdateUi(); }
public void GameStart() { people[numberOfPeople - 1].StartMoving(); spawn = GameObject.FindGameObjectWithTag("Spawner").GetComponent<PersonSpawner>(); }