public static void Update(PNJ[] pnj, Personnage[] perso, GameTime gameTime, GraphicsDeviceManager graphics, ContentManager Content) { foreach (PNJ p in pnj) { p.F_Update(perso, gameTime); } }
public static void Update(GameTime gameTime, GraphicsDeviceManager graphics, ContentManager Content, Personnage[] perso, Monster[] monster, PNJ[] pnj) { if (continuer) { continuer = Menu.Update(monster, perso, pnj, graphics, gameTime, Content); } }
public static void LoadNewMap(GameTime gameTime, ContentManager Content, GraphicsDeviceManager graphics, SpriteBatch sb, ref Personnage[] perso, ref Monster[] monster, ref PNJ[] pnj, ref int nbMonster) { pnj = new PNJ[Map.InitPNJ()]; perso = new Personnage[GameState.Player]; nbMonster = Map.Init(monster, pnj); monster = new Monster[nbMonster]; monster = Map.LoadMonster(monster); LoadingMenu.Load(perso, monster, pnj, Content, gameTime); }
private void F_Parler(Personnage[] perso) { parler = false; foreach (Personnage p in perso) { if (p.G_Interact(this)) { parler = true; } } }
public static bool Update(GameTime gameTime, ContentManager Content, GraphicsDeviceManager graphics, SpriteBatch sb, ref Personnage[] perso, ref Monster[] monster, ref PNJ[] pnj, ref int nbPlayer, ref int nbMonster) { nbPlayer = LoadingMenu.Update(perso, Content); if (nbPlayer != 0) { perso = new Personnage[nbPlayer]; LoadNewMap(gameTime, Content, graphics, sb, ref perso, ref monster, ref pnj, ref nbMonster); return true; } return false; }
public Projectile(ContentManager Content, Monster target, Personnage caster, Vector2 position, int damage) { willExplodeAnd_DESTROY_THE_FACE_OF_DA_MONSSSTTTTTEEEEEERRRRRRRRRRRRRRRRRR = false; GOOOOOOOOOO = false; imageState = 0; objet = Content.Load<Texture2D>("magic/fireball" + imageState); this.position = new Vector2(position.X + 40, position.Y + 30); this.target = target; this.caster = caster; this.damage = damage; this.time = 0; }
public static void Draw(Personnage[] perso, Monster[] monster, PNJ[] pnj, SpriteBatch sb, GraphicsDeviceManager graphics, GameTime gameTime) { graphics.GraphicsDevice.Clear(Color.Pink); sb.Begin(SpriteBlendMode.AlphaBlend); try { Map.DrawBack(sb); Map.DrawMiddle(sb); if (!Map.G_FirstHide()) { Map.DrawFirst(sb); } Mob.Draw(perso, monster, pnj, sb, gameTime); if (Map.G_FirstHide()) { Map.DrawFirst(sb); } Map.DrawBossTrigger(sb, gameTime); if (pause) { menuObject[0].Draw(sb); Color color = Color.DarkKhaki; if (currentCursor == 0) { color = Color.Gold; } sb.DrawString(GameState.menuFont, LoadingMenu.Local[13], new Vector2(350, 350), color); if (currentCursor == 1) { color = Color.Gold; } else { color = Color.DarkKhaki; } sb.DrawString(GameState.menuFont, LoadingMenu.Local[14], new Vector2(350, 475), color); if (currentCursor == 2) { color = Color.Gold; } else { color = Color.DarkKhaki; } sb.DrawString(GameState.menuFont, LoadingMenu.Local[2], new Vector2(350, 600), color); } } catch (ArgumentNullException) { } sb.End(); }
public static void Draw(Personnage[] perso, Monster[] monster, PNJ[] pnj, SpriteBatch sb, GameTime gameTime) { Vector2[] sort = new Vector2[GameState.Player + GameState.Monster]; for (int k = 0; k < GameState.Player; k++) { sort[k].X = k; sort[k].Y = perso[k].position.Y + 65; if (! perso[k].G_IsAlive()) sort[k].Y -= 4242; } for (int k = 0; k < GameState.Monster; k++) { sort[k + GameState.Player].X = k + GameState.Player; sort[k + GameState.Player].Y = monster[k].position.Y + 155; if (!monster[k].G_IsAlive()) sort[k + GameState.Player].Y -= 4242; } for (int i = 0; i < GameState.Player + GameState.Monster; i++) { int min = -1; for (int k = 0; k < GameState.Player + GameState.Monster; k++) { if ((sort[k].X != -1) && (min == -1 || sort[k].Y < sort[min].Y)) { min = k; } } array[i] = (int)sort[min].X; sort[min].X = -1; } foreach (int i in array) { if (i < GameState.Player) perso[i].F_Draw(sb, gameTime, perso); else monster[i - GameState.Player].F_Draw(sb); } PNJ.Draw(pnj, sb); foreach (Monster m in monster) { m.F_DrawDegats(sb, gameTime); } foreach (Personnage p in perso) { p.F_DrawDegats(sb, gameTime); } }
public Monster(Vector2 init, int id, int boss) : base() { this.target = null; this.id = id; this.boss = boss; this.spawn = new Rectangle((int)init.X - 200, (int)init.Y - 200, 400, 400); this.position = init; this.life = (int)(200 * GameState.Level * GameState.Player * boss); this.lifeMax = this.life; tempsRandom = 0; tempsAttaque = -5; }
public static void Draw(GameTime gameTime, SpriteBatch spriteBatch, GraphicsDeviceManager graphics, ContentManager Content, Personnage[] perso, Monster[] monster, PNJ[] pnj) { if (continuer) { Menu.Draw(perso, monster, pnj, spriteBatch, graphics, gameTime); } else { if (!Keyboard.GetState().IsKeyDown(Keys.Enter)) { Menu.DrawGameOver(perso, monster, pnj, spriteBatch, graphics, gameTime); } else { GameState.Restart(Content); } } }
public static void LoadPerso(Personnage[] perso) { FileStream fs = new FileStream("Save/" + Program.save + ".save", FileMode.Open); StreamReader sr = new StreamReader(fs); sr.ReadLine(); sr.ReadLine(); foreach (Personnage p in perso) { string str = sr.ReadLine(); str = str.Substring(6); p.S_Nom(str); sr.ReadLine(); str = sr.ReadLine(); str = str.Substring(3); p.S_Xp(int.Parse(str)); } sr.Close(); fs.Close(); }
public static void LoadClass(ref int[] persoClass, Personnage[] perso) { FileStream fs = new FileStream("Save/" + Program.save + ".save", FileMode.Open); StreamReader sr = new StreamReader(fs); sr.ReadLine(); sr.ReadLine(); persoClass = new int[GameState.Player]; int i = 0; foreach (Personnage p in perso) { sr.ReadLine(); string str = sr.ReadLine(); str = str.Substring(7); persoClass[i] = int.Parse(str); sr.ReadLine(); i++; } sr.Close(); fs.Close(); }
public static void DrawGameOver(Personnage[] perso, Monster[] monster, PNJ[] pnj, SpriteBatch spriteBatch, GraphicsDeviceManager graphics, GameTime gameTime) { graphics.GraphicsDevice.Clear(Color.Pink); spriteBatch.Begin(SpriteBlendMode.AlphaBlend); try { Map.DrawBack(spriteBatch); Map.DrawMiddle(spriteBatch); if (!Map.G_FirstHide()) { Map.DrawFirst(spriteBatch); } Mob.Draw(perso, monster, pnj, spriteBatch, gameTime); if (Map.G_FirstHide()) { Map.DrawFirst(spriteBatch); } } catch (ArgumentNullException) { } menuObject[1].Draw(spriteBatch); spriteBatch.End(); }
private void F_Update(Personnage[] perso, Monster[] monster, ContentManager Content, GameTime gameTime, GraphicsDeviceManager graphics) { if (G_IsAlive()) { F_Deplacer(); F_Cheat(gameTime, perso); if (newState.IsKeyDown(Keys.LeftShift)) { S_ImgState(20); } F_Attaque(monster, gameTime, Content, perso); F_SpecialAttaque(monster, perso, gameTime); foreach (Rectangle collision in Map.G_Collision()) { F_Collision_Objets(collision, gameTime); } foreach (Monster m in monster) { if (m.G_IsAlive()) F_Collision_Objets(m.G_Rectangle(), gameTime); } for (int i = 0; i < projectile.Count; i++) { if (projectile[i].Update(gameTime, Content)) { projectile.RemoveAt(i); } } F_Collision_Ecran(graphics, gameTime); F_UpdateRegen(gameTime); } F_UpdateImage(gameTime); try { objet = Content.Load<Texture2D>("perso/" + classe + "/" + imgState); } catch (ContentLoadException) { } S_Deplacement(gameTime); }
private void F_SpecialAttaque(Monster[] monster, Personnage[] perso, GameTime gameTime) { switch (classe) { case 1: F_Booster(gameTime); break; case 2: F_BERZERKER(gameTime); break; case 3: F_Healing(perso, gameTime); break; case 4: F_OverKill(monster, perso, gameTime); break; } }
private void F_OverKill(Monster[] monster, Personnage[] perso, GameTime gameTime) { newState = Keyboard.GetState(); Monster[] m_target_ovrkl = new Monster[GameState.Monster]; Personnage[] p_target_ovrkl = new Personnage[GameState.Player]; bool p_target = false; bool m_target = false; tempsActuel = (float)gameTime.TotalGameTime.TotalSeconds; if (tempsActuel > tempsAttaque[1] + 3) { if (newState.IsKeyDown(key[5]) && power >= 500) { power -= 500; for (int i = 0; i < GameState.Monster; i++) { m_target_ovrkl[i] = null; } for (int i = 0; i < GameState.Player; i++) { p_target_ovrkl[i] = null; } for (int i = 0; i < GameState.Monster; i++) { m_target_ovrkl[i] = F_DetectMonsters(monster[i]); foreach (Monster m in m_target_ovrkl) { if (m != null) m_target = true; } if (m_target && monster[i].G_IsAlive() && m_target_ovrkl[i] != null) { monster[i].S_Degat((int)((10 + level * 7) * mana), gameTime); if (monster[i].G_Killed()) { S_Xp(monster[i].G_MaxLife(), gameTime, perso); } } } for (int i = 0; i < GameState.Player; i++) { if (i != id - 1) { p_target_ovrkl[i] = F_DetectAllies(perso[i]); foreach (Personnage p in p_target_ovrkl) { if (p != null) p_target = true; } if (p_target && perso[i].G_IsAlive() && p_target_ovrkl[i] != null) { perso[i].S_Degat((int)((level * 3) * mana), gameTime); } } } Son.Play(4); imgState = 101; tempsAttaque[1] = tempsActuel; } } else { if (tempsActuel > tempsAttaque[1] + 1) if (imgState == 105) imgState = 20; else { } else if (tempsActuel > tempsAttaque[1] + 0.8) imgState = 105; else if (tempsActuel > tempsAttaque[1] + 0.6) imgState = 104; else if (tempsActuel > tempsAttaque[1] + 0.4) imgState = 103; else if (tempsActuel > tempsAttaque[1] + 0.2) imgState = 102; if (imgState > 100) speed = Vector2.Zero; } }
public static void Load(Personnage[] perso, Monster[] monster, PNJ[] pnj, ContentManager Content, GameTime gameTime) { Mob.Load(Content); SaveLoad.LoadClass(ref persoClasse, perso); Personnage.Load(perso, Content); SaveLoad.LoadPerso(perso); Monster.Load(monster, Content); PNJ.Load(pnj, Content); Map.Load(Content); Map.Update(gameTime, perso, Content); }
public static int Update(Personnage[] perso, ContentManager Content) { /******* STATE ********\ * 0 : Menu principal * * 1 : Choix nb perso * * 2 : Setup * * 9 : Exit * \**********************/ newState = Keyboard.GetState(); #region Raccourcis if (newState.IsKeyDown(Keys.F11)) { persoClasse = new int[1]; persoClasse[0] = 1; return 1; } if (newState.IsKeyDown(Keys.F12)) { persoClasse = new int[2]; persoClasse[0] = 1; persoClasse[1] = 3; return 2; } #endregion if (state <= 5 || state == 9) { float posX = menuObject[1].Position.X; if (posX > 42) speedX -= 0.2f; if (posX < 42) speedX += 0.2f; menuObject[1].S_PosX(posX + speedX / 2); menuObject[1].S_PosY(300 + 125 * currentCursor); } #region Menu principal if (state == (int)MenuState.Principal) { if (newState.IsKeyDown(Keys.Up) && !oldState.IsKeyDown(Keys.Up)) { currentCursor--; if (currentCursor == -1) currentCursor = 3; } if (newState.IsKeyDown(Keys.Down) && !oldState.IsKeyDown(Keys.Down)) { currentCursor = (currentCursor + 1) % 4; } if (newState.IsKeyDown(Keys.Enter) && !oldState.IsKeyDown(Keys.Enter)) { if (currentCursor == 0) { state = (int)MenuState.NombrePerso_; } else if (currentCursor == 1) { temp = 0; fs = new FileStream("Config/save", FileMode.Open); sr = new StreamReader(fs); save = new string[int.Parse(sr.ReadLine())]; for (int i = 0; i < save.GetLength(0); i++) { save[i] = sr.ReadLine(); } sr.Close(); fs.Close(); if (save.GetLength(0) != 0) { fs = new FileStream("Save/" + save[0] + ".save", FileMode.Open); sr = new StreamReader(fs); state = (int)MenuState.LoadSave_; } } else if (currentCursor == 2) { state = (int)MenuState.Setup_; } else if (currentCursor == 3) { state = (int)MenuState.Exit_; } speedX = 35; } } #endregion #region Load else if (state == (int)MenuState.LoadSave) { if (newState.IsKeyDown(Keys.Up) && !oldState.IsKeyDown(Keys.Up)) { currentCursor--; if (currentCursor == -1) currentCursor = 1; } if (newState.IsKeyDown(Keys.Down) && !oldState.IsKeyDown(Keys.Down)) { currentCursor = (currentCursor + 1) % 2; } if (newState.IsKeyDown(Keys.Left) && !oldState.IsKeyDown(Keys.Left)) { sr.Close(); fs.Close(); fs = new FileStream("Save/" + save[temp] + ".save", FileMode.Open); sr = new StreamReader(fs); temp--; if (temp == -1) temp = save.GetLength(0) - 1; } if (newState.IsKeyDown(Keys.Right) && !oldState.IsKeyDown(Keys.Right)) { sr.Close(); fs.Close(); fs = new FileStream("Save/" + save[temp] + ".save", FileMode.Open); sr = new StreamReader(fs); temp = (temp + 1) % save.GetLength(0); } if (newState.IsKeyDown(Keys.Enter) && !oldState.IsKeyDown(Keys.Enter)) { sr.Close(); fs.Close(); if (currentCursor == 0) { menuObject[1] = new Objet(new Vector2(230, 270), Content.Load<Texture2D>("menu/levelSelector")); menuObject[2] = new Objet(new Vector2(233, 0), Content.Load<Texture2D>("menu/_")); Program.save = save[temp]; state = (int)MenuState.ChooseLevel; temp = SaveLoad.Loading(); } else if (currentCursor == 1) { currentCursor = 0; state = (int)MenuState.Principal; } } } #endregion #region ChooseLevel else if (state == (int)MenuState.ChooseLevel) { if (newState.IsKeyDown(Keys.Up) && !oldState.IsKeyDown(Keys.Up)) { currentCursor--; if (currentCursor == -1) currentCursor = 11; } if (newState.IsKeyDown(Keys.Down) && !oldState.IsKeyDown(Keys.Down)) { currentCursor = (currentCursor + 1) % 12; } if (newState.IsKeyDown(Keys.Left) && !oldState.IsKeyDown(Keys.Left)) { currentCursor -= 6; if (currentCursor < 0) { currentCursor += 12; } } if (newState.IsKeyDown(Keys.Right) && !oldState.IsKeyDown(Keys.Right)) { currentCursor += 6; if (currentCursor > 11) { currentCursor -= 12; } } if (newState.IsKeyDown(Keys.Enter) && !oldState.IsKeyDown(Keys.Enter)) { sr.Close(); fs.Close(); if (currentCursor == 5 || currentCursor == 11) { currentCursor = 0; state = (int)MenuState.Principal; menuObject[1] = new Objet(new Vector2(0, 350), Content.Load<Texture2D>("menu/epee")); } else { if (currentCursor < 5) { GameState.Level = currentCursor + 1; } else { GameState.Level = currentCursor; } return temp; } } } #endregion #region Nombre Perso else if (state == (int)MenuState.NombrePerso) { if (newState.IsKeyDown(Keys.Up) && !oldState.IsKeyDown(Keys.Up)) { currentCursor--; if (currentCursor == -1) currentCursor = 2; } if (newState.IsKeyDown(Keys.Down) && !oldState.IsKeyDown(Keys.Down)) { currentCursor = (currentCursor + 1) % 3; } if (newState.IsKeyDown(Keys.Right) && !oldState.IsKeyDown(Keys.Right)) { nbPlayer = (nbPlayer % 4) + 1; } if (newState.IsKeyDown(Keys.Left) && !oldState.IsKeyDown(Keys.Left)) { nbPlayer--; if (nbPlayer == 0) nbPlayer = 4; } if (newState.IsKeyDown(Keys.Enter) && !oldState.IsKeyDown(Keys.Enter)) { if (currentCursor == 0) { persoClasse = new int[nbPlayer]; state = (int)MenuState.SelecClasse1; temp = 0; } else if (currentCursor == 1) { state = (int)MenuState.Principal; currentCursor = 0; menuObject[1].S_PosX(-42); speedX = 0; } else if (currentCursor == 2) { Program.gs.Exit(); } } } #endregion #region Setup else if (state == (int)MenuState.Setup) { if (newState.IsKeyDown(Keys.Up) && !oldState.IsKeyDown(Keys.Up)) { currentCursor--; if (currentCursor == -1) currentCursor = 3; } if (newState.IsKeyDown(Keys.Down) && !oldState.IsKeyDown(Keys.Down)) { currentCursor = (currentCursor + 1) % 4; } if (newState.IsKeyDown(Keys.Enter) && !oldState.IsKeyDown(Keys.Enter)) { if (currentCursor == 0) { state = (int)MenuState.SetupVideo; } else if (currentCursor == 1) { state = (int)MenuState.SetupAudio; } else if (currentCursor == 2) { state = (int)MenuState.SetupLocal; } else if (currentCursor == 3) { state = (int)MenuState.Principal; menuObject[1] = new Objet(new Vector2(0, 350), Content.Load<Texture2D>("menu/epee")); speedX = 0; } currentCursor = 0; } } else if (state == (int)MenuState.SetupVideo) { if (newState.IsKeyDown(Keys.Up) && !oldState.IsKeyDown(Keys.Up)) { currentCursor--; if (currentCursor == -1) currentCursor = 2; } if (newState.IsKeyDown(Keys.Down) && !oldState.IsKeyDown(Keys.Down)) { currentCursor = (currentCursor + 1) % 3; } if (newState.IsKeyDown(Keys.Right) && !oldState.IsKeyDown(Keys.Right)) { if (currentCursor == 0) setup[currentCursor] = (setup[currentCursor] + 1) % 3; else if (currentCursor == 1) setup[currentCursor] = (setup[currentCursor] + 1) % 2; } if (newState.IsKeyDown(Keys.Left) && !oldState.IsKeyDown(Keys.Left)) { if (currentCursor != 2) { setup[currentCursor]--; if (setup[currentCursor] == -1) { if (currentCursor == 0) setup[currentCursor] = 2; else setup[currentCursor] = 1; } } } if (newState.IsKeyDown(Keys.Enter) && !oldState.IsKeyDown(Keys.Enter)) { if (currentCursor <= 1) { ApplyChanges(Content); } else { currentCursor = 0; state = (int)MenuState.Setup; menuObject[1] = new Objet(new Vector2(0, 350), Content.Load<Texture2D>("menu/epee")); speedX = 0; } } } else if (state == (int)MenuState.SetupAudio) { if (newState.IsKeyDown(Keys.Up) && !oldState.IsKeyDown(Keys.Up)) { currentCursor--; if (currentCursor == -1) currentCursor = 2; } if (newState.IsKeyDown(Keys.Down) && !oldState.IsKeyDown(Keys.Down)) { currentCursor = (currentCursor + 1) % 3; } if (currentCursor == 0) { if (newState.IsKeyDown(Keys.Right) && !oldState.IsKeyDown(Keys.Right)) { setup[2] = (setup[2] + 1) % 2; } if (newState.IsKeyDown(Keys.Left) && !oldState.IsKeyDown(Keys.Left)) { setup[2]--; if (setup[2] == -1) { setup[2] = 1; } } } if (currentCursor == 1) { if (newState.IsKeyDown(Keys.Right)) { setup[3]++; if (setup[3] > 100) setup[3] = 100; } if (newState.IsKeyDown(Keys.Left)) { setup[3]--; if (setup[3] < 0) setup[3] = 0; } Program.volume = setup[3]; Son.InstanceVolume(); } if (newState.IsKeyDown(Keys.Enter) && !oldState.IsKeyDown(Keys.Enter)) { if (currentCursor <= 1) { ApplyChanges(Content); } else { currentCursor = 0; state = (int)MenuState.Setup; menuObject[1] = new Objet(new Vector2(0, 350), Content.Load<Texture2D>("menu/epee")); speedX = 0; } } } else if (state == (int)MenuState.SetupLocal) { if (newState.IsKeyDown(Keys.Up) && !oldState.IsKeyDown(Keys.Up)) { currentCursor--; if (currentCursor == -1) currentCursor = 2; } if (newState.IsKeyDown(Keys.Down) && !oldState.IsKeyDown(Keys.Down)) { currentCursor = (currentCursor + 1) % 3; } if (newState.IsKeyDown(Keys.Enter) && !oldState.IsKeyDown(Keys.Enter)) { if (currentCursor <= 1) { setup[4] = currentCursor; ApplyChanges(Content); } else { currentCursor = 0; state = (int)MenuState.Setup; menuObject[1] = new Objet(new Vector2(0, 350), Content.Load<Texture2D>("menu/epee")); speedX = 0; } } } #endregion #region Selection Classe else if (state >= 5 && state <= 8) { menuObject[1] = new Objet(new Vector2(100, 500), Content.Load<Texture2D>("perso/1/10")); menuObject[2] = new Objet(new Vector2(300, 500), Content.Load<Texture2D>("perso/2/10")); menuObject[3] = new Objet(new Vector2(500, 500), Content.Load<Texture2D>("perso/3/10")); menuObject[4] = new Objet(new Vector2(700, 500), Content.Load<Texture2D>("perso/4/10")); menuObject[5] = new Objet(new Vector2(92 + (200 * currentCursor), 480), Content.Load<Texture2D>("menu/selection")); if (newState.IsKeyDown(Keys.Up) && !oldState.IsKeyDown(Keys.Up)) { temp--; if (temp == -1) temp = 1; } if (newState.IsKeyDown(Keys.Down) && !oldState.IsKeyDown(Keys.Down)) { temp = (temp + 1) % 2; } if (newState.IsKeyDown(Keys.Right) && !oldState.IsKeyDown(Keys.Right)) { if (temp == 0) currentCursor = (currentCursor + 1) % 4; } if (newState.IsKeyDown(Keys.Left) && !oldState.IsKeyDown(Keys.Left)) { if (temp == 0) { currentCursor--; if (currentCursor == -1) currentCursor = 3; } } if (newState.IsKeyDown(Keys.Enter) && !oldState.IsKeyDown(Keys.Enter)) { if (temp == 0) { persoClasse[state - 5] = currentCursor + 1; state++; if (state - 5 == nbPlayer) { SaveLoad.NewGame(nbPlayer); return nbPlayer; } } else { currentCursor = 0; speedX = 0; state = 1; menuObject[1] = new Objet(new Vector2(-42, 350), Content.Load<Texture2D>("menu/epee")); } } } #endregion #region Other else if (state == (int)MenuState.Exit) { Program.gs.Exit(); } if (state == 10 || state == 20 || state == 110 || state == 300) { menuObject[1].S_PosX(menuObject[1].Position.X + speedX / 2); if (menuObject[1].Position.X > Program.width) { state /= 10; currentCursor = 0; menuObject[1].S_PosX(-42); speedX = 0; } } #endregion oldState = newState; return 0; }
private void F_Attaque(Monster[] monster, GameTime gameTime, ContentManager Content, Personnage[] perso) { newState = Keyboard.GetState(); tempsActuel = (float)gameTime.TotalGameTime.TotalSeconds; if (tempsActuel > tempsAttaque[0] + time) { if (newState.IsKeyDown(key[4]) && (classe == 1 || (classe == 2 && AtkSpe) || power >= 100)) { oldImage = imgState; bool attaque = false; if (classe == 1 || (classe == 2 && AtkSpe)) { } else power -= 100; foreach (Monster m in monster) { if (m.G_IsAlive() && !attaque && ((G_Rectangle().Intersects(m.G_Aggro()) && classe == 4) || (G_Rectangle().Intersects(m.G_Interact()) && classe != 4))) { attaque = true; if (classe == 4) { projectile.Add(new Projectile(Content, m, this, position, (int)((42 + random.Next(10) + 10 * level) * force))); } else { m.S_Degat((int)((42 + random.Next(10) + 10 * level) * force), gameTime); if (m.G_Killed()) { S_Xp(m.G_MaxLife() / 4, gameTime, perso); } } } } if (id == 3) Son.Play(3); tempsAttaque[0] = tempsActuel; } } else if (classe == 1 && !AtkSpe) { if (tempsActuel > tempsAttaque[0] + 0.35) { if (imgState % 10 == -3) { Son.Play(1); imgState = oldImage / 10 * 10; } } else if (tempsActuel > tempsAttaque[0] + 0.25) { ImageTest(-3); } else if (tempsActuel > tempsAttaque[0] + 0.16) { ImageTest(-2); } else if (tempsActuel > tempsAttaque[0] + 0.07) { ImageTest(-1); } else if (tempsActuel > tempsAttaque[0]) { ImageTest(0); } } else if (classe == 1 && AtkSpe) { if (tempsActuel > tempsAttaque[0] + 0.175) { if (imgState % 10 == -3) { Son.Play(1); imgState = oldImage / 10 * 10; } } else if (tempsActuel > tempsAttaque[0] + 0.125) { ImageTest(-3); } else if (tempsActuel > tempsAttaque[0] + 0.08) { ImageTest(-2); } else if (tempsActuel > tempsAttaque[0] + 0.035) { ImageTest(-1); } else if (tempsActuel > tempsAttaque[0]) { ImageTest(0); } } else if (classe == 2 && !AtkSpe) { if (tempsActuel > tempsAttaque[0] + 0.3) { if (imgState % 10 == -2) { Son.Play(1); imgState = oldImage / 10 * 10; } } else if (tempsActuel > tempsAttaque[0] + 0.2) { ImageTest(-2); } else if (tempsActuel > tempsAttaque[0] + 0.1) { ImageTest(-1); } else if (tempsActuel > tempsAttaque[0]) { ImageTest(0); } } else if (classe == 2 && AtkSpe) { if (tempsActuel > tempsAttaque[0] + 0.3 - (0.3 * 1/6)) { if (imgState % 10 == -2) { Son.Play(1); imgState = oldImage / 10 * 10; } } else if (tempsActuel > tempsAttaque[0] + 0.2 - (0.2 * 1/6)) { ImageTest(-2); } else if (tempsActuel > tempsAttaque[0] + 0.1 - (0.1 * 1/6)) { ImageTest(-1); } else if (tempsActuel > tempsAttaque[0]) { ImageTest(0); } } else if (classe == 3) { if (tempsActuel > tempsAttaque[0] + 0.4) { if (imgState < 0) { imgState = oldImage / 10 * 10; Son.Play(3); } } else { if (oldImage / 10 == 1 || oldImage / 10 == 2 || oldImage / 10 == 3 || oldImage / 10 == 5 || oldImage / 10 == 6) imgState = -10; else imgState = -20; } } else if (classe == 4) { if (tempsActuel > tempsAttaque[0] + 0.8) { if (imgState % 10 == -3) { imgState = oldImage / 10 * 10; } } else if (tempsActuel > tempsAttaque[0] + 0.6) { for (int i = 0; i < projectile.Count; i++) { projectile[i].StartFiring(); } ImageTest(-3); } else if (tempsActuel > tempsAttaque[0] + 0.4) { ImageTest(-2); } else if (tempsActuel > tempsAttaque[0] + 0.2) { ImageTest(-1); } else if (tempsActuel > tempsAttaque[0]) { ImageTest(0); } } if (imgState < 0) speed = Vector2.Zero; }
public void F_Draw(SpriteBatch sb, GameTime gameTime, Personnage[] perso) { if (imgState < 0 && classe == 1) sb.Draw(objet, new Vector2((int)position.X - 40, (int)position.Y - 30), Color.White); else if (imgState < 100) sb.Draw(objet, new Vector2((int)position.X, (int)position.Y), Color.White); else sb.Draw(objet, new Vector2((int)position.X - 240, (int)position.Y - 210), Color.White); if (imgState > 100) sb.DrawString(GameState.overKill, "OVERKILL", new Vector2(position.X - 100, position.Y - 120), Color.Firebrick); if (tempsLevelUp + 1 > gameTime.TotalRealTime.TotalSeconds) sb.DrawString(GameState.overKill, LoadingMenu.Local[18], new Vector2(position.X - 100, position.Y - 80), Color.DarkOrange); F_DrawHealth(sb); foreach (Projectile proj in projectile) { proj.Draw(sb); } if (healState != 0) { foreach (Personnage p in perso) { sb.Draw(heal, new Vector2(p.G_Rectangle().X, p.G_Rectangle().Y - (healState * 10)), Color.White); } } }
public static void Update(Personnage[] perso, GameTime gameTime, Monster[] monster, GraphicsDeviceManager graphics, ContentManager Content) { foreach (Personnage p in perso) p.F_Update(perso, monster, Content, gameTime, graphics); }
public static void Load(Personnage[] perso, ContentManager Content) { Personnage.portrait = new Objet[GameState.Player]; if (GameState.Player > 0) { perso[0] = new Personnage(new Keys[] { Keys.Down, Keys.Right, Keys.Up, Keys.Left, Keys.Space, Keys.RightShift }, new Vector2(300f, 350f), 1, LoadingMenu.PersoClasse[0]); portrait[0] = new Objet(new Vector2(15, 10), Content.Load<Texture2D>("ui/" + LoadingMenu.PersoClasse[0])); } if (GameState.Player > 1) { perso[1] = new Personnage(new Keys[] { Keys.S, Keys.D, Keys.Z, Keys.Q, Keys.F, Keys.E }, new Vector2(330f, 450f), 2, LoadingMenu.PersoClasse[1]); portrait[1] = new Objet(new Vector2(Program.width - 95, 10), Content.Load<Texture2D>("ui/" + LoadingMenu.PersoClasse[1])); } if (GameState.Player > 2) { perso[2] = new Personnage(new Keys[] { Keys.NumPad5, Keys.NumPad6, Keys.NumPad8, Keys.NumPad4, Keys.NumPad0, Keys.NumPad7 }, new Vector2(360f, 550f), 3, LoadingMenu.PersoClasse[2]); portrait[2] = new Objet(new Vector2(15, 115), Content.Load<Texture2D>("ui/" + LoadingMenu.PersoClasse[2])); } if (GameState.Player > 3) { perso[3] = new Personnage(new Keys[] { Keys.L, Keys.M, Keys.O, Keys.K, Keys.J, Keys.P }, new Vector2(390f, 650f), 4, LoadingMenu.PersoClasse[3]); portrait[3] = new Objet(new Vector2(Program.width - 95, 115), Content.Load<Texture2D>("ui/" + LoadingMenu.PersoClasse[3])); } foreach (Personnage p in perso) p.F_Load(Content); }
public static void Save(Personnage[] p) { FileStream fs = new FileStream("Save/" + Program.save + ".save", FileMode.Truncate); StreamWriter sw = new StreamWriter(fs); sw.WriteLine("levelMap=" + GameState.MaxLevel); sw.WriteLine("nombrePerso=" + GameState.Player); foreach (Personnage perso in p) { sw.WriteLine("perso=" + perso.G_Nom()); sw.WriteLine("classe=" + perso.G_Class()); sw.WriteLine("xp=" + perso.G_Xp().ToString()); } sw.Close(); fs.Close(); }
private static bool GameOver(Personnage[] perso, ContentManager Content) { bool continuer = false; foreach (Personnage p in perso) { if (p.G_IsAlive()) { continuer = true; } } return continuer; }
public static bool Update(Monster[] monster, Personnage[] perso, PNJ[] pnj, GraphicsDeviceManager graphics, GameTime gameTime, ContentManager Content) { if (pause) { UpdatePause(Content); } else { newState = Keyboard.GetState(); Monster.Update(monster, gameTime, perso, Content); Personnage.Update(perso, gameTime, monster, graphics, Content); PNJ.Update(pnj, perso, gameTime, graphics, Content); Monster.Resu(monster); if (!Map.Update(gameTime, perso, Content)) return false; pause = (newState.IsKeyDown(Keys.Escape) && !oldState.IsKeyDown(Keys.Escape)); oldState = newState; } return GameOver(perso, Content); }
private void F_Cheat(GameTime gameTime, Personnage[] perso) { newState = Keyboard.GetState(); if (newState.IsKeyDown(Keys.C)) { S_Xp(xpMax/10, gameTime); } }
private void F_Update(Personnage[] perso, GameTime gameTime) { S_Deplacement(gameTime); F_Parler(perso); }
private Personnage F_DetectAllies(Personnage p) { Personnage p_ = null; if (p.G_Rectangle().Intersects(new Rectangle((int)position.X - 50, (int)position.Y - 50, 100 + (int)objet.Width, 100 + (int)objet.Height))) p_ = p; return p_; }
public void S_Xp(int xp_, GameTime gameTime, Personnage[] perso) { this.xp = xp_; foreach (Personnage p in perso) { p.S_Xp(xp_ / 4, gameTime); } while (this.xp >= xpMax) { S_Stats(); this.xp = this.xp - xpMax; level++; xpMax = 100 * level; life = lifeMax; power = powerMax; } }
private void F_Healing(Personnage[] perso, GameTime gameTime) { tempsActuel = (float)gameTime.TotalGameTime.TotalSeconds; if (tempsActuel > tempsAttaque[1] + 0.5) { if (newState.IsKeyDown(key[5]) && power >= 500) { power -= 500; foreach (Personnage p in perso) { p.S_Life((int)(20 * mana)); } tempsAttaque[1] = tempsActuel; } } else if (tempsActuel > tempsAttaque[1] + 0.45) { healState = 0; } else if (tempsActuel > tempsAttaque[1] + 0.35) { healState = 8; } else if (tempsActuel > tempsAttaque[1] + 0.3) { healState = 7; } else if (tempsActuel > tempsAttaque[1] + 0.25) { healState = 6; } else if (tempsActuel > tempsAttaque[1] + 0.2) { healState = 5; } else if (tempsActuel > tempsAttaque[1] + 0.15) { healState = 4; } else if (tempsActuel > tempsAttaque[1] + 0.1) { healState = 3; } else if (tempsActuel > tempsAttaque[1] + 0.05) { healState = 2; } else if (tempsActuel > tempsAttaque[1]) { healState = 1; } }