Compare commits

...

2 Commits

@ -18,9 +18,11 @@ namespace Persistance
public LoaderStub() { }
public List<User> loadUsers() ///CHANGER VISIBILITEE, CAR PAS BIEN DE LAISSER A TOUT LE MONDE
{
Monstre monstre = new Monstre(1, "Poule", "passif", "Les poules sont des créatures passives. Elles fournissent des plumes et des oeufs.En moyenne, une poule laisse tomber un oeuf toutes des 5 à 10 minutes.", new List<string> { "Quand une poule est tuée, il y a une faible chance qu'elle laisse tomber un œuf.", "Parfois, les poules apparaissent avec un bébé zombie sur le dos, on l'appelle alors une poule jockey. Il est aussi possible d'avoir un bébé cochon zombie sur son dos, mais seulement par commande." }, new List<string> { "Poule", "Poule jockey", "Poule jockey cochon" }, new ObservableCollection<Conseil> { });
Monstre mouton = new Monstre(2, "Mouton", "passif", "Les moutons sont des créatures passives. Sa principale caractéristique est qu'il peut fournir de la laine, un matériau qui sert à fabriquer des objets, notamment des lits.", new List<string> { "Avec une cisaille, il est possible de rasé la laine d'un mouton, il se retrouvera sans laine.", "Pour faire repousser la laine d'un mouton, il faut qu'il ait de l'herbe sous ses pattes pour qu'il puisse manger. Une fois manger la laine repousse instantanément.", "Les moutons peuvent avoir toutes les couleurs du jeu grâce à des teintures et des mélanges. Mais les seules couleurs de mouton pouvant apparaître sont le blanc, le gris, le marron, le noir et le rose..", "Le rose est une couleur qui a une chance d'apparaître très faible, tellement faible que la probabilité pour qu'un mouton un bébé et soit rose en même temps est la probabilité la plus petite du jeu." }, new List<string> { "Mouton" }, new ObservableCollection<Conseil> { });
List<User> lu = new List<User>();
lu.Add(new User("DedeDu42", "dede", "dodo", "mdp", new List<Monstre> { }));
lu.Add(new User("Moi", "Monchanin", "Liam", "feur", new List<Monstre> { }));
lu.Add(new User("DedeDu42", "dede", "dodo", "mdp", new List<Monstre> { monstre, mouton}));
lu.Add(new User("Moi", "Monchanin", "Liam", "feur", new List<Monstre> { monstre, mouton }));
lu.Add(new User("Nikoala", "Blondeau", "Nicolas", "niblondeau", new List<Monstre> {
new Monstre(2,
"Mouton", "passif", "Je suis présent un peu partout, sauf dnas le desert.",
@ -28,8 +30,8 @@ namespace Persistance
new List<string> { "Apparence1", "App2", "App3" }
, new ObservableCollection<Conseil> {}) }));
lu.Add(new User("Yadoumir", "Doumir", "Yannis", "mdp", new List<Monstre> { }));
lu.Add(new User("osuplayer123", "Bonetti", "Martin", "oSu!727", new List<Monstre> { }));
lu.Add(new User("Yadoumir", "Doumir", "Yannis", "mdp", new List<Monstre> { monstre }));
lu.Add(new User("osuplayer123", "Bonetti", "Martin", "oSu!727", new List<Monstre> { monstre }));
return lu;
}

@ -0,0 +1,53 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Model;
namespace Tests
{
public class Conseil_UT
{
User userTest = new User("Moi", "Monchanin", "Liam", "feur", new List<Monstre> { });
Monstre monstreTest = new Monstre(2, "Mouton", "passif", "Les moutons sont des créatures passives.", new List<string> { "Avec une cisaille, il est possible de rasé la laine d'un mouton"}, new List<string> { "Mouton" }, new ObservableCollection<Conseil> { });
[Fact]
public void ConseilConstructorGood()
{
string texte = "Ceci est un conseil.";
Conseil conseil = new Conseil(userTest, texte, monstreTest);
Assert.Equal(userTest, conseil.Auteur);
Assert.Equal(texte, conseil.Texte);
Assert.Equal(monstreTest, conseil.LeMonstre);
}
[Fact]
public void ConseilConstructorNullUser()
{
string texte = "Ceci est un conseil.";
Assert.Throws<ArgumentNullException>(() => new Conseil(null, texte, monstreTest));
}
[Fact]
public void ConseilConstructorNullMonster()
{
string texte = "Ceci est un conseil.";
Assert.Throws<ArgumentNullException>(() => new Conseil(userTest, texte, null));
}
[Fact]
public void ConseilConstructorTextVide()
{
// Arrange
string texte = "";
// Act & Assert
Assert.Throws<ArgumentNullException>(() => new Conseil(userTest, texte, monstreTest));
}
}
}

@ -7,6 +7,10 @@
<VerticalStackLayout>
<HorizontalStackLayout BackgroundColor="{StaticResource buttonBackgroundColor}">
<ImageButton Source="arrow.png" WidthRequest="40"
BackgroundColor="{StaticResource buttonBackgroundColor}"
Clicked="ImageButton_Clicked"/>
<Line X1="0" Y1="0" X2="0" Y2="70" Stroke="Black" StrokeThickness="2"/>
<Label Text=" Monstre déjà vu"></Label>
<CheckBox x:Name="CheckboxdejaVu"
Color="{StaticResource BleuFonce}"
@ -18,15 +22,21 @@
CheckedChanged="CheckedPasVu"></CheckBox>
</HorizontalStackLayout>
<Line X1="0" Y1="0" X2="1500" Y2="0" Stroke="Black" StrokeThickness="2"/>
<FlexLayout>
<ListView ItemsSource="{Binding listMobs}" BackgroundColor="White">
<VerticalStackLayout >
<ListView x:Name="ListViewMonsters" ItemsSource="{Binding MonstresDejaVu}" Grid.Row="1">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding Nom}" />
<ViewCell>
<VerticalStackLayout>
<Image Source="{Binding ImageLink}"
HeightRequest="50"
Margin="20, 20, 20, 20"/>
</VerticalStackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</FlexLayout>
</VerticalStackLayout>
</VerticalStackLayout>
</ContentPage>

@ -1,53 +1,71 @@
using Model;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
namespace Vues;
public partial class Collection : ContentPage, INotifyPropertyChanged
{
public ObservableCollection<Monstre> MnstrTemp = (Application.Current as App).monsterManager.ListMonsters;
public ObservableCollection<Monstre> MonstresDejaVu { get; set; }
public Collection()
{
InitializeComponent();
BindingContext = this;
}
private void UpdateListMobs()
{
var monstresDejaVu = MnstrTemp.Where(monstre => (Application.Current as App).User.monstresDejaVu.Contains(monstre)).ToList();
var monstresPasVu = MnstrTemp.Except((Application.Current as App).User.monstresDejaVu).ToList();
var listMobs = new ObservableCollection<Monstre>();
listMobs.Clear();
InitializeComponent();
User toto = (Application.Current as App).User;
MonstresDejaVu = new ObservableCollection<Monstre>(toto.monstresDejaVu);
var MnstrTemp = new ObservableCollection<Monstre> { };
MnstrTemp = new ObservableCollection<Monstre>((Application.Current as App).monsterManager.ListMonsters.Except(MonstresDejaVu));
ListViewMonsters.BindingContext = this;
}
private void UpdateListMobs(ObservableCollection<Monstre> Monstres) // /!\ Qd on décoche Monstre déjà vu et re coche ils ne veulent pas réapparaître sauf si on clique aussi sur monstre pas vu
{
var monstresDejaVu = Monstres.Where(monstre => (Application.Current as App).User.monstresDejaVu.Contains(monstre)).ToList();
var monstresPasVu = (Application.Current as App).monsterManager.ListMonsters.Except(monstresDejaVu).ToList();
Monstres.Clear();
if (CheckboxdejaVu.IsChecked && CheckboxpasVu.IsChecked)
{
var concatMonstres = monstresDejaVu.Concat(monstresPasVu);
listMobs = new ObservableCollection<Monstre>(concatMonstres);
}
else if (CheckboxdejaVu.IsChecked)
{
listMobs = new ObservableCollection<Monstre>(monstresDejaVu);
foreach (var monstre in monstresDejaVu.Concat(monstresPasVu))
{
Monstres.Add(monstre);
}
}
else if (CheckboxpasVu.IsChecked)
// Si monstres déjà vu checked et monstres pas vu pas checked alors on l'ajoute à la collection et on supprime les monstres pas vu
else if (CheckboxdejaVu.IsChecked && !CheckboxpasVu.IsChecked)
{
listMobs = new ObservableCollection<Monstre>(monstresPasVu);
foreach (var monstre in monstresDejaVu)
{
Monstres.Add(monstre);
}
}
else
// Si monstres pas vu checked alors on l'ajoute à la collection
else if (CheckboxpasVu.IsChecked && !CheckboxdejaVu.IsChecked)
{
listMobs = new ObservableCollection<Monstre>();
foreach (var monstre in monstresPasVu)
{
if (!monstresDejaVu.Contains(monstre))
{
Monstres.Add(monstre);
}
}
}
}
private void CheckedVu(object sender, CheckedChangedEventArgs e)
{
UpdateListMobs();
UpdateListMobs(MonstresDejaVu);
}
private void CheckedPasVu(object sender, CheckedChangedEventArgs e)
{
UpdateListMobs();
UpdateListMobs(MonstresDejaVu);
}
private async void ImageButton_Clicked(object sender, EventArgs e)
{
await Navigation.PopAsync();
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

@ -164,12 +164,11 @@ public partial class SearchMob : ContentPage, INotifyPropertyChanged
private void CheckBox_CheckedChanged(object sender, CheckedChangedEventArgs e)
{
/*
if (CheckDejaVu.IsChecked)
{
if ((App.Current as App).User != null)
{
(Application.Current as App).MonstreSelectionne.IsChecked = true;
(Application.Current as App).User.monstresDejaVu.Add((Application.Current as App).MonstreSelectionne);
}
}
@ -177,11 +176,10 @@ public partial class SearchMob : ContentPage, INotifyPropertyChanged
{
if ((App.Current as App).User != null)
{
(Application.Current as App).MonstreSelectionne.IsChecked = false;
(Application.Current as App).User.monstresDejaVu.Remove((Application.Current as App).MonstreSelectionne);
}
}
*/
///Si checkbox check
///add le monstre courant à la liste des monstre du user

Loading…
Cancel
Save