mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-10-30 15:06:06 +00:00
Nouvelles polices
This commit is contained in:
parent
b5ab129daa
commit
0d1fe544c5
15 changed files with 559 additions and 434 deletions
|
|
@ -26,6 +26,11 @@
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<AndroidLinkMode>None</AndroidLinkMode>
|
<AndroidLinkMode>None</AndroidLinkMode>
|
||||||
|
<AotAssemblies>false</AotAssemblies>
|
||||||
|
<EnableLLVM>false</EnableLLVM>
|
||||||
|
<BundleAssemblies>false</BundleAssemblies>
|
||||||
|
<AndroidSupportedAbis />
|
||||||
|
<AndroidHttpClientHandlerType>Xamarin.Android.Net.AndroidClientHandler</AndroidHttpClientHandlerType>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
|
@ -58,6 +63,7 @@
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<AndroidAsset Include="Assets\LinLibertine_R.ttf" />
|
||||||
<None Include="Resources\AboutResources.txt" />
|
<None Include="Resources\AboutResources.txt" />
|
||||||
<None Include="Assets\AboutAssets.txt" />
|
<None Include="Assets\AboutAssets.txt" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
||||||
BIN
AideDeJeu/AideDeJeu.Android/Assets/LinLibertine_R.ttf
Normal file
BIN
AideDeJeu/AideDeJeu.Android/Assets/LinLibertine_R.ttf
Normal file
Binary file not shown.
|
|
@ -1,5 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.AideDeJeu">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.AideDeJeu" android:installLocation="auto">
|
||||||
<uses-sdk android:minSdkVersion="15" />
|
<uses-sdk android:minSdkVersion="15" />
|
||||||
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<application android:label="AideDeJeu.Android"></application>
|
<application android:label="AideDeJeu.Android"></application>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
@ -102,6 +102,7 @@
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</AppxManifest>
|
</AppxManifest>
|
||||||
<None Include="AideDeJeu.UWP_TemporaryKey.pfx" />
|
<None Include="AideDeJeu.UWP_TemporaryKey.pfx" />
|
||||||
|
<Content Include="Assets\Fonts\LinLibertine_R.ttf" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="Properties\Default.rd.xml" />
|
<Content Include="Properties\Default.rd.xml" />
|
||||||
|
|
@ -150,7 +151,7 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Xamarin.Forms" Version="2.5.0.280555" />
|
<PackageReference Include="Xamarin.Forms" Version="2.5.0.280555" />
|
||||||
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.0.1"/>
|
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.0.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\AideDeJeu\AideDeJeu.csproj">
|
<ProjectReference Include="..\AideDeJeu\AideDeJeu.csproj">
|
||||||
|
|
@ -158,6 +159,7 @@
|
||||||
<Name>AideDeJeu</Name>
|
<Name>AideDeJeu</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup />
|
||||||
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0' ">
|
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0' ">
|
||||||
<VisualStudioVersion>14.0</VisualStudioVersion>
|
<VisualStudioVersion>14.0</VisualStudioVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
|
||||||
BIN
AideDeJeu/AideDeJeu.UWP/Assets/Fonts/LinLibertine_R.ttf
Normal file
BIN
AideDeJeu/AideDeJeu.UWP/Assets/Fonts/LinLibertine_R.ttf
Normal file
Binary file not shown.
|
|
@ -93,6 +93,9 @@
|
||||||
<None Include="Entitlements.plist" />
|
<None Include="Entitlements.plist" />
|
||||||
<None Include="Info.plist" />
|
<None Include="Info.plist" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<BundleResource Include="Resources\Fonts\LinLibertine_R.ttf">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</BundleResource>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<BundleResource Include="Resources\Default-568h%402x.png" />
|
<BundleResource Include="Resources\Default-568h%402x.png" />
|
||||||
|
|
|
||||||
BIN
AideDeJeu/AideDeJeu.iOS/Resources/Fonts/LinLibertine_R.ttf
Normal file
BIN
AideDeJeu/AideDeJeu.iOS/Resources/Fonts/LinLibertine_R.ttf
Normal file
Binary file not shown.
|
|
@ -4,6 +4,10 @@
|
||||||
<TargetFramework>netstandard2.0</TargetFramework>
|
<TargetFramework>netstandard2.0</TargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Remove="Resources\AdJTheme.xaml" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Xamarin.Forms" Version="2.5.0.280555" />
|
<PackageReference Include="Xamarin.Forms" Version="2.5.0.280555" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,87 @@
|
||||||
<Color x:Key="MediumGrayTextColor">#4d4d4d</Color>
|
<Color x:Key="MediumGrayTextColor">#4d4d4d</Color>
|
||||||
<Color x:Key="LightTextColor">#999999</Color>
|
<Color x:Key="LightTextColor">#999999</Color>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- https://github.com/evanbergeron/DND-5e-LaTeX-Template/blob/master/lib/dndcolors.sty -->
|
||||||
|
|
||||||
|
<Color x:Key="bgtan">#F7F2E5</Color> <!--% background and quotebox-->
|
||||||
|
<Color x:Key="pagegold">#B89A67</Color> <!--% pagenumbers and footer-->
|
||||||
|
|
||||||
|
<!--% Type-->
|
||||||
|
<Color x:Key="titlered">#58180D</Color> <!--% titles-->
|
||||||
|
<Color x:Key="titlegold">#C9AD6A</Color> <!--% titlerules-->
|
||||||
|
<Color x:Key="rulered">#9C2B1B</Color> <!--% triangular rule in statsblock-->
|
||||||
|
|
||||||
|
<!--% Trim (affects tables and paperboxes)-->
|
||||||
|
<Color x:Key="PhbLightGreen">#E0E5C1</Color> <!--% PHB Part 1-->
|
||||||
|
<Color x:Key="PhbLightCyan">#B5CEB8</Color> <!--% PHB Part 2-->
|
||||||
|
<Color x:Key="PhbMauve">#DCCCC5</Color> <!--% PHB Part 3-->
|
||||||
|
<Color x:Key="PhbTan">#E5D5AC</Color> <!--% PHB appendix-->
|
||||||
|
<Color x:Key="DmgLavender">#E3CED3</Color> <!--% DMG Part 1-->
|
||||||
|
<Color x:Key="DmgCoral">#F3D7C1</Color> <!--% DMG Part 2-->
|
||||||
|
<Color x:Key="DmgSlateGray">#DBE4E4</Color> <!--% DMG Part 3-->
|
||||||
|
<Color x:Key="DmgLilac">#D7D4D6</Color> <!--% DMG appendix-->
|
||||||
|
|
||||||
|
<!--% Trim aliases-->
|
||||||
|
<Color x:Key="DmgSlateGrey">#DBE4E4</Color>
|
||||||
|
|
||||||
|
<!--% The color used in \setthemecolor when a new color is not set-->
|
||||||
|
<Color x:Key="themecolor">#E0E5C1</Color> <!--% Set the default theme to Part 1 of the PHB.-->
|
||||||
|
|
||||||
|
<!--% Element colors that change when \setthemecolor is used-->
|
||||||
|
<Color x:Key="commentboxcolor">#E0E5C1</Color> <!--% commentbox background-->
|
||||||
|
<Color x:Key="paperboxcolor">#E0E5C1</Color> <!--% paperbox background-->
|
||||||
|
<Color x:Key="tablecolor">#E0E5C1</Color> <!--% table even row background-->
|
||||||
|
|
||||||
|
<!--% Element colors that do not respond to \setthemecolor-->
|
||||||
|
<Color x:Key="quoteboxcolor">#F7F2E5</Color> <!--% quotebox background-->
|
||||||
|
<Color x:Key="statblockribbon">#E69A28</Color> <!--% stat block top/bottom borders (gold)-->
|
||||||
|
<Color x:Key="statblockbg">#FDF1DC</Color> <!--% stat block background (tan)-->
|
||||||
|
|
||||||
|
<!--% Sets the themecolor and colors for all themed elements
|
||||||
|
% If called without the optional color, resets the color of all themed elements to the current themecolor
|
||||||
|
\newcommand{\setthemecolor}[1][themecolor]{%
|
||||||
|
\colorlet{themecolor}{#1}
|
||||||
|
\colorlet{commentboxcolor}{#1}
|
||||||
|
\colorlet{paperboxcolor}{#1}
|
||||||
|
\colorlet{tablecolor}{#1}
|
||||||
|
}-->
|
||||||
|
|
||||||
|
<!--% Backwards-compatible aliases and colours-->
|
||||||
|
<Color x:Key="commentgreen">#E0E5C1</Color>
|
||||||
|
<Color x:Key="itemtablepink">#F3D7C1</Color>
|
||||||
|
<Color x:Key="monstertan">#FDF1DC</Color>
|
||||||
|
<Color x:Key="monstertandark">#F0DBB5</Color>
|
||||||
|
|
||||||
|
<Style TargetType="Label" x:Key="section">
|
||||||
|
<Setter Property="FontSize" Value="Large" />
|
||||||
|
<Setter Property="TextColor" Value="{StaticResource titlered}" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style TargetType="Label" x:Key="subsection">
|
||||||
|
<Setter Property="FontSize" Value="Medium" />
|
||||||
|
<Setter Property="TextColor" Value="{StaticResource titlered}" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style TargetType="Label" x:Key="subsubsection">
|
||||||
|
<Setter Property="FontSize" Value="Small" />
|
||||||
|
<Setter Property="TextColor" Value="{StaticResource titlered}" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style TargetType="ContentPage">
|
||||||
|
<Setter Property="BackgroundColor" Value="{StaticResource bgtan}" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<OnPlatform x:Key="LibertineR" x:TypeArguments="x:String">
|
||||||
|
<On Platform="iOS" Value="Lobster-Regular" />
|
||||||
|
<On Platform="Android" Value="LinLibertine_R.ttf#Linux Libertine" />
|
||||||
|
<On Platform="UWP, WinRT, WinPhone" Value="Assets/Fonts/LinLibertine_R.ttf#Linux Libertine" />
|
||||||
|
</OnPlatform>
|
||||||
|
<Style TargetType="Label">
|
||||||
|
<Setter Property="FontFamily" Value="{DynamicResource LibertineR}" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
<Style TargetType="NavigationPage">
|
<Style TargetType="NavigationPage">
|
||||||
<Setter Property="BarBackgroundColor" Value="{StaticResource Primary}" />
|
<Setter Property="BarBackgroundColor" Value="{StaticResource Primary}" />
|
||||||
<Setter Property="BarTextColor" Value="White" />
|
<Setter Property="BarTextColor" Value="White" />
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,7 @@
|
||||||
x:Class="AideDeJeu.Views.ItemDetailPage"
|
x:Class="AideDeJeu.Views.ItemDetailPage"
|
||||||
Title="{Binding Title}">
|
Title="{Binding Title}">
|
||||||
<StackLayout Spacing="20" Padding="15">
|
<StackLayout Spacing="20" Padding="15">
|
||||||
<Label Text="Text:" FontSize="Medium" />
|
<Label Text="{Binding Item.Text}" Style="{StaticResource Key=section}" />
|
||||||
<Label Text="{Binding Item.Text}" FontSize="Small"/>
|
<Label Text="{Binding Item.Description}" Style="{StaticResource Key=subsection}" />
|
||||||
<Label Text="Description:" FontSize="Medium" />
|
|
||||||
<Label Text="{Binding Item.Description}" FontSize="Small"/>
|
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
</ContentPage>
|
</ContentPage>
|
||||||
224
AideDeJeu/AideDeJeuLib/Cards.cs
Normal file
224
AideDeJeu/AideDeJeuLib/Cards.cs
Normal file
|
|
@ -0,0 +1,224 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Runtime.Serialization;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace AideDeJeuLib
|
||||||
|
{
|
||||||
|
/*public class CardDataOwner
|
||||||
|
{
|
||||||
|
public CardData[] CardDatas { get; set; }
|
||||||
|
}*/
|
||||||
|
[DataContract]
|
||||||
|
public class CardData
|
||||||
|
{
|
||||||
|
[DataMember(Name = "count")]
|
||||||
|
public int Count { get; set; }
|
||||||
|
[DataMember(Name = "color")]
|
||||||
|
public string Color { get; set; }
|
||||||
|
[DataMember(Name = "title")]
|
||||||
|
public string Title { get; set; }
|
||||||
|
[DataMember(Name = "title_size")]
|
||||||
|
public string TitleSize { get; set; }
|
||||||
|
[DataMember(Name = "icon")]
|
||||||
|
public string Icon { get; set; }
|
||||||
|
[DataMember(Name = "icon_back")]
|
||||||
|
public string IconBack { get; set; }
|
||||||
|
[DataMember(Name = "contents")]
|
||||||
|
public string[] ContentsToString { get { return Contents.Select(cc => cc.ToString()).ToArray(); } }
|
||||||
|
[IgnoreDataMember]
|
||||||
|
public CardContent[] Contents { get; set; }
|
||||||
|
[DataMember(Name = "tags")]
|
||||||
|
public string[] Tags { get; set; }
|
||||||
|
[DataMember(Name = "background_image")]
|
||||||
|
public string BackgroundImage { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface CardContent
|
||||||
|
{
|
||||||
|
int Height { get; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SubtitleCardContent : CardContent
|
||||||
|
{
|
||||||
|
public string Subtitle { get; set; }
|
||||||
|
|
||||||
|
public SubtitleCardContent(string subtitle)
|
||||||
|
{
|
||||||
|
Subtitle = subtitle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return "subtitle | " + Subtitle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Height { get { return 12; } }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class RuleCardContent : CardContent
|
||||||
|
{
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return "rule";
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Height { get { return 15; } }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class PropertyCardContent : CardContent
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
public string Value { get; set; }
|
||||||
|
|
||||||
|
public PropertyCardContent(string name, string value)
|
||||||
|
{
|
||||||
|
Name = name;
|
||||||
|
Value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return "property | " + Name + " | " + Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Height { get { return ((Name.Length + Value.Length) / 35 + 1) * 15; } }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FillCardContent : CardContent
|
||||||
|
{
|
||||||
|
public int Fill { get; set; }
|
||||||
|
|
||||||
|
public FillCardContent(int fill)
|
||||||
|
{
|
||||||
|
Fill = fill;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return "fill | " + Fill;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Height { get { return 1; } }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TextCardContent : CardContent
|
||||||
|
{
|
||||||
|
public string Text { get; set; }
|
||||||
|
|
||||||
|
public TextCardContent(string text)
|
||||||
|
{
|
||||||
|
Text = text;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return "text | " + Text;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Height { get { return (Text.Length / 35 + 1) * 15 + 6; } }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SectionCardContent : CardContent
|
||||||
|
{
|
||||||
|
public string Section { get; set; }
|
||||||
|
|
||||||
|
public SectionCardContent(string section)
|
||||||
|
{
|
||||||
|
Section = section;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return "section | " + Section;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Height { get { return 20; } }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DescriptionCardContent : CardContent
|
||||||
|
{
|
||||||
|
public string Quality { get; set; }
|
||||||
|
|
||||||
|
public string Text { get; set; }
|
||||||
|
|
||||||
|
public DescriptionCardContent(string quality, string text)
|
||||||
|
{
|
||||||
|
Quality = quality;
|
||||||
|
Text = text;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return "description | " + Quality + " | " + Text;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Height { get { return ((Quality.Length + Text.Length) / 35 + 1) * 15 + 6; } }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class BulletCardContent : CardContent
|
||||||
|
{
|
||||||
|
public string Text { get; set; }
|
||||||
|
|
||||||
|
public BulletCardContent(string text)
|
||||||
|
{
|
||||||
|
Text = text;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return "bullet | " + Text;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Height { get { return (Text.Length / 30 + 1) * 15; } }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class BoxesCardContent : CardContent
|
||||||
|
{
|
||||||
|
public int Count { get; set; }
|
||||||
|
|
||||||
|
public int Size { get; set; }
|
||||||
|
|
||||||
|
public BoxesCardContent(int count, int size)
|
||||||
|
{
|
||||||
|
Count = count;
|
||||||
|
Size = size;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return "boxes | " + Count + " | " + Size;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Height { get { return 16; } }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DndstatsCardContent : CardContent
|
||||||
|
{
|
||||||
|
public int Strength { get; set; }
|
||||||
|
public int Dexterity { get; set; }
|
||||||
|
public int Constitution { get; set; }
|
||||||
|
public int Intelligence { get; set; }
|
||||||
|
public int Wisdom { get; set; }
|
||||||
|
public int Charisma { get; set; }
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return "dndstats | " + Strength + " | " + Dexterity + " | " + Constitution + " | " + Intelligence + " | " + Wisdom + " | " + Charisma;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Height { get { return 20; } }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EmptyCardContent : CardContent
|
||||||
|
{
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Height { get { return 0; } }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
191
AideDeJeu/AideDeJeuLib/Converters.cs
Normal file
191
AideDeJeu/AideDeJeuLib/Converters.cs
Normal file
|
|
@ -0,0 +1,191 @@
|
||||||
|
using HtmlAgilityPack;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace AideDeJeuLib
|
||||||
|
{
|
||||||
|
public static class Converters
|
||||||
|
{
|
||||||
|
public static CardContent TextToCardContent(string text)
|
||||||
|
{
|
||||||
|
if (text.StartsWith("•"))
|
||||||
|
{
|
||||||
|
return new BulletCardContent(text.Substring(1));
|
||||||
|
}
|
||||||
|
else if (text.Trim(new char[] { ' ', '\n' }) == ".")
|
||||||
|
{
|
||||||
|
return new EmptyCardContent();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return new TextCardContent(text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string[] SplitText(string text)
|
||||||
|
{
|
||||||
|
var texts = new List<string>();
|
||||||
|
string str = "";
|
||||||
|
bool autoreturn = true;
|
||||||
|
foreach (var car in text)
|
||||||
|
{
|
||||||
|
if (car == '\n')
|
||||||
|
{
|
||||||
|
texts.Add(str);
|
||||||
|
str = "";
|
||||||
|
autoreturn = true;
|
||||||
|
}
|
||||||
|
else if (car == '.')
|
||||||
|
{
|
||||||
|
if (autoreturn)
|
||||||
|
{
|
||||||
|
texts.Add(str + '.');
|
||||||
|
str = "";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
str += car;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (car == '•')
|
||||||
|
{
|
||||||
|
texts.Add(str);
|
||||||
|
str = "•";
|
||||||
|
autoreturn = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
str += car;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (str.Length > 0)
|
||||||
|
{
|
||||||
|
texts.Add(str);
|
||||||
|
}
|
||||||
|
return texts.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static CardContent[] ToContents(HtmlNode description)
|
||||||
|
{
|
||||||
|
var contents = new List<CardContent>();
|
||||||
|
string currentText = "";
|
||||||
|
foreach (var content in description.ChildNodes)
|
||||||
|
{
|
||||||
|
//Debug.WriteLine(content.NodeType + " " + content.Name + " " + content.InnerText);
|
||||||
|
if (content.NodeType == HtmlNodeType.Element && content.Name == "strong")
|
||||||
|
{
|
||||||
|
if (currentText.Length > 0)
|
||||||
|
{
|
||||||
|
contents.Add(TextToCardContent(currentText));
|
||||||
|
currentText = "";
|
||||||
|
}
|
||||||
|
contents.Add(new SectionCardContent(content.InnerText));
|
||||||
|
}
|
||||||
|
else if (content.NodeType == HtmlNodeType.Element && content.Name == "em")
|
||||||
|
{
|
||||||
|
currentText += "<em>" + content.InnerText + "</em>";
|
||||||
|
}
|
||||||
|
else if (content.NodeType == HtmlNodeType.Text)
|
||||||
|
{
|
||||||
|
var texts = SplitText(content.InnerText);
|
||||||
|
for (int i = 0; i < texts.Length - 1; i++)
|
||||||
|
{
|
||||||
|
contents.Add(TextToCardContent(currentText + texts[i]));
|
||||||
|
currentText = "";
|
||||||
|
}
|
||||||
|
currentText += texts[texts.Length - 1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (currentText.Length > 0)
|
||||||
|
{
|
||||||
|
contents.Add(TextToCardContent(currentText));
|
||||||
|
currentText = "";
|
||||||
|
}
|
||||||
|
return contents.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static CardData ToBaseCardData(IReadOnlyDictionary<string, string> context, Spell spell)
|
||||||
|
{
|
||||||
|
string color = context["color"];
|
||||||
|
string backgroundImage = context["background_image"];
|
||||||
|
var cardData = new CardData();
|
||||||
|
cardData.Count = 1;
|
||||||
|
cardData.Color = color;
|
||||||
|
cardData.Title = spell.Title;
|
||||||
|
cardData.TitleSize = "10";
|
||||||
|
cardData.Icon = "white-book-" + spell.Level;
|
||||||
|
cardData.IconBack = "robe";
|
||||||
|
cardData.BackgroundImage = backgroundImage;
|
||||||
|
cardData.Tags = new string[]
|
||||||
|
{
|
||||||
|
"sort",
|
||||||
|
"magicien",
|
||||||
|
};
|
||||||
|
return cardData;
|
||||||
|
}
|
||||||
|
public static CardData[] ToCardDatas(IReadOnlyDictionary<string, string> context, Spell spell)
|
||||||
|
{
|
||||||
|
var cardDatas = new List<CardData>();
|
||||||
|
var cardData = ToBaseCardData(context, spell);
|
||||||
|
|
||||||
|
var contents = new List<CardContent>();
|
||||||
|
contents.AddRange(new CardContent[]
|
||||||
|
{
|
||||||
|
new SubtitleCardContent(spell.LevelType),
|
||||||
|
new RuleCardContent(),
|
||||||
|
new PropertyCardContent("Temps d'incantation", spell.CastingTime),
|
||||||
|
new PropertyCardContent("Portée", spell.Range),
|
||||||
|
new PropertyCardContent("Composants", spell.Components),
|
||||||
|
new RuleCardContent(),
|
||||||
|
//new FillCardContent(1),
|
||||||
|
//new TextCardContent(spell.Description),
|
||||||
|
});
|
||||||
|
var description = ToContents(spell.DescriptionDiv);
|
||||||
|
foreach (var line in description)
|
||||||
|
{
|
||||||
|
int size = contents.Sum(cc => cc.Height);
|
||||||
|
if (line.Height == 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (size + line.Height <= 295)
|
||||||
|
{
|
||||||
|
contents.Add(line);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CardContent section = null;
|
||||||
|
if (contents.LastOrDefault() is SectionCardContent)
|
||||||
|
{
|
||||||
|
section = contents.LastOrDefault();
|
||||||
|
contents.RemoveAt(contents.Count - 1);
|
||||||
|
}
|
||||||
|
cardData.Contents = contents.ToArray();
|
||||||
|
cardDatas.Add(cardData);
|
||||||
|
|
||||||
|
cardData = ToBaseCardData(context, spell);
|
||||||
|
contents = new List<CardContent>();
|
||||||
|
if (section != null)
|
||||||
|
{
|
||||||
|
contents.Add(section);
|
||||||
|
}
|
||||||
|
contents.Add(line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cardData.Contents = contents.ToArray();
|
||||||
|
cardDatas.Add(cardData);
|
||||||
|
|
||||||
|
if (cardDatas.Count > 1)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < cardDatas.Count; i++)
|
||||||
|
{
|
||||||
|
cardDatas[i].Title += string.Format(" ({0}/{1})", i + 1, cardDatas.Count);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cardDatas.ToArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -13,16 +13,22 @@ namespace AideDeJeuLib
|
||||||
{
|
{
|
||||||
public class Scrappers
|
public class Scrappers
|
||||||
{
|
{
|
||||||
|
public HttpClient GetHttpClient()
|
||||||
|
{
|
||||||
|
var client = new HttpClient();
|
||||||
|
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("text/html"));
|
||||||
|
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/xhtml+xml"));
|
||||||
|
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/xml"));
|
||||||
|
client.DefaultRequestHeaders.AcceptLanguage.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("fr"));
|
||||||
|
client.DefaultRequestHeaders.AcceptLanguage.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("fr-FR"));
|
||||||
|
return client;
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<IEnumerable<string>> GetSpellIds(string classe, int niveauMin = 0, int niveauMax = 9)
|
public async Task<IEnumerable<string>> GetSpellIds(string classe, int niveauMin = 0, int niveauMax = 9)
|
||||||
{
|
{
|
||||||
string html = null;
|
string html = null;
|
||||||
using (var client = new HttpClient())
|
using (var client = GetHttpClient())
|
||||||
{
|
{
|
||||||
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("text/html"));
|
|
||||||
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/xhtml+xml"));
|
|
||||||
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/xml"));
|
|
||||||
client.DefaultRequestHeaders.AcceptLanguage.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("fr"));
|
|
||||||
client.DefaultRequestHeaders.AcceptLanguage.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("fr-FR"));
|
|
||||||
// https://www.aidedd.org/dnd/sorts.php?vo=ray-of-frost
|
// https://www.aidedd.org/dnd/sorts.php?vo=ray-of-frost
|
||||||
// https://www.aidedd.org/dnd/sorts.php?vf=rayon-de-givre
|
// https://www.aidedd.org/dnd/sorts.php?vf=rayon-de-givre
|
||||||
// https://www.aidedd.org/regles/sorts/
|
// https://www.aidedd.org/regles/sorts/
|
||||||
|
|
@ -37,13 +43,8 @@ namespace AideDeJeuLib
|
||||||
public async Task<IEnumerable<Spell>> GetSpells(IEnumerable<string> spellIds)
|
public async Task<IEnumerable<Spell>> GetSpells(IEnumerable<string> spellIds)
|
||||||
{
|
{
|
||||||
string html = null;
|
string html = null;
|
||||||
using (var client = new HttpClient())
|
using (var client = GetHttpClient())
|
||||||
{
|
{
|
||||||
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("text/html"));
|
|
||||||
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/xhtml+xml"));
|
|
||||||
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/xml"));
|
|
||||||
client.DefaultRequestHeaders.AcceptLanguage.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("fr"));
|
|
||||||
client.DefaultRequestHeaders.AcceptLanguage.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("fr-FR"));
|
|
||||||
var content = new MultipartFormDataContent();
|
var content = new MultipartFormDataContent();
|
||||||
content.Add(new StringContent("card"), "format");
|
content.Add(new StringContent("card"), "format");
|
||||||
foreach (var spellId in spellIds)
|
foreach (var spellId in spellIds)
|
||||||
|
|
@ -80,7 +81,7 @@ namespace AideDeJeuLib
|
||||||
}
|
}
|
||||||
return newSpells;
|
return newSpells;
|
||||||
}
|
}
|
||||||
public async Task<string> OnGetAsync(Dictionary<string, string> context)
|
public async Task<string> OnGetAsync(IReadOnlyDictionary<string, string> context)
|
||||||
{
|
{
|
||||||
var client = new HttpClient();
|
var client = new HttpClient();
|
||||||
//client.DefaultRequestHeaders.UserAgent.Add(new System.Net.Http.Headers.ProductInfoHeaderValue(new System.Net.Http.Headers.ProductHeaderValue("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0")));
|
//client.DefaultRequestHeaders.UserAgent.Add(new System.Net.Http.Headers.ProductInfoHeaderValue(new System.Net.Http.Headers.ProductHeaderValue("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0")));
|
||||||
|
|
@ -147,7 +148,7 @@ namespace AideDeJeuLib
|
||||||
newSpell.NoOverflow = spell.SelectSingleNode("div[@class='nooverflow']")?.InnerText;
|
newSpell.NoOverflow = spell.SelectSingleNode("div[@class='nooverflow']")?.InnerText;
|
||||||
newSpell.Source = spell.SelectSingleNode("div[@class='source']").InnerText;
|
newSpell.Source = spell.SelectSingleNode("div[@class='source']").InnerText;
|
||||||
newSpells.Add(newSpell);
|
newSpells.Add(newSpell);
|
||||||
cardDatas.AddRange(ToCardDatas(context, newSpell));
|
cardDatas.AddRange(Converters.ToCardDatas(context, newSpell));
|
||||||
}
|
}
|
||||||
//Debug.WriteLine(htmlSpell);
|
//Debug.WriteLine(htmlSpell);
|
||||||
|
|
||||||
|
|
@ -187,418 +188,6 @@ namespace AideDeJeuLib
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public CardContent TextToCardContent(string text)
|
|
||||||
{
|
|
||||||
if (text.StartsWith("•"))
|
|
||||||
{
|
|
||||||
return new BulletCardContent(text.Substring(1));
|
|
||||||
}
|
|
||||||
else if (text.Trim(new char[] { ' ', '\n' }) == ".")
|
|
||||||
{
|
|
||||||
return new EmptyCardContent();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return new TextCardContent(text);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public string[] SplitText(string text)
|
|
||||||
{
|
|
||||||
var texts = new List<string>();
|
|
||||||
string str = "";
|
|
||||||
bool autoreturn = true;
|
|
||||||
foreach (var car in text)
|
|
||||||
{
|
|
||||||
if (car == '\n')
|
|
||||||
{
|
|
||||||
texts.Add(str);
|
|
||||||
str = "";
|
|
||||||
autoreturn = true;
|
|
||||||
}
|
|
||||||
else if (car == '.')
|
|
||||||
{
|
|
||||||
if (autoreturn)
|
|
||||||
{
|
|
||||||
texts.Add(str + '.');
|
|
||||||
str = "";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
str += car;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (car == '•')
|
|
||||||
{
|
|
||||||
texts.Add(str);
|
|
||||||
str = "•";
|
|
||||||
autoreturn = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
str += car;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (str.Length > 0)
|
|
||||||
{
|
|
||||||
texts.Add(str);
|
|
||||||
}
|
|
||||||
return texts.ToArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
public CardContent[] ToContents(HtmlNode description)
|
|
||||||
{
|
|
||||||
var contents = new List<CardContent>();
|
|
||||||
string currentText = "";
|
|
||||||
foreach (var content in description.ChildNodes)
|
|
||||||
{
|
|
||||||
//Debug.WriteLine(content.NodeType + " " + content.Name + " " + content.InnerText);
|
|
||||||
if (content.NodeType == HtmlNodeType.Element && content.Name == "strong")
|
|
||||||
{
|
|
||||||
if (currentText.Length > 0)
|
|
||||||
{
|
|
||||||
contents.Add(TextToCardContent(currentText));
|
|
||||||
currentText = "";
|
|
||||||
}
|
|
||||||
contents.Add(new SectionCardContent(content.InnerText));
|
|
||||||
}
|
|
||||||
else if (content.NodeType == HtmlNodeType.Element && content.Name == "em")
|
|
||||||
{
|
|
||||||
currentText += "<em>" + content.InnerText + "</em>";
|
|
||||||
}
|
|
||||||
else if (content.NodeType == HtmlNodeType.Text)
|
|
||||||
{
|
|
||||||
var texts = SplitText(content.InnerText);
|
|
||||||
for (int i = 0; i < texts.Length - 1; i++)
|
|
||||||
{
|
|
||||||
contents.Add(TextToCardContent(currentText + texts[i]));
|
|
||||||
currentText = "";
|
|
||||||
}
|
|
||||||
currentText += texts[texts.Length - 1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (currentText.Length > 0)
|
|
||||||
{
|
|
||||||
contents.Add(TextToCardContent(currentText));
|
|
||||||
currentText = "";
|
|
||||||
}
|
|
||||||
return contents.ToArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
public CardData ToBaseCardData(Dictionary<string, string> context, Spell spell)
|
|
||||||
{
|
|
||||||
string color = context["color"];
|
|
||||||
string backgroundImage = context["background_image"];
|
|
||||||
var cardData = new CardData();
|
|
||||||
cardData.Count = 1;
|
|
||||||
cardData.Color = color;
|
|
||||||
cardData.Title = spell.Title;
|
|
||||||
cardData.TitleSize = "10";
|
|
||||||
cardData.Icon = "white-book-" + spell.Level;
|
|
||||||
cardData.IconBack = "robe";
|
|
||||||
cardData.BackgroundImage = backgroundImage;
|
|
||||||
cardData.Tags = new string[]
|
|
||||||
{
|
|
||||||
"sort",
|
|
||||||
"magicien",
|
|
||||||
};
|
|
||||||
return cardData;
|
|
||||||
}
|
|
||||||
public CardData[] ToCardDatas(Dictionary<string, string> context, Spell spell)
|
|
||||||
{
|
|
||||||
var cardDatas = new List<CardData>();
|
|
||||||
var cardData = ToBaseCardData(context, spell);
|
|
||||||
|
|
||||||
var contents = new List<CardContent>();
|
|
||||||
contents.AddRange(new CardContent[]
|
|
||||||
{
|
|
||||||
new SubtitleCardContent(spell.LevelType),
|
|
||||||
new RuleCardContent(),
|
|
||||||
new PropertyCardContent("Temps d'incantation", spell.CastingTime),
|
|
||||||
new PropertyCardContent("Portée", spell.Range),
|
|
||||||
new PropertyCardContent("Composants", spell.Components),
|
|
||||||
new RuleCardContent(),
|
|
||||||
//new FillCardContent(1),
|
|
||||||
//new TextCardContent(spell.Description),
|
|
||||||
});
|
|
||||||
var description = ToContents(spell.DescriptionDiv);
|
|
||||||
foreach (var line in description)
|
|
||||||
{
|
|
||||||
int size = contents.Sum(cc => cc.Height);
|
|
||||||
if (line.Height == 0)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
else if (size + line.Height <= 295)
|
|
||||||
{
|
|
||||||
contents.Add(line);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
CardContent section = null;
|
|
||||||
if (contents.LastOrDefault() is SectionCardContent)
|
|
||||||
{
|
|
||||||
section = contents.LastOrDefault();
|
|
||||||
contents.RemoveAt(contents.Count - 1);
|
|
||||||
}
|
|
||||||
cardData.Contents = contents.ToArray();
|
|
||||||
cardDatas.Add(cardData);
|
|
||||||
|
|
||||||
cardData = ToBaseCardData(context, spell);
|
|
||||||
contents = new List<CardContent>();
|
|
||||||
if (section != null)
|
|
||||||
{
|
|
||||||
contents.Add(section);
|
|
||||||
}
|
|
||||||
contents.Add(line);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cardData.Contents = contents.ToArray();
|
|
||||||
cardDatas.Add(cardData);
|
|
||||||
|
|
||||||
if (cardDatas.Count > 1)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < cardDatas.Count; i++)
|
|
||||||
{
|
|
||||||
cardDatas[i].Title += string.Format(" ({0}/{1})", i + 1, cardDatas.Count);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return cardDatas.ToArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
public class Spell
|
|
||||||
{
|
|
||||||
public string Title { get; set; }
|
|
||||||
public string TitleUS { get; set; }
|
|
||||||
public string LevelType { get; set; }
|
|
||||||
public string Level { get; set; }
|
|
||||||
public string Type { get; set; }
|
|
||||||
public string CastingTime { get; set; }
|
|
||||||
public string Range { get; set; }
|
|
||||||
public string Components { get; set; }
|
|
||||||
public string Duration { get; set; }
|
|
||||||
public string Description { get; set; }
|
|
||||||
public string DescriptionText { get; set; }
|
|
||||||
public HtmlNode DescriptionDiv { get; set; }
|
|
||||||
public string Overflow { get; set; }
|
|
||||||
public string NoOverflow { get; set; }
|
|
||||||
public string Source { get; set; }
|
|
||||||
}
|
|
||||||
|
|
||||||
/*public class CardDataOwner
|
|
||||||
{
|
|
||||||
public CardData[] CardDatas { get; set; }
|
|
||||||
}*/
|
|
||||||
[DataContract]
|
|
||||||
public class CardData
|
|
||||||
{
|
|
||||||
[DataMember(Name = "count")]
|
|
||||||
public int Count { get; set; }
|
|
||||||
[DataMember(Name = "color")]
|
|
||||||
public string Color { get; set; }
|
|
||||||
[DataMember(Name = "title")]
|
|
||||||
public string Title { get; set; }
|
|
||||||
[DataMember(Name = "title_size")]
|
|
||||||
public string TitleSize { get; set; }
|
|
||||||
[DataMember(Name = "icon")]
|
|
||||||
public string Icon { get; set; }
|
|
||||||
[DataMember(Name = "icon_back")]
|
|
||||||
public string IconBack { get; set; }
|
|
||||||
[DataMember(Name = "contents")]
|
|
||||||
public string[] ContentsToString { get { return Contents.Select(cc => cc.ToString()).ToArray(); } }
|
|
||||||
[IgnoreDataMember]
|
|
||||||
public CardContent[] Contents { get; set; }
|
|
||||||
[DataMember(Name = "tags")]
|
|
||||||
public string[] Tags { get; set; }
|
|
||||||
[DataMember(Name = "background_image")]
|
|
||||||
public string BackgroundImage { get; set; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface CardContent
|
|
||||||
{
|
|
||||||
int Height { get; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class SubtitleCardContent : CardContent
|
|
||||||
{
|
|
||||||
public string Subtitle { get; set; }
|
|
||||||
|
|
||||||
public SubtitleCardContent(string subtitle)
|
|
||||||
{
|
|
||||||
Subtitle = subtitle;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string ToString()
|
|
||||||
{
|
|
||||||
return "subtitle | " + Subtitle;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int Height { get { return 12; } }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class RuleCardContent : CardContent
|
|
||||||
{
|
|
||||||
public override string ToString()
|
|
||||||
{
|
|
||||||
return "rule";
|
|
||||||
}
|
|
||||||
|
|
||||||
public int Height { get { return 15; } }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class PropertyCardContent : CardContent
|
|
||||||
{
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public string Value { get; set; }
|
|
||||||
|
|
||||||
public PropertyCardContent(string name, string value)
|
|
||||||
{
|
|
||||||
Name = name;
|
|
||||||
Value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string ToString()
|
|
||||||
{
|
|
||||||
return "property | " + Name + " | " + Value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int Height { get { return ((Name.Length + Value.Length) / 35 + 1) * 15; } }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class FillCardContent : CardContent
|
|
||||||
{
|
|
||||||
public int Fill { get; set; }
|
|
||||||
|
|
||||||
public FillCardContent(int fill)
|
|
||||||
{
|
|
||||||
Fill = fill;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string ToString()
|
|
||||||
{
|
|
||||||
return "fill | " + Fill;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int Height { get { return 1; } }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class TextCardContent : CardContent
|
|
||||||
{
|
|
||||||
public string Text { get; set; }
|
|
||||||
|
|
||||||
public TextCardContent(string text)
|
|
||||||
{
|
|
||||||
Text = text;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string ToString()
|
|
||||||
{
|
|
||||||
return "text | " + Text;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int Height { get { return (Text.Length / 35 + 1) * 15 + 6; } }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class SectionCardContent : CardContent
|
|
||||||
{
|
|
||||||
public string Section { get; set; }
|
|
||||||
|
|
||||||
public SectionCardContent(string section)
|
|
||||||
{
|
|
||||||
Section = section;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string ToString()
|
|
||||||
{
|
|
||||||
return "section | " + Section;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int Height { get { return 20; } }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class DescriptionCardContent : CardContent
|
|
||||||
{
|
|
||||||
public string Quality { get; set; }
|
|
||||||
|
|
||||||
public string Text { get; set; }
|
|
||||||
|
|
||||||
public DescriptionCardContent(string quality, string text)
|
|
||||||
{
|
|
||||||
Quality = quality;
|
|
||||||
Text = text;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string ToString()
|
|
||||||
{
|
|
||||||
return "description | " + Quality + " | " + Text;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int Height { get { return ((Quality.Length + Text.Length) / 35 + 1) * 15 + 6; } }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class BulletCardContent : CardContent
|
|
||||||
{
|
|
||||||
public string Text { get; set; }
|
|
||||||
|
|
||||||
public BulletCardContent(string text)
|
|
||||||
{
|
|
||||||
Text = text;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string ToString()
|
|
||||||
{
|
|
||||||
return "bullet | " + Text;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int Height { get { return (Text.Length / 30 + 1) * 15; } }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class BoxesCardContent : CardContent
|
|
||||||
{
|
|
||||||
public int Count { get; set; }
|
|
||||||
|
|
||||||
public int Size { get; set; }
|
|
||||||
|
|
||||||
public BoxesCardContent(int count, int size)
|
|
||||||
{
|
|
||||||
Count = count;
|
|
||||||
Size = size;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string ToString()
|
|
||||||
{
|
|
||||||
return "boxes | " + Count + " | " + Size;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int Height { get { return 16; } }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class DndstatsCardContent : CardContent
|
|
||||||
{
|
|
||||||
public int Strength { get; set; }
|
|
||||||
public int Dexterity { get; set; }
|
|
||||||
public int Constitution { get; set; }
|
|
||||||
public int Intelligence { get; set; }
|
|
||||||
public int Wisdom { get; set; }
|
|
||||||
public int Charisma { get; set; }
|
|
||||||
public override string ToString()
|
|
||||||
{
|
|
||||||
return "dndstats | " + Strength + " | " + Dexterity + " | " + Constitution + " | " + Intelligence + " | " + Wisdom + " | " + Charisma;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int Height { get { return 20; } }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class EmptyCardContent : CardContent
|
|
||||||
{
|
|
||||||
public override string ToString()
|
|
||||||
{
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
public int Height { get { return 0; } }
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
26
AideDeJeu/AideDeJeuLib/Spell.cs
Normal file
26
AideDeJeu/AideDeJeuLib/Spell.cs
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
using HtmlAgilityPack;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace AideDeJeuLib
|
||||||
|
{
|
||||||
|
public class Spell
|
||||||
|
{
|
||||||
|
public string Title { get; set; }
|
||||||
|
public string TitleUS { get; set; }
|
||||||
|
public string LevelType { get; set; }
|
||||||
|
public string Level { get; set; }
|
||||||
|
public string Type { get; set; }
|
||||||
|
public string CastingTime { get; set; }
|
||||||
|
public string Range { get; set; }
|
||||||
|
public string Components { get; set; }
|
||||||
|
public string Duration { get; set; }
|
||||||
|
public string Description { get; set; }
|
||||||
|
public string DescriptionText { get; set; }
|
||||||
|
public HtmlNode DescriptionDiv { get; set; }
|
||||||
|
public string Overflow { get; set; }
|
||||||
|
public string NoOverflow { get; set; }
|
||||||
|
public string Source { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
AideDeJeu/linux_libertine.zip
Normal file
BIN
AideDeJeu/linux_libertine.zip
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue