void GenerateAllEventForTheDay() { if (spawnsPointForEvent.Count != 0) { for (int i = 0; i < numberOfEvent; i++) { //Random event Evenement.EventType tmpEventType; //Random free Position GameObject tmpSpawn = null; while (tmpSpawn == null) { tmpSpawn = spawnsPointForEvent[Random.Range(0, spawnsPointForEvent.Count)]; } GameObject tmpMainObject = null; if (tmpSpawn.tag == "SpawnPointWater") { tmpEventType = Evenement.EventType.BOAT; tmpMainObject = Instantiate(prefabBoatEvent, tmpSpawn.transform.position, tmpSpawn.transform.rotation); } else if (tmpSpawn.tag == "SpawnPointHouse") { tmpEventType = Evenement.EventType.LOST_OBJECT; tmpMainObject = Instantiate(prefabThiefEvent, tmpSpawn.transform.position, tmpSpawn.transform.rotation); } else { tmpEventType = (Evenement.EventType)Random.Range(0, (float)Evenement.EventType.LOST_OBJECT); //Create new evenement switch (tmpEventType) { case Evenement.EventType.CAR_FIRE: tmpMainObject = Instantiate(prefabCarFireEvent, tmpSpawn.transform.position, tmpSpawn.transform.rotation); break; case Evenement.EventType.LOST: tmpMainObject = Instantiate(prefabLostEvent, tmpSpawn.transform.position, tmpSpawn.transform.rotation); break; case Evenement.EventType.WOUNDED: tmpMainObject = Instantiate(prefabWoundedEvent, tmpSpawn.transform.position, tmpSpawn.transform.rotation); break; } } Evenement tmpEvenement = tmpMainObject.GetComponent <Evenement>(); tmpEvenement.Set(tmpEventType, tmpSpawn, tmpMainObject); evenements.Add(tmpEvenement); spawnsPointForEvent.Remove(tmpSpawn); } foreach (GameObject spawn in spawnsPointForEvent) { Destroy(spawn); } spawnsPointForEvent.RemoveRange(0, spawnsPointForEvent.Count); } if (spawnsPointForLostObject.Count != 0) { for (int i = 0; i < numberOfStolenObject; i++) { //Random free Position GameObject tmpSpawn = null; while (tmpSpawn == null) { tmpSpawn = spawnsPointForLostObject[Random.Range(0, spawnsPointForLostObject.Count)]; } GameObject tmpMainObject = null; Evenement.EventType tmpEventType = Evenement.EventType.LOST_OBJECT; tmpMainObject = Instantiate(prefabThiefEvent, tmpSpawn.transform.position, tmpSpawn.transform.rotation); Evenement tmpEvenement = tmpMainObject.GetComponent <Evenement>(); tmpEvenement.Set(tmpEventType, tmpSpawn, tmpMainObject); evenements.Add(tmpEvenement); spawnsPointForLostObject.Remove(tmpSpawn); } foreach (GameObject spawn in spawnsPointForLostObject) { Destroy(spawn); } spawnsPointForLostObject.RemoveRange(0, spawnsPointForLostObject.Count); } }