示例#1
0
    private void Awake()
    {
        if (instance != null)
        {
            Destroy(this.gameObject);
        }
        else
        {
            instance = this;
        }

        DontDestroyOnLoad(gameObject);
    }
示例#2
0
    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());
    }
示例#3
0
    //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);
    }