mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-10-30 23:16:09 +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
	
	 Yan Maniez
						Yan Maniez