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

Parsing table ok

This commit is contained in:
Yan Maniez 2018-06-12 19:18:36 +02:00
parent 32931b71df
commit 1e48b89ca5
2 changed files with 42 additions and 16 deletions

View file

@ -262,21 +262,14 @@ namespace AideDeJeu.Tools
}
else if(block is Markdig.Extensions.Tables.Table)
{
var table = block as Markdig.Extensions.Tables.Table;
foreach(var blockrow in table)
{
var row = blockrow as Markdig.Extensions.Tables.TableRow;
foreach(var blockcell in row)
{
var cell = blockcell as Markdig.Extensions.Tables.TableCell;
foreach(var blockpar in cell)
{
var par = blockpar as Markdig.Syntax.ParagraphBlock;
Debug.WriteLine(par.ToParagraphString());
}
}
}
var tableBlock = block as Markdig.Extensions.Tables.Table;
var table = tableBlock.ToTable();
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();
}
}
@ -342,6 +335,37 @@ namespace AideDeJeu.Tools
return str;
}
public static Dictionary<string, List<string>> ToTable(this Markdig.Extensions.Tables.Table tableBlock)
{
var table = new Dictionary<string, List<string>>();
var indexes = new Dictionary<int, string>();
foreach (var blockrow in tableBlock)
{
var row = blockrow as Markdig.Extensions.Tables.TableRow;
int indexCol = 0;
foreach (var blockcell in row)
{
var cell = blockcell as Markdig.Extensions.Tables.TableCell;
foreach (var blockpar in cell)
{
var par = blockpar as Markdig.Syntax.ParagraphBlock;
var name = par.ToParagraphString().Trim();
if (row.IsHeader)
{
indexes[indexCol] = name;
table[name] = new List<string>();
}
else
{
table[indexes[indexCol]].Add(name);
}
}
indexCol++;
}
}
return table;
}
public static string ToMarkdownString(this IEnumerable<Spell> spells)
{
var md = string.Empty;

View file

@ -80,7 +80,9 @@ Touché : 11 (2d8+3) dégâts contondants (constriction).
Si la cible est une créature de taille M ou plus petite, elle est empoignée (évasion DD 14). L'abothid a deux tentacules dont chacun peut empoigner une cible.
**_Dard de langue._** Attaque d'arme au corps à corps (basée sur la Dextérité) : +7 pour toucher, allonge 1,50 m, une cible. Touché : 6 (1d6+2) dégâts perçants.
**_Dard de langue._** Attaque d'arme au corps à corps (basée sur la Dextérité) : +7 pour toucher, allonge 1,50 m, une cible.
Touché : 6 (1d6+2) dégâts perçants.
Si la cible est une créature humanoïde, elle doit réussir un jet de sauvegarde de Constitution (DD 14) sous peine d'être infectée par une maladie : l'injection d'un minuscule œuf d'abothid.