mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-12-15 22:59:39 +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.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Input;
|
||||
using Xamarin.Forms;
|
||||
|
|
@ -16,6 +17,7 @@ namespace AideDeJeu.ViewModels
|
|||
{
|
||||
public PlayerCharacterEditorViewModel()
|
||||
{
|
||||
ResetAlignments();
|
||||
Races = new NotifyTaskCompletion<List<RaceItem>>(Task.Run(() => LoadRacesAsync()));
|
||||
Classes = new NotifyTaskCompletion<List<ClassItem>>(Task.Run(() => LoadClassesAsync()));
|
||||
|
||||
|
|
@ -42,9 +44,59 @@ namespace AideDeJeu.ViewModels
|
|||
}
|
||||
#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
|
||||
public NotifyTaskCompletion<List<RaceItem>> Races { get; private set; }
|
||||
private int _RaceSelectedIndex = 0;
|
||||
private int _RaceSelectedIndex = -1;
|
||||
public int RaceSelectedIndex
|
||||
{
|
||||
get
|
||||
|
|
@ -73,7 +125,7 @@ namespace AideDeJeu.ViewModels
|
|||
#region Class
|
||||
public NotifyTaskCompletion<List<ClassItem>> Classes { get; private set; }
|
||||
|
||||
private int _ClassSelectedIndex = 0;
|
||||
private int _ClassSelectedIndex = -1;
|
||||
public int ClassSelectedIndex
|
||||
{
|
||||
get
|
||||
|
|
@ -99,7 +151,7 @@ namespace AideDeJeu.ViewModels
|
|||
#region Background
|
||||
public NotifyTaskCompletion<List<BackgroundItem>> Backgrounds { get; private set; }
|
||||
|
||||
private int _BackgroundSelectedIndex = 0;
|
||||
private int _BackgroundSelectedIndex = -1;
|
||||
public int BackgroundSelectedIndex
|
||||
{
|
||||
get
|
||||
|
|
@ -120,6 +172,7 @@ namespace AideDeJeu.ViewModels
|
|||
SelectedPlayerCharacter.PersonalityIdeal = null;
|
||||
SelectedPlayerCharacter.PersonalityLink = null;
|
||||
SelectedPlayerCharacter.PersonalityDefect = null;
|
||||
ResetAlignments();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -136,7 +189,7 @@ namespace AideDeJeu.ViewModels
|
|||
}
|
||||
}
|
||||
|
||||
private int _SubBackgroundSelectedIndex = 0;
|
||||
private int _SubBackgroundSelectedIndex = -1;
|
||||
public int SubBackgroundSelectedIndex
|
||||
{
|
||||
get
|
||||
|
|
@ -324,7 +377,29 @@ namespace AideDeJeu.ViewModels
|
|||
{
|
||||
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
|
||||
|
|
@ -346,7 +421,6 @@ namespace AideDeJeu.ViewModels
|
|||
{
|
||||
var picker = new Views.StringPicker();
|
||||
var vm = picker.ViewModel;
|
||||
vm.Title = "Trait de personnalité";
|
||||
vm.Items = strings;
|
||||
await Main.Navigator.Navigation.PushModalAsync(picker, true);
|
||||
var result = await vm.PickValueAsync();
|
||||
|
|
|
|||
|
|
@ -21,16 +21,7 @@
|
|||
<ContentPage Title="Généralités">
|
||||
<StackLayout>
|
||||
<Entry Placeholder="Nom" Text="{Binding Name}" />
|
||||
<Picker Title="Genre" HorizontalOptions="FillAndExpand">
|
||||
<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="Alignement" HorizontalOptions="FillAndExpand" ItemsSource="{Binding Alignments}" ItemDisplayBinding="{Binding StringFormat='Alignement : {0}'}" />
|
||||
<Picker Title="Niveau" HorizontalOptions="FillAndExpand" ItemsSource="{Binding Levels}" ItemDisplayBinding="{Binding StringFormat='Niveau : {0}'}" />
|
||||
</StackLayout>
|
||||
</ContentPage>
|
||||
|
|
@ -59,20 +50,20 @@
|
|||
<mdview:MarkdownView Markdown="{Binding SelectedPlayerCharacter.Background.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}" />
|
||||
|
||||
<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}" />
|
||||
|
||||
<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}" />
|
||||
|
||||
<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 Markdown="{Binding SelectedPlayerCharacter.Background.Markdown}" />
|
||||
<mdview:MarkdownView Markdown="{Binding SelectedPlayerCharacter.SubBackground.Markdown}" />-->
|
||||
<mdview:MarkdownView Markdown="{Binding SelectedPlayerCharacter.Background.Markdown}" />
|
||||
<mdview:MarkdownView Markdown="{Binding SelectedPlayerCharacter.SubBackground.Markdown}" />
|
||||
</StackLayout>
|
||||
</ScrollView>
|
||||
</StackLayout>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue