public UCContent() { InitializeComponent(); DataContext = this; // Création du Dictionnaire<Enum de Races,List<Enum de Créatures>> CreaturesByRaceCollection = ServicesMonstres.GetCreaturesByRaceCollection(); // Initialisation de l'ObservableCollection de Créatures EnumCreaturesList = new ObservableCollection <Enum>(); // Création de la liste de Monstres AllMonstres = InitMonstres.InitListeMonstres(); // Charge le dictionnaire des monstres créés MonstresCrees = (Dictionary <String, List <Monstre> >)SaveLoad.ChargementFichierBinaire("../../../Bestiaire.Services/don/MesMonstre.txt"); // Charge la liste des races des monstres créés StringRacesMiensList = ServicesMonstres.GetStringRacesMiensList(MonstresCrees); }
/// <summary> /// Méthode de création de monstre /// Gestion de la création d'un monstre, empêche la création de 2 monstres identiques /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Creer_Click(object sender, RoutedEventArgs e) { Monstre monstre = new Monstre(Race.Text, Nom.Text); monstre.AddDescription(Description.Text); monstre.AddImage("../../../Bestiaire Witcher/img/Assets/not_found.jpg"); monstre.AddFaiblesse("Huile contre les " + monstre.Race); monstre.IsDeletable = true; MyMainWindow.UCContent.MonstresCrees = (Dictionary <String, List <Monstre> >)SaveLoad.ChargementFichierBinaire("../../../Bestiaire.Services/don/MesMonstre.txt"); // si la race du monstre existe et que le monstre existe déjà pour cette race, erreur if (MyMainWindow.UCContent.MonstresCrees.ContainsKey(monstre.Race) && MyMainWindow.UCContent.MonstresCrees[monstre.Race].Contains(monstre)) { Error.Visibility = Visibility.Visible; Nom.Background = Brushes.DarkRed; } // si il n'existe pas else { // si la race du monstre existe et qu'il n'existe pas, on le crée if (MyMainWindow.UCContent.MonstresCrees.ContainsKey(monstre.Race) && !MyMainWindow.UCContent.MonstresCrees[monstre.Race].Contains(monstre)) { MyMainWindow.UCContent.MonstresCrees[monstre.Race].Add(monstre); } // sinon on crée une nouvelle paire clef/valeur else { MyMainWindow.UCContent.MonstresCrees.Add(monstre.Race, new List <Monstre> { monstre }); } SaveLoad.SauvegardeFichierBinaire("../../../Bestiaire.Services/don/MesMonstre.txt", MyMainWindow.UCContent.MonstresCrees); MyMainWindow.UCContent.RaceMiens.ItemsSource = MyMainWindow.UCContent.StringRacesMiensList = ServicesMonstres.GetStringRacesMiensList(MyMainWindow.UCContent.MonstresCrees); Close(); } }
/// <summary> /// Gère la suppression d'un monstre, et la sauvegarde permanente des changements /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Delete_Click(object sender, RoutedEventArgs e) { MonstresCrees[selectedRaceMiens].Remove(SelectedMonstre); if (MonstresCrees[selectedRaceMiens].Count == 0) { MonstresCrees.Remove(selectedRaceMiens); } ListViewCreatureMiens.Visibility = Visibility.Collapsed; Msg1.Visibility = Visibility.Visible; Race.Visibility = Visibility.Collapsed; MyMainWindow.UCContent.RaceMiens.ItemsSource = MyMainWindow.UCContent.StringRacesMiensList = ServicesMonstres.GetStringRacesMiensList(MyMainWindow.UCContent.MonstresCrees); RaceMiens.Visibility = Visibility.Visible; SaveLoad.SauvegardeFichierBinaire("../../../Bestiaire.Services/don/MesMonstre.txt", MonstresCrees); }