public Polymorphe(Unite u, bool useMana = true) : base(u) { idSort = 4; Cooldown = 2; Ticks = 1; if (useMana) CoutMana = 30; else CoutMana = 0; NeedUnPoint = false; NeedAUnit = true; SpriteBouton = PackTexture.boutons[12]; SpriteEffect = PackTexture.sorts[0]; sonSort = new EffetSonore(PackSon.PolymorphCible); description = new Text("DescriptionPolymorph"); }
public FurieSanguinaire(Unite u, bool useMana = true) : base(u) { idSort = 2; Cooldown = 5; Ticks = 300; if (useMana) CoutMana = 30; else CoutMana = 0; Tiles = new Vector2(320 / 5, 320 / 5); NeedUnPoint = false; SpriteBouton = PackTexture.boutons[5]; SpriteEffect = PackTexture.sorts[0]; sonSort = new EffetSonore(PackSon.FurieSanguinaireCible); description = new Text("DescriptionFurieSanguinaire"); }
public Tempete(Unite u, bool useMana = true) : base(u) { idSort = 7; Cooldown = 5; Ticks = 200; CoutMana = 50; Animation = PackAnimation.Explosion(); AnimationReset = PackAnimation.Explosion(); Tiles = new Vector2(320 / 5, 320 / 5); NeedUnPoint = false; SpriteBouton = PackTexture.boutons[13]; SpriteEffect = PackTexture.sorts[0]; sonSort = new EffetSonore(PackSon.Explosion); description1 = new Text("DescriptionTempete1"); description2 = new Text("DescriptionTempete2"); }
public Explosion(Unite u, bool useMana = true) : base(u) { idSort = 1; Cooldown = 2; Ticks = 1; CoutMana = 10; Animation = PackAnimation.Explosion(); AnimationReset = PackAnimation.Explosion(); Tiles = new Vector2(320 / 5, 320 / 5); NeedUnPoint = true; SpriteBouton = PackTexture.boutons[0]; SpriteEffect = PackTexture.sorts[0]; sonSort = new EffetSonore(PackSon.Explosion); description1 = new Text("DescriptionExplosion1"); description2 = new Text("DescriptionExplosion2"); description3 = new Text("DescriptionExplosion3"); }
public Invisibilite(Unite u, bool useMana = true) : base(u) { idSort = 3; Cooldown = 5; Ticks = 300; if (useMana) CoutMana = 30; else CoutMana = 0; Tiles = new Vector2(320 / 5, 320 / 5); NeedUnPoint = false; SpriteBouton = PackTexture.boutons[2]; SpriteEffect = PackTexture.sorts[0]; sonSort = new EffetSonore(PackSon.InvisibiliteCible); uniteFollowing = new List<Unite>(); description1 = new Text("DescriptionInvisibilite1"); description2 = new Text("DescriptionInvisibilite2"); }
public Soin(Unite u, bool useMana = true) : base(u) { idSort = 6; Cooldown = 1; Ticks = 1; if (useMana) CoutMana = 15; else CoutMana = 0; Animation = PackAnimation.Soin(); AnimationReset = PackAnimation.Soin(); Tiles = new Vector2(180 / 5, 35); NeedUnPoint = false; SpriteBouton = PackTexture.boutons[1]; SpriteEffect = PackTexture.sorts[1]; sonSort = new EffetSonore(PackSon.Soin); description1 = new Text("DescriptionSoin1"); description2 = new Text("DescriptionSoin2"); }
public void Draw() { int hauteurBarre = 30; MouseState m = SceneEngine2.BaseScene.mouse; // Affichage de l'équipement if (DrawEquipement) { spritebatch.Draw(Equipement, new Vector2(EquipementPosition.X, EquipementPosition.Y) + joueur.camera.Position, Color.White); foreach (Item i in joueur.champion.Stuff) { Vector2 marge = new Vector2(7, 5); Vector2 P = new Vector2(EquipementPosition.X, EquipementPosition.Y) + joueur.camera.Position + marge; switch (i.type) { case Type.Casque: P += CasquePosition; break; case Type.Epaulieres: P += EpaulieresPosition; break; case Type.Gants: P += GantsPosition; break; case Type.Plastron: P += PlastronPosition; break; case Type.Anneau: P += AnneauPosition; break; case Type.Bottes: P += BottesPosition; break; case Type.Arme: P += ArmePosition; break; } spritebatch.Draw(i.Icone, P, Color.White); } } // Si on fait glisser déposer if (IsDrag) spritebatch.Draw(ItemSelected.Icone, new Vector2(mouse.X, mouse.Y) + joueur.camera.Position, Color.White); // Textes Text life = new Text("Life"), attack = new Text("Attack"), armor = new Text("Armor"), selectPoint = new Text("SelectPoint"), selectUnit = new Text("SelectUnit"), manaText = new Text("Mana"), levelText = new Text("Level"); // définition des mots traduisibles // Affichage du dialogue avec les PNJ if (DrawDialogue) { if (DrawDialogue != OldDrawDialogue) // Si on va pres du pnj ( et que l'on ne l'etait pas avant) { MaxChar = 0; // On reset tout dialogue.Clear(); foreach (Text t in joueur.PNJSelected.Dialogue) dialogue.Add(t); } if (dialogue.Count() > 0) // Si le dialogue est en cours on le draw { string strDiag = dialogue[0].get(); string strDraw = ""; int HeightBDialogue = 200; int tailleCadre = 150; int margeCadre = 100; spritebatch.Draw(PackTexture.Dialogue, new Rectangle((int)joueur.camera.Position.X + margeCadre, (int)joueur.camera.Position.Y + height - HeightBDialogue, width - 2 * margeCadre, HeightBDialogue), Color.White); spritebatch.Draw(Portrait, new Rectangle((int)joueur.camera.Position.X + margeCadre, (int)joueur.camera.Position.Y + height - tailleCadre, tailleCadre, tailleCadre), Color.White); spritebatch.Draw(joueur.PNJSelected.Portrait, new Rectangle((int)joueur.camera.Position.X + width - tailleCadre - margeCadre, (int)joueur.camera.Position.Y + height - tailleCadre, tailleCadre, tailleCadre), Color.White); Text l1 = new Text(joueur.champion.ToString().Split(new char[1] { '.' })[1]); string l2 = joueur.PNJSelected.ToString().Split(new char[1] { '.' })[2]; spritebatch.DrawString(gamefont, l1.get(), new Vector2( 3 * margeCadre / 2 - gamefont.MeasureString(l1.get()).X / 2, height - HeightBDialogue) + joueur.camera.Position, Color.BurlyWood); spritebatch.DrawString(gamefont, l2, new Vector2(width - 3 * margeCadre / 2 - gamefont.MeasureString(l2).X / 2, height - HeightBDialogue) + joueur.camera.Position, Color.BurlyWood); for (int i = 0; i < MaxChar && i < strDiag.Count(); i++) strDraw += strDiag[i]; MaxChar++; spritebatch.DrawString(gamefont, Outil.Normalize((width - 2 * (margeCadre + tailleCadre)) / 13, strDraw), new Vector2(margeCadre + tailleCadre, height - HeightBDialogue / 2 - tailleCadre / 2) + joueur.camera.Position, Color.BurlyWood); } } if (dialogue.Count() > 0) // Si le dialogue est en cours on cache l'UI DrawUI = !DrawDialogue; else // Sinon si c'est fini on l'affiche DrawUI = true; if (DrawUI) { string str = " " + life.get() + " : " + joueur.champion.Vie + " / " + joueur.champion.VieMax + "\n " + manaText.get() + " : " + joueur.champion.Mana + " / " + joueur.champion.ManaMax + "\n " + attack.get() + " : " + joueur.champion.Dommages + "\n " + armor.get() + " : " + joueur.champion.Defense + " / " + joueur.champion.DefenseMagique + "\n " + levelText.get() + " : " + joueur.champion.Level + "\n "; // Fond bas gauche noir spritebatch.Draw(blank, new Rectangle((int)joueur.camera.Position.X, (int)joueur.camera.Position.Y + height - CadrePosition.Height, CadrePosition.Width, CadrePosition.Height), Color.Black); // Portrait spritebatch.Draw(Portrait, new Vector2(PortraitPosition.X, PortraitPosition.Y) + joueur.camera.Position, Color.White); int margeGaucheVie = 75, margeGaucheMana = 100, longueurBarre = 150; // Affichage de la barre de vie spritebatch.Draw(blank, new Rectangle((int)joueur.camera.Position.X + CadrePosition.X + margeGaucheVie, (int)joueur.camera.Position.Y + CadrePosition.Y + CadrePosition.Height - (int)gamefont.MeasureString(str).Y, (int)(((float)joueur.champion.Vie / (float)(joueur.champion.VieMax)) * longueurBarre), hauteurBarre), Color.Green); // Affichage de la barre de mana spritebatch.Draw(blank, new Rectangle((int)joueur.camera.Position.X + CadrePosition.X + margeGaucheMana, (int)joueur.camera.Position.Y + CadrePosition.Y + CadrePosition.Height - (int)gamefont.MeasureString(str).Y + (int)gamefont.MeasureString("char").Y, (int)(((float)joueur.champion.Mana / (float)(joueur.champion.ManaMax)) * longueurBarre), hauteurBarre), new Color(0, 0, 178)); // Affichage de la barre d'XP int xpToDraw = (int)(((float)joueur.champion.XP / (float)(joueur.champion.Level * 1000)) * CadrePosition.Width); if (xpToDraw != 0) spritebatch.Draw(blank, new Rectangle((int)joueur.camera.Position.X + CadrePosition.X, (int)joueur.camera.Position.Y + CadrePosition.Y + CadrePosition.Height - hauteurBarre, xpToDraw, hauteurBarre), Color.IndianRed); else spritebatch.Draw(blank, new Rectangle((int)joueur.camera.Position.X + CadrePosition.X, (int)joueur.camera.Position.Y + CadrePosition.Y + CadrePosition.Height - hauteurBarre, 1, hauteurBarre), Color.IndianRed); // Affichage du texte // Nom du personnage Text strUnit = new Text(joueur.champion.ToString().Split(new char[1] { '.' })[1]); spritebatch.DrawString(gamefont, strUnit.get(), new Vector2(CadrePosition.X + CadrePosition.Width - gamefont.MeasureString(strUnit.get()).X / 2 - Portrait.Width / 2, CadrePosition.Y) + joueur.camera.Position, Color.White); spritebatch.DrawString(gamefont, str, new Vector2(CadrePosition.X, CadrePosition.Y + 25) + joueur.camera.Position, Color.White); string xp = joueur.champion.XP.ToString() + " / " + joueur.champion.Level * 1000; spritebatch.DrawString(gamefont, xp, new Vector2(CadrePosition.X + CadrePosition.Width / 2 - gamefont.MeasureString(xp).X / 2, CadrePosition.Y + CadrePosition.Height - hauteurBarre - 2) + joueur.camera.Position, Color.White); // Affichage de la barre des sorts spritebatch.Draw(BarreDesSorts, new Rectangle(BarreDesSortsPosition.X + (int)joueur.camera.Position.X, BarreDesSortsPosition.Y + (int)joueur.camera.Position.Y, BarreDesSortsPosition.Width, BarreDesSortsPosition.Height), null, Color.White, 0, new Vector2(BarreDesSorts.Width / 2, 0), SpriteEffects.None, 1); // Affichage des spells for (int i = 0; i < joueur.champion.spells.Count; i++) { if (Map.gametime != null) { Color color; if (joueur.champion.IsCastable(i)) color = Color.White; else color = Color.Red; spritebatch.Draw(joueur.champion.spells[i].SpriteBouton, new Vector2(BarreDesSortsPosition.X - 130 + i * (32 + 3), BarreDesSortsPosition.Y + 8) + joueur.camera.Position, color); } } // Affichage de l'aide des sorts for (int i = 0; i < joueur.champion.spells.Count; i++) { if (SourisHoverSpellCheck(i)) { int widthCadre = 250; int heightCadre = 100; string nomDuSort = new Text(joueur.champion.spells[i].ToString()).get(); // Le cadre noir, le nom du sort, la description spritebatch.Draw(blank, new Rectangle((int)joueur.camera.Position.X + BarreDesSortsPosition.X - widthCadre / 2, (int)joueur.camera.Position.Y + BarreDesSortsPosition.Y - 100, widthCadre, heightCadre), Color.Black); spritebatch.DrawString(spellfont, Outil.Normalize(30, joueur.champion.spells[i].DescriptionSpell()), new Vector2((int)joueur.camera.Position.X + BarreDesSortsPosition.X - widthCadre / 2, (int)joueur.camera.Position.Y + BarreDesSortsPosition.Y - 120 + 25), Color.White); spritebatch.DrawString(spellfont, nomDuSort, new Vector2((int)joueur.camera.Position.X + BarreDesSortsPosition.X - spellfont.MeasureString(nomDuSort).X / 2, (int)joueur.camera.Position.Y + BarreDesSortsPosition.Y - 120), Color.White); } } } // Sac if (DrawSac) { spritebatch.Draw(Sac, new Vector2(SacPosition.X, SacPosition.Y) + joueur.camera.Position, Color.White); // Affichage des items int x = 0; int j = 0; Vector2 marge = new Vector2(8, 8); // marge de l'inventaire foreach (Item it in joueur.champion.Inventory) { if (!it.Activated) spritebatch.Draw(it.Icone, new Vector2(SacPosition.X, SacPosition.Y) + joueur.camera.Position + marge + new Vector2((32 + 7) * x, (32 + 7) * j), Color.White); x++; if (x >= TailleSac.X) { x = 0; j++; } } } string str2 = selectPoint.get(); string str3 = selectUnit.get(); // Selections d'unités et de points if (DrawSelectPoint) spritebatch.DrawString(gamefont, str2, new Vector2(BarreDesSortsPosition.X - gamefont.MeasureString(str2).X / 2 , BarreDesSortsPosition.Y - BarreDesSorts.Height) + joueur.camera.Position, Color.White); if (DrawSelectUnit) spritebatch.DrawString(gamefont, str3, new Vector2(BarreDesSortsPosition.X - gamefont.MeasureString(str2).X / 2, BarreDesSortsPosition.Y - BarreDesSorts.Height) + joueur.camera.Position, Color.White); if (isWriting) { spritebatch.Draw(blank, new Rectangle((int)joueur.camera.Position.X + widthFondNoir + 10, (int)joueur.camera.Position.Y + CrystalGateGame.graphics.GraphicsDevice.Viewport.Height - heightFondNoir, CrystalGateGame.graphics.GraphicsDevice.Viewport.Width - widthFondNoir * 2 - 20, 30), new Color(0, 0, 0, 127)); spritebatch.DrawString(gamefont, message, joueur.camera.Position + new Vector2(widthFondNoir, CrystalGateGame.graphics.GraphicsDevice.Viewport.Height - heightFondNoir), Color.White); } if (messageRecu != "") { spritebatch.DrawString(gamefont, messageRecu, joueur.camera.Position + positionChat, Color.White); } // Timer spritebatch.DrawString(gamefont, tempsDeJeuActuel, new Vector2(joueur.camera.Position.X + width - gamefont.MeasureString(tempsDeJeuActuel).X - 5, joueur.camera.Position.Y + 4), Color.Black); // Compteur de vagues spritebatch.DrawString(gamefont, compteurDeVague, new Vector2(joueur.camera.Position.X + width - gamefont.MeasureString(compteurDeVague).X - 5, gamefont.MeasureString(tempsDeJeuActuel).Y + joueur.camera.Position.Y + 4), Color.Black); // Erreur reseau if(Error) spritebatch.DrawString(gamefont, new Text("Error1").get(), joueur.camera.Position, Color.White); // Curseur spritebatch.Draw(CurseurOffensif ? CurseurRouge : Curseur, new Vector2(joueur.camera.Position.X + m.X, joueur.camera.Position.Y + m.Y), Color.White); OldDrawDialogue = DrawDialogue; }
static void InitializeLevel2() { // Ajout du PNJ Unite Pnj = new Syndra(new Vector2(7, 18)); Text a = new Text("Dialogue2a"); Text b = new Text("Dialogue2b"); Pnj.Dialogue.Clear(); Pnj.Dialogue.Add(a); Pnj.Dialogue.Add(b); Unites[1] = new List<Unite> { Pnj }; Items[1] = new List<Item>{new BottesDacier(null, new Vector2(10,15))}; // bug, j.champion Waves[1] = PackWave.PackWaveLevel2(); }