mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-11-01 07:56:04 +00:00
Alignement
This commit is contained in:
parent
aa3d9d1114
commit
8b33b523f5
2 changed files with 87 additions and 22 deletions
|
|
@ -6,6 +6,7 @@ using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
|
|
@ -16,6 +17,7 @@ namespace AideDeJeu.ViewModels
|
||||||
{
|
{
|
||||||
public PlayerCharacterEditorViewModel()
|
public PlayerCharacterEditorViewModel()
|
||||||
{
|
{
|
||||||
|
ResetAlignments();
|
||||||
Races = new NotifyTaskCompletion<List<RaceItem>>(Task.Run(() => LoadRacesAsync()));
|
Races = new NotifyTaskCompletion<List<RaceItem>>(Task.Run(() => LoadRacesAsync()));
|
||||||
Classes = new NotifyTaskCompletion<List<ClassItem>>(Task.Run(() => LoadClassesAsync()));
|
Classes = new NotifyTaskCompletion<List<ClassItem>>(Task.Run(() => LoadClassesAsync()));
|
||||||
|
|
||||||
|
|
@ -42,9 +44,59 @@ namespace AideDeJeu.ViewModels
|
||||||
}
|
}
|
||||||
#endregion Selected PC
|
#endregion Selected PC
|
||||||
|
|
||||||
|
#region Alignment
|
||||||
|
private List<string> _AllAllignments = new List<string>()
|
||||||
|
{
|
||||||
|
"Loyal Bon",
|
||||||
|
"Loyal Neutre",
|
||||||
|
"Loyal Mauvais",
|
||||||
|
"Neutre Bon",
|
||||||
|
"Neutre",
|
||||||
|
"Neutre Mauvais",
|
||||||
|
"Chaotique Bon",
|
||||||
|
"Chaotique Neutre",
|
||||||
|
"Chaotique Mauvais"
|
||||||
|
};
|
||||||
|
|
||||||
|
private List<string> _Alignments = null;
|
||||||
|
public List<string> Alignments
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _Alignments;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
SetProperty(ref _Alignments, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ResetAlignments()
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(SelectedPlayerCharacter.PersonalityIdeal))
|
||||||
|
{
|
||||||
|
var regex = new Regex(".*\\((?<alignment>.*?)\\)$");
|
||||||
|
var match = regex.Match(SelectedPlayerCharacter.PersonalityIdeal);
|
||||||
|
var alignment = match.Groups["alignment"].Value;
|
||||||
|
if (!string.IsNullOrEmpty(alignment))
|
||||||
|
{
|
||||||
|
Alignments = _AllAllignments.Where(a => a.ToLower().Contains(alignment.ToLower())).ToList();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Alignments = _AllAllignments;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Alignments = _AllAllignments;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion Alignment
|
||||||
|
|
||||||
#region Race
|
#region Race
|
||||||
public NotifyTaskCompletion<List<RaceItem>> Races { get; private set; }
|
public NotifyTaskCompletion<List<RaceItem>> Races { get; private set; }
|
||||||
private int _RaceSelectedIndex = 0;
|
private int _RaceSelectedIndex = -1;
|
||||||
public int RaceSelectedIndex
|
public int RaceSelectedIndex
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|
@ -73,7 +125,7 @@ namespace AideDeJeu.ViewModels
|
||||||
#region Class
|
#region Class
|
||||||
public NotifyTaskCompletion<List<ClassItem>> Classes { get; private set; }
|
public NotifyTaskCompletion<List<ClassItem>> Classes { get; private set; }
|
||||||
|
|
||||||
private int _ClassSelectedIndex = 0;
|
private int _ClassSelectedIndex = -1;
|
||||||
public int ClassSelectedIndex
|
public int ClassSelectedIndex
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|
@ -99,7 +151,7 @@ namespace AideDeJeu.ViewModels
|
||||||
#region Background
|
#region Background
|
||||||
public NotifyTaskCompletion<List<BackgroundItem>> Backgrounds { get; private set; }
|
public NotifyTaskCompletion<List<BackgroundItem>> Backgrounds { get; private set; }
|
||||||
|
|
||||||
private int _BackgroundSelectedIndex = 0;
|
private int _BackgroundSelectedIndex = -1;
|
||||||
public int BackgroundSelectedIndex
|
public int BackgroundSelectedIndex
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|
@ -120,6 +172,7 @@ namespace AideDeJeu.ViewModels
|
||||||
SelectedPlayerCharacter.PersonalityIdeal = null;
|
SelectedPlayerCharacter.PersonalityIdeal = null;
|
||||||
SelectedPlayerCharacter.PersonalityLink = null;
|
SelectedPlayerCharacter.PersonalityLink = null;
|
||||||
SelectedPlayerCharacter.PersonalityDefect = null;
|
SelectedPlayerCharacter.PersonalityDefect = null;
|
||||||
|
ResetAlignments();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -136,7 +189,7 @@ namespace AideDeJeu.ViewModels
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int _SubBackgroundSelectedIndex = 0;
|
private int _SubBackgroundSelectedIndex = -1;
|
||||||
public int SubBackgroundSelectedIndex
|
public int SubBackgroundSelectedIndex
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|
@ -324,7 +377,29 @@ namespace AideDeJeu.ViewModels
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return new Command<List<string>>(async (strings) => SelectedPlayerCharacter.PersonalityIdeal = await ExecuteStringPickerCommandAsync(strings));
|
return new Command<List<string>>(async (strings) =>
|
||||||
|
{
|
||||||
|
SelectedPlayerCharacter.PersonalityIdeal = await ExecuteStringPickerCommandAsync(strings);
|
||||||
|
if (!string.IsNullOrEmpty(SelectedPlayerCharacter.PersonalityIdeal))
|
||||||
|
{
|
||||||
|
var regex = new Regex(".*\\((?<alignment>.*?)\\)$");
|
||||||
|
var match = regex.Match(SelectedPlayerCharacter.PersonalityIdeal);
|
||||||
|
var alignment = match.Groups["alignment"].Value;
|
||||||
|
if (!string.IsNullOrEmpty(alignment))
|
||||||
|
{
|
||||||
|
Alignments = _AllAllignments.Where(a => a.ToLower().Contains(alignment.ToLower())).ToList();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Alignments = _AllAllignments;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Alignments = _AllAllignments;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public ICommand PersonalityLinkPickerCommand
|
public ICommand PersonalityLinkPickerCommand
|
||||||
|
|
@ -346,7 +421,6 @@ namespace AideDeJeu.ViewModels
|
||||||
{
|
{
|
||||||
var picker = new Views.StringPicker();
|
var picker = new Views.StringPicker();
|
||||||
var vm = picker.ViewModel;
|
var vm = picker.ViewModel;
|
||||||
vm.Title = "Trait de personnalité";
|
|
||||||
vm.Items = strings;
|
vm.Items = strings;
|
||||||
await Main.Navigator.Navigation.PushModalAsync(picker, true);
|
await Main.Navigator.Navigation.PushModalAsync(picker, true);
|
||||||
var result = await vm.PickValueAsync();
|
var result = await vm.PickValueAsync();
|
||||||
|
|
|
||||||
|
|
@ -21,16 +21,7 @@
|
||||||
<ContentPage Title="Généralités">
|
<ContentPage Title="Généralités">
|
||||||
<StackLayout>
|
<StackLayout>
|
||||||
<Entry Placeholder="Nom" Text="{Binding Name}" />
|
<Entry Placeholder="Nom" Text="{Binding Name}" />
|
||||||
<Picker Title="Genre" HorizontalOptions="FillAndExpand">
|
<Picker Title="Alignement" HorizontalOptions="FillAndExpand" ItemsSource="{Binding Alignments}" ItemDisplayBinding="{Binding StringFormat='Alignement : {0}'}" />
|
||||||
<Picker.ItemsSource>
|
|
||||||
<x:Array Type="{x:Type x:String}">
|
|
||||||
<x:String>Autre</x:String>
|
|
||||||
<x:String>Féminin</x:String>
|
|
||||||
<x:String>Masculin</x:String>
|
|
||||||
<x:String>Non précisé</x:String>
|
|
||||||
</x:Array>
|
|
||||||
</Picker.ItemsSource>
|
|
||||||
</Picker>
|
|
||||||
<Picker Title="Niveau" HorizontalOptions="FillAndExpand" ItemsSource="{Binding Levels}" ItemDisplayBinding="{Binding StringFormat='Niveau : {0}'}" />
|
<Picker Title="Niveau" HorizontalOptions="FillAndExpand" ItemsSource="{Binding Levels}" ItemDisplayBinding="{Binding StringFormat='Niveau : {0}'}" />
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
</ContentPage>
|
</ContentPage>
|
||||||
|
|
@ -59,20 +50,20 @@
|
||||||
<mdview:MarkdownView Markdown="{Binding SelectedPlayerCharacter.Background.Description}" />
|
<mdview:MarkdownView Markdown="{Binding SelectedPlayerCharacter.Background.Description}" />
|
||||||
<mdview:MarkdownView Markdown="{Binding SelectedPlayerCharacter.SubBackground.Description}" />
|
<mdview:MarkdownView Markdown="{Binding SelectedPlayerCharacter.SubBackground.Description}" />
|
||||||
|
|
||||||
<Button IsVisible="{Binding PersonalityTraits.IsSuccessfullyCompleted}" Text="Trait de personnalité" Command="{Binding PersonalityTraitPickerCommand}" CommandParameter="{Binding PersonalityTraits.Result}" />
|
<Button Visual="Material" IsVisible="{Binding PersonalityTraits.IsSuccessfullyCompleted}" Text="Trait de personnalité" Command="{Binding PersonalityTraitPickerCommand}" CommandParameter="{Binding PersonalityTraits.Result}" />
|
||||||
<mdview:MarkdownView IsVisible="{Binding PersonalityTraits.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityTrait}" />
|
<mdview:MarkdownView IsVisible="{Binding PersonalityTraits.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityTrait}" />
|
||||||
|
|
||||||
<Button IsVisible="{Binding PersonalityIdeals.IsSuccessfullyCompleted}" Text="Idéal" Command="{Binding PersonalityIdealPickerCommand}" CommandParameter="{Binding PersonalityIdeals.Result}" />
|
<Button Visual="Material" IsVisible="{Binding PersonalityIdeals.IsSuccessfullyCompleted}" Text="Idéal" Command="{Binding PersonalityIdealPickerCommand}" CommandParameter="{Binding PersonalityIdeals.Result}" />
|
||||||
<mdview:MarkdownView IsVisible="{Binding PersonalityIdeals.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityIdeal}" />
|
<mdview:MarkdownView IsVisible="{Binding PersonalityIdeals.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityIdeal}" />
|
||||||
|
|
||||||
<Button IsVisible="{Binding PersonalityLinks.IsSuccessfullyCompleted}" Text="Lien" Command="{Binding PersonalityLinkPickerCommand}" CommandParameter="{Binding PersonalityLinks.Result}" />
|
<Button Visual="Material" IsVisible="{Binding PersonalityLinks.IsSuccessfullyCompleted}" Text="Lien" Command="{Binding PersonalityLinkPickerCommand}" CommandParameter="{Binding PersonalityLinks.Result}" />
|
||||||
<mdview:MarkdownView IsVisible="{Binding PersonalityLinks.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityLink}" />
|
<mdview:MarkdownView IsVisible="{Binding PersonalityLinks.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityLink}" />
|
||||||
|
|
||||||
<Button IsVisible="{Binding PersonalityDefects.IsSuccessfullyCompleted}" Text="Défaut" Command="{Binding PersonalityDefectPickerCommand}" CommandParameter="{Binding PersonalityDefects.Result}" />
|
<Button Visual="Material" IsVisible="{Binding PersonalityDefects.IsSuccessfullyCompleted}" Text="Défaut" Command="{Binding PersonalityDefectPickerCommand}" CommandParameter="{Binding PersonalityDefects.Result}" />
|
||||||
<mdview:MarkdownView IsVisible="{Binding PersonalityDefects.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityDefect}" />
|
<mdview:MarkdownView IsVisible="{Binding PersonalityDefects.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityDefect}" />
|
||||||
|
|
||||||
<!--<mdview:MarkdownView Markdown="{Binding SelectedPlayerCharacter.Background.Markdown}" />
|
<mdview:MarkdownView Markdown="{Binding SelectedPlayerCharacter.Background.Markdown}" />
|
||||||
<mdview:MarkdownView Markdown="{Binding SelectedPlayerCharacter.SubBackground.Markdown}" />-->
|
<mdview:MarkdownView Markdown="{Binding SelectedPlayerCharacter.SubBackground.Markdown}" />
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue