mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-10-30 15:06:06 +00:00
Améliorations sorts
This commit is contained in:
parent
b6a48565c2
commit
3e8dad4e49
6 changed files with 5047 additions and 3561 deletions
|
|
@ -25,33 +25,25 @@ namespace AideDeJeuLib
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Parse(ref ContainerBlock.Enumerator enumerator)
|
public void ParseBlock(Block block)
|
||||||
{
|
{
|
||||||
enumerator.MoveNext();
|
if (block is HeadingBlock)
|
||||||
while (enumerator.Current != null)
|
|
||||||
{
|
{
|
||||||
var block = enumerator.Current;
|
var headingBlock = block as HeadingBlock;
|
||||||
if (block.IsNewItem())
|
if (this.Name == null)
|
||||||
{
|
{
|
||||||
return;
|
this.Name = headingBlock.Inline.ToMarkdownString();
|
||||||
}
|
}
|
||||||
if (block is HeadingBlock)
|
this.Text += block.ToMarkdownString();
|
||||||
|
}
|
||||||
|
else if (block is ListBlock)
|
||||||
|
{
|
||||||
|
var listBlock = block as ListBlock;
|
||||||
|
if (listBlock.BulletType == '-')
|
||||||
{
|
{
|
||||||
var headingBlock = block as HeadingBlock;
|
var regex = new Regex("(?<key>.*?): (?<value>.*)");
|
||||||
if (this.Name == null)
|
var str = block.ToMarkdownString();
|
||||||
{
|
var properties = new List<Tuple<string, Action<Generic, string>>>()
|
||||||
this.Name = headingBlock.Inline.ToMarkdownString();
|
|
||||||
}
|
|
||||||
this.Text += block.ToMarkdownString();
|
|
||||||
}
|
|
||||||
else if (block is ListBlock)
|
|
||||||
{
|
|
||||||
var listBlock = block as ListBlock;
|
|
||||||
if (listBlock.BulletType == '-')
|
|
||||||
{
|
|
||||||
var regex = new Regex("(?<key>.*?): (?<value>.*)");
|
|
||||||
var str = block.ToMarkdownString();
|
|
||||||
var properties = new List<Tuple<string, Action<Generic, string>>>()
|
|
||||||
{
|
{
|
||||||
new Tuple<string, Action<Generic, string>>("- AltName: ", (m, s) =>
|
new Tuple<string, Action<Generic, string>>("- AltName: ", (m, s) =>
|
||||||
{
|
{
|
||||||
|
|
@ -63,25 +55,36 @@ namespace AideDeJeuLib
|
||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
|
|
||||||
foreach (var property in properties)
|
foreach (var property in properties)
|
||||||
{
|
|
||||||
if (str.StartsWith(property.Item1))
|
|
||||||
{
|
|
||||||
property.Item2.Invoke(this, str.Substring(property.Item1.Length));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
this.Text += block.ToMarkdownString();
|
if (str.StartsWith(property.Item1))
|
||||||
|
{
|
||||||
|
property.Item2.Invoke(this, str.Substring(property.Item1.Length));
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.Text += block.ToMarkdownString();
|
this.Text += block.ToMarkdownString();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.Text += block.ToMarkdownString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public override void Parse(ref ContainerBlock.Enumerator enumerator)
|
||||||
|
{
|
||||||
|
enumerator.MoveNext();
|
||||||
|
while (enumerator.Current != null)
|
||||||
|
{
|
||||||
|
var block = enumerator.Current;
|
||||||
|
if (block.IsNewItem())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ParseBlock(block);
|
||||||
enumerator.MoveNext();
|
enumerator.MoveNext();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,111 +22,8 @@ namespace AideDeJeuLib
|
||||||
public string Duration { get; set; }
|
public string Duration { get; set; }
|
||||||
public string DescriptionHtml { get; set; }
|
public string DescriptionHtml { get; set; }
|
||||||
public string Source { get; set; }
|
public string Source { get; set; }
|
||||||
|
public string Classes { get; set; }
|
||||||
|
|
||||||
public abstract string LevelType { get; set; }
|
public abstract string LevelType { get; set; }
|
||||||
|
|
||||||
public override void Parse(ref ContainerBlock.Enumerator enumerator)
|
|
||||||
{
|
|
||||||
enumerator.MoveNext();
|
|
||||||
while (enumerator.Current != null)
|
|
||||||
{
|
|
||||||
var block = enumerator.Current;
|
|
||||||
if (block is Markdig.Syntax.HeadingBlock)
|
|
||||||
{
|
|
||||||
var headingBlock = block as Markdig.Syntax.HeadingBlock;
|
|
||||||
if (headingBlock.HeaderChar == '#' && headingBlock.Level == 1)
|
|
||||||
{
|
|
||||||
if (this.Name != null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.Name = headingBlock.Inline.ToMarkdownString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (block is Markdig.Syntax.ParagraphBlock)
|
|
||||||
{
|
|
||||||
if (block.IsNewItem())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var paragraphBlock = block as Markdig.Syntax.ParagraphBlock;
|
|
||||||
|
|
||||||
this.DescriptionHtml += paragraphBlock.ToMarkdownString() + "\n";
|
|
||||||
}
|
|
||||||
if (block is Markdig.Syntax.ListBlock)
|
|
||||||
{
|
|
||||||
var listBlock = block as Markdig.Syntax.ListBlock;
|
|
||||||
if (listBlock.BulletType == '-')
|
|
||||||
{
|
|
||||||
this.Source = "";
|
|
||||||
foreach (var inblock in listBlock)
|
|
||||||
{
|
|
||||||
var regex = new Regex("(?<key>.*?): (?<value>.*)");
|
|
||||||
if (inblock is Markdig.Syntax.ListItemBlock)
|
|
||||||
{
|
|
||||||
var listItemBlock = inblock as Markdig.Syntax.ListItemBlock;
|
|
||||||
foreach (var ininblock in listItemBlock)
|
|
||||||
{
|
|
||||||
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
|
||||||
{
|
|
||||||
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
|
||||||
var str = paragraphBlock.Inline.ToMarkdownString();
|
|
||||||
|
|
||||||
var properties = new List<Tuple<string, Action<Spell, string>>>()
|
|
||||||
{
|
|
||||||
new Tuple<string, Action<Spell, string>>("AltName: ", (m, s) => m.AltName = s),
|
|
||||||
new Tuple<string, Action<Spell, string>>("CastingTime: ", (m, s) => m.CastingTime = s),
|
|
||||||
new Tuple<string, Action<Spell, string>>("Components: ", (m, s) => m.Components = s),
|
|
||||||
new Tuple<string, Action<Spell, string>>("Duration: ", (m, s) => m.Duration = s),
|
|
||||||
new Tuple<string, Action<Spell, string>>("LevelType: ", (m, s) => m.LevelType = s),
|
|
||||||
new Tuple<string, Action<Spell, string>>("Range: ", (m, s) => m.Range = s),
|
|
||||||
new Tuple<string, Action<Spell, string>>("Source: ", (m, s) => m.Source = s),
|
|
||||||
new Tuple<string, Action<Spell, string>>("Classes: ", (m, s) => m.Source += s),
|
|
||||||
new Tuple<string, Action<Spell, string>>("", (m,s) =>
|
|
||||||
{
|
|
||||||
})
|
|
||||||
};
|
|
||||||
|
|
||||||
foreach (var property in properties)
|
|
||||||
{
|
|
||||||
if (str.StartsWith(property.Item1))
|
|
||||||
{
|
|
||||||
property.Item2.Invoke(this, 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)
|
|
||||||
{
|
|
||||||
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
|
||||||
{
|
|
||||||
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
|
||||||
this.DescriptionHtml += listBlock.BulletType + " " + paragraphBlock.ToMarkdownString() + "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (block is Markdig.Extensions.Tables.Table)
|
|
||||||
{
|
|
||||||
var tableBlock = block as Markdig.Extensions.Tables.Table;
|
|
||||||
this.DescriptionHtml += "\n\n" + tableBlock.ToMarkdownString() + "\n\n";
|
|
||||||
}
|
|
||||||
enumerator.MoveNext();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -57,18 +57,122 @@ namespace AideDeJeuLib
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
$"# {Name}\n" +
|
$"# {Name}\n" +
|
||||||
$"{AltName}\n" +
|
$"{AltName}\n\n" +
|
||||||
$"_{LevelType}_\n" +
|
$"_{LevelType}_\n" +
|
||||||
$"**Temps d'incantation :** {CastingTime}\n" +
|
$"**Temps d'incantation :** {CastingTime}\n" +
|
||||||
$"**Portée :** {Range}\n" +
|
$"**Portée :** {Range}\n" +
|
||||||
$"**Composantes :** {Components}\n" +
|
$"**Composantes :** {Components}\n" +
|
||||||
$"**Durée :** {Duration}\n\n" +
|
$"**Durée :** {Duration}\n" +
|
||||||
$"{DescriptionHtml}\n\n" +
|
$"**Classes :** {Classes}\n" +
|
||||||
$"**Source :** {Source}";
|
$"**Source :** {Source}\n" +
|
||||||
|
$"\n" +
|
||||||
|
$"{DescriptionHtml}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void Parse(ref ContainerBlock.Enumerator enumerator)
|
||||||
|
{
|
||||||
|
enumerator.MoveNext();
|
||||||
|
while (enumerator.Current != null)
|
||||||
|
{
|
||||||
|
var block = enumerator.Current;
|
||||||
|
if (block is Markdig.Syntax.HeadingBlock)
|
||||||
|
{
|
||||||
|
var headingBlock = block as Markdig.Syntax.HeadingBlock;
|
||||||
|
if (headingBlock.HeaderChar == '#' && headingBlock.Level == 1)
|
||||||
|
{
|
||||||
|
if (this.Name != null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.Name = headingBlock.Inline.ToMarkdownString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (block is Markdig.Syntax.ParagraphBlock)
|
||||||
|
{
|
||||||
|
if (block.IsNewItem())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var paragraphBlock = block as Markdig.Syntax.ParagraphBlock;
|
||||||
|
|
||||||
|
this.DescriptionHtml += paragraphBlock.ToMarkdownString() + "\n";
|
||||||
|
}
|
||||||
|
if (block is Markdig.Syntax.ListBlock)
|
||||||
|
{
|
||||||
|
var listBlock = block as Markdig.Syntax.ListBlock;
|
||||||
|
if (listBlock.BulletType == '-')
|
||||||
|
{
|
||||||
|
this.Source = "";
|
||||||
|
foreach (var inblock in listBlock)
|
||||||
|
{
|
||||||
|
var regex = new Regex("(?<key>.*?): (?<value>.*)");
|
||||||
|
if (inblock is Markdig.Syntax.ListItemBlock)
|
||||||
|
{
|
||||||
|
var listItemBlock = inblock as Markdig.Syntax.ListItemBlock;
|
||||||
|
foreach (var ininblock in listItemBlock)
|
||||||
|
{
|
||||||
|
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
||||||
|
{
|
||||||
|
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
||||||
|
var str = paragraphBlock.Inline.ToMarkdownString();
|
||||||
|
|
||||||
|
var properties = new List<Tuple<string, Action<Spell, string>>>()
|
||||||
|
{
|
||||||
|
new Tuple<string, Action<Spell, string>>("AltName: ", (m, s) => m.AltName = s),
|
||||||
|
new Tuple<string, Action<Spell, string>>("**Temps d'incantation :** ", (m, s) => m.CastingTime = s),
|
||||||
|
new Tuple<string, Action<Spell, string>>("**Composantes :** ", (m, s) => m.Components = s),
|
||||||
|
new Tuple<string, Action<Spell, string>>("**Durée :** ", (m, s) => m.Duration = s),
|
||||||
|
new Tuple<string, Action<Spell, string>>("LevelType: ", (m, s) => m.LevelType = s),
|
||||||
|
new Tuple<string, Action<Spell, string>>("**Portée :** ", (m, s) => m.Range = s),
|
||||||
|
new Tuple<string, Action<Spell, string>>("Source: ", (m, s) => m.Source = s),
|
||||||
|
new Tuple<string, Action<Spell, string>>("Classes: ", (m, s) => m.Classes = s),
|
||||||
|
new Tuple<string, Action<Spell, string>>("", (m,s) =>
|
||||||
|
{
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (var property in properties)
|
||||||
|
{
|
||||||
|
if (str.StartsWith(property.Item1))
|
||||||
|
{
|
||||||
|
property.Item2.Invoke(this, 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)
|
||||||
|
{
|
||||||
|
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
||||||
|
{
|
||||||
|
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
||||||
|
this.DescriptionHtml += listBlock.BulletType + " " + paragraphBlock.ToMarkdownString() + "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (block is Markdig.Extensions.Tables.Table)
|
||||||
|
{
|
||||||
|
var tableBlock = block as Markdig.Extensions.Tables.Table;
|
||||||
|
this.DescriptionHtml += "\n\n" + tableBlock.ToMarkdownString() + "\n\n";
|
||||||
|
}
|
||||||
|
enumerator.MoveNext();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
using AideDeJeu.Tools;
|
||||||
using Markdig.Syntax;
|
using Markdig.Syntax;
|
||||||
|
|
||||||
namespace AideDeJeuLib
|
namespace AideDeJeuLib
|
||||||
|
|
@ -37,17 +38,122 @@ namespace AideDeJeuLib
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
$"# {Name}\n" +
|
$"# {Name}\n" +
|
||||||
$"{AltName}\n" +
|
$"{AltName}\n\n" +
|
||||||
$"_{LevelType}_\n" +
|
$"_{LevelType}_\n" +
|
||||||
$"**Casting Time :** {CastingTime}\n" +
|
$"**Casting Time :** {CastingTime}\n" +
|
||||||
$"**Range :** {Range}\n" +
|
$"**Range :** {Range}\n" +
|
||||||
$"**Components :** {Components}\n" +
|
$"**Components :** {Components}\n" +
|
||||||
$"**Duration :** {Duration}\n\n" +
|
$"**Duration :** {Duration}\n" +
|
||||||
$"{DescriptionHtml}\n\n" +
|
$"**Classes :** {Classes}\n" +
|
||||||
$"**Source :** {Source}";
|
$"**Source :** {Source}\n" +
|
||||||
|
$"\n" +
|
||||||
|
$"{DescriptionHtml}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void Parse(ref ContainerBlock.Enumerator enumerator)
|
||||||
|
{
|
||||||
|
enumerator.MoveNext();
|
||||||
|
while (enumerator.Current != null)
|
||||||
|
{
|
||||||
|
var block = enumerator.Current;
|
||||||
|
if (block is Markdig.Syntax.HeadingBlock)
|
||||||
|
{
|
||||||
|
var headingBlock = block as Markdig.Syntax.HeadingBlock;
|
||||||
|
if (headingBlock.HeaderChar == '#' && headingBlock.Level == 1)
|
||||||
|
{
|
||||||
|
if (this.Name != null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.Name = headingBlock.Inline.ToMarkdownString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (block is Markdig.Syntax.ParagraphBlock)
|
||||||
|
{
|
||||||
|
if (block.IsNewItem())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var paragraphBlock = block as Markdig.Syntax.ParagraphBlock;
|
||||||
|
|
||||||
|
this.DescriptionHtml += paragraphBlock.ToMarkdownString() + "\n";
|
||||||
|
}
|
||||||
|
if (block is Markdig.Syntax.ListBlock)
|
||||||
|
{
|
||||||
|
var listBlock = block as Markdig.Syntax.ListBlock;
|
||||||
|
if (listBlock.BulletType == '-')
|
||||||
|
{
|
||||||
|
this.Source = "";
|
||||||
|
foreach (var inblock in listBlock)
|
||||||
|
{
|
||||||
|
var regex = new Regex("(?<key>.*?): (?<value>.*)");
|
||||||
|
if (inblock is Markdig.Syntax.ListItemBlock)
|
||||||
|
{
|
||||||
|
var listItemBlock = inblock as Markdig.Syntax.ListItemBlock;
|
||||||
|
foreach (var ininblock in listItemBlock)
|
||||||
|
{
|
||||||
|
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
||||||
|
{
|
||||||
|
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
||||||
|
var str = paragraphBlock.Inline.ToMarkdownString();
|
||||||
|
|
||||||
|
var properties = new List<Tuple<string, Action<Spell, string>>>()
|
||||||
|
{
|
||||||
|
new Tuple<string, Action<Spell, string>>("AltName: ", (m, s) => m.AltName = s),
|
||||||
|
new Tuple<string, Action<Spell, string>>("**Casting Time :** ", (m, s) => m.CastingTime = s),
|
||||||
|
new Tuple<string, Action<Spell, string>>("**Components :** ", (m, s) => m.Components = s),
|
||||||
|
new Tuple<string, Action<Spell, string>>("**Duration :** ", (m, s) => m.Duration = s),
|
||||||
|
new Tuple<string, Action<Spell, string>>("LevelType: ", (m, s) => m.LevelType = s),
|
||||||
|
new Tuple<string, Action<Spell, string>>("**Range :** ", (m, s) => m.Range = s),
|
||||||
|
new Tuple<string, Action<Spell, string>>("Source: ", (m, s) => m.Source = s),
|
||||||
|
new Tuple<string, Action<Spell, string>>("Classes: ", (m, s) => m.Classes = s),
|
||||||
|
new Tuple<string, Action<Spell, string>>("", (m,s) =>
|
||||||
|
{
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (var property in properties)
|
||||||
|
{
|
||||||
|
if (str.StartsWith(property.Item1))
|
||||||
|
{
|
||||||
|
property.Item2.Invoke(this, 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)
|
||||||
|
{
|
||||||
|
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
||||||
|
{
|
||||||
|
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
||||||
|
this.DescriptionHtml += listBlock.BulletType + " " + paragraphBlock.ToMarkdownString() + "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (block is Markdig.Extensions.Tables.Table)
|
||||||
|
{
|
||||||
|
var tableBlock = block as Markdig.Extensions.Tables.Table;
|
||||||
|
this.DescriptionHtml += "\n\n" + tableBlock.ToMarkdownString() + "\n\n";
|
||||||
|
}
|
||||||
|
enumerator.MoveNext();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
4347
Data/spells_hd.md
4347
Data/spells_hd.md
File diff suppressed because it is too large
Load diff
3829
Data/spells_vo.md
3829
Data/spells_vo.md
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue