mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-10-30 23:16:09 +00:00 
			
		
		
		
	Nouveau format générique adopté ;)
This commit is contained in:
		
							parent
							
								
									72587c773a
								
							
						
					
					
						commit
						b560df7e37
					
				
					 6 changed files with 390 additions and 17 deletions
				
			
		|  | @ -1,6 +1,8 @@ | ||||||
| using System; | using System; | ||||||
| using System.Collections.Generic; | using System.Collections.Generic; | ||||||
| using System.Text; | using System.Text; | ||||||
|  | using System.Text.RegularExpressions; | ||||||
|  | using AideDeJeu.Tools; | ||||||
| using Markdig.Syntax; | using Markdig.Syntax; | ||||||
| 
 | 
 | ||||||
| namespace AideDeJeuLib | namespace AideDeJeuLib | ||||||
|  | @ -22,7 +24,105 @@ namespace AideDeJeuLib | ||||||
| 
 | 
 | ||||||
|         public override void Parse(ref ContainerBlock.Enumerator enumerator) |         public override void Parse(ref ContainerBlock.Enumerator enumerator) | ||||||
|         { |         { | ||||||
|             throw new NotImplementedException(); |             enumerator.MoveNext(); | ||||||
|  |             while (enumerator.Current != null) | ||||||
|  |             { | ||||||
|  |                 var block = enumerator.Current; | ||||||
|  |                 //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 (this.Name != null) | ||||||
|  |                         { | ||||||
|  |                             return; | ||||||
|  |                             //yield return spell; | ||||||
|  |                         } | ||||||
|  |                         this.Name = headingBlock.Inline.ToMarkdownString(); | ||||||
|  |                         //Console.WriteLine(spell.Name); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |                 if (block is Markdig.Syntax.ParagraphBlock) | ||||||
|  |                 { | ||||||
|  |                     if (block.IsNewItem()) | ||||||
|  |                     { | ||||||
|  |                         return; | ||||||
|  |                     } | ||||||
|  |                     var paragraphBlock = block as Markdig.Syntax.ParagraphBlock; | ||||||
|  |                     this.Text += MarkdownExtensions.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<Condition, string>>>() | ||||||
|  |                                         { | ||||||
|  |                                             new Tuple<string, Action<Condition, string>>("NameVO: ", (m, s) => m.NameVO = 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) | ||||||
|  |                                 { | ||||||
|  |                                     //DumpBlock(ininblock); | ||||||
|  |                                     if (ininblock is Markdig.Syntax.ParagraphBlock) | ||||||
|  |                                     { | ||||||
|  |                                         var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock; | ||||||
|  |                                         this.Text += listBlock.BulletType + " " + MarkdownExtensions.MarkdownToHtml(paragraphBlock.ToMarkdownString()) + "\n"; | ||||||
|  |                                     } | ||||||
|  |                                 } | ||||||
|  |                             } | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |                 else if (block is Markdig.Extensions.Tables.Table) | ||||||
|  |                 { | ||||||
|  |                     var tableBlock = block as Markdig.Extensions.Tables.Table; | ||||||
|  |                     this.Text += "\n\n" + tableBlock.ToMarkdownString() + "\n\n"; | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 enumerator.MoveNext(); | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,4 +1,8 @@ | ||||||
| using System.Collections.Generic; | using AideDeJeu; | ||||||
|  | using AideDeJeu.Tools; | ||||||
|  | using Markdig.Syntax; | ||||||
|  | using System; | ||||||
|  | using System.Collections.Generic; | ||||||
| using System.Linq; | using System.Linq; | ||||||
| using System.Runtime.Serialization; | using System.Runtime.Serialization; | ||||||
| using System.Text.RegularExpressions; | using System.Text.RegularExpressions; | ||||||
|  | @ -38,5 +42,281 @@ namespace AideDeJeuLib | ||||||
|         public IEnumerable<string> Reactions { get; set; } |         public IEnumerable<string> Reactions { get; set; } | ||||||
|         public IEnumerable<string> LegendaryActions { get; set; } |         public IEnumerable<string> LegendaryActions { get; set; } | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  |         public override void Parse(ref ContainerBlock.Enumerator enumerator) | ||||||
|  |         { | ||||||
|  |             List<string> features = null; | ||||||
|  |             //List<string> specialFeatures = null; | ||||||
|  |             //List<string> actions = null; | ||||||
|  |             //List<string> reactions = null; | ||||||
|  |             //List<string> legendaryActions = null; | ||||||
|  |             enumerator.MoveNext(); | ||||||
|  |             //try | ||||||
|  |             //{ | ||||||
|  |                 while (enumerator.Current != null) | ||||||
|  |                 { | ||||||
|  |                     var block = enumerator.Current; | ||||||
|  |                     //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 (this.Name != null) | ||||||
|  |                             { | ||||||
|  |                                 return; | ||||||
|  |                             } | ||||||
|  |                             this.Name = headingBlock.Inline.ToMarkdownString(); | ||||||
|  |                             //Console.WriteLine(spell.Name); | ||||||
|  |                         } | ||||||
|  |                         if (headingBlock.HeaderChar == '#' && headingBlock.Level == 2) | ||||||
|  |                         { | ||||||
|  |                             switch (headingBlock.Inline.ToMarkdownString()) | ||||||
|  |                             { | ||||||
|  |                                 case "Capacités": | ||||||
|  |                                 case "Special Features": | ||||||
|  |                                     SpecialFeatures = features = new List<string>(); | ||||||
|  |                                     break; | ||||||
|  |                                 case "Actions": | ||||||
|  |                                     Actions = features = new List<string>(); | ||||||
|  |                                     break; | ||||||
|  |                                 case "Réaction": | ||||||
|  |                                 case "Réactions": | ||||||
|  |                                 case "Reaction": | ||||||
|  |                                 case "Reactions": | ||||||
|  |                                     Reactions = features = new List<string>(); | ||||||
|  |                                     break; | ||||||
|  |                                 case "Actions légendaires": | ||||||
|  |                                 case "Legendary Actions": | ||||||
|  |                                     LegendaryActions = features = new List<string>(); | ||||||
|  |                                     break; | ||||||
|  |                                 default: | ||||||
|  |                                     App.Current.MainPage.DisplayAlert("Erreur de parsing", headingBlock.Inline.ToMarkdownString(), "OK"); | ||||||
|  |                                     break; | ||||||
|  |                             } | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                     else if (block is Markdig.Syntax.ParagraphBlock) | ||||||
|  |                     { | ||||||
|  |                         if (block.IsNewItem()) | ||||||
|  |                         { | ||||||
|  |                             return; | ||||||
|  |                         } | ||||||
|  |                         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 == '-') | ||||||
|  |                         { | ||||||
|  |                             this.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, System.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(this, 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")) | ||||||
|  |                         { | ||||||
|  |                             this.Strength = table["FOR"].FirstOrDefault(); | ||||||
|  |                             this.Dexterity = table["DEX"].FirstOrDefault(); | ||||||
|  |                             this.Constitution = table["CON"].FirstOrDefault(); | ||||||
|  |                             this.Intelligence = table["INT"].FirstOrDefault(); | ||||||
|  |                             this.Wisdom = table["SAG"].FirstOrDefault(); | ||||||
|  |                             this.Charisma = table["CHA"].FirstOrDefault(); | ||||||
|  |                         } | ||||||
|  |                         else if (table.ContainsKey("STR")) | ||||||
|  |                         { | ||||||
|  |                             this.Strength = table["STR"].FirstOrDefault(); | ||||||
|  |                             this.Dexterity = table["DEX"].FirstOrDefault(); | ||||||
|  |                             this.Constitution = table["CON"].FirstOrDefault(); | ||||||
|  |                             this.Intelligence = table["INT"].FirstOrDefault(); | ||||||
|  |                             this.Wisdom = table["WIS"].FirstOrDefault(); | ||||||
|  |                             this.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()); | ||||||
|  |                     } | ||||||
|  |                     enumerator.MoveNext(); | ||||||
|  |                 } | ||||||
|  |             //} | ||||||
|  |             //finally | ||||||
|  | 
 | ||||||
|  |             ////if (monster != null) | ||||||
|  |             //{ | ||||||
|  |             //    this.SpecialFeatures = specialFeatures; | ||||||
|  |             //    this.Actions = actions; | ||||||
|  |             //    this.Reactions = reactions; | ||||||
|  |             //    this.LegendaryActions = legendaryActions; | ||||||
|  |             //    //yield return monster; | ||||||
|  |             //} | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -37,10 +37,5 @@ namespace AideDeJeuLib | ||||||
|                     (LegendaryActions != null ? $"## Actions Légendaires\n\n" + LegendaryActions.Aggregate((s1, s2) => s1 + "\n\n" + s2) : ""); |                     (LegendaryActions != null ? $"## Actions Légendaires\n\n" + LegendaryActions.Aggregate((s1, s2) => s1 + "\n\n" + s2) : ""); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 |  | ||||||
|         public override void Parse(ref ContainerBlock.Enumerator enumerator) |  | ||||||
|         { |  | ||||||
|             throw new NotImplementedException(); |  | ||||||
|         } |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | @ -37,10 +37,5 @@ namespace AideDeJeuLib | ||||||
|                     (LegendaryActions != null ? $"## Legendary Actions\n\n" + LegendaryActions.Aggregate((s1, s2) => s1 + "\n\n" + s2) : ""); |                     (LegendaryActions != null ? $"## Legendary Actions\n\n" + LegendaryActions.Aggregate((s1, s2) => s1 + "\n\n" + s2) : ""); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 |  | ||||||
|         public override void Parse(ref ContainerBlock.Enumerator enumerator) |  | ||||||
|         { |  | ||||||
|             throw new NotImplementedException(); |  | ||||||
|         } |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -39,7 +39,8 @@ namespace AideDeJeu.ViewModels | ||||||
|                         { |                         { | ||||||
|                             resourceName = "AideDeJeu.Data.monsters_vo.md"; |                             resourceName = "AideDeJeu.Data.monsters_vo.md"; | ||||||
|                             var md = await Tools.Helpers.GetResourceStringAsync(resourceName); |                             var md = await Tools.Helpers.GetResourceStringAsync(resourceName); | ||||||
|                             _AllItems = Tools.MarkdownExtensions.MarkdownToMonsters<MonsterVO>(md); |                             _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Item>; | ||||||
|  |                             //_AllItems = Tools.MarkdownExtensions.MarkdownToMonsters<MonsterVO>(md); | ||||||
|                         } |                         } | ||||||
|                         break; |                         break; | ||||||
|                     case ItemSourceType.MonsterHD: |                     case ItemSourceType.MonsterHD: | ||||||
|  | @ -47,7 +48,8 @@ namespace AideDeJeu.ViewModels | ||||||
|                             resourceName = "AideDeJeu.Data.monsters_hd.md"; |                             resourceName = "AideDeJeu.Data.monsters_hd.md"; | ||||||
|                             //var md = await Tools.Helpers.GetStringFromUrl("https://raw.githubusercontent.com/Nioux/AideDeJeu/master/Data/monsters_hd.md"); |                             //var md = await Tools.Helpers.GetStringFromUrl("https://raw.githubusercontent.com/Nioux/AideDeJeu/master/Data/monsters_hd.md"); | ||||||
|                             var md = await Tools.Helpers.GetResourceStringAsync(resourceName); |                             var md = await Tools.Helpers.GetResourceStringAsync(resourceName); | ||||||
|                             _AllItems = Tools.MarkdownExtensions.MarkdownToMonsters<MonsterHD>(md); |                             _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Item>; | ||||||
|  |                             //_AllItems = Tools.MarkdownExtensions.MarkdownToMonsters<MonsterHD>(md); | ||||||
|                         } |                         } | ||||||
|                         break; |                         break; | ||||||
|                     case ItemSourceType.SpellVO: |                     case ItemSourceType.SpellVO: | ||||||
|  | @ -71,7 +73,8 @@ namespace AideDeJeu.ViewModels | ||||||
|                         { |                         { | ||||||
|                             resourceName = "AideDeJeu.Data.conditions_vo.md"; |                             resourceName = "AideDeJeu.Data.conditions_vo.md"; | ||||||
|                             var md = await Tools.Helpers.GetResourceStringAsync(resourceName); |                             var md = await Tools.Helpers.GetResourceStringAsync(resourceName); | ||||||
|                             _AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Condition>(md); |                             _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Item>; | ||||||
|  |                             //_AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Condition>(md); | ||||||
|                         } |                         } | ||||||
|                         break; |                         break; | ||||||
|                     case ItemSourceType.ConditionHD: |                     case ItemSourceType.ConditionHD: | ||||||
|  | @ -79,7 +82,8 @@ namespace AideDeJeu.ViewModels | ||||||
|                             resourceName = "AideDeJeu.Data.conditions_hd.md"; |                             resourceName = "AideDeJeu.Data.conditions_hd.md"; | ||||||
|                             //var md = await Tools.Helpers.GetStringFromUrl("https://raw.githubusercontent.com/Nioux/AideDeJeu/master/Data/spells_hd.md"); |                             //var md = await Tools.Helpers.GetStringFromUrl("https://raw.githubusercontent.com/Nioux/AideDeJeu/master/Data/spells_hd.md"); | ||||||
|                             var md = await Tools.Helpers.GetResourceStringAsync(resourceName); |                             var md = await Tools.Helpers.GetResourceStringAsync(resourceName); | ||||||
|                             _AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Condition>(md); |                             _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Item>; | ||||||
|  |                             //_AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Condition>(md); | ||||||
|                         } |                         } | ||||||
|                         break; |                         break; | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
|  | @ -56,7 +56,6 @@ L'aboleth peut effectuer 3 actions légendaires qu'il choisit parmi celles décr | ||||||
| 
 | 
 | ||||||
| **Succion psychique (coûte 2 actions).** Une créature [charmée] par l'aboleth subit 10 (3d6) dégâts psychiques et l'aboleth récupère un nombre de points de vie égal aux dégâts subis par la créature. | **Succion psychique (coûte 2 actions).** Une créature [charmée] par l'aboleth subit 10 (3d6) dégâts psychiques et l'aboleth récupère un nombre de points de vie égal aux dégâts subis par la créature. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| 
 | 
 | ||||||
| [][MonsterHD] | [][MonsterHD] | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Yan Maniez
						Yan Maniez