Пример #1
0
 // Ajoute une armée nouvellement créée
 public void addArmee(Armee armee)
 {
     // fusion des armées si une armée est déjà à cet emplacement
     foreach (Armee autre in _armees)
     {
         if (autre.positionCarte == armee.positionCarte)
         {
             // Fusionne les deux si c'est possible
             if (autre.getTaille() + armee.getTaille() > Armee.MAX_TAILLE)
             {
                 Point pt = armee.getPositionLibre(armee.positionCarte, false, false).Value;
                 armee.positionCarte = pt;
                 // récursif
                 addArmee(armee);
                 return;
             }
             else
             {
                 autre.ajouteTroupes(armee);
             }
             return;
         }
     }
     // Toute seule
     _armees.Add(armee);
 }
Пример #2
0
        /// <summary>
        /// Création d'un nouvel héros pour la faction courante
        /// </summary>
        /// <param name="nom">nom du héros</param>
        /// <param name="femme">true si femme</param>
        /// <param name="allies">true si on ajoute des alliés</param>
        public void createHeros(string nom, bool femme, bool allies)
        {
            // Choix de la ville
            List <VilleDescription> villesFaction = new List <VilleDescription>();

            foreach (VilleDescription vd in _jeu.villes.villeDesc)
            {
                if (vd.faction == _jeu.tourFaction)
                {
                    villesFaction.Add(vd);
                }
            }
            if (villesFaction.Count != 0)
            {
                VilleDescription vd = villesFaction[_jeu.rnd.Next(villesFaction.Count)];
                int      herosType  = femme ? TYPE_HEROS : TYPE_HEROINE;
                Creature heros      = new Creature(_jeu, herosType, vd.faction, vd.positionMap);
                heros.vraiNom = nom;
                // Possède un étendard
                heros.addItem(_jeu.items.itemDesc[Items.ETENDARD]);

                Armee armee = new Armee(_jeu);
                armee.addCreature(heros);
                // Alliés éventuels : types 19-27
                int nbAllie = 0;
                if (allies)
                {
                    int typeAllie = _jeu.rnd.Next(TYPE_ALLIEMAX + 1 - TYPE_ALLIEMIN) + TYPE_ALLIEMIN;
                    nbAllie = _jeu.rnd.Next(3) + 1;
                    for (int i = 0; i < nbAllie; i++)
                    {
                        armee.addCreature(new Creature(_jeu, typeAllie, vd.faction, vd.positionMap));
                    }
                }
                armee.positionCarte = armee.getPositionLibre(armee.positionCarte, false, false).Value;
                _jeu.addArmee(armee);
                if (allies)
                {
                    _jeu.messageInfo = nom + " est accompagné" + (femme ? "e" : "") + " de " + nbAllie + " allié" + (nbAllie > 1 ? "s" : "") + " et se trouve à " + vd.nom;
                }
                else
                {
                    _jeu.messageInfo = nom + " se trouve à " + vd.nom;
                }
            }
        }