1
0
Fork 0
mirror of https://github.com/Nioux/AideDeJeu.git synced 2025-10-30 15:06:06 +00:00

Simplification

This commit is contained in:
Yan Maniez 2018-07-01 23:45:07 +02:00
parent 5c3b573476
commit 96eef2c464
14 changed files with 264 additions and 607 deletions

View file

@ -36,11 +36,8 @@
<Compile Update="Views\AboutPage.xaml.cs">
<SubType>Code</SubType>
</Compile>
<Compile Update="Views\MonsterDetailPage.xaml.cs">
<DependentUpon>MonsterDetailPage.xaml</DependentUpon>
</Compile>
<Compile Update="Views\SpellDetailPage.xaml.cs">
<DependentUpon>SpellDetailPage.xaml</DependentUpon>
<Compile Update="Views\ItemDetailPage.xaml.cs">
<DependentUpon>ItemDetailPage.xaml</DependentUpon>
</Compile>
<Compile Update="Views\MainPage.xaml.cs">
<DependentUpon>MainPage.xaml</DependentUpon>

View file

@ -0,0 +1,218 @@
using AideDeJeu.Tools;
using AideDeJeuLib;
using AideDeJeuLib.Monsters;
using System;
using System.Diagnostics;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace AideDeJeu.ViewModels
{
public class ItemDetailViewModel : BaseViewModel
{
Item _Item = null;
public Item Item
{
get { return _Item; }
set
{
SetProperty(ref _Item, value);
//OnPropertyChanged(nameof(TypeSizeAlignment));
//OnPropertyChanged(nameof(ArmorClass));
//OnPropertyChanged(nameof(HitPoints));
//OnPropertyChanged(nameof(Speed));
//OnPropertyChanged(nameof(SavingThrows));
//OnPropertyChanged(nameof(Skills));
//OnPropertyChanged(nameof(DamageVulnerabilities));
//OnPropertyChanged(nameof(DamageResistances));
//OnPropertyChanged(nameof(DamageImmunities));
//OnPropertyChanged(nameof(ConditionImmunities));
//OnPropertyChanged(nameof(Senses));
//OnPropertyChanged(nameof(Languages));
//OnPropertyChanged(nameof(Challenge));
//OnPropertyChanged(nameof(Duration));
//OnPropertyChanged(nameof(Duration));
}
}
//public FormattedString TypeSizeAlignment
//{
// get
// {
// var fd = FormatedTextHelpers.FontData.FromResource("contentital");
// var fs = new FormattedString();
// fs.Spans.Add(new Span() { Text = string.Format("{0} de taille {1}, {2}", Item.Type, Item.Size, Item.Alignment), FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
// return fs;
// }
//}
//public FormattedString ArmorClass
//{
// get
// {
// var fd = FormatedTextHelpers.FontData.FromResource("content");
// var fs = new FormattedString();
// fs.Spans.Add(new Span() { Text = string.Format("Classe d'armure {0}", Item.ArmorClass), FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
// return fs;
// }
//}
//public FormattedString HitPoints
//{
// get
// {
// var fd = FormatedTextHelpers.FontData.FromResource("content");
// var fs = new FormattedString();
// fs.Spans.Add(new Span() { Text = string.Format("Points de vie {0}", Item.HitPoints), FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
// return fs;
// }
//}
//public FormattedString Speed
//{
// get
// {
// var fd = FormatedTextHelpers.FontData.FromResource("content");
// var fs = new FormattedString();
// fs.Spans.Add(new Span() { Text = string.Format("Vitesse {0}", Item.Speed), FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
// return fs;
// }
//}
//public FormattedString SavingThrows
//{
// get
// {
// var fd = FormatedTextHelpers.FontData.FromResource("content");
// var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
// var fs = new FormattedString();
// fs.Spans.Add(new Span() { Text = "Jets de sauvegarde ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
// fs.Spans.Add(new Span() { Text = Item.SavingThrows, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
// return fs;
// }
//}
//public FormattedString Skills
//{
// get
// {
// var fd = FormatedTextHelpers.FontData.FromResource("content");
// var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
// var fs = new FormattedString();
// fs.Spans.Add(new Span() { Text = "Compétence ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
// fs.Spans.Add(new Span() { Text = Item.Skills, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
// return fs;
// }
//}
//public FormattedString DamageVulnerabilities
//{
// get
// {
// var fd = FormatedTextHelpers.FontData.FromResource("content");
// var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
// var fs = new FormattedString();
// fs.Spans.Add(new Span() { Text = "Vulnérabilité aux dégâts ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
// fs.Spans.Add(new Span() { Text = Item.DamageVulnerabilities, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
// return fs;
// }
//}
//public FormattedString DamageImmunities
//{
// get
// {
// var fd = FormatedTextHelpers.FontData.FromResource("content");
// var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
// var fs = new FormattedString();
// fs.Spans.Add(new Span() { Text = "Immunité contre les dégâts ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
// fs.Spans.Add(new Span() { Text = Item.DamageImmunities, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
// return fs;
// }
//}
//public FormattedString ConditionImmunities
//{
// get
// {
// var fd = FormatedTextHelpers.FontData.FromResource("content");
// var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
// var fs = new FormattedString();
// fs.Spans.Add(new Span() { Text = "Immunité contre les états ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
// fs.Spans.Add(new Span() { Text = Item.ConditionImmunities, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
// return fs;
// }
//}
//public FormattedString DamageResistances
//{
// get
// {
// var fd = FormatedTextHelpers.FontData.FromResource("content");
// var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
// var fs = new FormattedString();
// fs.Spans.Add(new Span() { Text = "Résistance aux dégâts ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
// fs.Spans.Add(new Span() { Text = Item.DamageResistances, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
// return fs;
// }
//}
//public FormattedString Senses
//{
// get
// {
// var fd = FormatedTextHelpers.FontData.FromResource("content");
// var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
// var fs = new FormattedString();
// fs.Spans.Add(new Span() { Text = "Sens ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
// fs.Spans.Add(new Span() { Text = Item.Senses, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
// return fs;
// }
//}
//public FormattedString Languages
//{
// get
// {
// var fd = FormatedTextHelpers.FontData.FromResource("content");
// var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
// var fs = new FormattedString();
// fs.Spans.Add(new Span() { Text = "Langues ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
// fs.Spans.Add(new Span() { Text = Item.Languages, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
// return fs;
// }
//}
//public FormattedString Challenge
//{
// get
// {
// var fd = FormatedTextHelpers.FontData.FromResource("content");
// var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
// var fs = new FormattedString();
// fs.Spans.Add(new Span() { Text = "Dangerosité ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
// fs.Spans.Add(new Span() { Text = Item.Challenge, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
// return fs;
// }
//}
public Command LoadItemCommand { get; set; }
public ItemDetailViewModel(Item item = null)
{
Title = item?.Name;
Item = item;
LoadItemCommand = new Command(async () => await ExecuteLoadItemCommand());
}
async Task ExecuteLoadItemCommand()
{
}
}
}

View file

@ -13,7 +13,7 @@ using System.Linq;
namespace AideDeJeu.ViewModels
{
public abstract class ItemsViewModel : BaseViewModel
public class ItemsViewModel : BaseViewModel
{
CancellationTokenSource cancellationTokenSource;
@ -23,7 +23,10 @@ namespace AideDeJeu.ViewModels
LoadItemsCommand = new Command(async () => await ExecuteLoadItemsCommandAsync().ConfigureAwait(false));
}
public ICommand LoadItemsCommand { get; protected set; }
public abstract Task ExecuteGotoItemCommandAsync(Item item);
public async Task ExecuteGotoItemCommandAsync(Item item)
{
await Main.Navigator.GotoItemDetailPageAsync(item);
}
protected ItemSourceType ItemSourceType;

View file

@ -27,13 +27,10 @@ namespace AideDeJeu.ViewModels
{
Spell = 0x01,
Monster = 0x10,
//VF = 0x0100,
VO = 0x1100,
HD = 0x1000,
//SpellVF = Spell | VF,
SpellVO = Spell | VO,
SpellHD = Spell | HD,
//MonsterVF = Monster | VF,
MonsterVO = Monster | VO,
MonsterHD = Monster | HD,
}
@ -64,12 +61,10 @@ namespace AideDeJeu.ViewModels
public Dictionary<ItemSourceType, Lazy<ItemsViewModel>> AllItemsViewModel = new Dictionary<ItemSourceType, Lazy<ItemsViewModel>>()
{
//{ ItemSourceType.SpellVF, new Lazy<ItemsViewModel>(() => new SpellsViewModel(ItemSourceType.SpellVF)) },
{ ItemSourceType.SpellVO, new Lazy<ItemsViewModel>(() => new SpellsViewModel(ItemSourceType.SpellVO)) },
{ ItemSourceType.SpellHD, new Lazy<ItemsViewModel>(() => new SpellsViewModel(ItemSourceType.SpellHD)) },
//{ ItemSourceType.MonsterVF, new Lazy<ItemsViewModel>(() => new MonstersViewModel(ItemSourceType.MonsterVF)) },
{ ItemSourceType.MonsterVO, new Lazy<ItemsViewModel>(() => new MonstersViewModel(ItemSourceType.MonsterVO)) },
{ ItemSourceType.MonsterHD, new Lazy<ItemsViewModel>(() => new MonstersViewModel(ItemSourceType.MonsterHD)) },
{ ItemSourceType.SpellVO, new Lazy<ItemsViewModel>(() => new ItemsViewModel(ItemSourceType.SpellVO)) },
{ ItemSourceType.SpellHD, new Lazy<ItemsViewModel>(() => new ItemsViewModel(ItemSourceType.SpellHD)) },
{ ItemSourceType.MonsterVO, new Lazy<ItemsViewModel>(() => new ItemsViewModel(ItemSourceType.MonsterVO)) },
{ ItemSourceType.MonsterHD, new Lazy<ItemsViewModel>(() => new ItemsViewModel(ItemSourceType.MonsterHD)) },
};
public ItemsViewModel GetItemsViewModel(ItemSourceType itemSourceType)
@ -79,10 +74,8 @@ namespace AideDeJeu.ViewModels
public Dictionary<ItemSourceType, Lazy<FilterViewModel>> AllFiltersViewModel = new Dictionary<ItemSourceType, Lazy<FilterViewModel>>()
{
//{ ItemSourceType.SpellVF, new Lazy<FilterViewModel>(() => new VFSpellFilterViewModel()) },
{ ItemSourceType.SpellVO, new Lazy<FilterViewModel>(() => new VOSpellFilterViewModel()) },
{ ItemSourceType.SpellHD, new Lazy<FilterViewModel>(() => new HDSpellFilterViewModel()) },
//{ ItemSourceType.MonsterVF, new Lazy<FilterViewModel>(() => new VFMonsterFilterViewModel()) },
{ ItemSourceType.MonsterVO, new Lazy<FilterViewModel>(() => new VOMonsterFilterViewModel()) },
{ ItemSourceType.MonsterHD, new Lazy<FilterViewModel>(() => new HDMonsterFilterViewModel()) },
};
@ -171,7 +164,7 @@ namespace AideDeJeu.ViewModels
var spell = spells.Where(i => Tools.Helpers.IdFromName(i.Name) == anchor).FirstOrDefault();
if (spell != null)
{
await Navigator.GotoSpellDetailPageAsync(spell);
await Navigator.GotoItemDetailPageAsync(spell);
}
}
else if (file == "spells_vo")
@ -180,7 +173,7 @@ namespace AideDeJeu.ViewModels
var spell = spells.Where(i => Tools.Helpers.IdFromName(i.Name) == anchor).FirstOrDefault();
if (spell != null)
{
await Navigator.GotoSpellDetailPageAsync(spell);
await Navigator.GotoItemDetailPageAsync(spell);
}
}
else if (file == "monsters_hd")
@ -189,7 +182,7 @@ namespace AideDeJeu.ViewModels
var monster = monsters.Where(i => Tools.Helpers.IdFromName(i.Name) == anchor).FirstOrDefault();
if (monster != null)
{
await Navigator.GotoMonsterDetailPageAsync(monster);
await Navigator.GotoItemDetailPageAsync(monster);
}
}
else if (file == "monsters_vo")
@ -198,7 +191,7 @@ namespace AideDeJeu.ViewModels
var monster = monsters.Where(i => Tools.Helpers.IdFromName(i.Name) == anchor).FirstOrDefault();
if (monster != null)
{
await Navigator.GotoMonsterDetailPageAsync(monster);
await Navigator.GotoItemDetailPageAsync(monster);
}
}
else

View file

@ -1,217 +0,0 @@
using AideDeJeu.Tools;
using AideDeJeuLib.Monsters;
using System;
using System.Diagnostics;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace AideDeJeu.ViewModels
{
public class MonsterDetailViewModel : BaseViewModel
{
Monster _Item = null;
public Monster Item
{
get { return _Item; }
set
{
SetProperty(ref _Item, value);
OnPropertyChanged(nameof(TypeSizeAlignment));
OnPropertyChanged(nameof(ArmorClass));
OnPropertyChanged(nameof(HitPoints));
OnPropertyChanged(nameof(Speed));
OnPropertyChanged(nameof(SavingThrows));
OnPropertyChanged(nameof(Skills));
OnPropertyChanged(nameof(DamageVulnerabilities));
OnPropertyChanged(nameof(DamageResistances));
OnPropertyChanged(nameof(DamageImmunities));
OnPropertyChanged(nameof(ConditionImmunities));
OnPropertyChanged(nameof(Senses));
OnPropertyChanged(nameof(Languages));
OnPropertyChanged(nameof(Challenge));
//OnPropertyChanged(nameof(Duration));
//OnPropertyChanged(nameof(Duration));
}
}
public FormattedString TypeSizeAlignment
{
get
{
var fd = FormatedTextHelpers.FontData.FromResource("contentital");
var fs = new FormattedString();
fs.Spans.Add(new Span() { Text = string.Format("{0} de taille {1}, {2}", Item.Type, Item.Size, Item.Alignment), FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
return fs;
}
}
public FormattedString ArmorClass
{
get
{
var fd = FormatedTextHelpers.FontData.FromResource("content");
var fs = new FormattedString();
fs.Spans.Add(new Span() { Text = string.Format("Classe d'armure {0}", Item.ArmorClass), FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
return fs;
}
}
public FormattedString HitPoints
{
get
{
var fd = FormatedTextHelpers.FontData.FromResource("content");
var fs = new FormattedString();
fs.Spans.Add(new Span() { Text = string.Format("Points de vie {0}", Item.HitPoints), FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
return fs;
}
}
public FormattedString Speed
{
get
{
var fd = FormatedTextHelpers.FontData.FromResource("content");
var fs = new FormattedString();
fs.Spans.Add(new Span() { Text = string.Format("Vitesse {0}", Item.Speed), FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
return fs;
}
}
public FormattedString SavingThrows
{
get
{
var fd = FormatedTextHelpers.FontData.FromResource("content");
var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
var fs = new FormattedString();
fs.Spans.Add(new Span() { Text = "Jets de sauvegarde ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
fs.Spans.Add(new Span() { Text = Item.SavingThrows, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
return fs;
}
}
public FormattedString Skills
{
get
{
var fd = FormatedTextHelpers.FontData.FromResource("content");
var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
var fs = new FormattedString();
fs.Spans.Add(new Span() { Text = "Compétence ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
fs.Spans.Add(new Span() { Text = Item.Skills, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
return fs;
}
}
public FormattedString DamageVulnerabilities
{
get
{
var fd = FormatedTextHelpers.FontData.FromResource("content");
var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
var fs = new FormattedString();
fs.Spans.Add(new Span() { Text = "Vulnérabilité aux dégâts ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
fs.Spans.Add(new Span() { Text = Item.DamageVulnerabilities, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
return fs;
}
}
public FormattedString DamageImmunities
{
get
{
var fd = FormatedTextHelpers.FontData.FromResource("content");
var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
var fs = new FormattedString();
fs.Spans.Add(new Span() { Text = "Immunité contre les dégâts ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
fs.Spans.Add(new Span() { Text = Item.DamageImmunities, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
return fs;
}
}
public FormattedString ConditionImmunities
{
get
{
var fd = FormatedTextHelpers.FontData.FromResource("content");
var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
var fs = new FormattedString();
fs.Spans.Add(new Span() { Text = "Immunité contre les états ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
fs.Spans.Add(new Span() { Text = Item.ConditionImmunities, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
return fs;
}
}
public FormattedString DamageResistances
{
get
{
var fd = FormatedTextHelpers.FontData.FromResource("content");
var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
var fs = new FormattedString();
fs.Spans.Add(new Span() { Text = "Résistance aux dégâts ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
fs.Spans.Add(new Span() { Text = Item.DamageResistances, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
return fs;
}
}
public FormattedString Senses
{
get
{
var fd = FormatedTextHelpers.FontData.FromResource("content");
var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
var fs = new FormattedString();
fs.Spans.Add(new Span() { Text = "Sens ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
fs.Spans.Add(new Span() { Text = Item.Senses, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
return fs;
}
}
public FormattedString Languages
{
get
{
var fd = FormatedTextHelpers.FontData.FromResource("content");
var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
var fs = new FormattedString();
fs.Spans.Add(new Span() { Text = "Langues ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
fs.Spans.Add(new Span() { Text = Item.Languages, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
return fs;
}
}
public FormattedString Challenge
{
get
{
var fd = FormatedTextHelpers.FontData.FromResource("content");
var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
var fs = new FormattedString();
fs.Spans.Add(new Span() { Text = "Dangerosité ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
fs.Spans.Add(new Span() { Text = Item.Challenge, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
return fs;
}
}
public Command LoadItemCommand { get; set; }
public MonsterDetailViewModel(Monster item = null)
{
Title = item?.Name;
Item = item;
LoadItemCommand = new Command(async () => await ExecuteLoadItemCommand());
}
async Task ExecuteLoadItemCommand()
{
}
}
}

View file

@ -1,27 +0,0 @@
using AideDeJeu.Tools;
using AideDeJeuLib;
using AideDeJeuLib.Monsters;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.Serialization.Json;
using System.Threading.Tasks;
namespace AideDeJeu.ViewModels
{
public class MonstersViewModel : ItemsViewModel
{
public MonstersViewModel(ItemSourceType itemSourceType) : base(itemSourceType)
{
}
public override async Task ExecuteGotoItemCommandAsync(Item item)
{
await Main.Navigator.GotoMonsterDetailPageAsync(item as Monster);
}
}
}

View file

@ -14,8 +14,7 @@ namespace AideDeJeu.ViewModels
public interface INavigator
{
Task GotoAboutPageAsync();
Task GotoMonsterDetailPageAsync(Item item);
Task GotoSpellDetailPageAsync(Item item);
Task GotoItemDetailPageAsync(Item item);
}
public class Navigator : INavigator
{
@ -31,26 +30,14 @@ namespace AideDeJeu.ViewModels
await Navigation.PushAsync(new Views.AboutPage());
}
public async Task GotoMonsterDetailPageAsync(Item item)
public async Task GotoItemDetailPageAsync(Item item)
{
var monster = item as Monster;
if (item == null)
return;
var vm = new MonsterDetailViewModel(monster);
var vm = new ItemDetailViewModel(item);
vm.LoadItemCommand.Execute(null);
await Navigation.PushAsync(new MonsterDetailPage(vm));
}
public async Task GotoSpellDetailPageAsync(Item item)
{
var spell = item as Spell;
if (item == null)
return;
var vm = new SpellDetailViewModel(spell);
vm.LoadItemCommand.Execute(null);
await Navigation.PushAsync(new SpellDetailPage(vm));
await Navigation.PushAsync(new ItemDetailPage(vm));
}

View file

@ -1,110 +0,0 @@
using AideDeJeu.Tools;
using AideDeJeuLib.Spells;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace AideDeJeu.ViewModels
{
public class SpellDetailViewModel : BaseViewModel
{
Spell _Item = null;
public Spell Item
{
get { return _Item; }
set
{
SetProperty(ref _Item, value);
OnPropertyChanged(nameof(TypeLevel));
OnPropertyChanged(nameof(CastingTime));
OnPropertyChanged(nameof(Range));
OnPropertyChanged(nameof(Components));
OnPropertyChanged(nameof(Duration));
}
}
public FormattedString TypeLevel
{
get
{
var fd = FormatedTextHelpers.FontData.FromResource("contentital");
var fs = new FormattedString();
var capType = Item?.Type?.First().ToString()?.ToUpper() + Item?.Type?.Substring(1);
fs.Spans.Add(new Span() { Text = string.Format("{0} de niveau {1} {2}", capType, Item?.Level, Item?.Rituel), FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor});
return fs;
}
}
public FormattedString CastingTime
{
get
{
var fd = FormatedTextHelpers.FontData.FromResource("content");
var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
var fs = new FormattedString();
fs.Spans.Add(new Span() { Text = "Durée d'incantation : ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
fs.Spans.Add(new Span() { Text = Item.CastingTime, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
return fs;
}
}
public FormattedString Range
{
get
{
var fd = FormatedTextHelpers.FontData.FromResource("content");
var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
var fs = new FormattedString();
fs.Spans.Add(new Span() { Text = "Portée : ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
fs.Spans.Add(new Span() { Text = Item.Range, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
return fs;
}
}
public FormattedString Components
{
get
{
var fd = FormatedTextHelpers.FontData.FromResource("content");
var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
var fs = new FormattedString();
fs.Spans.Add(new Span() { Text = "Composantes : ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
fs.Spans.Add(new Span() { Text = Item.Components, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
return fs;
}
}
public FormattedString Duration
{
get
{
var fd = FormatedTextHelpers.FontData.FromResource("content");
var fdb = FormatedTextHelpers.FontData.FromResource("contentbold");
var fs = new FormattedString();
fs.Spans.Add(new Span() { Text = "Durée : ", FontFamily = fdb.FontFamily, FontAttributes = fdb.FontAttributes, FontSize = fdb.FontSize, ForegroundColor = fdb.TextColor });
fs.Spans.Add(new Span() { Text = Item.Duration, FontFamily = fd.FontFamily, FontAttributes = fd.FontAttributes, FontSize = fd.FontSize, ForegroundColor = fd.TextColor });
return fs;
}
}
public Command LoadItemCommand { get; set; }
public SpellDetailViewModel(Spell item = null)
{
Title = item?.Name;
Item = item;
LoadItemCommand = new Command(async () => await ExecuteLoadItemCommand());
}
async Task ExecuteLoadItemCommand()
{
}
}
}

View file

@ -1,27 +0,0 @@
using AideDeJeuLib;
using AideDeJeuLib.Spells;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.Serialization.Json;
using System.Threading.Tasks;
namespace AideDeJeu.ViewModels
{
public class SpellsViewModel : ItemsViewModel
{
public SpellsViewModel(ItemSourceType itemSourceType) : base(itemSourceType)
{
}
public override async Task ExecuteGotoItemCommandAsync(Item item)
{
await Main.Navigator.GotoSpellDetailPageAsync(item as Spell);
}
}
}

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:tools="clr-namespace:AideDeJeu.Tools"
xmlns:mdview="clr-namespace:Xam.Forms.Markdown"
x:Class="AideDeJeu.Views.ItemDetailPage"
Title="{Binding Title}">
<ContentPage.Resources>
<ResourceDictionary>
<tools:MonsterMarkdownTheme x:Key="MonsterMarkdownTheme" />
<tools:NullToFalseConverter x:Key="NullToFalseConverter" />
<tools:StringListToStringConverter x:Key="StringListToStringConverter" />
</ResourceDictionary>
</ContentPage.Resources>
<ScrollView Orientation="Vertical" BackgroundColor="#fdf1dc">
<StackLayout Orientation="Vertical" Padding="15">
<mdview:MarkdownView x:Name="mdMarkdown" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.Markdown}" />
</StackLayout>
</ScrollView>
</ContentPage>

View file

@ -12,19 +12,20 @@ using System.Linq;
using AideDeJeuLib.Spells;
using System.Text;
using System.Globalization;
using AideDeJeuLib;
namespace AideDeJeu.Views
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class MonsterDetailPage : ContentPage
public partial class ItemDetailPage : ContentPage
{
MonsterDetailViewModel viewModel;
ItemDetailViewModel viewModel;
public MonsterDetailPage(MonsterDetailViewModel viewModel)
public ItemDetailPage(ItemDetailViewModel itemVM)
{
InitializeComponent();
BindingContext = this.viewModel = viewModel;
BindingContext = this.viewModel = itemVM;
mdMarkdown.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s);
//mdNameVO.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s);
@ -34,7 +35,7 @@ namespace AideDeJeu.Views
//mdLegendaryActions.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s);
}
public MonsterDetailPage()
public ItemDetailPage()
{
InitializeComponent();
@ -45,7 +46,7 @@ namespace AideDeJeu.Views
//Description = "This is an item description."
};
viewModel = new MonsterDetailViewModel(item);
viewModel = new ItemDetailViewModel(item);
BindingContext = viewModel;
}

View file

@ -1,96 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:tools="clr-namespace:AideDeJeu.Tools"
xmlns:skia="clr-namespace:SkiaSharp.Views.Forms;assembly=SkiaSharp.Views.Forms"
xmlns:mdview="clr-namespace:Xam.Forms.Markdown"
x:Class="AideDeJeu.Views.MonsterDetailPage"
Title="{Binding Title}">
<ContentPage.Resources>
<ResourceDictionary>
<tools:MonsterMarkdownTheme x:Key="MonsterMarkdownTheme" />
<tools:NullToFalseConverter x:Key="NullToFalseConverter" />
<tools:StringListToStringConverter x:Key="StringListToStringConverter" />
</ResourceDictionary>
</ContentPage.Resources>
<ScrollView Orientation="Vertical" BackgroundColor="#fdf1dc">
<StackLayout Orientation="Vertical" Padding="15">
<mdview:MarkdownView x:Name="mdMarkdown" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.Markdown}" />
<!--<skia:SKCanvasView PaintSurface="PaintHeaderBar" HorizontalOptions="FillAndExpand" HeightRequest="8" />
<Label Text="{Binding Item.Name}" Style="{StaticResource Key=subsection}" />
<mdview:MarkdownView x:Name="mdNameVO" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.Markdown}" />
<Label FormattedText="{Binding TypeSizeAlignment}" />
<skia:SKCanvasView PaintSurface="PaintRedBar" HorizontalOptions="FillAndExpand" HeightRequest="8"/>
<Label FormattedText="{Binding ArmorClass}" Style="{StaticResource Key=content}" />
<Label FormattedText="{Binding HitPoints}" Style="{StaticResource Key=content}" />
<Label FormattedText="{Binding Speed}" Style="{StaticResource Key=content}" />
<skia:SKCanvasView PaintSurface="PaintRedBar" HorizontalOptions="FillAndExpand" HeightRequest="8"/>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0" Text="FOR" HorizontalTextAlignment="Center" Style="{StaticResource Key=content}" />
<Label Grid.Row="1" Grid.Column="0" Text="{Binding Item.Strength}" HorizontalTextAlignment="Center" Style="{StaticResource Key=content}" />
<Label Grid.Row="0" Grid.Column="1" Text="DEX" HorizontalTextAlignment="Center" Style="{StaticResource Key=content}" />
<Label Grid.Row="1" Grid.Column="1" Text="{Binding Item.Dexterity}" HorizontalTextAlignment="Center" Style="{StaticResource Key=content}" />
<Label Grid.Row="0" Grid.Column="2" Text="CON" HorizontalTextAlignment="Center" Style="{StaticResource Key=content}" />
<Label Grid.Row="1" Grid.Column="2" Text="{Binding Item.Constitution}" HorizontalTextAlignment="Center" Style="{StaticResource Key=content}" />
<Label Grid.Row="0" Grid.Column="3" Text="INT" HorizontalTextAlignment="Center" Style="{StaticResource Key=content}" />
<Label Grid.Row="1" Grid.Column="3" Text="{Binding Item.Intelligence}" HorizontalTextAlignment="Center" Style="{StaticResource Key=content}" />
<Label Grid.Row="0" Grid.Column="4" Text="SAG" HorizontalTextAlignment="Center" Style="{StaticResource Key=content}" />
<Label Grid.Row="1" Grid.Column="4" Text="{Binding Item.Wisdom}" HorizontalTextAlignment="Center" Style="{StaticResource Key=content}" />
<Label Grid.Row="0" Grid.Column="5" Text="CHA" HorizontalTextAlignment="Center" Style="{StaticResource Key=content}" />
<Label Grid.Row="1" Grid.Column="5" Text="{Binding Item.Charisma}" HorizontalTextAlignment="Center" Style="{StaticResource Key=content}" />
</Grid>
<skia:SKCanvasView PaintSurface="PaintRedBar" HorizontalOptions="FillAndExpand" HeightRequest="8"/>
<Label FormattedText="{Binding SavingThrows}" IsVisible="{Binding Item.SavingThrows, Converter={StaticResource NullToFalseConverter}}" Style="{StaticResource Key=content}" />
<Label FormattedText="{Binding Skills}" IsVisible="{Binding Item.Skills, Converter={StaticResource NullToFalseConverter}}" Style="{StaticResource Key=content}" />
<Label FormattedText="{Binding DamageVulnerabilities}" IsVisible="{Binding Item.DamageVulnerabilities, Converter={StaticResource NullToFalseConverter}}" Style="{StaticResource Key=content}" />
<Label FormattedText="{Binding DamageResistances}" IsVisible="{Binding Item.DamageResistances, Converter={StaticResource NullToFalseConverter}}" Style="{StaticResource Key=content}" />
<Label FormattedText="{Binding DamageImmunities}" IsVisible="{Binding Item.DamageImmunities, Converter={StaticResource NullToFalseConverter}}" Style="{StaticResource Key=content}" />
<Label FormattedText="{Binding ConditionImmunities}" IsVisible="{Binding Item.ConditionImmunities, Converter={StaticResource NullToFalseConverter}}" Style="{StaticResource Key=content}" />
<Label FormattedText="{Binding Senses}" IsVisible="{Binding Item.Senses, Converter={StaticResource NullToFalseConverter}}" Style="{StaticResource Key=content}" />
<Label FormattedText="{Binding Languages}" IsVisible="{Binding Item.Languages, Converter={StaticResource NullToFalseConverter}}" Style="{StaticResource Key=content}" />
<Label FormattedText="{Binding Challenge}" IsVisible="{Binding Item.Challenge, Converter={StaticResource NullToFalseConverter}}" Style="{StaticResource Key=content}" />
<skia:SKCanvasView PaintSurface="PaintRedBar" HorizontalOptions="FillAndExpand" HeightRequest="8"/>
<Label Text="Capacités" Style="{StaticResource Key=subsubsection}" IsVisible="{Binding Item.SpecialFeatures, Converter={StaticResource NullToFalseConverter}}" />
<mdview:MarkdownView x:Name="mdSpecialFeatures" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.SpecialFeatures, Converter={StaticResource StringListToStringConverter}}" IsVisible="{Binding Item.SpecialFeatures, Converter={StaticResource NullToFalseConverter}}" />
<Label Text="Actions" Style="{StaticResource Key=subsubsection}" IsVisible="{Binding Item.Actions, Converter={StaticResource NullToFalseConverter}}" />
<mdview:MarkdownView x:Name="mdActions" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.Actions, Converter={StaticResource StringListToStringConverter}}" IsVisible="{Binding Item.Actions, Converter={StaticResource NullToFalseConverter}}" />
<Label Text="Réactions" Style="{StaticResource Key=subsubsection}" IsVisible="{Binding Item.Reactions, Converter={StaticResource NullToFalseConverter}}" />
<mdview:MarkdownView x:Name="mdReactions" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.Reactions, Converter={StaticResource StringListToStringConverter}}" IsVisible="{Binding Item.Reactions, Converter={StaticResource NullToFalseConverter}}" />
<Label Text="Actions légendaires" Style="{StaticResource Key=subsubsection}" IsVisible="{Binding Item.LegendaryActions, Converter={StaticResource NullToFalseConverter}}" />
<mdview:MarkdownView x:Name="mdLegendaryActions" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.LegendaryActions, Converter={StaticResource StringListToStringConverter}}" IsVisible="{Binding Item.LegendaryActions, Converter={StaticResource NullToFalseConverter}}" />
<skia:SKCanvasView PaintSurface="PaintHeaderBar" HorizontalOptions="FillAndExpand" HeightRequest="8" />
<Label Text="{Binding Item.Description}" Style="{StaticResource Key=content}" />
<Label Text="{Binding Item.Legendary}" Style="{StaticResource Key=content}" />
<Label Text="{Binding Item.Source}" Style="{StaticResource Key=content}" />-->
</StackLayout>
</ScrollView>
</ContentPage>

View file

@ -1,39 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:tools="clr-namespace:AideDeJeu.Tools"
xmlns:mdview="clr-namespace:Xam.Forms.Markdown"
x:Class="AideDeJeu.Views.SpellDetailPage"
Title="{Binding Title}">
<ContentPage.Resources>
<ResourceDictionary>
<tools:MonsterMarkdownTheme x:Key="MonsterMarkdownTheme" />
<tools:NullToFalseConverter x:Key="NullToFalseConverter" />
<tools:StringListToStringConverter x:Key="StringListToStringConverter" />
</ResourceDictionary>
</ContentPage.Resources>
<ScrollView VerticalScrollBarVisibility="Default" HorizontalScrollBarVisibility="Default">
<StackLayout Orientation="Vertical" Padding="15">
<!--<Label Text="{Binding Item.Name}" Style="{StaticResource Key=subsection}" />
<mdview:MarkdownView x:Name="mdNameVO" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.NameVO}" />
<Label Text=" " />
<Label FormattedText="{Binding TypeLevel}" />
<Label FormattedText="{Binding CastingTime}" />
<Label FormattedText="{Binding Range}" />
<Label FormattedText="{Binding Components}" />
<Label FormattedText="{Binding Duration}" />
<Label Text=" " />-->
<mdview:MarkdownView x:Name="mdDescription" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.Markdown}" />
<!--<Label Text="{Binding Item.Source}" Style="{StaticResource Key=content}" />-->
</StackLayout>
</ScrollView>
</ContentPage>

View file

@ -1,46 +0,0 @@

using AideDeJeu.ViewModels;
using AideDeJeuLib.Spells;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace AideDeJeu.Views
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class SpellDetailPage : ContentPage
{
SpellDetailViewModel viewModel;
public SpellDetailPage(SpellDetailViewModel viewModel)
{
InitializeComponent();
BindingContext = this.viewModel = viewModel;
//mdNameVO.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s);
mdDescription.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s);
}
public SpellDetailPage()
{
InitializeComponent();
var item = new SpellHD
{
Name = "",
NameVO = "",
//Description = "This is an item description."
};
viewModel = new SpellDetailViewModel(item);
BindingContext = viewModel;
}
private void ListView_ItemTapped(object sender, ItemTappedEventArgs e)
{
if (e.Item == null) return;
((ListView)sender).SelectedItem = null;
}
}
}