Beispiel #1
0
        /// <summary>
        /// Retire les personnages et leurs identificateurs de la liste des game components
        /// </summary>
        private void RetirerPersonnages()
        {
            foreach (Player player in Players)
            {
                foreach (Personnage p in player.Personnages)
                {
                    Jeu.Components.Remove(p);
                    IdentificateurPersonnage identificateur = Jeu.Components.First(id => id is IdentificateurPersonnage && (id as IdentificateurPersonnage).PersonnageÀIdentifier == p) as IdentificateurPersonnage;
                    Jeu.Components.Remove(identificateur);
                    Jeu.Components.Remove(identificateur.AfficheurPtsVie);
                }
            }
            List <IdentificateurEffet> effetÀSupprimer = new List <IdentificateurEffet>();

            foreach (GameComponent c in Jeu.Components)
            {
                if (c is IdentificateurEffet)
                {
                    effetÀSupprimer.Add(c as IdentificateurEffet);
                }
            }
            foreach (IdentificateurEffet c in effetÀSupprimer)
            {
                Jeu.Components.Remove(c);
            }
            RéinitialiserListePlayer();
        }
Beispiel #2
0
        /// <summary>
        /// Ajoute les icônes d'effets spéciaux selon un certain personnage dans les Game.Components
        /// </summary>
        /// <param name="jeu"></param>
        /// <param name="p">Personnage à identifier</param>
        /// <param name="identificateur">Identificateur du personnage</param>
        private void AjouterIcôneEffet(Game jeu, Personnage p, IdentificateurPersonnage identificateur)
        {
            IdentificateurEffet icôneEffetFeu = new IdentificateurEffet(Jeu, p, ÉtatSpécial.EN_FEU, identificateur.Position, PREMIÈRE_ICONE_EFFET);

            icôneEffetFeu.DrawOrder = (int)OrdreDraw.AVANT_PLAN;
            Jeu.Components.Add(icôneEffetFeu);
            icôneEffetFeu.Visible = false;

            IdentificateurEffet icôneEffetMort = new IdentificateurEffet(Jeu, p, ÉtatSpécial.MORT, identificateur.Position, DEUXIÈME_ICONE_EFFET);

            icôneEffetMort.DrawOrder = (int)OrdreDraw.AVANT_PLAN;
            Jeu.Components.Add(icôneEffetMort);
            icôneEffetMort.Visible = false;

            IdentificateurEffet icôneEffetFrozen = new IdentificateurEffet(Jeu, p, ÉtatSpécial.FREEZE, identificateur.Position, TROISIÈME_ICONE_EFFET);

            icôneEffetFrozen.DrawOrder = (int)OrdreDraw.AVANT_PLAN;
            Jeu.Components.Add(icôneEffetFrozen);
            icôneEffetFrozen.Visible = false;

            IdentificateurEffet icôneEffetBouclierDivin = new IdentificateurEffet(Jeu, p, ÉtatSpécial.BOUCLIER_DIVIN, identificateur.Position, QUATRIÈME_ICONE_EFFET);

            icôneEffetBouclierDivin.DrawOrder = (int)OrdreDraw.AVANT_PLAN;
            Jeu.Components.Add(icôneEffetBouclierDivin);
            icôneEffetBouclierDivin.Visible = false;

            if (ObtenirType(p) == TypePersonnage.VOLEUR)
            {
                IdentificateurEffet icôneEffetInvisible = new IdentificateurEffet(Jeu, p, ÉtatSpécial.INVISIBLE, identificateur.Position, CINQUIÈME_ICONE_EFFET);
                icôneEffetInvisible.DrawOrder = (int)OrdreDraw.AVANT_PLAN;
                Jeu.Components.Add(icôneEffetInvisible);
                icôneEffetInvisible.Visible = false;
            }

            if (ObtenirType(p) == TypePersonnage.GUÉRISSEUR)
            {
                IdentificateurEffet icôneEffetSatan = new IdentificateurEffet(Jeu, p, ÉtatSpécial.SATAN, identificateur.Position, CINQUIÈME_ICONE_EFFET);
                icôneEffetSatan.DrawOrder = (int)OrdreDraw.AVANT_PLAN;
                Jeu.Components.Add(icôneEffetSatan);
                icôneEffetSatan.Visible = false;
            }

            if (ObtenirType(p) == TypePersonnage.GUERRIER)
            {
                IdentificateurEffet icôneEffetFolie = new IdentificateurEffet(Jeu, p, ÉtatSpécial.FOLIE, identificateur.Position, CINQUIÈME_ICONE_EFFET);
                icôneEffetFolie.DrawOrder = (int)OrdreDraw.AVANT_PLAN;
                Jeu.Components.Add(icôneEffetFolie);
                icôneEffetFolie.Visible = false;
            }
        }
Beispiel #3
0
        /// <summary>
        /// Récupère les données d'un joueur connecté au serveur, soit les personnages et leur position et leur vitalité
        /// er instancie le joueur s'il n'est pas dans la liste de joueur du client
        /// </summary>
        /// <param name="inc"></param>
        private void ReadPlayer(NetIncomingMessage inc)
        {
            var player = new Player();

            inc.ReadAllProperties(player);
            for (int i = 0; i < player.Personnages.Capacity; ++i)
            {
                player.Personnages.Add(ReadPersonnage(inc, player.Username));
            }
            if (Players.Any(p => p.Username == player.Username))
            {
                var oldPlayer = Players.FirstOrDefault(p => p.Username == player.Username);
                for (int i = 0; i < player.Personnages.Count; ++i)
                {
                    if (player.Personnages[i].Position != oldPlayer.Personnages[i].Position)
                    {
                        oldPlayer.Personnages[i].GérerPositionObjet(player.Personnages[i].Position);
                    }
                    if (player.Personnages[i].PtsDeVie != oldPlayer.Personnages[i].PtsDeVie)
                    {
                        oldPlayer.Personnages[i].ChangerVitalité(player.Personnages[i].PtsDeVie);
                    }
                }
            }
            else
            {
                Players.Add(player);
                foreach (Personnage p in player.Personnages)
                {
                    Jeu.Components.Add(p);
                    IdentificateurPersonnage identificateur = new IdentificateurPersonnage(Jeu, p);
                    identificateur.DrawOrder = (int)OrdreDraw.AVANT_PLAN;
                    Jeu.Components.Add(identificateur);
                    AjouterIcôneEffet(Jeu, p, identificateur);
                }
            }
        }