mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-12-21 01:23:39 +00:00
Personalities
This commit is contained in:
parent
62b17e8659
commit
b5381891c7
1831 changed files with 8974 additions and 8799 deletions
|
|
@ -1,7 +1,6 @@
|
|||
namespace AideDeJeuLib
|
||||
{
|
||||
public class PersonalityDefectItem : Item, TableProperty
|
||||
public class PersonalityDefectItem : PersonalityItem
|
||||
{
|
||||
public string Table { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
namespace AideDeJeuLib
|
||||
{
|
||||
public class PersonalityIdealItem : Item, TableProperty
|
||||
public class PersonalityIdealItem : PersonalityItem
|
||||
{
|
||||
public string Table { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
namespace AideDeJeuLib
|
||||
{
|
||||
public class PersonalityItem : Item, TableProperty
|
||||
{
|
||||
public string Table { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
namespace AideDeJeuLib
|
||||
{
|
||||
public class PersonalityLinkItem : Item, TableProperty
|
||||
public class PersonalityLinkItem : PersonalityItem
|
||||
{
|
||||
public string Table { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
namespace AideDeJeuLib
|
||||
{
|
||||
public class PersonalityTraitItem : Item, TableProperty
|
||||
public class PersonalityTraitItem : PersonalityItem
|
||||
{
|
||||
public string Table { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,19 @@ namespace AideDeJeu.ViewModels
|
|||
{
|
||||
public class PickerViewModel<T> : BaseViewModel where T:class
|
||||
{
|
||||
private string _Title = null;
|
||||
public string Title
|
||||
{
|
||||
get
|
||||
{
|
||||
return _Title;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _Title, value);
|
||||
}
|
||||
}
|
||||
|
||||
private List<T> _Items = null;
|
||||
public List<T> Items
|
||||
{
|
||||
|
|
|
|||
|
|
@ -22,6 +22,9 @@ namespace AideDeJeu.ViewModels
|
|||
Backgrounds = new NotifyTaskCompletion<List<BackgroundItem>>(Task.Run(() => LoadBackgroundsAsync()));
|
||||
SubBackgrounds = new NotifyTaskCompletion<List<SubBackgroundItem>>(null);
|
||||
PersonalityTraits = new NotifyTaskCompletion<List<string>>(null);
|
||||
PersonalityIdeals = new NotifyTaskCompletion<List<string>>(null);
|
||||
PersonalityLinks = new NotifyTaskCompletion<List<string>>(null);
|
||||
PersonalityDefects = new NotifyTaskCompletion<List<string>>(null);
|
||||
}
|
||||
|
||||
#region Selected PC
|
||||
|
|
@ -109,7 +112,14 @@ namespace AideDeJeu.ViewModels
|
|||
SelectedPlayerCharacter.Background = Backgrounds.Result[_BackgroundSelectedIndex];
|
||||
SubBackgrounds = new NotifyTaskCompletion<List<SubBackgroundItem>>(Task.Run(() => LoadSubBackgroundsAsync(SelectedPlayerCharacter.Background)));
|
||||
PersonalityTraits = new NotifyTaskCompletion<List<string>>(Task.Run(() => LoadPersonalityTraitsAsync(SelectedPlayerCharacter.Background)));
|
||||
PersonalityIdeals = new NotifyTaskCompletion<List<string>>(Task.Run(() => LoadPersonalityIdealsAsync(SelectedPlayerCharacter.Background)));
|
||||
PersonalityLinks = new NotifyTaskCompletion<List<string>>(Task.Run(() => LoadPersonalityLinksAsync(SelectedPlayerCharacter.Background)));
|
||||
PersonalityDefects = new NotifyTaskCompletion<List<string>>(Task.Run(() => LoadPersonalityDefectsAsync(SelectedPlayerCharacter.Background)));
|
||||
SelectedPlayerCharacter.SubBackground = null;
|
||||
SelectedPlayerCharacter.PersonalityTrait = null;
|
||||
SelectedPlayerCharacter.PersonalityIdeal = null;
|
||||
SelectedPlayerCharacter.PersonalityLink = null;
|
||||
SelectedPlayerCharacter.PersonalityDefect = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -160,6 +170,42 @@ namespace AideDeJeu.ViewModels
|
|||
SetProperty(ref _PersonalityTraits, value);
|
||||
}
|
||||
}
|
||||
private NotifyTaskCompletion<List<string>> _PersonalityIdeals = null;
|
||||
public NotifyTaskCompletion<List<string>> PersonalityIdeals
|
||||
{
|
||||
get
|
||||
{
|
||||
return _PersonalityIdeals;
|
||||
}
|
||||
private set
|
||||
{
|
||||
SetProperty(ref _PersonalityIdeals, value);
|
||||
}
|
||||
}
|
||||
private NotifyTaskCompletion<List<string>> _PersonalityLinks = null;
|
||||
public NotifyTaskCompletion<List<string>> PersonalityLinks
|
||||
{
|
||||
get
|
||||
{
|
||||
return _PersonalityLinks;
|
||||
}
|
||||
private set
|
||||
{
|
||||
SetProperty(ref _PersonalityLinks, value);
|
||||
}
|
||||
}
|
||||
private NotifyTaskCompletion<List<string>> _PersonalityDefects = null;
|
||||
public NotifyTaskCompletion<List<string>> PersonalityDefects
|
||||
{
|
||||
get
|
||||
{
|
||||
return _PersonalityDefects;
|
||||
}
|
||||
private set
|
||||
{
|
||||
SetProperty(ref _PersonalityDefects, value);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<List<BackgroundItem>> LoadBackgroundsAsync()
|
||||
{
|
||||
|
|
@ -170,27 +216,78 @@ namespace AideDeJeu.ViewModels
|
|||
}
|
||||
}
|
||||
|
||||
public List<string> ExtractSimpleTable(string table)
|
||||
{
|
||||
var lines = table.Split('\n');
|
||||
var result = new List<string>();
|
||||
foreach (var line in lines.Skip(2))
|
||||
{
|
||||
if (line.StartsWith("|"))
|
||||
{
|
||||
var cols = line.Split('|');
|
||||
var text = cols[2].Replace("<!--br-->", " ").Replace(" ", " ");
|
||||
result.Add(text);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
public async Task<List<string>> LoadPersonalityTraitsAsync(BackgroundItem background)
|
||||
{
|
||||
if (background != null)
|
||||
{
|
||||
using (var context = await StoreViewModel.GetLibraryContextAsync())
|
||||
{
|
||||
var list = await context.PersonalityTraits.Where(it => it.ParentLink.StartsWith(background.RootId)).OrderBy(b => Tools.Helpers.RemoveDiacritics(b.Name)).ToListAsync().ConfigureAwait(false);
|
||||
var list = await context.PersonalityTraits.Where(it => it.ParentLink.StartsWith(background.RootId)).ToListAsync().ConfigureAwait(false);
|
||||
var item = list.FirstOrDefault();
|
||||
var table = item.Table;
|
||||
var lines = table.Split('\n');
|
||||
var result = new List<string>();
|
||||
foreach (var line in lines.Skip(2))
|
||||
{
|
||||
if (line.StartsWith("|"))
|
||||
{
|
||||
var cols = line.Split('|');
|
||||
var text = cols[2].Replace("<!--br-->", " ").Replace(" ", " ");
|
||||
result.Add(text);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
return ExtractSimpleTable(item.Table);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
public async Task<List<string>> LoadPersonalityIdealsAsync(BackgroundItem background)
|
||||
{
|
||||
if (background != null)
|
||||
{
|
||||
using (var context = await StoreViewModel.GetLibraryContextAsync())
|
||||
{
|
||||
var list = await context.PersonalityIdeals.Where(it => it.ParentLink.StartsWith(background.RootId)).ToListAsync().ConfigureAwait(false);
|
||||
var item = list.FirstOrDefault();
|
||||
return ExtractSimpleTable(item.Table);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
public async Task<List<string>> LoadPersonalityLinksAsync(BackgroundItem background)
|
||||
{
|
||||
if (background != null)
|
||||
{
|
||||
using (var context = await StoreViewModel.GetLibraryContextAsync())
|
||||
{
|
||||
var list = await context.PersonalityLinks.Where(it => it.ParentLink.StartsWith(background.RootId)).ToListAsync().ConfigureAwait(false);
|
||||
var item = list.FirstOrDefault();
|
||||
return ExtractSimpleTable(item.Table);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
public async Task<List<string>> LoadPersonalityDefectsAsync(BackgroundItem background)
|
||||
{
|
||||
if (background != null)
|
||||
{
|
||||
using (var context = await StoreViewModel.GetLibraryContextAsync())
|
||||
{
|
||||
var list = await context.PersonalityDefects.Where(it => it.ParentLink.StartsWith(background.RootId)).ToListAsync().ConfigureAwait(false);
|
||||
var item = list.FirstOrDefault();
|
||||
return ExtractSimpleTable(item.Table);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -216,23 +313,45 @@ namespace AideDeJeu.ViewModels
|
|||
}
|
||||
}
|
||||
|
||||
public ICommand StringPickerCommand
|
||||
public ICommand PersonalityTraitPickerCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
return new Command<List<string>>(async (strings) => await ExecuteStringPickerCommandAsync(strings));
|
||||
return new Command<List<string>>(async (strings) => SelectedPlayerCharacter.PersonalityTrait = await ExecuteStringPickerCommandAsync(strings));
|
||||
}
|
||||
}
|
||||
public ICommand PersonalityIdealPickerCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
return new Command<List<string>>(async (strings) => SelectedPlayerCharacter.PersonalityIdeal = await ExecuteStringPickerCommandAsync(strings));
|
||||
}
|
||||
}
|
||||
public ICommand PersonalityLinkPickerCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
return new Command<List<string>>(async (strings) => SelectedPlayerCharacter.PersonalityLink = await ExecuteStringPickerCommandAsync(strings));
|
||||
}
|
||||
}
|
||||
public ICommand PersonalityDefectPickerCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
return new Command<List<string>>(async (strings) => SelectedPlayerCharacter.PersonalityDefect = await ExecuteStringPickerCommandAsync(strings));
|
||||
}
|
||||
}
|
||||
|
||||
private async Task ExecuteStringPickerCommandAsync(List<string> strings)
|
||||
private async Task<string> ExecuteStringPickerCommandAsync(List<string> strings)
|
||||
{
|
||||
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();
|
||||
await Main.Navigator.Navigation.PopModalAsync(true);
|
||||
SelectedPlayerCharacter.PersonalityTrait = result;
|
||||
return result;
|
||||
}
|
||||
#endregion Background
|
||||
|
||||
|
|
|
|||
|
|
@ -67,5 +67,41 @@ namespace AideDeJeu.ViewModels
|
|||
SetProperty(ref _PersonalityTrait, value);
|
||||
}
|
||||
}
|
||||
private string _PersonalityIdeal = null;
|
||||
public string PersonalityIdeal
|
||||
{
|
||||
get
|
||||
{
|
||||
return _PersonalityIdeal;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _PersonalityIdeal, value);
|
||||
}
|
||||
}
|
||||
private string _PersonalityLink = null;
|
||||
public string PersonalityLink
|
||||
{
|
||||
get
|
||||
{
|
||||
return _PersonalityLink;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _PersonalityLink, value);
|
||||
}
|
||||
}
|
||||
private string _PersonalityDefect = null;
|
||||
public string PersonalityDefect
|
||||
{
|
||||
get
|
||||
{
|
||||
return _PersonalityDefect;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _PersonalityDefect, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -561,6 +561,9 @@ namespace AideDeJeu.ViewModels
|
|||
public DbSet<BackgroundItem> Backgrounds { get; set; }
|
||||
public DbSet<SubBackgroundItem> SubBackgrounds { get; set; }
|
||||
public DbSet<PersonalityTraitItem> PersonalityTraits { get; set; }
|
||||
public DbSet<PersonalityIdealItem> PersonalityIdeals { get; set; }
|
||||
public DbSet<PersonalityLinkItem> PersonalityLinks { get; set; }
|
||||
public DbSet<PersonalityDefectItem> PersonalityDefects { get; set; }
|
||||
|
||||
public AideDeJeuContext(string dbPath)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -58,19 +58,21 @@
|
|||
<StackLayout HorizontalOptions="FillAndExpand" >
|
||||
<mdview:MarkdownView Markdown="{Binding SelectedPlayerCharacter.Background.Description}" />
|
||||
<mdview:MarkdownView Markdown="{Binding SelectedPlayerCharacter.SubBackground.Description}" />
|
||||
<Button Text="Trait de personnalité" Command="{Binding StringPickerCommand}" CommandParameter="{Binding PersonalityTraits.Result}" />
|
||||
<mdview:MarkdownView HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityTrait}" />
|
||||
<!--<ListView HorizontalOptions="FillAndExpand" ItemsSource="{Binding PersonalityTraits.Result}">
|
||||
<ListView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<ViewCell>
|
||||
<mdview:MarkdownView HorizontalOptions="FillAndExpand" Markdown="{Binding}" />
|
||||
</ViewCell>
|
||||
</DataTemplate>
|
||||
</ListView.ItemTemplate>
|
||||
</ListView>-->
|
||||
<mdview:MarkdownView Markdown="{Binding SelectedPlayerCharacter.Background.Markdown}" />
|
||||
<mdview:MarkdownView Markdown="{Binding SelectedPlayerCharacter.SubBackground.Markdown}" />
|
||||
|
||||
<Button IsVisible="{Binding SubBackgrounds.IsSuccessfullyCompleted}" Text="Trait de personnalité" Command="{Binding PersonalityTraitPickerCommand}" CommandParameter="{Binding PersonalityTraits.Result}" />
|
||||
<mdview:MarkdownView IsVisible="{Binding SubBackgrounds.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityTrait}" />
|
||||
|
||||
<Button IsVisible="{Binding SubBackgrounds.IsSuccessfullyCompleted}" Text="Idéal" Command="{Binding PersonalityIdealPickerCommand}" CommandParameter="{Binding PersonalityIdeals.Result}" />
|
||||
<mdview:MarkdownView IsVisible="{Binding SubBackgrounds.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityIdeal}" />
|
||||
|
||||
<Button IsVisible="{Binding SubBackgrounds.IsSuccessfullyCompleted}" Text="Lien" Command="{Binding PersonalityLinkPickerCommand}" CommandParameter="{Binding PersonalityLinks.Result}" />
|
||||
<mdview:MarkdownView IsVisible="{Binding SubBackgrounds.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityLink}" />
|
||||
|
||||
<Button IsVisible="{Binding SubBackgrounds.IsSuccessfullyCompleted}" Text="Défaut" Command="{Binding PersonalityDefectPickerCommand}" CommandParameter="{Binding PersonalityDefects.Result}" />
|
||||
<mdview:MarkdownView IsVisible="{Binding SubBackgrounds.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityDefect}" />
|
||||
|
||||
<!--<mdview:MarkdownView Markdown="{Binding SelectedPlayerCharacter.Background.Markdown}" />
|
||||
<mdview:MarkdownView Markdown="{Binding SelectedPlayerCharacter.SubBackground.Markdown}" />-->
|
||||
</StackLayout>
|
||||
</ScrollView>
|
||||
</StackLayout>
|
||||
|
|
|
|||
|
|
@ -2,18 +2,17 @@
|
|||
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:mdview="clr-namespace:Xam.Forms.Markdown"
|
||||
x:Class="AideDeJeu.Views.StringPicker">
|
||||
x:Class="AideDeJeu.Views.StringPicker"
|
||||
Title="{Binding Title}">
|
||||
<ContentPage.Content>
|
||||
<StackLayout>
|
||||
<ListView ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}">
|
||||
<ListView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<ViewCell>
|
||||
<mdview:MarkdownView HorizontalOptions="FillAndExpand" Markdown="{Binding}" />
|
||||
</ViewCell>
|
||||
</DataTemplate>
|
||||
</ListView.ItemTemplate>
|
||||
</ListView>
|
||||
</StackLayout>
|
||||
<ListView ItemsSource="{Binding Items}" HasUnevenRows="True" SelectedItem="{Binding SelectedItem, Mode=TwoWay}">
|
||||
<ListView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<ViewCell>
|
||||
<mdview:MarkdownView HorizontalOptions="FillAndExpand" Markdown="{Binding}" />
|
||||
</ViewCell>
|
||||
</DataTemplate>
|
||||
</ListView.ItemTemplate>
|
||||
</ListView>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
Loading…
Add table
Add a link
Reference in a new issue