mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-10-30 06:56:10 +00:00
Liens inter sorts <-> monstres qui fonctionnent :)
This commit is contained in:
parent
9828c9afe5
commit
5f6422bc3e
2 changed files with 55 additions and 2 deletions
|
|
@ -81,11 +81,11 @@
|
|||
|
||||
<Label Text="Capacités" Style="{StaticResource Key=subsubsection}" IsVisible="{Binding Item.SpecialFeatures, Converter={StaticResource NullToFalseConverter}}" />
|
||||
<!--<Label FormattedText="{Binding Item.SpecialFeatures, Converter={StaticResource HtmlNodesToFormattedStringConverter}}" IsVisible="{Binding Item.SpecialFeatures, Converter={StaticResource NullToFalseConverter}}" />-->
|
||||
<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.SpecialFeatures, Converter={StaticResource HtmlNodesToFormattedStringConverter}}" IsVisible="{Binding Item.SpecialFeatures, Converter={StaticResource NullToFalseConverter}}" />
|
||||
<mdview:MarkdownView x:Name="mdSpecialFeatures" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.SpecialFeatures, Converter={StaticResource HtmlNodesToFormattedStringConverter}}" IsVisible="{Binding Item.SpecialFeatures, Converter={StaticResource NullToFalseConverter}}" />
|
||||
|
||||
<Label Text="Actions" Style="{StaticResource Key=subsubsection}" IsVisible="{Binding Item.Actions, Converter={StaticResource NullToFalseConverter}}" />
|
||||
<!--<Label FormattedText="{Binding Item.Actions, Converter={StaticResource HtmlNodesToFormattedStringConverter}}" IsVisible="{Binding Item.Actions, Converter={StaticResource NullToFalseConverter}}" />-->
|
||||
<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.Actions, Converter={StaticResource HtmlNodesToFormattedStringConverter}}" IsVisible="{Binding Item.Actions, Converter={StaticResource NullToFalseConverter}}" />
|
||||
<mdview:MarkdownView x:Name="mdActions" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.Actions, Converter={StaticResource HtmlNodesToFormattedStringConverter}}" IsVisible="{Binding Item.Actions, Converter={StaticResource NullToFalseConverter}}" />
|
||||
|
||||
<Label Text="Réactions" Style="{StaticResource Key=subsubsection}" IsVisible="{Binding Item.Reactions, Converter={StaticResource NullToFalseConverter}}" />
|
||||
<!--<Label FormattedText="{Binding Item.Reactions, Converter={StaticResource HtmlNodesToFormattedStringConverter}}" IsVisible="{Binding Item.Reactions, Converter={StaticResource NullToFalseConverter}}" />-->
|
||||
|
|
|
|||
|
|
@ -4,8 +4,14 @@ using AideDeJeuLib.Monsters;
|
|||
using SkiaSharp;
|
||||
using SkiaSharp.Views.Forms;
|
||||
using System;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Xaml;
|
||||
using System.Linq;
|
||||
using AideDeJeuLib.Spells;
|
||||
using System.Text;
|
||||
using System.Globalization;
|
||||
|
||||
namespace AideDeJeu.Views
|
||||
{
|
||||
|
|
@ -19,8 +25,55 @@ namespace AideDeJeu.Views
|
|||
InitializeComponent();
|
||||
|
||||
BindingContext = this.viewModel = viewModel;
|
||||
|
||||
mdSpecialFeatures.NavigateToLink = async(s) => await NavigateToLink(s);
|
||||
mdActions.NavigateToLink = async (s) => await NavigateToLink(s);
|
||||
}
|
||||
|
||||
public async Task NavigateToLink(string s)
|
||||
{
|
||||
var regex = new Regex("/(?<file>.*)\\.md#(?<anchor>.*)");
|
||||
var match = regex.Match(s);
|
||||
var file = match.Groups["file"].Value;
|
||||
var anchor = match.Groups["anchor"].Value;
|
||||
if (file == "spells_hd")
|
||||
{
|
||||
var spells = await viewModel.Main.GetItemsViewModel(ItemSourceType.SpellHD).GetAllItemsAsync();
|
||||
var spell = spells.Where(i => IdFromName(i.Id) == anchor).FirstOrDefault();
|
||||
var page = new SpellDetailPage(new SpellDetailViewModel(spell as Spell));
|
||||
await Navigation.PushAsync(page);
|
||||
}
|
||||
else if (file == "monsters_hd")
|
||||
{
|
||||
var monsters = await viewModel.Main.GetItemsViewModel(ItemSourceType.MonsterHD).GetAllItemsAsync();
|
||||
var monster = monsters.Where(i => IdFromName(i.Id) == anchor).FirstOrDefault();
|
||||
var page = new MonsterDetailPage(new MonsterDetailViewModel(monster as Monster));
|
||||
await Navigation.PushAsync(page);
|
||||
}
|
||||
//Device.OpenUri(new Uri(s));
|
||||
}
|
||||
|
||||
public static string Capitalize(string text)
|
||||
{
|
||||
return string.Concat(text.Take(1)).ToUpper() + string.Concat(text.Skip(1)).ToString().ToLower();
|
||||
}
|
||||
|
||||
public static string RemoveDiacritics(string text)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(text))
|
||||
return text;
|
||||
|
||||
text = text.Normalize(NormalizationForm.FormD);
|
||||
var chars = text.Where(c => CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark).ToArray();
|
||||
return new string(chars).Normalize(NormalizationForm.FormC);
|
||||
}
|
||||
|
||||
static string IdFromName(string name)
|
||||
{
|
||||
return RemoveDiacritics(name.ToLower().Replace(" ", "-"));
|
||||
}
|
||||
|
||||
|
||||
public MonsterDetailPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue