mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-10-30 06:56:10 +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