private void GérerCollision() { foreach (ObjetDeBase p in Game.Components.Where(r => r is ObjetDeBase)) { if (!(p is Player) && LeJoueur.EstEnVie) { if (LeJoueur.EstEnCollision(p)) { indexPokemonEnCollision = PokemonSurLeTerrain.IndexOf(p); PokemonEnCollision = PokemonSurLeTerrain[indexPokemonEnCollision]; ÉtatJeu = ÉtatsJeu.COMBAT; } if (!LeJoueur.EstEnCollision(p)) { Flags.Combat = false; //ÉtatJeu = ÉtatsJeu.JEU3D; } } } if (Game.Components.Contains(Projectile)) { foreach (ObjetDeBase o in Game.Components.Where(r => r is ObjetDeBase)) { if (!(o is Player)) { if (Projectile.EstEnCollision(o)) { LeCombat.EssayerAttraperWildPokemon(LeJoueur, o.UnPokemon); ÉtatJeu = ÉtatsJeu.JEU3D; } } } } }
private void RegarderLeNombreDePokemonAAjouter() { int cpt = 0; while (cpt < 6) { if (Database.LoadSauvegarde()[cpt + 3] == "Empty") { cpt = 6; } else { LeJoueur.AddPokemon(int.Parse(Database.LoadSauvegarde()[cpt + 3]), int.Parse(Database.LoadSauvegarde()[cpt + 4])); cpt = cpt + 2; } } }
//no entiendo porque la pokeball no desaparece cuando esta a bajo de menos diez private void GérerClavier() { if (GestionInput.EstNouvelleTouche(Keys.H) || GestionInput.EstNouveauSelect_heal()) { LeJoueur.Heal(); Game.Components.Add(new AfficheurTexte(Game, PositionBoxMessage, Cadre.LARGEUR_BOX_STANDARD, Cadre.HAUTEUR_BOX_STANDARD, "All Pokemon has been healed", INTERVALLE_MAJ_STANDARD)); } if (GestionInput.EstNouvelleTouche(Keys.Enter) || GestionInput.EstNouveauStart_save()) { if (!(ÉtatJeu == ÉtatsJeu.COMBAT)) { UploadSauvegarde(); foreach (TexteFixe t in Game.Components.Where(t => t is TexteFixe)) { t.ÀDétruire = true; } Game.Components.Add(new AfficheurTexte(Game, PositionBoxMessage, Cadre.LARGEUR_BOX_STANDARD, Cadre.HAUTEUR_BOX_STANDARD, "Upload Sauvegarde", INTERVALLE_MAJ_STANDARD)); } } }
private void GérerÉtat() { switch (ÉtatJeu) { case ÉtatsJeu.JEU3D: LeJoueur.Visible = true; GérerCollision(); break; case ÉtatsJeu.COMBAT: if (!(Game.Components.Contains(Game.Components.Where(c => c is Combat) as Combat)) && !Flags.Combat) { if (PokemonEnCollision.UnPokemon.EstEnVie) { LeJoueur.Visible = false; Vector2 vecteurPosition = new Vector2(LeJoueur.Position.X - 1 + TerrainDeJeu.NbColonnes / 2, LeJoueur.Position.Z + 2 + TerrainDeJeu.NbRangées / 2); float posY = (TerrainDeJeu.GetPointSpatial((int)Math.Round(vecteurPosition.X, 0), TerrainDeJeu.NbRangées - (int)Math.Round(vecteurPosition.Y, 0)) + Vector3.Zero).Y; Vector3 positionjoueurpok = new Vector3(LeJoueur.Position.X + 2, posY, LeJoueur.Position.Z + 2); Vector2 vecteurPositionopponent = new Vector2(LeJoueur.Position.X + TerrainDeJeu.NbColonnes / 2, LeJoueur.Position.Z + TerrainDeJeu.NbRangées / 2); float posYopponent = (TerrainDeJeu.GetPointSpatial((int)Math.Round(vecteurPosition.X, 0), TerrainDeJeu.NbRangées - (int)Math.Round(vecteurPosition.Y, 0)) + Vector3.Zero).Y; //ObjetDeBase PokemonLancer = new ObjetDeBase(Game, TrouverDossierModèle(LeJoueur[0].PokedexNumber), ÉCHELLE_OBJET, new Vector3(0, (float)(16 * Math.PI / 10), 0), new Vector3(LeJoueur.Position.X + 1, LeJoueur.Position.Y, LeJoueur.Position.Z + 1)); PokemonJoueur = new ObjetDeBase(Game, TrouverDossierModèle(LeJoueur.NextPokemonEnVie().PokedexNumber), ÉCHELLE_OBJET * 3, new Vector3(0, (float)(8 * Math.PI / 5), 0), positionjoueurpok); Game.Components.Add(new Afficheur3D(Game)); Game.Components.Add(PokemonJoueur); PokemonEnCollision.Position = new Vector3(LeJoueur.Position.X - 6, posYopponent + 2, LeJoueur.Position.Z); PokemonEnCollision.Rotation = new Vector3(0, -(float)(7 * Math.PI / 5), 0); PokemonSurLeTerrain[indexPokemonEnCollision] = PokemonEnCollision; (PokemonSurLeTerrain[indexPokemonEnCollision] as ObjetDeBase).CalculerMonde(); (PokemonSurLeTerrain[indexPokemonEnCollision] as ObjetDeBase).Initialize(); Flags.Combat = true; LeCombat = new Combat(Game, PositionBoxMessage, LeJoueur, PokemonEnCollision.UnPokemon, INTERVALLE_MAJ_STANDARD); Game.Components.Add(LeCombat); } //ObjetDeBase PokemonLancer = new ObjetDeBase(Game,"09/09",ÉCHELLE_OBJET,new Vector3(0,(float)(16*Math.PI/10),0),new Vector3(LeJoueur.Position.X + 1,LeJoueur.Position.Y, LeJoueur.Position.Z +1 )); //Game.Components.Add(new Afficheur3D(Game)); //Game.Components.Add(PokemonLancer); //PokemonEnCollision.Position = new Vector3(PokemonLancer.Position.X -1 , PokemonLancer.Position.Y, PokemonLancer.Position.Z- 1); //PokemonSurLeTerrain[indexPokemonEnCollision] = PokemonEnCollision; //Flags.Combat = true; //LeCombat = new Combat(Game, PositionBoxStandard, LeJoueur, new Pokemon(Game, 1/*no de pokédex du pokémon wild que l'on veut combattre*/), INTERVALLE_MAJ_STANDARD); //Game.Components.Add(LeCombat); //CaméraJeu.Cible = new Vector3(LeJoueur.Position.X + 3, LeJoueur.Position.Y + 3, LeJoueur.Position.Z); //CaméraJeu.CréerPointDeVue(CaméraJeu.Position, CaméraJeu.Cible, CaméraJeu.OrientationVerticale); } if (!Combat.EnCombat) //Si le combat est terminé, on veut retourner à l'état Jeu3D avec le player et son modèle { //PokemonJoueur.Visible = false; PokemonEnCollision.ÀDétruire = true; PokemonJoueur.ÀDétruire = true; ÉtatJeu = ÉtatsJeu.JEU3D; } if (Combat.EnCombat && LeCombat.GetPokemonEstChangé) //Ajouter si possible la condition que le pokémon est changé { PokemonJoueur.ChangerModèle(TrouverDossierModèle(LeCombat.NoPokédexUserPokemon)); } //PokemonEnCollision.ChangerModèle(TrouverDossierModèle(LeCombat.NoPokédexOpponentPokemon)); break; //case États.GYM: // GérerVitesseDéplacement(); // GérerComputer(); // GérerCombat(); // break; //default: //États.FIN: // Fin(); // SauvegardeAuto(); // break; // } }