mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-12-16 15:19:56 +00:00
Nouvelle navigation câblée
This commit is contained in:
parent
b560df7e37
commit
d8f6d3a8bd
9 changed files with 76 additions and 723 deletions
|
|
@ -51,7 +51,7 @@ namespace AideDeJeuLib
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var paragraphBlock = block as Markdig.Syntax.ParagraphBlock;
|
var paragraphBlock = block as Markdig.Syntax.ParagraphBlock;
|
||||||
this.Text += MarkdownExtensions.MarkdownToHtml(paragraphBlock.ToMarkdownString()) + "\n";
|
this.Text += paragraphBlock.ToMarkdownString() + "\n";
|
||||||
}
|
}
|
||||||
if (block is Markdig.Syntax.ListBlock)
|
if (block is Markdig.Syntax.ListBlock)
|
||||||
{
|
{
|
||||||
|
|
@ -107,7 +107,7 @@ namespace AideDeJeuLib
|
||||||
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
||||||
{
|
{
|
||||||
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
||||||
this.Text += listBlock.BulletType + " " + MarkdownExtensions.MarkdownToHtml(paragraphBlock.ToMarkdownString()) + "\n";
|
this.Text += listBlock.BulletType + " " + paragraphBlock.ToMarkdownString() + "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,16 +4,6 @@ using System.Xml;
|
||||||
|
|
||||||
namespace AideDeJeuLib
|
namespace AideDeJeuLib
|
||||||
{
|
{
|
||||||
public class Property : Dictionary<string, string>
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public class Properties : Dictionary<string, Property>
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract class Item
|
public abstract class Item
|
||||||
{
|
{
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
@ -28,8 +18,6 @@ namespace AideDeJeuLib
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//public Properties Properties { get; set; }
|
|
||||||
|
|
||||||
public abstract string Markdown { get; }
|
public abstract string Markdown { get; }
|
||||||
public abstract void Parse(ref Markdig.Syntax.ContainerBlock.Enumerator enumerator);
|
public abstract void Parse(ref Markdig.Syntax.ContainerBlock.Enumerator enumerator);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ namespace AideDeJeuLib
|
||||||
}
|
}
|
||||||
var paragraphBlock = block as Markdig.Syntax.ParagraphBlock;
|
var paragraphBlock = block as Markdig.Syntax.ParagraphBlock;
|
||||||
|
|
||||||
this.DescriptionHtml += MarkdownExtensions.MarkdownToHtml(paragraphBlock.ToMarkdownString()) + "\n";
|
this.DescriptionHtml += paragraphBlock.ToMarkdownString() + "\n";
|
||||||
////DumpParagraphBlock(paragraphBlock);
|
////DumpParagraphBlock(paragraphBlock);
|
||||||
//Console.WriteLine(paragraphBlock.IsBreakable);
|
//Console.WriteLine(paragraphBlock.IsBreakable);
|
||||||
//spell.DescriptionHtml += paragraphBlock.Inline.ToContainerString();
|
//spell.DescriptionHtml += paragraphBlock.Inline.ToContainerString();
|
||||||
|
|
@ -126,7 +126,7 @@ namespace AideDeJeuLib
|
||||||
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
||||||
{
|
{
|
||||||
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
||||||
this.DescriptionHtml += listBlock.BulletType + " " + MarkdownExtensions.MarkdownToHtml(paragraphBlock.ToMarkdownString()) + "\n";
|
this.DescriptionHtml += listBlock.BulletType + " " + paragraphBlock.ToMarkdownString() + "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,44 +6,16 @@ using Markdig;
|
||||||
using AideDeJeuLib;
|
using AideDeJeuLib;
|
||||||
using Markdig.Syntax;
|
using Markdig.Syntax;
|
||||||
using Markdig.Syntax.Inlines;
|
using Markdig.Syntax.Inlines;
|
||||||
|
using Markdig.Parsers;
|
||||||
|
|
||||||
namespace AideDeJeu.Tools
|
namespace AideDeJeu.Tools
|
||||||
{
|
{
|
||||||
public static class MarkdownExtensions
|
public static class MarkdownExtensions
|
||||||
{
|
{
|
||||||
public static IEnumerable<TSpell> MarkdownToSpells<TSpell>(string md) where TSpell : Spell, new()
|
|
||||||
{
|
|
||||||
var pipeline = new MarkdownPipelineBuilder().UsePipeTables().Build();
|
|
||||||
var document = Markdig.Parsers.MarkdownParser.Parse(md, pipeline);
|
|
||||||
return document.ToSpells<TSpell>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static IEnumerable<Monster> MarkdownToMonsters<TMonster>(string md) where TMonster : Monster, new()
|
|
||||||
{
|
|
||||||
var pipeline = new MarkdownPipelineBuilder().UsePipeTables().Build();
|
|
||||||
var document = Markdig.Parsers.MarkdownParser.Parse(md, pipeline);
|
|
||||||
return document.ToMonsters<TMonster>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static IEnumerable<TCondition> MarkdownToConditions<TCondition>(string md) where TCondition : Condition, new()
|
|
||||||
{
|
|
||||||
var pipeline = new MarkdownPipelineBuilder().UsePipeTables().Build();
|
|
||||||
var document = Markdig.Parsers.MarkdownParser.Parse(md, pipeline);
|
|
||||||
return document.ToConditions<TCondition>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string MarkdownToHtml(string md)
|
|
||||||
{
|
|
||||||
//var pipeline = new MarkdownPipelineBuilder().UsePipeTables().Build();
|
|
||||||
//return Markdown.ToHtml(md, pipeline);
|
|
||||||
return md;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Item ToItem(string md)
|
public static Item ToItem(string md)
|
||||||
{
|
{
|
||||||
var pipeline = new MarkdownPipelineBuilder().UsePipeTables().Build();
|
var pipeline = new MarkdownPipelineBuilder().UsePipeTables().Build();
|
||||||
var document = Markdig.Parsers.MarkdownParser.Parse(md, pipeline);
|
var document = MarkdownParser.Parse(md, pipeline);
|
||||||
|
|
||||||
var enumerator = document.GetEnumerator();
|
var enumerator = document.GetEnumerator();
|
||||||
try
|
try
|
||||||
|
|
@ -53,7 +25,7 @@ namespace AideDeJeu.Tools
|
||||||
{
|
{
|
||||||
var block = enumerator.Current;
|
var block = enumerator.Current;
|
||||||
|
|
||||||
if (enumerator.Current is Markdig.Syntax.ParagraphBlock)
|
if (enumerator.Current is ParagraphBlock)
|
||||||
{
|
{
|
||||||
if(block.IsNewItem())
|
if(block.IsNewItem())
|
||||||
{
|
{
|
||||||
|
|
@ -108,565 +80,6 @@ namespace AideDeJeu.Tools
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IEnumerable<TSpell> ToSpells<TSpell>(this Markdig.Syntax.MarkdownDocument document) where TSpell : Spell, new()
|
|
||||||
{
|
|
||||||
var spells = new List<TSpell>();
|
|
||||||
TSpell spell = null;
|
|
||||||
foreach (var block in document)
|
|
||||||
{
|
|
||||||
//DumpBlock(block);
|
|
||||||
if (block is Markdig.Syntax.HeadingBlock)
|
|
||||||
{
|
|
||||||
var headingBlock = block as Markdig.Syntax.HeadingBlock;
|
|
||||||
//DumpHeadingBlock(headingBlock);
|
|
||||||
if (headingBlock.HeaderChar == '#' && headingBlock.Level == 1)
|
|
||||||
{
|
|
||||||
if (spell != null)
|
|
||||||
{
|
|
||||||
spells.Add(spell);
|
|
||||||
//yield return spell;
|
|
||||||
}
|
|
||||||
spell = new TSpell();
|
|
||||||
spell.Name = headingBlock.Inline.ToMarkdownString();
|
|
||||||
//Console.WriteLine(spell.Name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (block is Markdig.Syntax.ParagraphBlock)
|
|
||||||
{
|
|
||||||
var paragraphBlock = block as Markdig.Syntax.ParagraphBlock;
|
|
||||||
spell.DescriptionHtml += MarkdownToHtml(paragraphBlock.ToMarkdownString()) + "\n";
|
|
||||||
////DumpParagraphBlock(paragraphBlock);
|
|
||||||
//Console.WriteLine(paragraphBlock.IsBreakable);
|
|
||||||
//spell.DescriptionHtml += paragraphBlock.Inline.ToContainerString();
|
|
||||||
//if(paragraphBlock.IsBreakable)
|
|
||||||
//{
|
|
||||||
// spell.DescriptionHtml += "\n";
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
if (block is Markdig.Syntax.ListBlock)
|
|
||||||
{
|
|
||||||
var listBlock = block as Markdig.Syntax.ListBlock;
|
|
||||||
//DumpListBlock(listBlock);
|
|
||||||
if (listBlock.BulletType == '-')
|
|
||||||
{
|
|
||||||
spell.Source = "";
|
|
||||||
foreach (var inblock in listBlock)
|
|
||||||
{
|
|
||||||
//DumpBlock(inblock);
|
|
||||||
var regex = new Regex("(?<key>.*?): (?<value>.*)");
|
|
||||||
if (inblock is Markdig.Syntax.ListItemBlock)
|
|
||||||
{
|
|
||||||
var listItemBlock = inblock as Markdig.Syntax.ListItemBlock;
|
|
||||||
foreach (var ininblock in listItemBlock)
|
|
||||||
{
|
|
||||||
//DumpBlock(ininblock);
|
|
||||||
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
|
||||||
{
|
|
||||||
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
|
||||||
//DumpParagraphBlock(paragraphBlock);
|
|
||||||
var str = paragraphBlock.Inline.ToMarkdownString();
|
|
||||||
|
|
||||||
var properties = new List<Tuple<string, Action<TSpell, string>>>()
|
|
||||||
{
|
|
||||||
new Tuple<string, Action<TSpell, string>>("NameVO: ", (m, s) => m.NameVO = s),
|
|
||||||
new Tuple<string, Action<TSpell, string>>("CastingTime: ", (m, s) => m.CastingTime = s),
|
|
||||||
new Tuple<string, Action<TSpell, string>>("Components: ", (m, s) => m.Components = s),
|
|
||||||
new Tuple<string, Action<TSpell, string>>("Duration: ", (m, s) => m.Duration = s),
|
|
||||||
new Tuple<string, Action<TSpell, string>>("LevelType: ", (m, s) => m.LevelType = s),
|
|
||||||
new Tuple<string, Action<TSpell, string>>("Range: ", (m, s) => m.Range = s),
|
|
||||||
new Tuple<string, Action<TSpell, string>>("Source: ", (m, s) => m.Source = s),
|
|
||||||
new Tuple<string, Action<TSpell, string>>("Classes: ", (m, s) => m.Source += s),
|
|
||||||
new Tuple<string, Action<TSpell, string>>("", (m,s) =>
|
|
||||||
{
|
|
||||||
//if (m.Alignment != null)
|
|
||||||
//{
|
|
||||||
//App.Current.MainPage.DisplayAlert("Erreur de parsing", s, "OK");
|
|
||||||
//}
|
|
||||||
////Debug.Assert(monster.Alignment == null, str);
|
|
||||||
//var regexx = new Regex("(?<type>.*) de taille (?<size>.*), (?<alignment>.*)");
|
|
||||||
//var matchh = regexx.Match(s);
|
|
||||||
//m.Alignment = matchh.Groups["alignment"].Value;
|
|
||||||
//m.Size = matchh.Groups["size"].Value;
|
|
||||||
//m.Type = matchh.Groups["type"].Value;
|
|
||||||
})
|
|
||||||
};
|
|
||||||
|
|
||||||
foreach (var property in properties)
|
|
||||||
{
|
|
||||||
if (str.StartsWith(property.Item1))
|
|
||||||
{
|
|
||||||
property.Item2.Invoke(spell, str.Substring(property.Item1.Length));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*var match = regex.Match(str);
|
|
||||||
var key = match.Groups["key"].Value;
|
|
||||||
var value = match.Groups["value"].Value;
|
|
||||||
switch (key)
|
|
||||||
{
|
|
||||||
case "NameVO":
|
|
||||||
spell.NameVO = value;
|
|
||||||
break;
|
|
||||||
case "CastingTime":
|
|
||||||
spell.CastingTime = value;
|
|
||||||
break;
|
|
||||||
case "Components":
|
|
||||||
spell.Components = value;
|
|
||||||
break;
|
|
||||||
case "Duration":
|
|
||||||
spell.Duration = value;
|
|
||||||
break;
|
|
||||||
case "LevelType":
|
|
||||||
spell.LevelType = value;
|
|
||||||
break;
|
|
||||||
case "Range":
|
|
||||||
spell.Range = value;
|
|
||||||
break;
|
|
||||||
case "Source":
|
|
||||||
spell.Source += value + " ";
|
|
||||||
break;
|
|
||||||
case "Classes":
|
|
||||||
spell.Source += value;
|
|
||||||
break;
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//DumpListItemBlock(inblock as Markdig.Syntax.ListItemBlock);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
foreach (var inblock in listBlock)
|
|
||||||
{
|
|
||||||
if (inblock is Markdig.Syntax.ListItemBlock)
|
|
||||||
{
|
|
||||||
var listItemBlock = inblock as Markdig.Syntax.ListItemBlock;
|
|
||||||
foreach (var ininblock in listItemBlock)
|
|
||||||
{
|
|
||||||
//DumpBlock(ininblock);
|
|
||||||
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
|
||||||
{
|
|
||||||
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
|
||||||
spell.DescriptionHtml += listBlock.BulletType + " " + MarkdownToHtml(paragraphBlock.ToMarkdownString()) + "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (block is Markdig.Extensions.Tables.Table)
|
|
||||||
{
|
|
||||||
var tableBlock = block as Markdig.Extensions.Tables.Table;
|
|
||||||
spell.DescriptionHtml += "\n\n" + tableBlock.ToMarkdownString() + "\n\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
if (spell != null)
|
|
||||||
{
|
|
||||||
//yield return spell;
|
|
||||||
spells.Add(spell);
|
|
||||||
}
|
|
||||||
return spells;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static IEnumerable<TMonster> ToMonsters<TMonster>(this Markdig.Syntax.MarkdownDocument document) where TMonster : Monster, new()
|
|
||||||
{
|
|
||||||
var monsters = new List<TMonster>();
|
|
||||||
TMonster monster = null;
|
|
||||||
List<string> features = null;
|
|
||||||
List<string> specialFeatures = null;
|
|
||||||
List<string> actions = null;
|
|
||||||
List<string> reactions = null;
|
|
||||||
List<string> legendaryActions = null;
|
|
||||||
foreach (var block in document)
|
|
||||||
{
|
|
||||||
//Debug.WriteLine(block.GetType());
|
|
||||||
//DumpBlock(block);
|
|
||||||
if (block is Markdig.Syntax.HeadingBlock)
|
|
||||||
{
|
|
||||||
var headingBlock = block as Markdig.Syntax.HeadingBlock;
|
|
||||||
//DumpHeadingBlock(headingBlock);
|
|
||||||
if (headingBlock.HeaderChar == '#' && headingBlock.Level == 1)
|
|
||||||
{
|
|
||||||
if (monster != null)
|
|
||||||
{
|
|
||||||
monster.SpecialFeatures = specialFeatures;
|
|
||||||
monster.Actions = actions;
|
|
||||||
monster.Reactions = reactions;
|
|
||||||
monster.LegendaryActions = legendaryActions;
|
|
||||||
specialFeatures = null;
|
|
||||||
actions = null;
|
|
||||||
reactions = null;
|
|
||||||
legendaryActions = null;
|
|
||||||
features = null;
|
|
||||||
monsters.Add(monster);
|
|
||||||
//yield return monster;
|
|
||||||
}
|
|
||||||
monster = new TMonster();
|
|
||||||
monster.Name = headingBlock.Inline.ToMarkdownString();
|
|
||||||
//Console.WriteLine(spell.Name);
|
|
||||||
}
|
|
||||||
if (headingBlock.HeaderChar == '#' && headingBlock.Level == 2)
|
|
||||||
{
|
|
||||||
switch (headingBlock.Inline.ToMarkdownString())
|
|
||||||
{
|
|
||||||
case "Capacités":
|
|
||||||
case "Special Features":
|
|
||||||
features = specialFeatures = new List<string>();
|
|
||||||
break;
|
|
||||||
case "Actions":
|
|
||||||
features = actions = new List<string>();
|
|
||||||
break;
|
|
||||||
case "Réaction":
|
|
||||||
case "Réactions":
|
|
||||||
case "Reaction":
|
|
||||||
case "Reactions":
|
|
||||||
features = reactions = new List<string>();
|
|
||||||
break;
|
|
||||||
case "Actions légendaires":
|
|
||||||
case "Legendary Actions":
|
|
||||||
features = legendaryActions = new List<string>();
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
App.Current.MainPage.DisplayAlert("Erreur de parsing", headingBlock.Inline.ToMarkdownString(), "OK");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (block is Markdig.Syntax.ParagraphBlock)
|
|
||||||
{
|
|
||||||
var paragraphBlock = block as Markdig.Syntax.ParagraphBlock;
|
|
||||||
features?.Add(paragraphBlock.ToMarkdownString());
|
|
||||||
////DumpParagraphBlock(paragraphBlock);
|
|
||||||
//Console.WriteLine(paragraphBlock.IsBreakable);
|
|
||||||
//spell.DescriptionHtml += paragraphBlock.Inline.ToContainerString();
|
|
||||||
//if(paragraphBlock.IsBreakable)
|
|
||||||
//{
|
|
||||||
// spell.DescriptionHtml += "\n";
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
else if (block is Markdig.Syntax.ListBlock)
|
|
||||||
{
|
|
||||||
var listBlock = block as Markdig.Syntax.ListBlock;
|
|
||||||
//DumpListBlock(listBlock);
|
|
||||||
if (listBlock.BulletType == '-')
|
|
||||||
{
|
|
||||||
monster.Source = "";
|
|
||||||
foreach (var inblock in listBlock)
|
|
||||||
{
|
|
||||||
//DumpBlock(inblock);
|
|
||||||
var regex = new Regex("(?<key>.*?): (?<value>.*)");
|
|
||||||
if (inblock is Markdig.Syntax.ListItemBlock)
|
|
||||||
{
|
|
||||||
var listItemBlock = inblock as Markdig.Syntax.ListItemBlock;
|
|
||||||
foreach (var ininblock in listItemBlock)
|
|
||||||
{
|
|
||||||
//DumpBlock(ininblock);
|
|
||||||
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
|
||||||
{
|
|
||||||
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
|
||||||
//DumpParagraphBlock(paragraphBlock);
|
|
||||||
var str = paragraphBlock.Inline.ToMarkdownString();
|
|
||||||
|
|
||||||
var properties = new List<Tuple<string, Action<Monster, string>>>()
|
|
||||||
{
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Classe d'armure** ", (m, s) => m.ArmorClass = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Points de vie** ", (m, s) => m.HitPoints = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Vitesse** ", (m, s) => m.Speed = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Résistance aux dégâts** ", (m, s) => m.DamageResistances = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Résistances aux dégâts** ", (m, s) => m.DamageResistances = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Résistance contre les dégâts** ", (m, s) => m.DamageResistances = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Résistances contre les dégâts** ", (m, s) => m.DamageResistances = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Immunité contre les dégâts** ", (m, s) => m.DamageImmunities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Immunité contre des dégâts** ", (m, s) => m.DamageImmunities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Immunité aux dégâts** ", (m, s) => m.DamageImmunities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Immunité à l'état** ", (m, s) => m.ConditionImmunities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Immunités à l'état** ", (m, s) => m.ConditionImmunities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Immunité contre l'état** ", (m, s) => m.ConditionImmunities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Immunité contre les états** ", (m, s) => m.ConditionImmunities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Immunités contre les états** ", (m, s) => m.ConditionImmunities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Vulnérabilité aux dégâts** ", (m, s) => m.DamageVulnerabilities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Vulnérabilité contre les dégâts** ", (m, s) => m.DamageVulnerabilities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Vulnérabilité** ", (m, s) => m.DamageVulnerabilities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Sens** ", (m, s) => m.Senses = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Langue** ", (m, s) => m.Languages = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Langues** ", (m, s) => m.Languages = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Dangerosité** ", (m, s) => m.Challenge = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Jets de sauvegarde** ", (m, s) => m.SavingThrows = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Jet de sauvegarde** ", (m, s) => m.SavingThrows = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Compétences** ", (m, s) => m.Skills = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Compétence** ", (m, s) => m.Skills = s),
|
|
||||||
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Armor Class** ", (m, s) => m.ArmorClass = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Hit Points** ", (m, s) => m.HitPoints = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Speed** ", (m, s) => m.Speed = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Damage Resistance** ", (m, s) => m.DamageResistances = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Damage Resistances** ", (m, s) => m.DamageResistances = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Résistance contre les dégâts** ", (m, s) => m.DamageResistances = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Résistances contre les dégâts** ", (m, s) => m.DamageResistances = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Damage Immunities** ", (m, s) => m.DamageImmunities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Immunité contre des dégâts** ", (m, s) => m.DamageImmunities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Immunité aux dégâts** ", (m, s) => m.DamageImmunities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Condition Immunities** ", (m, s) => m.ConditionImmunities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Immunités à l'état** ", (m, s) => m.ConditionImmunities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Immunité contre l'état** ", (m, s) => m.ConditionImmunities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Immunité contre les états** ", (m, s) => m.ConditionImmunities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Immunités contre les états** ", (m, s) => m.ConditionImmunities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Damage Vulnerabilities** ", (m, s) => m.DamageVulnerabilities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Vulnérabilité contre les dégâts** ", (m, s) => m.DamageVulnerabilities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Vulnérabilité** ", (m, s) => m.DamageVulnerabilities = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Senses** ", (m, s) => m.Senses = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Languages** ", (m, s) => m.Languages = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Langues** ", (m, s) => m.Languages = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Challenge** ", (m, s) => m.Challenge = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Saving Throws** ", (m, s) => m.SavingThrows = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Jet de sauvegarde** ", (m, s) => m.SavingThrows = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Skills** ", (m, s) => m.Skills = s),
|
|
||||||
new Tuple<string, Action<Monster, string>>("**Compétence** ", (m, s) => m.Skills = s),
|
|
||||||
|
|
||||||
new Tuple<string, Action<Monster, string>>("NameVO: ", (m, s) => m.NameVO = s),
|
|
||||||
|
|
||||||
new Tuple<string, Action<Monster, string>>("", (m,s) =>
|
|
||||||
{
|
|
||||||
if (!string.IsNullOrEmpty(m.Alignment))
|
|
||||||
{
|
|
||||||
App.Current.MainPage.DisplayAlert("Erreur de parsing", s, "OK");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//Debug.Assert(monster.Alignment == null, str);
|
|
||||||
var regexx = new Regex("(?<type>.*) de taille (?<size>.*), (?<alignment>.*)");
|
|
||||||
var matchh = regexx.Match(s);
|
|
||||||
m.Alignment = matchh.Groups["alignment"].Value;
|
|
||||||
m.Size = matchh.Groups["size"].Value;
|
|
||||||
m.Type = matchh.Groups["type"].Value;
|
|
||||||
if(string.IsNullOrEmpty(m.Alignment))
|
|
||||||
{
|
|
||||||
regexx = new Regex("(?<size>.*?) (?<type>.*?), (?<alignment>.*)");
|
|
||||||
matchh = regexx.Match(s);
|
|
||||||
m.Alignment = matchh.Groups["alignment"].Value;
|
|
||||||
m.Size = matchh.Groups["size"].Value;
|
|
||||||
m.Type = matchh.Groups["type"].Value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
};
|
|
||||||
|
|
||||||
foreach (var property in properties)
|
|
||||||
{
|
|
||||||
if (str.StartsWith(property.Item1))
|
|
||||||
{
|
|
||||||
property.Item2.Invoke(monster, str.Substring(property.Item1.Length));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//DumpListItemBlock(inblock as Markdig.Syntax.ListItemBlock);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
foreach (var inblock in listBlock)
|
|
||||||
{
|
|
||||||
if (inblock is Markdig.Syntax.ListItemBlock)
|
|
||||||
{
|
|
||||||
var listItemBlock = inblock as Markdig.Syntax.ListItemBlock;
|
|
||||||
foreach (var ininblock in listItemBlock)
|
|
||||||
{
|
|
||||||
//DumpBlock(ininblock);
|
|
||||||
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
|
||||||
{
|
|
||||||
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
|
||||||
features?.Add(listBlock.BulletType + " " + paragraphBlock.ToMarkdownString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (block is Markdig.Extensions.Tables.Table)
|
|
||||||
{
|
|
||||||
var tableBlock = block as Markdig.Extensions.Tables.Table;
|
|
||||||
var table = tableBlock.ToTable();
|
|
||||||
if (table.ContainsKey("FOR"))
|
|
||||||
{
|
|
||||||
monster.Strength = table["FOR"].FirstOrDefault();
|
|
||||||
monster.Dexterity = table["DEX"].FirstOrDefault();
|
|
||||||
monster.Constitution = table["CON"].FirstOrDefault();
|
|
||||||
monster.Intelligence = table["INT"].FirstOrDefault();
|
|
||||||
monster.Wisdom = table["SAG"].FirstOrDefault();
|
|
||||||
monster.Charisma = table["CHA"].FirstOrDefault();
|
|
||||||
}
|
|
||||||
else if (table.ContainsKey("STR"))
|
|
||||||
{
|
|
||||||
monster.Strength = table["STR"].FirstOrDefault();
|
|
||||||
monster.Dexterity = table["DEX"].FirstOrDefault();
|
|
||||||
monster.Constitution = table["CON"].FirstOrDefault();
|
|
||||||
monster.Intelligence = table["INT"].FirstOrDefault();
|
|
||||||
monster.Wisdom = table["WIS"].FirstOrDefault();
|
|
||||||
monster.Charisma = table["CHA"].FirstOrDefault();
|
|
||||||
}
|
|
||||||
//else
|
|
||||||
//{
|
|
||||||
features?.Add(tableBlock.ToMarkdownString());
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
else if (block is Markdig.Syntax.LinkReferenceDefinitionGroup)
|
|
||||||
{
|
|
||||||
|
|
||||||
var linkReferenceDefinitionGroup = block as Markdig.Syntax.LinkReferenceDefinitionGroup;
|
|
||||||
|
|
||||||
foreach (var linkBlock in linkReferenceDefinitionGroup)
|
|
||||||
{
|
|
||||||
var linkReferenceDefinition = linkBlock as Markdig.Syntax.LinkReferenceDefinition;
|
|
||||||
//linkReferenceDefinition.
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (block is Markdig.Syntax.LinkReferenceDefinition)
|
|
||||||
{
|
|
||||||
//Debug.WriteLine(block.GetType());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//Debug.WriteLine(block.GetType());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (monster != null)
|
|
||||||
{
|
|
||||||
monster.SpecialFeatures = specialFeatures;
|
|
||||||
monster.Actions = actions;
|
|
||||||
monster.Reactions = reactions;
|
|
||||||
monster.LegendaryActions = legendaryActions;
|
|
||||||
monsters.Add(monster);
|
|
||||||
//yield return monster;
|
|
||||||
}
|
|
||||||
return monsters;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static IEnumerable<TCondition> ToConditions<TCondition>(this Markdig.Syntax.MarkdownDocument document) where TCondition : Condition, new()
|
|
||||||
{
|
|
||||||
var spells = new List<TCondition>();
|
|
||||||
TCondition spell = null;
|
|
||||||
foreach (var block in document)
|
|
||||||
{
|
|
||||||
//DumpBlock(block);
|
|
||||||
if (block is Markdig.Syntax.HeadingBlock)
|
|
||||||
{
|
|
||||||
var headingBlock = block as Markdig.Syntax.HeadingBlock;
|
|
||||||
//DumpHeadingBlock(headingBlock);
|
|
||||||
if (headingBlock.HeaderChar == '#' && (headingBlock.Level == 1 || headingBlock.Level == 2))
|
|
||||||
{
|
|
||||||
if (spell != null)
|
|
||||||
{
|
|
||||||
spells.Add(spell);
|
|
||||||
//yield return spell;
|
|
||||||
}
|
|
||||||
spell = new TCondition();
|
|
||||||
spell.Name = headingBlock.Inline.ToMarkdownString();
|
|
||||||
//Console.WriteLine(spell.Name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (block is Markdig.Syntax.ParagraphBlock)
|
|
||||||
{
|
|
||||||
var paragraphBlock = block as Markdig.Syntax.ParagraphBlock;
|
|
||||||
spell.Text += MarkdownToHtml(paragraphBlock.ToMarkdownString()) + "\n";
|
|
||||||
}
|
|
||||||
if (block is Markdig.Syntax.ListBlock)
|
|
||||||
{
|
|
||||||
var listBlock = block as Markdig.Syntax.ListBlock;
|
|
||||||
//DumpListBlock(listBlock);
|
|
||||||
if (listBlock.BulletType == '-')
|
|
||||||
{
|
|
||||||
foreach (var inblock in listBlock)
|
|
||||||
{
|
|
||||||
//DumpBlock(inblock);
|
|
||||||
var regex = new Regex("(?<key>.*?): (?<value>.*)");
|
|
||||||
if (inblock is Markdig.Syntax.ListItemBlock)
|
|
||||||
{
|
|
||||||
var listItemBlock = inblock as Markdig.Syntax.ListItemBlock;
|
|
||||||
foreach (var ininblock in listItemBlock)
|
|
||||||
{
|
|
||||||
//DumpBlock(ininblock);
|
|
||||||
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
|
||||||
{
|
|
||||||
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
|
||||||
//DumpParagraphBlock(paragraphBlock);
|
|
||||||
var str = paragraphBlock.Inline.ToMarkdownString();
|
|
||||||
|
|
||||||
var properties = new List<Tuple<string, Action<TCondition, string>>>()
|
|
||||||
{
|
|
||||||
new Tuple<string, Action<TCondition, string>>("NameVO: ", (m, s) => m.NameVO = s),
|
|
||||||
};
|
|
||||||
|
|
||||||
foreach (var property in properties)
|
|
||||||
{
|
|
||||||
if (str.StartsWith(property.Item1))
|
|
||||||
{
|
|
||||||
property.Item2.Invoke(spell, str.Substring(property.Item1.Length));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
foreach (var inblock in listBlock)
|
|
||||||
{
|
|
||||||
if (inblock is Markdig.Syntax.ListItemBlock)
|
|
||||||
{
|
|
||||||
var listItemBlock = inblock as Markdig.Syntax.ListItemBlock;
|
|
||||||
foreach (var ininblock in listItemBlock)
|
|
||||||
{
|
|
||||||
//DumpBlock(ininblock);
|
|
||||||
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
|
||||||
{
|
|
||||||
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
|
||||||
spell.Text += listBlock.BulletType + " " + MarkdownToHtml(paragraphBlock.ToMarkdownString()) + "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (block is Markdig.Extensions.Tables.Table)
|
|
||||||
{
|
|
||||||
var tableBlock = block as Markdig.Extensions.Tables.Table;
|
|
||||||
spell.Text += "\n\n" + tableBlock.ToMarkdownString() + "\n\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
if (spell != null)
|
|
||||||
{
|
|
||||||
//yield return spell;
|
|
||||||
spells.Add(spell);
|
|
||||||
}
|
|
||||||
return spells;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static string ToMarkdownString(this Markdig.Syntax.Inlines.ContainerInline inlines)
|
public static string ToMarkdownString(this Markdig.Syntax.Inlines.ContainerInline inlines)
|
||||||
|
|
@ -802,89 +215,5 @@ namespace AideDeJeu.Tools
|
||||||
}
|
}
|
||||||
return table;
|
return table;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string HtmlToMarkdownString(string html)
|
|
||||||
{
|
|
||||||
return html
|
|
||||||
.Replace("\n", "\n\n")
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void Dump(this Markdig.Syntax.ParagraphBlock block)
|
|
||||||
{
|
|
||||||
//if (block.Lines != null)
|
|
||||||
//{
|
|
||||||
// foreach (var line in block.Lines)
|
|
||||||
// {
|
|
||||||
// var stringline = line as Markdig.Helpers.StringLine?;
|
|
||||||
// Debug.WriteLine(stringline.ToString());
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
public static void Dump(this Markdig.Syntax.ListBlock block)
|
|
||||||
{
|
|
||||||
//Debug.WriteLine(block.BulletType);
|
|
||||||
foreach (var inblock in block)
|
|
||||||
{
|
|
||||||
inblock.Dump();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public static void Dump(Markdig.Syntax.ListItemBlock block)
|
|
||||||
{
|
|
||||||
foreach (var inblock in block)
|
|
||||||
{
|
|
||||||
inblock.Dump();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public static void Dump(this Markdig.Syntax.HeadingBlock block)
|
|
||||||
{
|
|
||||||
//Debug.WriteLine(block.HeaderChar);
|
|
||||||
//Debug.WriteLine(block.Level);
|
|
||||||
//foreach(var line in block.Lines.Lines)
|
|
||||||
//{
|
|
||||||
// DumpStringLine(line);
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
public static void Dump(this Markdig.Helpers.StringLine line)
|
|
||||||
{
|
|
||||||
Console.WriteLine(line.ToString());
|
|
||||||
}
|
|
||||||
public static void Dump(this Markdig.Syntax.Block block)
|
|
||||||
{
|
|
||||||
//Debug.WriteLine(block.Column);
|
|
||||||
//Debug.WriteLine(block.IsBreakable);
|
|
||||||
//Debug.WriteLine(block.IsOpen);
|
|
||||||
//Debug.WriteLine(block.Line);
|
|
||||||
//Debug.WriteLine(block.RemoveAfterProcessInlines);
|
|
||||||
//Debug.WriteLine(block.Span.ToString());
|
|
||||||
//Debug.WriteLine(block.Span.ToString(MD));
|
|
||||||
//Debug.WriteLine(block.ToString());
|
|
||||||
if (block is Markdig.Syntax.ParagraphBlock)
|
|
||||||
{
|
|
||||||
(block as Markdig.Syntax.ParagraphBlock).Dump();
|
|
||||||
}
|
|
||||||
if (block is Markdig.Syntax.ListBlock)
|
|
||||||
{
|
|
||||||
(block as Markdig.Syntax.ListBlock).Dump();
|
|
||||||
}
|
|
||||||
if (block is Markdig.Syntax.HeadingBlock)
|
|
||||||
{
|
|
||||||
(block as Markdig.Syntax.HeadingBlock).Dump();
|
|
||||||
}
|
|
||||||
if (block is Markdig.Syntax.ListItemBlock)
|
|
||||||
{
|
|
||||||
(block as Markdig.Syntax.ListItemBlock).Dump();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public static void Dump(this Markdig.Syntax.MarkdownDocument document)
|
|
||||||
{
|
|
||||||
foreach (var block in document)
|
|
||||||
{
|
|
||||||
//Debug.WriteLine(block.GetType());
|
|
||||||
//block.Dump();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -91,15 +91,45 @@ namespace AideDeJeu.ViewModels
|
||||||
return _AllItems;
|
return _AllItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public IEnumerable<Item> _Items = new List<Item>();
|
||||||
|
public IEnumerable<Item> Items
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _Items;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
SetProperty(ref _Items, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Item _SelectedItem;
|
||||||
|
public Item SelectedItem
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _SelectedItem;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
SetProperty(ref _SelectedItem, value);
|
||||||
|
if (_SelectedItem != null)
|
||||||
|
{
|
||||||
|
Main.GotoItemCommand.Execute(_SelectedItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
async Task LoadItemsAsync(CancellationToken cancellationToken = default)
|
async Task LoadItemsAsync(CancellationToken cancellationToken = default)
|
||||||
{
|
{
|
||||||
IsBusy = true;
|
IsBusy = true;
|
||||||
Main.IsLoading = true;
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var filterViewModel = Main.GetFilterViewModel(ItemSourceType);
|
var filterViewModel = Main.GetFilterViewModel(ItemSourceType);
|
||||||
var items = await filterViewModel.FilterItems(await GetAllItemsAsync(), cancellationToken: cancellationToken);
|
var items = await filterViewModel.FilterItems(await GetAllItemsAsync(), cancellationToken: cancellationToken);
|
||||||
Main.Items = items.ToList();
|
Items = items.ToList();
|
||||||
}
|
}
|
||||||
catch (OperationCanceledException ex)
|
catch (OperationCanceledException ex)
|
||||||
{
|
{
|
||||||
|
|
@ -107,7 +137,6 @@ namespace AideDeJeu.ViewModels
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
Main.IsLoading = false;
|
|
||||||
IsBusy = false;
|
IsBusy = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -112,23 +112,6 @@ namespace AideDeJeu.ViewModels
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Item _SelectedItem;
|
|
||||||
public Item SelectedItem
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return _SelectedItem;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
SetProperty(ref _SelectedItem, value);
|
|
||||||
if (_SelectedItem != null)
|
|
||||||
{
|
|
||||||
GotoItemCommand.Execute(_SelectedItem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public Command LoadItemsCommand { get; private set; }
|
public Command LoadItemsCommand { get; private set; }
|
||||||
public Command<Item> GotoItemCommand { get; private set; }
|
public Command<Item> GotoItemCommand { get; private set; }
|
||||||
|
|
||||||
|
|
@ -212,7 +195,13 @@ namespace AideDeJeu.ViewModels
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
await Navigator.GotoItemsPageAsync(null);
|
var regex = new Regex("/(?<file>.*)\\.md");
|
||||||
|
var match = regex.Match(s);
|
||||||
|
var file = match.Groups["file"].Value;
|
||||||
|
var itemSourceType = MDFileToItemSourceType(file);
|
||||||
|
var items = GetItemsViewModel(itemSourceType);
|
||||||
|
items.LoadItemsCommand.Execute(null);
|
||||||
|
await Navigator.GotoItemsPageAsync(items);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
using AideDeJeu.Views;
|
using AideDeJeu.Views;
|
||||||
using AideDeJeuLib;
|
using AideDeJeuLib;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
|
|
||||||
|
|
@ -33,13 +34,13 @@ namespace AideDeJeu.ViewModels
|
||||||
await Navigation.PushAsync(new ItemDetailPage(vm));
|
await Navigation.PushAsync(new ItemDetailPage(vm));
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task GotoItemsPageAsync(Item item)
|
public async Task GotoItemsPageAsync(ItemsViewModel itemsVM)
|
||||||
{
|
{
|
||||||
//if (item == null)
|
//if (item == null)
|
||||||
// return;
|
// return;
|
||||||
|
|
||||||
//var vm = new ItemDetailViewModel(item);
|
//var vm = new ItemDetailViewModel(item);
|
||||||
await Navigation.PushAsync(new ItemsPage());
|
await Navigation.PushAsync(new ItemsPage(itemsVM));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,15 +18,19 @@ namespace AideDeJeu.Views
|
||||||
}
|
}
|
||||||
//INavig//ator Navigator;
|
//INavig//ator Navigator;
|
||||||
|
|
||||||
public ItemsPage ()
|
public ItemsViewModel _ItemsViewModel;
|
||||||
|
public ItemsViewModel ItemsViewModel
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _ItemsViewModel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public ItemsPage (ItemsViewModel itemsViewModel)
|
||||||
{
|
{
|
||||||
InitializeComponent ();
|
InitializeComponent ();
|
||||||
|
|
||||||
//DependencyService.Register<INavigator>(new Navigator((Detail as NavigationPage).Navigation));
|
BindingContext = _ItemsViewModel = itemsViewModel; // Main;
|
||||||
|
|
||||||
//Navigator = new Navigator((Detail as NavigationPage).Navigation);
|
|
||||||
//BindingContext = viewModel = new MainViewModel(Navigator);
|
|
||||||
BindingContext = Main;
|
|
||||||
|
|
||||||
this.SizeChanged += (o, e) => {
|
this.SizeChanged += (o, e) => {
|
||||||
if(this.Width > 0 && this.Height > 0)
|
if(this.Width > 0 && this.Height > 0)
|
||||||
|
|
@ -35,6 +39,19 @@ namespace AideDeJeu.Views
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
public ItemsPage()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
BindingContext = Main;
|
||||||
|
|
||||||
|
this.SizeChanged += (o, e) => {
|
||||||
|
if (this.Width > 0 && this.Height > 0)
|
||||||
|
{
|
||||||
|
this.IsPresented = this.Width > this.Height;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
protected override void OnAppearing()
|
protected override void OnAppearing()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -43,11 +43,11 @@ namespace AideDeJeuCmd
|
||||||
var pipeline = new MarkdownPipelineBuilder()
|
var pipeline = new MarkdownPipelineBuilder()
|
||||||
.UsePipeTables()
|
.UsePipeTables()
|
||||||
.Build();
|
.Build();
|
||||||
var document = Markdig.Parsers.MarkdownParser.Parse(md, pipeline);
|
//var document = Markdig.Parsers.MarkdownParser.Parse(md, pipeline);
|
||||||
//DumpMarkdownDocument(document);
|
//DumpMarkdownDocument(document);
|
||||||
|
|
||||||
var monsters = document.ToMonsters<MonsterHD>();
|
var monsters = AideDeJeu.Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Monster>; // document.ToMonsters<MonsterHD>();
|
||||||
document.Dump();
|
//document.Dump();
|
||||||
Console.WriteLine("ok");
|
Console.WriteLine("ok");
|
||||||
//var md2 = monsters.ToMarkdownString();
|
//var md2 = monsters.ToMarkdownString();
|
||||||
//if (md.CompareTo(md2) != 0)
|
//if (md.CompareTo(md2) != 0)
|
||||||
|
|
@ -64,7 +64,7 @@ namespace AideDeJeuCmd
|
||||||
|
|
||||||
var result = string.Empty;
|
var result = string.Empty;
|
||||||
var md = await LoadStringAsync(dataDir + "spells_hd.md");
|
var md = await LoadStringAsync(dataDir + "spells_hd.md");
|
||||||
var items = AideDeJeu.Tools.MarkdownExtensions.MarkdownToSpells<SpellHD>(md);
|
var items = AideDeJeu.Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Spell>;
|
||||||
|
|
||||||
var classes = new string[]
|
var classes = new string[]
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue