mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-10-31 23:45:39 +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
|
namespace AideDeJeuLib.Monsters
|
||||||
{
|
{
|
||||||
public class Monster : Item
|
public abstract class Monster : Item
|
||||||
{
|
{
|
||||||
public string Type { get; set; }
|
public string Type { get; set; }
|
||||||
public string Size { get; set; }
|
public string Size { get; set; }
|
||||||
|
|
@ -38,12 +38,5 @@ namespace AideDeJeuLib.Monsters
|
||||||
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 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>();
|
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 pipeline = new MarkdownPipelineBuilder().UsePipeTables().Build();
|
||||||
var document = Markdig.Parsers.MarkdownParser.Parse(md, pipeline);
|
var document = Markdig.Parsers.MarkdownParser.Parse(md, pipeline);
|
||||||
return document.ToMonsters();
|
return document.ToMonsters<TMonster>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string MarkdownToHtml(string md)
|
public static string MarkdownToHtml(string md)
|
||||||
|
|
@ -200,10 +200,10 @@ namespace AideDeJeu.Tools
|
||||||
return spells;
|
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>();
|
var monsters = new List<TMonster>();
|
||||||
Monster monster = null;
|
TMonster monster = null;
|
||||||
List<string> features = null;
|
List<string> features = null;
|
||||||
List<string> specialFeatures = null;
|
List<string> specialFeatures = null;
|
||||||
List<string> actions = null;
|
List<string> actions = null;
|
||||||
|
|
@ -233,7 +233,7 @@ namespace AideDeJeu.Tools
|
||||||
monsters.Add(monster);
|
monsters.Add(monster);
|
||||||
//yield return monster;
|
//yield return monster;
|
||||||
}
|
}
|
||||||
monster = new Monster();
|
monster = new TMonster();
|
||||||
monster.Name = headingBlock.Inline.ToMarkdownString();
|
monster.Name = headingBlock.Inline.ToMarkdownString();
|
||||||
//Console.WriteLine(spell.Name);
|
//Console.WriteLine(spell.Name);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ 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(md);
|
_AllItems = Tools.MarkdownExtensions.MarkdownToMonsters<MonsterVO>(md);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ItemSourceType.MonsterHD:
|
case ItemSourceType.MonsterHD:
|
||||||
|
|
@ -47,7 +47,7 @@ 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(md);
|
_AllItems = Tools.MarkdownExtensions.MarkdownToMonsters<MonsterHD>(md);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ItemSourceType.SpellVO:
|
case ItemSourceType.SpellVO:
|
||||||
|
|
|
||||||
|
|
@ -16,10 +16,11 @@
|
||||||
<ScrollView Orientation="Vertical" BackgroundColor="#fdf1dc">
|
<ScrollView Orientation="Vertical" BackgroundColor="#fdf1dc">
|
||||||
<StackLayout Orientation="Vertical" Padding="15">
|
<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}" />
|
<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}" />
|
<Label FormattedText="{Binding TypeSizeAlignment}" />
|
||||||
|
|
||||||
|
|
@ -88,7 +89,7 @@
|
||||||
|
|
||||||
<Label Text="{Binding Item.Description}" Style="{StaticResource Key=content}" />
|
<Label Text="{Binding Item.Description}" Style="{StaticResource Key=content}" />
|
||||||
<Label Text="{Binding Item.Legendary}" 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>
|
</StackLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|
|
||||||
|
|
@ -26,18 +26,19 @@ namespace AideDeJeu.Views
|
||||||
|
|
||||||
BindingContext = this.viewModel = viewModel;
|
BindingContext = this.viewModel = viewModel;
|
||||||
|
|
||||||
mdNameVO.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s);
|
mdMarkdown.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s);
|
||||||
mdSpecialFeatures.NavigateToLink = async(s) => await viewModel.Main.NavigateToLink(s);
|
//mdNameVO.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s);
|
||||||
mdActions.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s);
|
//mdSpecialFeatures.NavigateToLink = async(s) => await viewModel.Main.NavigateToLink(s);
|
||||||
mdReactions.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s);
|
//mdActions.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s);
|
||||||
mdLegendaryActions.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()
|
public MonsterDetailPage()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
var item = new Monster
|
var item = new MonsterHD
|
||||||
{
|
{
|
||||||
Name = "",
|
Name = "",
|
||||||
NameVO = "",
|
NameVO = "",
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ namespace AideDeJeuCmd
|
||||||
var document = Markdig.Parsers.MarkdownParser.Parse(md, pipeline);
|
var document = Markdig.Parsers.MarkdownParser.Parse(md, pipeline);
|
||||||
//DumpMarkdownDocument(document);
|
//DumpMarkdownDocument(document);
|
||||||
|
|
||||||
var monsters = document.ToMonsters();
|
var monsters = document.ToMonsters<MonsterHD>();
|
||||||
document.Dump();
|
document.Dump();
|
||||||
Console.WriteLine("ok");
|
Console.WriteLine("ok");
|
||||||
//var md2 = monsters.ToMarkdownString();
|
//var md2 = monsters.ToMarkdownString();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue