mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-10-29 22:45:44 +00:00
Refonte création des items
This commit is contained in:
parent
514ee67ef9
commit
1b1ab3c303
27 changed files with 824 additions and 129 deletions
|
|
@ -62,7 +62,7 @@
|
|||
<Version>1.60.0</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="SkiaSharp.Views.Forms">
|
||||
<Version>1.60.0</Version>
|
||||
<Version>1.60.2</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Xamarin.Forms">
|
||||
<Version>3.1.0.583944</Version>
|
||||
|
|
|
|||
|
|
@ -179,7 +179,7 @@
|
|||
<Version>1.60.0</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="SkiaSharp.Views.Forms">
|
||||
<Version>1.60.0</Version>
|
||||
<Version>1.60.2</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.1.5" />
|
||||
<PackageReference Include="Xamarin.Forms">
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@
|
|||
<Version>1.60.0</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="SkiaSharp.Views.Forms">
|
||||
<Version>1.60.0</Version>
|
||||
<Version>1.60.2</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Xamarin.Forms">
|
||||
<Version>3.1.0.583944</Version>
|
||||
|
|
|
|||
|
|
@ -26,9 +26,9 @@
|
|||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Markdig" Version="0.15.0" />
|
||||
<PackageReference Include="Markdig" Version="0.15.1" />
|
||||
<PackageReference Include="SkiaSharp.Svg" Version="1.60.0" />
|
||||
<PackageReference Include="SkiaSharp.Views.Forms" Version="1.60.0" />
|
||||
<PackageReference Include="SkiaSharp.Views.Forms" Version="1.60.2" />
|
||||
<PackageReference Include="Xamarin.Forms" Version="3.1.0.583944" />
|
||||
</ItemGroup>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,13 @@
|
|||
using System;
|
||||
using AideDeJeu.ViewModels;
|
||||
using AideDeJeu.ViewModels;
|
||||
using AideDeJeu.Views;
|
||||
using AideDeJeuLib.Models;
|
||||
using AideDeJeuLib;
|
||||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Xaml;
|
||||
|
||||
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
|
||||
namespace AideDeJeu
|
||||
{
|
||||
public partial class App : Application
|
||||
public partial class App : Application
|
||||
{
|
||||
|
||||
public App ()
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
using AideDeJeuLib.Spells;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Xml;
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ using System.Collections.Generic;
|
|||
using System.Text;
|
||||
using Markdig.Syntax;
|
||||
|
||||
namespace AideDeJeuLib.Conditions
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
public class Condition : Item
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ using System.Collections.Generic;
|
|||
using System.Text;
|
||||
using Markdig.Syntax;
|
||||
|
||||
namespace AideDeJeuLib.Models
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
public class HomeItem : Item
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@ using System.Collections;
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using AideDeJeu.Tools;
|
||||
using Markdig.Syntax;
|
||||
using Markdig.Syntax.Inlines;
|
||||
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
|
|
@ -23,7 +25,18 @@ namespace AideDeJeuLib
|
|||
enumerator.MoveNext();
|
||||
while (enumerator.Current != null)
|
||||
{
|
||||
var item = new Spells.SpellHD();
|
||||
var block = enumerator.Current;
|
||||
if(block.IsNewItem())
|
||||
{
|
||||
break;
|
||||
}
|
||||
enumerator.MoveNext();
|
||||
}
|
||||
//enumerator.MoveNext();
|
||||
while (enumerator.Current != null)
|
||||
{
|
||||
var item = enumerator.Current.GetNewItem();
|
||||
//var item = new Spells.SpellHD();
|
||||
item.Parse(ref enumerator);
|
||||
items.Add(item);
|
||||
//enumerator.MoveNext();
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ using System.Runtime.Serialization;
|
|||
using System.Text.RegularExpressions;
|
||||
using System.Xml;
|
||||
|
||||
namespace AideDeJeuLib.Monsters
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
public abstract class Monster : Item
|
||||
{
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ using System.Linq;
|
|||
using System.Text;
|
||||
using Markdig.Syntax;
|
||||
|
||||
namespace AideDeJeuLib.Monsters
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
public class MonsterHD : Monster
|
||||
{
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ using System.Linq;
|
|||
using System.Text;
|
||||
using Markdig.Syntax;
|
||||
|
||||
namespace AideDeJeuLib.Monsters
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
public class MonsterVO : Monster
|
||||
{
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ using System.Text.RegularExpressions;
|
|||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace AideDeJeuLib.Spells
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
public abstract class Spell : Item
|
||||
{
|
||||
|
|
|
|||
|
|
@ -5,8 +5,9 @@ using System.Text;
|
|||
using System.Text.RegularExpressions;
|
||||
using AideDeJeu.Tools;
|
||||
using Markdig.Syntax;
|
||||
using Markdig.Syntax.Inlines;
|
||||
|
||||
namespace AideDeJeuLib.Spells
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
public class SpellHD : Spell
|
||||
{
|
||||
|
|
@ -56,20 +57,21 @@ namespace AideDeJeuLib.Spells
|
|||
{
|
||||
return
|
||||
$"# {Name}\n" +
|
||||
$"{NameVO}\n" +
|
||||
$"_{LevelType}_\n" +
|
||||
$"**Temps d'incantation :** {CastingTime}\n" +
|
||||
$"**Portée :** {Range}\n" +
|
||||
$"**Composantes :** {Components}\n" +
|
||||
$"**Durée :** {Duration}\n\n" +
|
||||
$"- {NameVO}\n" +
|
||||
$"- _{LevelType}_\n" +
|
||||
$"- **Temps d'incantation :** {CastingTime}\n" +
|
||||
$"- **Portée :** {Range}\n" +
|
||||
$"- **Composantes :** {Components}\n" +
|
||||
$"- **Durée :** {Duration}\n\n" +
|
||||
$"{DescriptionHtml}\n\n" +
|
||||
$"**Source :** {Source}";
|
||||
$"- **Source :** {Source}";
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public override void Parse(ref ContainerBlock.Enumerator enumerator)
|
||||
{
|
||||
enumerator.MoveNext();
|
||||
while (enumerator.Current != null)
|
||||
{
|
||||
var block = enumerator.Current;
|
||||
|
|
@ -89,7 +91,12 @@ namespace AideDeJeuLib.Spells
|
|||
}
|
||||
if (block is Markdig.Syntax.ParagraphBlock)
|
||||
{
|
||||
if(block.IsNewItem())
|
||||
{
|
||||
return;
|
||||
}
|
||||
var paragraphBlock = block as Markdig.Syntax.ParagraphBlock;
|
||||
|
||||
this.DescriptionHtml += MarkdownExtensions.MarkdownToHtml(paragraphBlock.ToMarkdownString()) + "\n";
|
||||
////DumpParagraphBlock(paragraphBlock);
|
||||
//Console.WriteLine(paragraphBlock.IsBreakable);
|
||||
|
|
@ -175,18 +182,6 @@ namespace AideDeJeuLib.Spells
|
|||
var tableBlock = block as Markdig.Extensions.Tables.Table;
|
||||
this.DescriptionHtml += "\n\n" + tableBlock.ToMarkdownString() + "\n\n";
|
||||
}
|
||||
//if (enumerator.Current is Markdig.Syntax.LinkReferenceDefinitionGroup)
|
||||
//{
|
||||
// var linkReferenceDefinitionGroup = enumerator.Current as Markdig.Syntax.LinkReferenceDefinitionGroup;
|
||||
// var linkReferenceDefinition = linkReferenceDefinitionGroup.FirstOrDefault() as Markdig.Syntax.LinkReferenceDefinition;
|
||||
// var label = linkReferenceDefinition.Label;
|
||||
// var title = linkReferenceDefinition.Title;
|
||||
// var url = linkReferenceDefinition.Url;
|
||||
// if (label == "//")
|
||||
// {
|
||||
// return;
|
||||
// }
|
||||
//}
|
||||
enumerator.MoveNext();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ using System.Text;
|
|||
using System.Text.RegularExpressions;
|
||||
using Markdig.Syntax;
|
||||
|
||||
namespace AideDeJeuLib.Spells
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
public class SpellVO : Spell
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,8 +1,5 @@
|
|||
using AideDeJeuLib;
|
||||
using AideDeJeuLib.Spells;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace AideDeJeu.Tools
|
||||
|
|
|
|||
|
|
@ -1,15 +1,9 @@
|
|||
using AideDeJeuLib.Spells;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using System.Linq;
|
||||
using System.Diagnostics;
|
||||
using AideDeJeuLib.Monsters;
|
||||
using Markdig;
|
||||
using AideDeJeuLib;
|
||||
using AideDeJeuLib.Conditions;
|
||||
using Markdig.Syntax;
|
||||
using Markdig.Syntax.Inlines;
|
||||
|
||||
|
|
@ -50,49 +44,66 @@ namespace AideDeJeu.Tools
|
|||
{
|
||||
var pipeline = new MarkdownPipelineBuilder().UsePipeTables().Build();
|
||||
var document = Markdig.Parsers.MarkdownParser.Parse(md, pipeline);
|
||||
var block = document.First();
|
||||
|
||||
var enumerator = document.GetEnumerator();
|
||||
try
|
||||
{
|
||||
enumerator.MoveNext();
|
||||
while (enumerator.Current != null)
|
||||
{
|
||||
var block = enumerator.Current;
|
||||
|
||||
if (enumerator.Current is Markdig.Syntax.ParagraphBlock)
|
||||
{
|
||||
var paragraphBlock = enumerator.Current as ParagraphBlock;
|
||||
var linkInline = paragraphBlock.Inline.FirstChild as LinkInline;
|
||||
if(linkInline != null)
|
||||
if(block.IsNewItem())
|
||||
{
|
||||
var label = linkInline.Label;
|
||||
var title = linkInline.Title;
|
||||
var url = linkInline.Url;
|
||||
if (title == "")
|
||||
{
|
||||
var name = $"AideDeJeuLib.{label}, AideDeJeu";
|
||||
var type = Type.GetType(name);
|
||||
var instance = Activator.CreateInstance(type) as Item;
|
||||
instance.Parse(ref enumerator);
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (enumerator.Current is Markdig.Syntax.LinkReferenceDefinitionGroup)
|
||||
{
|
||||
var linkReferenceDefinitionGroup = enumerator.Current as Markdig.Syntax.LinkReferenceDefinitionGroup;
|
||||
var linkReferenceDefinition = linkReferenceDefinitionGroup.FirstOrDefault() as Markdig.Syntax.LinkReferenceDefinition;
|
||||
var label = linkReferenceDefinition.Label;
|
||||
var title = linkReferenceDefinition.Title;
|
||||
var url = linkReferenceDefinition.Url;
|
||||
if (label == "//")
|
||||
{
|
||||
var name = $"AideDeJeuLib.{title}, AideDeJeu";
|
||||
var type = Type.GetType(name);
|
||||
var instance = Activator.CreateInstance(type) as Item;
|
||||
instance.Parse(ref enumerator);
|
||||
return instance;
|
||||
var item = block.GetNewItem();
|
||||
item.Parse(ref enumerator);
|
||||
return item;
|
||||
}
|
||||
}
|
||||
enumerator.MoveNext();
|
||||
}
|
||||
|
||||
}
|
||||
finally
|
||||
{
|
||||
enumerator.Dispose();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static bool IsNewItem(this Block block)
|
||||
{
|
||||
var paragraphBlock = block as ParagraphBlock;
|
||||
var linkInline = paragraphBlock?.Inline?.FirstChild as LinkInline;
|
||||
if (linkInline != null)
|
||||
{
|
||||
var title = linkInline.Title;
|
||||
if (title == string.Empty)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static Item GetNewItem(this Block block)
|
||||
{
|
||||
var paragraphBlock = block as ParagraphBlock;
|
||||
var linkInline = paragraphBlock?.Inline?.FirstChild as LinkInline;
|
||||
if (linkInline != null)
|
||||
{
|
||||
var label = linkInline.Label;
|
||||
var title = linkInline.Title;
|
||||
var url = linkInline.Url;
|
||||
if (title == string.Empty)
|
||||
{
|
||||
var name = $"AideDeJeuLib.{label}, AideDeJeu";
|
||||
var type = Type.GetType(name);
|
||||
var instance = Activator.CreateInstance(type) as Item;
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,5 @@
|
|||
using AideDeJeu.Tools;
|
||||
using AideDeJeuLib.Monsters;
|
||||
using AideDeJeuLib.Spells;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Input;
|
||||
|
|
|
|||
|
|
@ -5,9 +5,6 @@ using System.Runtime.CompilerServices;
|
|||
|
||||
using Xamarin.Forms;
|
||||
|
||||
using AideDeJeuLib.Spells;
|
||||
using AideDeJeuLib.Monsters;
|
||||
|
||||
namespace AideDeJeu.ViewModels
|
||||
{
|
||||
public class BaseViewModel : INotifyPropertyChanged
|
||||
|
|
|
|||
|
|
@ -1,15 +1,10 @@
|
|||
using AideDeJeu.Tools;
|
||||
using AideDeJeuLib;
|
||||
using AideDeJeuLib.Monsters;
|
||||
using AideDeJeuLib.Spells;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Input;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace AideDeJeu.ViewModels
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,10 +1,4 @@
|
|||
using AideDeJeu.Tools;
|
||||
using AideDeJeuLib;
|
||||
using AideDeJeuLib.Monsters;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Threading.Tasks;
|
||||
using Xamarin.Forms;
|
||||
using AideDeJeuLib;
|
||||
|
||||
namespace AideDeJeu.ViewModels
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,15 +1,12 @@
|
|||
using AideDeJeuLib;
|
||||
using AideDeJeuLib.Monsters;
|
||||
using AideDeJeuLib.Spells;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Input;
|
||||
using Xamarin.Forms;
|
||||
using System.Threading;
|
||||
using System.Linq;
|
||||
|
||||
namespace AideDeJeu.ViewModels
|
||||
{
|
||||
|
|
@ -73,7 +70,7 @@ namespace AideDeJeu.ViewModels
|
|||
{
|
||||
resourceName = "AideDeJeu.Data.conditions_vo.md";
|
||||
var md = await Tools.Helpers.GetResourceStringAsync(resourceName);
|
||||
_AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Conditions.Condition>(md);
|
||||
_AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Condition>(md);
|
||||
}
|
||||
break;
|
||||
case ItemSourceType.ConditionHD:
|
||||
|
|
@ -81,7 +78,7 @@ namespace AideDeJeu.ViewModels
|
|||
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.GetResourceStringAsync(resourceName);
|
||||
_AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Conditions.Condition>(md);
|
||||
_AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Condition>(md);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,5 @@
|
|||
using AideDeJeu.Views;
|
||||
using AideDeJeuLib;
|
||||
using AideDeJeuLib.Monsters;
|
||||
using AideDeJeuLib.Spells;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using Xamarin.Forms;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,18 +1,10 @@
|
|||
|
||||
using AideDeJeu.ViewModels;
|
||||
using AideDeJeuLib.Monsters;
|
||||
using AideDeJeuLib;
|
||||
using SkiaSharp;
|
||||
using SkiaSharp.Views.Forms;
|
||||
using System;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Xaml;
|
||||
using System.Linq;
|
||||
using AideDeJeuLib.Spells;
|
||||
using System.Text;
|
||||
using System.Globalization;
|
||||
using AideDeJeuLib;
|
||||
|
||||
namespace AideDeJeu.Views
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
using AideDeJeu.ViewModels;
|
||||
using AideDeJeuLib.Monsters;
|
||||
using AideDeJeuLib.Spells;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Xamarin.Forms;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,8 @@
|
|||
using AideDeJeu.Tools;
|
||||
using AideDeJeuLib.Monsters;
|
||||
using AideDeJeuLib.Spells;
|
||||
using AideDeJeuLib;
|
||||
using Markdig;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue