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); }
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 } } }