public void CreerObjetMonde(ObjetMonde objMonde) { try { using (EntitiesGEDEquipe1 contexte = new EntitiesGEDEquipe1()) { // Ajouter l'item dans le monde demandé ObjetMonde objNew = new ObjetMonde() { x = objMonde.x, y = objMonde.y, TypeObjet = objMonde.TypeObjet, MondeId = objMonde.MondeId, Description = objMonde.Description }; if (objNew.y > -1 && objNew.x > -1) { contexte.ObjetMondes.Add(objNew); contexte.SaveChanges(); RetournerObjetMonde(); } } } catch (Exception) { } }
// Modification de la description d'un objet présent dans un monde public ObjetMonde ModifierObjetMonde(ObjetMonde objetMonde, string description) { ObjetMonde objetMondeDB = new ObjetMonde(); using (EntitiesGEDEquipe1 contexte = new EntitiesGEDEquipe1()) { try { objetMondeDB = contexte.ObjetMondes.FirstOrDefault(x => x.Id == objetMonde.Id); if (objetMondeDB != null) { objetMondeDB.Description = description; contexte.SaveChanges(); return(objetMondeDB); } else { LstErreursObjetMondes.Add("Erreur dans la méthode \'ModifierObjetMonde\' : ObjetMonde inexistant!"); objetMondeDB.Description = description + " bugModif"; CréerObjetMonde(objetMondeDB); return(objetMondeDB); } } catch (Exception ex) { LstErreursObjetMondes.Add("Erreur dans la méthode \'ModifierObjetMonde\' : " + ex.Message); objetMondeDB.Description = description + " bugModif"; CréerObjetMonde(objetMondeDB); return(objetMondeDB); } } }
/// <summary> /// Constructeur /// </summary> public cObjetMonde(string description, int type, int x, int y) { _objet = new ObjetMonde(); _objet.Description = description; _objet.TypeObjet = type; // Ajouter une condition ? _objet.x = x; _objet.y = y; }
// Supression d'un Objet présent dans un monde public ObjetMonde SupprimerObjetMonde(ObjetMonde objetMonde) { bool echecSauvegarde = false; byte nombreEchec = 0; do { try { using (EntitiesGEDEquipe1 contexte = new EntitiesGEDEquipe1()) { if (contexte.ObjetMondes.Any(x => x.Id == objetMonde.Id)) { contexte.ObjetMondes.Remove(contexte.ObjetMondes.FirstOrDefault(x => x.Id == objetMonde.Id)); try { contexte.SaveChanges(); } catch (Exception ex) { echecSauvegarde = true; nombreEchec++; if (nombreEchec == byte.MaxValue) { echecSauvegarde = false; LstErreursObjetMondes.Add("Erreur dans la méthode \'SupprimerObjetMonde\' : " + ex.Message); } } } else { LstErreursObjetMondes.Add("Erreur dans la méthode \'SupprimerObjetMonde\' : ObjetMonde inexistant!"); } echecSauvegarde = false; } } catch (Exception ex) { echecSauvegarde = true; nombreEchec++; if (nombreEchec > 10) { echecSauvegarde = false; LstErreursObjetMondes.Add("Erreur dans la méthode \'SupprimerObjetMonde\' : " + ex.Message); } } } while (echecSauvegarde); return(new ObjetMonde()); }
/// <summary> /// Auteur : Marc-André Landry /// /// Delete an object from the world by its ID /// </summary> /// <param name="iID">The ID of the object you want to destroy</param> /// <param name="mondeid">Id du monde</param> public void DeleteObjectMonde(int objectMondeId, int mondeid) { Monde monde = db.Mondes.FirstOrNull(c => c.Id == mondeid); ObjetMonde objMonde = db.ObjetMondes.FirstOrNull(o => o.Id == objectMondeId); if (objMonde == null || monde == null) { return; } db.ObjetMondes.Remove(objMonde); monde.ObjetMondes.Remove(objMonde); db.SaveChanges(); }
/// <summary> /// Auteur : Marc-André Landry /// Modifi la description d'un object monde avec son ID /// </summary> /// <param name="iID">Id de l'objet</param> /// <param name="sDescription">Nouvelle description</param> public void EditObjectMondeDescription(int objectMondeId, string sDescription) { ObjetMonde objMonde = db.ObjetMondes.Find(objectMondeId); if (objMonde == null) { return; } else { objMonde.Description = sDescription; } db.SaveChanges(); }
// Modification d'un objetMonde lors d'un changement dans la bd public void ModificationObjetMonde(string tileName, int TileID, int itemID) { try { using (EntitiesGEDEquipe1 contexte = new EntitiesGEDEquipe1()) { ObjetMonde objMonde = contexte.ObjetMondes.FirstOrDefault(x => x.Id == itemID); objMonde.Description = tileName; objMonde.TypeObjet = TileID; contexte.SaveChanges(); RetournerObjetMonde(); } } catch (Exception) { } }
/// <summary> /// Auteur : Marc-André Landry /// Create an object (ex: scenery, rock, water, etc) in the world /// </summary> /// <param name="iX">Where should your object be put m8? (x)</param> /// <param name="iY">Where should your object be put m8? (y)</param> /// <param name="sDescription">Gimme a small description of your object mate</param> /// <param name="iTypeObjet">What's the type of your object (WARNING : integers)</param> /// <param name="iMondeId">The ID of your world</param> public void CreateObjectMonde(int iX, int iY, string sDescription, int iTypeObjet, int iMondeId) { var Monde = db.Mondes.FirstOrNull(c => c.Id == iMondeId); if (Monde == null) { return; } ObjetMonde objMonde = new ObjetMonde() { x = iX, y = iY, Description = sDescription, TypeObjet = iTypeObjet, MondeId = iMondeId }; db.ObjetMondes.Add(objMonde); Monde.ObjetMondes.Add(objMonde); db.SaveChanges(); }
// Création d'un Objet présent dans un monde public void CréerObjetMonde(ObjetMonde objetMonde) { bool echecSauvegarde = false; byte nombreEchec = 0; do { try { using (EntitiesGEDEquipe1 contexte = new EntitiesGEDEquipe1()) { if (objetMonde.Description != null && objetMonde.x >= 0 && objetMonde.y >= 0 && !(contexte.ObjetMondes.Any(x => x.Id == objetMonde.Id)) && objetMonde.TypeObjet >= 0 && contexte.Mondes.Any(x => x.Id == objetMonde.MondeId)) { contexte.ObjetMondes.Add(objetMonde); contexte.SaveChanges(); } else { LstErreursObjetMondes.Add("Erreur dans la méthode \'CréerObjetMonde\' : Monde non existant ou données invalides"); } echecSauvegarde = false; } } catch (Exception ex) { echecSauvegarde = true; nombreEchec++; if (nombreEchec > 10) { echecSauvegarde = false; LstErreursObjetMondes.Add("Erreur dans la méthode \'CréerObjetMonde\' : " + ex.Message); } } } while (echecSauvegarde); }
private void modificationMap(int x, int y, int tileID) { if (m_Map.getMapTileType(y, x) == tileID) { return; } Tile tileSelected = m_TileLibrary.ObjMonde.Values.Where(c => c.IndexTypeObjet == tileID).First(); Tile tileUnder = m_TileLibrary.ObjMonde.Values.Where(c => c.IndexTypeObjet == m_Map.getMapTileType(y, x)).First(); ObjetMonde objOriginal = m_DObj.Keys.ToList().Where(c => c.x == x && c.y == y).FirstOrDefault(); Monstre monstreOriginal = m_DMonstre.Keys.ToList().Where(c => c.x == x && c.y == y).FirstOrDefault(); Item itemOriginal = m_DItem.Keys.ToList().Where(c => c.x == x && c.y == y).FirstOrDefault(); string testOriginality = ""; if (objOriginal != null) { testOriginality = m_DObj[objOriginal]; } else if (monstreOriginal != null) { testOriginality = m_DMonstre[monstreOriginal]; } else if (itemOriginal != null) { testOriginality = m_DItem[itemOriginal]; } if (tileSelected.IndexTypeObjet == 32) { if (testOriginality == "MODIFIED" || testOriginality == "ORIGINAL") { if (tileUnder.TypeObjet == TypeTile.ObjetMonde) { m_OBJ.Add(m_DObj.Keys.Where(c => c.x == x && c.y == y).First()); m_DObj.Remove(m_DObj.Keys.Where(c => c.x == x && c.y == y).First()); return; } else if (tileUnder.TypeObjet == TypeTile.Item) { m_li.Add(m_DItem.Keys.Where(c => c.x == x && c.y == y).First()); m_DItem.Remove(m_DItem.Keys.Where(c => c.x == x && c.y == y).First()); return; } else { m_Mons.Add(m_DMonstre.Keys.Where(c => c.x == x && c.y == y).First()); m_DMonstre.Remove(m_DMonstre.Keys.Where(c => c.x == x && c.y == y).First()); return; } } if (tileUnder.TypeObjet == TypeTile.ObjetMonde) { m_DObj.Remove(objOriginal); return; } else if (tileUnder.TypeObjet == TypeTile.Monstre) { m_DMonstre.Remove(monstreOriginal); return; } else { m_DItem.Remove(itemOriginal); return; } } if (tileSelected.TypeObjet == TypeTile.ObjetMonde && testOriginality == "ORIGINAL" || testOriginality == "MODIFIED") { m_DObj.Keys.Where(c => c.x == x && c.y == y).First().Description = tileSelected.Name; m_DObj.Keys.Where(c => c.x == x && c.y == y).First().TypeObjet = tileSelected.IndexTypeObjet; m_DObj[m_DObj.Keys.Where(c => c.x == x && c.y == y).First()] = "MODIFIED"; return; } else if (tileSelected.TypeObjet == TypeTile.Item && (testOriginality == "ORIGINAL" || testOriginality == "MODIFIED") && (tileUnder.TypeObjet == TypeTile.Item)) { m_DItem.Keys.Where(c => c.x == x && c.y == y).First().Description = tileSelected.Name; m_DItem.Keys.Where(c => c.x == x && c.y == y).First().ImageId = tileSelected.IndexTypeObjet; m_DItem.Keys.Where(c => c.x == x && c.y == y).First().Nom = tileSelected.Name; m_DItem[m_DItem.Keys.Where(c => c.x == x && c.y == y).First()] = "MODIFIED"; return; } else if (tileSelected.TypeObjet == TypeTile.Monstre && (testOriginality == "ORIGINAL" || testOriginality == "MODIFIED") && (tileUnder.TypeObjet == TypeTile.Monstre)) { m_DMonstre.Keys.Where(c => c.x == x && c.y == y).First().Nom = tileSelected.Name; m_DMonstre.Keys.Where(c => c.x == x && c.y == y).First().ImageId = tileSelected.IndexTypeObjet; m_DMonstre.Keys.Where(c => c.x == x && c.y == y).First().StatPV = tileSelected.Health; m_DMonstre[m_DMonstre.Keys.Where(c => c.x == x && c.y == y).First()] = "MODIFIED"; return; } if (tileSelected.TypeObjet == TypeTile.ObjetMonde && (testOriginality != "ORIGINAL") && (testOriginality != "MODIFIED")) { if (tileUnder.IndexTypeObjet != 32 && testOriginality == "NEW") { if (tileUnder.TypeObjet == TypeTile.Monstre) { m_DMonstre.Remove(monstreOriginal); } else if (tileUnder.TypeObjet == TypeTile.Item) { m_DItem.Remove(itemOriginal); } else { m_DObj.Remove(objOriginal); } m_DObj.Add(new ObjetMonde() { TypeObjet = tileSelected.IndexTypeObjet, x = x, y = y, Monde = m_CurrentWorld, Description = tileSelected.Name }, "NEW"); } else { m_DObj.Add(new ObjetMonde() { TypeObjet = tileSelected.IndexTypeObjet, x = x, y = y, Monde = m_CurrentWorld, Description = tileSelected.Name }, "NEW"); } return; } if (tileSelected.TypeObjet == TypeTile.Monstre) { if (tileUnder.IndexTypeObjet != 32) { if (tileUnder.TypeObjet == TypeTile.ObjetMonde && tileUnder.IsBlock) { m_DObj.Remove(objOriginal); } else if (tileUnder.TypeObjet == TypeTile.Item) { m_DItem.Remove(itemOriginal); } //else //{ // m_DMonstre.Remove(monstreOriginal); //} m_DMonstre.Add(new Monstre() { Nom = tileSelected.Name, StatPV = tileSelected.Health, Monde = m_CurrentWorld, x = x, y = y, ImageId = tileSelected.IndexTypeObjet, //À revoir juste en dessous !!! StatDmgMax = 0, StatDmgMin = 0, Niveau = 0 }, "NEW"); } else { m_DMonstre.Add(new Monstre() { Nom = tileSelected.Name, StatPV = tileSelected.Health, Monde = m_CurrentWorld, x = x, y = y, ImageId = tileSelected.IndexTypeObjet, //À revoir juste en dessous !!! StatDmgMax = 0, StatDmgMin = 0, Niveau = 0 }, "NEW"); } return; } if (tileSelected.TypeObjet == TypeTile.Item) { if (tileUnder.IndexTypeObjet != 32) { if (tileUnder.TypeObjet == TypeTile.Monstre) { m_DMonstre.Remove(monstreOriginal); } else if (tileUnder.TypeObjet == TypeTile.ObjetMonde && tileUnder.IsBlock) { m_DObj.Remove(objOriginal); } //else //{ // m_DItem.Remove(itemOriginal); //} m_DItem.Add(new Item() { ImageId = tileSelected.IndexTypeObjet, x = x, y = y, Monde = m_CurrentWorld, Description = tileSelected.Name, Nom = tileSelected.Name }, "NEW"); } else { m_DItem.Add(new Item() { ImageId = tileSelected.IndexTypeObjet, x = x, y = y, Monde = m_CurrentWorld, Description = tileSelected.Name, Nom = tileSelected.Name }, "NEW"); } return; } }
/// <summary> /// Permet d'ajouter un objet au monde. /// </summary> /// <param name="objet"></param> public void AjouterObjet(ObjetMonde objet) { _monde.ObjetMonde.Add(objet); context.SaveChanges(); }
/// <summary> /// Permet de retirer un objet au monde. /// </summary> /// <param name="objet"></param> public void RetirerObjet(ObjetMonde objet) { _monde.ObjetMonde.Remove(objet); context.SaveChanges(); }