mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-10-30 23:16:09 +00:00 
			
		
		
		
	Spécialisation Monster VO/HD
This commit is contained in:
		
							parent
							
								
									4274033d16
								
							
						
					
					
						commit
						8dfdc06710
					
				
					 8 changed files with 143 additions and 26 deletions
				
			
		|  | @ -6,7 +6,7 @@ using System.Xml; | |||
| 
 | ||||
| namespace AideDeJeuLib.Monsters | ||||
| { | ||||
|     public class Monster : Item | ||||
|     public abstract class Monster : Item | ||||
|     { | ||||
|         public string Type { get; set; } | ||||
|         public string Size { get; set; } | ||||
|  | @ -38,12 +38,5 @@ namespace AideDeJeuLib.Monsters | |||
|         public IEnumerable<string> Reactions { get; set; } | ||||
|         public IEnumerable<string> LegendaryActions { get; set; } | ||||
| 
 | ||||
|         public override string Markdown | ||||
|         { | ||||
|             get | ||||
|             { | ||||
|                 return ""; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  |  | |||
							
								
								
									
										61
									
								
								AideDeJeu/AideDeJeu/Models/Monsters/MonsterHD.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								AideDeJeu/AideDeJeu/Models/Monsters/MonsterHD.cs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,61 @@ | |||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Linq; | ||||
| using System.Text; | ||||
| 
 | ||||
| namespace AideDeJeuLib.Monsters | ||||
| { | ||||
|     public class MonsterHD : Monster | ||||
|     { | ||||
|         public override string Markdown | ||||
|         { | ||||
|             get | ||||
|             { | ||||
|                 return | ||||
|                     $"# {Name}\n" + | ||||
|                     $"{NameVO}\n" + | ||||
|                     $"{Type} de taille {Size}, {Alignment}\n" + | ||||
|                     $"**Classe d'armure** {ArmorClass}\n" + | ||||
|                     $"**Points de vie** {HitPoints}\n" + | ||||
|                     $"**Vitesse** {Speed}\n\n" + | ||||
|                     $"|FOR|DEX|CON|INT|SAG|CHA|\n" + | ||||
|                     $"|---|---|---|---|---|---|\n" + | ||||
|                     $"|{Strength}|{Dexterity}|{Constitution}|{Intelligence}|{Wisdom}|{Charisma}|\n\n" + | ||||
|                     $"**Compétences** {Skills}\n" + | ||||
|                     $"**Sens** {Senses}\n" + | ||||
|                     $"**Langues** {Languages}\n" + | ||||
|                     $"**Dangerosité** {Challenge}\n\n" + | ||||
|                     (SpecialFeatures != null ? $"## Capacités\n\n" + SpecialFeatures.Aggregate((s1, s2) => s1 + "\n\n" + s2) : "") + | ||||
|                     (Actions != null ? $"## Actions\n\n" + Actions.Aggregate((s1, s2) => s1 + "\n\n" + s2) : "") + | ||||
|                     (Reactions != null ? $"## Réactions\n\n" + Reactions.Aggregate((s1, s2) => s1 + "\n\n" + s2) : "") + | ||||
|                     (LegendaryActions != null ? $"## Actions Légendaires\n\n" + LegendaryActions.Aggregate((s1, s2) => s1 + "\n\n" + s2) : ""); | ||||
| 
 | ||||
|                 //public string Type { get; set; } | ||||
|                 //public string Size { get; set; } | ||||
|                 //public string Alignment { get; set; } | ||||
|                 //public string Legendary { get; set; } | ||||
|                 //public string Source { get; set; } | ||||
|                 //public string ArmorClass { get; set; } | ||||
|                 //public string HitPoints { get; set; } | ||||
|                 //public string Speed { get; set; } | ||||
|                 //public string Strength { get; set; } | ||||
|                 //public string Dexterity { get; set; } | ||||
|                 //public string Constitution { get; set; } | ||||
|                 //public string Intelligence { get; set; } | ||||
|                 //public string Wisdom { get; set; } | ||||
|                 //public string Charisma { get; set; } | ||||
|                 //public string SavingThrows { get; set; } | ||||
|                 //public string Skills { get; set; } | ||||
|                 //public string DamageVulnerabilities { get; set; } | ||||
|                 //public string DamageImmunities { get; set; } | ||||
|                 //public string ConditionImmunities { get; set; } | ||||
|                 //public string DamageResistances { get; set; } | ||||
|                 //public string Senses { get; set; } | ||||
|                 //public string Languages { get; set; } | ||||
|                 //public string Challenge { get; set; } | ||||
|                 //public string Description { get; set; } | ||||
|                 //        return ""; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										61
									
								
								AideDeJeu/AideDeJeu/Models/Monsters/MonsterVO.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								AideDeJeu/AideDeJeu/Models/Monsters/MonsterVO.cs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,61 @@ | |||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Linq; | ||||
| using System.Text; | ||||
| 
 | ||||
| namespace AideDeJeuLib.Monsters | ||||
| { | ||||
|     public class MonsterVO : Monster | ||||
|     { | ||||
|         public override string Markdown | ||||
|         { | ||||
|             get | ||||
|             { | ||||
|                 return | ||||
|                     $"# {Name}\n" + | ||||
|                     $"{NameVO}\n" + | ||||
|                     $"{Size} {Type}, {Alignment}\n" + | ||||
|                     $"**Armor Class** {ArmorClass}\n" + | ||||
|                     $"**Hit Points** {HitPoints}\n" + | ||||
|                     $"**Speed** {Speed}\n\n" + | ||||
|                     $"|STR|DEX|CON|INT|WIS|CHA|\n" + | ||||
|                     $"|---|---|---|---|---|---|\n" + | ||||
|                     $"|{Strength}|{Dexterity}|{Constitution}|{Intelligence}|{Wisdom}|{Charisma}|\n\n" + | ||||
|                     $"**Skills** {Skills}\n" + | ||||
|                     $"**Senses** {Senses}\n" + | ||||
|                     $"**Languages** {Languages}\n" + | ||||
|                     $"**Challenge** {Challenge}\n\n" + | ||||
|                     (SpecialFeatures != null ? $"## Special Features\n\n" + SpecialFeatures.Aggregate((s1, s2) => s1 + "\n\n" + s2) : "") + | ||||
|                     (Actions != null ? $"## Actions\n\n" + Actions.Aggregate((s1, s2) => s1 + "\n\n" + s2) : "") + | ||||
|                     (Reactions != null ? $"## Reactions\n\n" + Reactions.Aggregate((s1, s2) => s1 + "\n\n" + s2) : "") + | ||||
|                     (LegendaryActions != null ? $"## Legendary Actions\n\n" + LegendaryActions.Aggregate((s1, s2) => s1 + "\n\n" + s2) : ""); | ||||
| 
 | ||||
|                 //public string Type { get; set; } | ||||
|                 //public string Size { get; set; } | ||||
|                 //public string Alignment { get; set; } | ||||
|                 //public string Legendary { get; set; } | ||||
|                 //public string Source { get; set; } | ||||
|                 //public string ArmorClass { get; set; } | ||||
|                 //public string HitPoints { get; set; } | ||||
|                 //public string Speed { get; set; } | ||||
|                 //public string Strength { get; set; } | ||||
|                 //public string Dexterity { get; set; } | ||||
|                 //public string Constitution { get; set; } | ||||
|                 //public string Intelligence { get; set; } | ||||
|                 //public string Wisdom { get; set; } | ||||
|                 //public string Charisma { get; set; } | ||||
|                 //public string SavingThrows { get; set; } | ||||
|                 //public string Skills { get; set; } | ||||
|                 //public string DamageVulnerabilities { get; set; } | ||||
|                 //public string DamageImmunities { get; set; } | ||||
|                 //public string ConditionImmunities { get; set; } | ||||
|                 //public string DamageResistances { get; set; } | ||||
|                 //public string Senses { get; set; } | ||||
|                 //public string Languages { get; set; } | ||||
|                 //public string Challenge { get; set; } | ||||
|                 //public string Description { get; set; } | ||||
|                 //        return ""; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | @ -21,11 +21,11 @@ namespace AideDeJeu.Tools | |||
|             return document.ToSpells<TSpell>(); | ||||
|         } | ||||
| 
 | ||||
|         public static IEnumerable<Monster> MarkdownToMonsters(string md) | ||||
|         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(); | ||||
|             return document.ToMonsters<TMonster>(); | ||||
|         } | ||||
| 
 | ||||
|         public static string MarkdownToHtml(string md) | ||||
|  | @ -200,10 +200,10 @@ namespace AideDeJeu.Tools | |||
|             return spells; | ||||
|         } | ||||
| 
 | ||||
|         public static IEnumerable<Monster> ToMonsters(this Markdig.Syntax.MarkdownDocument document) | ||||
|         public static IEnumerable<TMonster> ToMonsters<TMonster>(this Markdig.Syntax.MarkdownDocument document) where TMonster : Monster, new() | ||||
|         { | ||||
|             var monsters = new List<Monster>(); | ||||
|             Monster monster = null; | ||||
|             var monsters = new List<TMonster>(); | ||||
|             TMonster monster = null; | ||||
|             List<string> features = null; | ||||
|             List<string> specialFeatures = null; | ||||
|             List<string> actions = null; | ||||
|  | @ -233,7 +233,7 @@ namespace AideDeJeu.Tools | |||
|                             monsters.Add(monster); | ||||
|                             //yield return monster; | ||||
|                         } | ||||
|                         monster = new Monster(); | ||||
|                         monster = new TMonster(); | ||||
|                         monster.Name = headingBlock.Inline.ToMarkdownString(); | ||||
|                         //Console.WriteLine(spell.Name); | ||||
|                     } | ||||
|  |  | |||
|  | @ -39,7 +39,7 @@ namespace AideDeJeu.ViewModels | |||
|                         { | ||||
|                             resourceName = "AideDeJeu.Data.monsters_vo.md"; | ||||
|                             var md = await Tools.Helpers.GetResourceStringAsync(resourceName); | ||||
|                             _AllItems = Tools.MarkdownExtensions.MarkdownToMonsters(md); | ||||
|                             _AllItems = Tools.MarkdownExtensions.MarkdownToMonsters<MonsterVO>(md); | ||||
|                         } | ||||
|                         break; | ||||
|                     case ItemSourceType.MonsterHD: | ||||
|  | @ -47,7 +47,7 @@ namespace AideDeJeu.ViewModels | |||
|                             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.GetResourceStringAsync(resourceName); | ||||
|                             _AllItems = Tools.MarkdownExtensions.MarkdownToMonsters(md); | ||||
|                             _AllItems = Tools.MarkdownExtensions.MarkdownToMonsters<MonsterHD>(md); | ||||
|                         } | ||||
|                         break; | ||||
|                     case ItemSourceType.SpellVO: | ||||
|  |  | |||
|  | @ -16,10 +16,11 @@ | |||
|     <ScrollView Orientation="Vertical" BackgroundColor="#fdf1dc"> | ||||
|         <StackLayout Orientation="Vertical" Padding="15"> | ||||
| 
 | ||||
|             <skia:SKCanvasView PaintSurface="PaintHeaderBar" HorizontalOptions="FillAndExpand" HeightRequest="8" /> | ||||
|             <mdview:MarkdownView x:Name="mdMarkdown" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.Markdown}" /> | ||||
|             <!--<skia:SKCanvasView PaintSurface="PaintHeaderBar" HorizontalOptions="FillAndExpand" HeightRequest="8" /> | ||||
|              | ||||
|             <Label Text="{Binding Item.Name}" Style="{StaticResource Key=subsection}" /> | ||||
|             <mdview:MarkdownView x:Name="mdNameVO" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.NameVO}" /> | ||||
|             <mdview:MarkdownView x:Name="mdNameVO" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.Markdown}" /> | ||||
| 
 | ||||
|             <Label FormattedText="{Binding TypeSizeAlignment}" /> | ||||
| 
 | ||||
|  | @ -88,7 +89,7 @@ | |||
| 
 | ||||
|             <Label Text="{Binding Item.Description}" Style="{StaticResource Key=content}" /> | ||||
|             <Label Text="{Binding Item.Legendary}" Style="{StaticResource Key=content}" /> | ||||
|             <Label Text="{Binding Item.Source}" Style="{StaticResource Key=content}" /> | ||||
|             <Label Text="{Binding Item.Source}" Style="{StaticResource Key=content}" />--> | ||||
| 
 | ||||
|         </StackLayout> | ||||
|     </ScrollView> | ||||
|  |  | |||
|  | @ -26,18 +26,19 @@ namespace AideDeJeu.Views | |||
| 
 | ||||
|             BindingContext = this.viewModel = viewModel; | ||||
| 
 | ||||
|             mdNameVO.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s); | ||||
|             mdSpecialFeatures.NavigateToLink = async(s) => await viewModel.Main.NavigateToLink(s); | ||||
|             mdActions.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s); | ||||
|             mdReactions.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s); | ||||
|             mdLegendaryActions.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s); | ||||
|             mdMarkdown.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s); | ||||
|             //mdNameVO.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s); | ||||
|             //mdSpecialFeatures.NavigateToLink = async(s) => await viewModel.Main.NavigateToLink(s); | ||||
|             //mdActions.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s); | ||||
|             //mdReactions.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s); | ||||
|             //mdLegendaryActions.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s); | ||||
|         } | ||||
| 
 | ||||
|         public MonsterDetailPage() | ||||
|         { | ||||
|             InitializeComponent(); | ||||
| 
 | ||||
|             var item = new Monster | ||||
|             var item = new MonsterHD | ||||
|             { | ||||
|                 Name = "", | ||||
|                 NameVO = "", | ||||
|  |  | |||
|  | @ -48,7 +48,7 @@ namespace AideDeJeuCmd | |||
|                 var document = Markdig.Parsers.MarkdownParser.Parse(md, pipeline); | ||||
|                 //DumpMarkdownDocument(document); | ||||
| 
 | ||||
|                 var monsters = document.ToMonsters(); | ||||
|                 var monsters = document.ToMonsters<MonsterHD>(); | ||||
|                 document.Dump(); | ||||
|                 Console.WriteLine("ok"); | ||||
|                 //var md2 = monsters.ToMarkdownString(); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Yan Maniez
						Yan Maniez