Ejemplo n.º 1
0
        public UI(Joueur joueur)
        {
            this.joueur = joueur;
            Portrait = (joueur.champion is Voleur) ? PackTexture.VoleurPortrait : ((joueur.champion is Chasseur) ? PackTexture.ChasseurPortrait : PackTexture.GuerrierPortrait);
            Sac = PackTexture.Sac;
            Equipement = PackTexture.Equipement;
            BarreDesSorts = PackTexture.BarreDesSorts;
            Curseur = PackTexture.Curseur;
            CurseurRouge = PackTexture.CurseurRouge;
            this.blank = PackTexture.blank;
            spritebatch = SceneHandler.spriteBatch;
            gamefont = PackTexture.gamefont;
            spellfont = PackTexture.spellfont;
            tempsDeJeuActuel = "0:00";
            compteurDeVague = Map.nombreDeVaguesPop.ToString() + Map.nombreDeVagues.ToString();

            widthFondNoir = 380;
            heightFondNoir = 250;

            CadrePosition = new Rectangle(0, height - heightFondNoir, widthFondNoir, heightFondNoir);
            PortraitPosition = new Rectangle(CadrePosition.X + CadrePosition.Width - Portrait.Width, CadrePosition.Y + 50, Portrait.Width, Portrait.Height);
            SacPosition = new Rectangle(width - Sac.Width, height - Sac.Height, Sac.Width, Sac.Height);
            EquipementPosition = new Rectangle(width / 2 - Equipement.Width / 2, height / 2 - Equipement.Height / 2, Equipement.Width, Equipement.Height);
            BarreDesSortsPosition = new Rectangle(width / 2, height - BarreDesSorts.Height, BarreDesSorts.Width, BarreDesSorts.Height);
        }
Ejemplo n.º 2
0
        public static void Unserialize(int IdDuJoueur, byte[] buffer)
        {
            // Traitement
            BinaryFormatter formatter = new BinaryFormatter();
            MemoryStream    stream    = new MemoryStream(buffer);

            stream.Position = 0;
            // mettre un try catch
            Player player = (Player)formatter.Deserialize(stream);

            if (Outil.GetJoueur(IdDuJoueur) != null && player.level == SceneHandler.level)
            {
                Joueur joueur = Outil.GetJoueur(IdDuJoueur);
                // Pathfinding
                if (player.Mooved)
                {
                    List <Noeud> path = PathFinding.TrouverChemin(joueur.champion.PositionTile, new Vector2(player.objectifPointX, player.objectifPointY), Map.Taille, Map.unites, Map.unitesStatic, true);
                    if (path != null)
                    {
                        joueur.champion.ObjectifListe = path;
                    }
                    else
                    {
                        joueur.champion.ObjectifListe.Clear();
                    }
                }
                // Unité ciblé
                if (player.idUniteAttacked != 0)
                {
                    foreach (Unite u in Map.unites)
                    {
                        if (u.id == player.idUniteAttacked)
                        {
                            joueur.champion.uniteAttacked = u;
                        }
                    }
                }
                else
                {
                    joueur.champion.uniteAttacked = null;
                }
                // Sorts
                if (player.idSortCast != 0)
                {
                    Unite        u = joueur.champion;
                    List <Spell> toutLesSpellsPossibles = new List <Spell> {
                        new Explosion(u), new Soin(u), new Invisibilite(u), new FurieSanguinaire(u), new Polymorphe(u), new Tempete(u)
                    };

                    foreach (Spell s in toutLesSpellsPossibles)
                    {
                        if (s.idSort == player.idSortCast)
                        {
                            s.Point = new Vector2(player.pointSortX, player.pointSortY);
                            if (player.idUniteCibleCast != 0)
                            {
                                foreach (Unite un in Map.unites)
                                {
                                    if (un.id == player.idUniteCibleCast)
                                    {
                                        s.UniteCible = un;
                                    }
                                }
                            }
                            joueur.champion.Cast(s, new Vector2(player.pointSortX, player.pointSortY), s.UniteCible, true);
                            break;
                        }
                    }
                }
                // Clear morts
                foreach (Unite u in Map.unites)
                {
                    foreach (byte b in player.LastDeath)
                    {
                        if (u.id == b)
                        {
                            u.Vie = 0;
                            break;
                        }
                    }
                }
                try
                {
                    Unite   u = joueur.champion;
                    Vector2 v = Vector2.Zero;

                    List <Item> items = new List <Item> {
                        new PotionDeVie(u, v), new PotionDeMana(u, v)
                    };
                    List <Stuff> stuffs = new List <Stuff> {
                        new BottesDacier(u, v), new Epaulieres(u, v), new EpeeSolari(u, v), new GantsDeDevotion(u, v), new HelmetPurple(u, v), new RingLionHead(u, v)
                    };
                    // Utilisation inventaire
                    // Objets
                    if (player.LastItemUsed != -1)
                    {
                        bool found = false;
                        // On regarde si il est dans l'inventaire
                        for (int i = 0; i < joueur.champion.Inventory.Count; i++)
                        {
                            if (joueur.champion.Inventory[i].id == player.LastItemUsed)
                            {
                                joueur.champion.Inventory[i].Utiliser();
                                found = true;
                                break;
                            }
                        }
                        // Sinon on l'ajoute
                        if (!found)
                        {
                            foreach (Item i in items)
                            {
                                if (i.id == player.LastItemUsed)
                                {
                                    joueur.champion.Inventory.Add(i);
                                    joueur.champion.Inventory[joueur.champion.Inventory.Count - 1].Utiliser();
                                }
                            }
                        }
                    }

                    // Stuff
                    if (player.LastStuffUsed != -1)
                    {
                        bool found = false;
                        // On regarde si il est dans l'inventaire
                        for (int i = 0; i < joueur.champion.Inventory.Count; i++)
                        {
                            if (joueur.champion.Inventory[i].id == player.LastStuffUsed)
                            {
                                ((Stuff)joueur.champion.Inventory[i]).Equiper();
                                found = true;
                                break;
                            }
                        }
                        // Sinon on l'ajoute
                        if (!found)
                        {
                            foreach (Stuff s in stuffs)
                            {
                                if (s.id == player.LastStuffUsed)
                                {
                                    joueur.champion.Inventory.Add(s);
                                    ((Stuff)joueur.champion.Inventory[joueur.champion.Inventory.Count - 1]).Equiper();
                                }
                            }
                        }
                    }
                }
                catch
                {
                    // On sait jamais
                }
            }
        }