private void Awake() { if (instance != null) { Destroy(this.gameObject); } else { instance = this; } DontDestroyOnLoad(gameObject); }
private IEnumerator Start() { int nbrJoueurs = 1, nbrIas = 1, i = 0; joueurs = new Dictionary <int, Joueur>(nbrJoueurs); Transform joueursGameObject = GameObject.Find("Joueurs").transform; // Création des joueurs. for (i = 0; i < nbrJoueurs; i++) { Instantiate(playerPrefabs[0], joueursGameObject); Joueur joueur = joueursGameObject.GetChild(joueursGameObject.childCount - 1).GetComponent <Joueur>(); InitialisePlayer(joueur, "Joueur" + (i + 1), true, (Utils.couleurs)i); joueurs.Add(i, joueur); } for (i = 0; i < nbrIas; i++) { Instantiate(playerPrefabs[1], joueursGameObject); IAEasy iae = joueursGameObject.GetChild(joueursGameObject.childCount - 1).GetComponent <IAEasy>(); InitialisePlayer(iae, "IA" + (i + 1), false, (Utils.couleurs)nbrJoueurs + i); joueurs.Add(nbrJoueurs + i, iae); } territoires = coloredTerritories.Territoires; routes = coloredTerritories.Routes; List <Territoire> territoireAAttribuer = new List <Territoire>(territoires.Count); System.Random rand = new System.Random(); for (i = 0; i < territoires.Count; i++) { territoireAAttribuer.Add(territoires[i]); } i = 0; BoutiqueManager boutique = GameObject.Find("Boutique button").GetComponent <BoutiqueManager>(); // Ajout de territoires aux joueurs de façon arbitraire. while (territoireAAttribuer.Count > 0) { // Sélection aléatoire du territoire à attribuer. int index = rand.Next(0, territoireAAttribuer.Count); while (joueurs[i % joueurs.Count].Ready == false) { yield return(null); } joueurs[i % joueurs.Count].Territoires.Add(territoireAAttribuer[index].Num, territoireAAttribuer[index]); // Ajout d'une infanterie pour marquer quel territoire appartient à qui. Infanterie newUnit = boutique.CreateUnit( (int)Utils.unitCode.Infanterie, GameObject.Find("Unites").transform, territoireAAttribuer[index].position, joueurs[i % joueurs.Count] ).GetComponent <Infanterie>(); newUnit.territoire = territoireAAttribuer[index]; territoireAAttribuer[index].unites.Add(newUnit); territoireAAttribuer[index].joueur = joueurs[i % joueurs.Count]; territoireAAttribuer.RemoveAt(index); i++; // Au cas où ce serait un peu long. yield return(null); } // Application des bonnes couleurs pour chaque unité. for (i = 0; i < joueurs.Count; i++) { foreach (Unite unit in joueurs[i].Unites) { unit.lightMaterial = joueurs[i].Material; unit.darkMaterial = joueurs[i].DarkMaterial; unit.ApplyMaterial(unit.darkMaterial); } } // Initialisation des fonds du premier joueur. joueurs[0].AjouterCredits(joueurs[0].EstimatedEarnings()); }
//protected Mission mission; //protected List<Carte> cartes; private IEnumerator Start() { this.territoires = new Dictionary <int, Territoire>(); this.routes = new List <Route>(); this.continents = new List <Continent>(); this.unites = new List <Unite>(); // Couleur sera la dernière variable configurée et indique donc quand il est possible de procéder avec la classe joueur while (!couleurSetted) { yield return(null); } ready = true; do { guiManager = GameObject.Find("GUIManager"); yield return(null); } while (guiManager == null); do { coloredTerritories = GameObject.Find("Territoires colorés").GetComponent <ColoredTerritories>(); yield return(null); } while (coloredTerritories == null); do { partie = GameObject.Find("Partie").GetComponent <Partie>(); yield return(null); } while (partie == null); do { boutique = GameObject.Find("Boutique button").GetComponent <BoutiqueManager>(); yield return(null); } while (boutique == null); do { turnManager = guiManager.GetComponent <TurnManager>(); yield return(null); } while (turnManager == null); do { battleManager = GameObject.Find("BattleManager").GetComponent <BattleManager>(); yield return(null); } while (battleManager == null); Materials materialsComponent = null; do { materialsComponent = GameObject.Find("Materials").GetComponent <Materials>(); if (materialsComponent != null) { List <Material> materials = materialsComponent.GetMaterialFromColor(couleur); this.material = materials[0]; this.darkMaterial = materials[1]; } else { yield return(null); } } while (materialsComponent == null); }