Beispiel #1
0
        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");
        }
Beispiel #3
0
        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");
        }
Beispiel #4
0
        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");
        }
Beispiel #5
0
        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");
        }
Beispiel #6
0
        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");
        }
Beispiel #7
0
        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;
        }
Beispiel #8
0
        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();
        }