├── DailyArenaDeckAdvisor ├── Properties │ ├── Resources.en.Designer.cs │ ├── Resources.es.Designer.cs │ ├── Resources.ru.Designer.cs │ ├── Settings.settings │ ├── Settings.Designer.cs │ └── AssemblyInfo.cs ├── Resources │ ├── cog.png │ ├── vault.png │ ├── DA_tiny.ico │ ├── refresh.png │ ├── detailed_logs.png │ └── hard_refresh.png ├── App.xaml ├── packages.config ├── App.config ├── App.xaml.cs ├── TabTemplateSelector.cs ├── ContentTemplateSelector.cs ├── FiltersDialog.xaml.cs ├── SettingsDialog.xaml.cs ├── SettingsDialog.xaml ├── CardStats.cs └── FiltersDialog.xaml ├── DailyArenaDeckAdvisorLauncher ├── Properties │ ├── Resources.en.Designer.cs │ ├── Resources.es.Designer.cs │ ├── Resources.ru.Designer.cs │ ├── Settings.settings │ ├── Settings.Designer.cs │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Resources.en.resx │ ├── Resources.ru.resx │ └── Resources.es.resx ├── DA_tiny.ico ├── App.xaml ├── packages.config ├── App.config ├── MainWindow.xaml ├── App.xaml.cs └── MainWindow.xaml.cs ├── DailyArenaDeckAdvisorUpdater ├── Properties │ ├── Resources.en.Designer.cs │ ├── Resources.es.Designer.cs │ ├── Resources.ru.Designer.cs │ ├── Settings.settings │ ├── Settings.Designer.cs │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Resources.en.resx │ ├── Resources.ru.resx │ └── Resources.es.resx ├── DA_tiny.ico ├── app.manifest ├── packages.config ├── App.xaml ├── App.config ├── MainWindow.xaml ├── App.xaml.cs ├── FileLogger.cs └── MainWindow.xaml.cs ├── DailyArenaDeckAdvisorConsole ├── appsettings.json ├── publishandsign.bat ├── DailyArenaDeckAdvisorConsole.csproj └── Program.cs ├── libraries ├── DailyArena.Common.dll └── DailyArena.Common.Core.dll ├── DailyArenaDeckAdvisorSetup ├── images │ ├── app.ico │ ├── Dialog.bmp │ └── BannerTop.bmp ├── Product_en-us.wxl ├── Product_ru-RU.wxl ├── Product_es-ES.wxl ├── LicenseAgreementDlg_HK.wxs ├── WixUI_HK.wxs ├── Eula-en.rtf ├── Eula-es.rtf └── DailyArenaDeckAdvisorSetup.wixproj ├── SolutionInfo.proj ├── AssemblyVersion.cs ├── DailyArena.DeckAdvisor.Common ├── IDeckAdvisorApp.cs ├── CachedState.cs ├── DailyArena.DeckAdvisor.Common.csproj ├── IDeckAdvisorProgram.cs ├── ClientVersion.cs └── Extensions │ ├── ProgramExtensions.cs │ └── AppExtensions.cs ├── DailyArenaDeckAdvisor.GetData ├── Loader.cs ├── DailyArena.DeckAdvisor.GetData.csproj └── DADAGetData.cs ├── .gitattributes ├── README.md ├── .gitignore └── DailyArenaDeckAdvisor.sln /DailyArenaDeckAdvisor/Properties/Resources.en.Designer.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/Properties/Resources.es.Designer.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/Properties/Resources.ru.Designer.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorLauncher/Properties/Resources.en.Designer.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorLauncher/Properties/Resources.es.Designer.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorLauncher/Properties/Resources.ru.Designer.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorUpdater/Properties/Resources.en.Designer.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorUpdater/Properties/Resources.es.Designer.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorUpdater/Properties/Resources.ru.Designer.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorConsole/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | //"UICulture": "ru-RU" 3 | } 4 | -------------------------------------------------------------------------------- /libraries/DailyArena.Common.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jceddy/DailyArenaDeckAdvisor/HEAD/libraries/DailyArena.Common.dll -------------------------------------------------------------------------------- /libraries/DailyArena.Common.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jceddy/DailyArenaDeckAdvisor/HEAD/libraries/DailyArena.Common.Core.dll -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/Resources/cog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jceddy/DailyArenaDeckAdvisor/HEAD/DailyArenaDeckAdvisor/Resources/cog.png -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/Resources/vault.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jceddy/DailyArenaDeckAdvisor/HEAD/DailyArenaDeckAdvisor/Resources/vault.png -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorLauncher/DA_tiny.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jceddy/DailyArenaDeckAdvisor/HEAD/DailyArenaDeckAdvisorLauncher/DA_tiny.ico -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorSetup/images/app.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jceddy/DailyArenaDeckAdvisor/HEAD/DailyArenaDeckAdvisorSetup/images/app.ico -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorUpdater/DA_tiny.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jceddy/DailyArenaDeckAdvisor/HEAD/DailyArenaDeckAdvisorUpdater/DA_tiny.ico -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/Resources/DA_tiny.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jceddy/DailyArenaDeckAdvisor/HEAD/DailyArenaDeckAdvisor/Resources/DA_tiny.ico -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/Resources/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jceddy/DailyArenaDeckAdvisor/HEAD/DailyArenaDeckAdvisor/Resources/refresh.png -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorSetup/images/Dialog.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jceddy/DailyArenaDeckAdvisor/HEAD/DailyArenaDeckAdvisorSetup/images/Dialog.bmp -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorSetup/images/BannerTop.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jceddy/DailyArenaDeckAdvisor/HEAD/DailyArenaDeckAdvisorSetup/images/BannerTop.bmp -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/Resources/detailed_logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jceddy/DailyArenaDeckAdvisor/HEAD/DailyArenaDeckAdvisor/Resources/detailed_logs.png -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/Resources/hard_refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jceddy/DailyArenaDeckAdvisor/HEAD/DailyArenaDeckAdvisor/Resources/hard_refresh.png -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorUpdater/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorLauncher/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /SolutionInfo.proj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1.0.9.2 4 | 1.0.9.2 5 | 1.0.9.2 6 | © 2019-2022 DailyArena 7 | Joseph Eddy 8 | 9 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorUpdater/app.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/App.xaml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorUpdater/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorUpdater/App.xaml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorLauncher/App.xaml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorLauncher/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /AssemblyVersion.cs: -------------------------------------------------------------------------------- 1 | 2 | using System.Reflection; 3 | 4 | // Version information for an assembly consists of the following four values: 5 | // 6 | // Major Version 7 | // Minor Version 8 | // Build Number 9 | // Revision 10 | // 11 | // You can specify all the values or you can default the Build and Revision Numbers 12 | // by using the '*' as shown below: 13 | // [assembly: AssemblyVersion("1.0.*")] 14 | 15 | [assembly: AssemblyVersion("1.0.9.2")] 16 | [assembly: AssemblyFileVersion("1.0.9.2")] 17 | [assembly: AssemblyCopyright("© 2019-2022 DailyArena")] -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /DailyArena.DeckAdvisor.Common/IDeckAdvisorApp.cs: -------------------------------------------------------------------------------- 1 | using DailyArena.Common.Core; 2 | using Serilog; 3 | 4 | namespace DailyArena.DeckAdvisor.Common 5 | { 6 | /// 7 | /// Interface implemented by all Deck Advisor Application/Program classes. 8 | /// 9 | public interface IDeckAdvisorApp : IApp 10 | { 11 | /// 12 | /// The application's Cached State. 13 | /// 14 | CachedState State { get; set; } 15 | 16 | /// 17 | /// Logger for first chance exceptions. 18 | /// 19 | ILogger FirstChanceLogger { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor.GetData/Loader.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace DailyArena.DeckAdvisor.GetData 4 | { 5 | public class Loader 6 | { 7 | static GameObject gameObject; 8 | public static void Load() 9 | { 10 | if(GameObject.Find("DADADataGetter") == null) 11 | { 12 | gameObject = new GameObject("DADADataGetter"); 13 | gameObject.AddComponent(); 14 | Object.DontDestroyOnLoad(gameObject); 15 | } 16 | else 17 | { 18 | Debug.Log($"[DailyArena.DeckAdvisor.GetData] Logger is already in place, no need to embed it again!"); 19 | } 20 | } 21 | 22 | public static void Unload() 23 | { 24 | Object.Destroy(gameObject); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorLauncher/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorUpdater/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using DailyArena.DeckAdvisor.Common; 2 | using DailyArena.DeckAdvisor.Common.Extensions; 3 | using Serilog; 4 | using System.Windows; 5 | 6 | namespace DailyArena.DeckAdvisor 7 | { 8 | /// 9 | /// Interaction logic for App.xaml 10 | /// 11 | public partial class App : Application, IDeckAdvisorApp 12 | { 13 | /// 14 | /// The application's Cached State. 15 | /// 16 | public CachedState State { get; set; } = new CachedState(); 17 | 18 | /// 19 | /// The application's Logger. 20 | /// 21 | public ILogger Logger { get; set; } 22 | 23 | /// 24 | /// Logger for first chance exceptions. 25 | /// 26 | public ILogger FirstChanceLogger { get; set; } 27 | 28 | /// 29 | /// The application constructor. 30 | /// 31 | public App() 32 | { 33 | this.InitializeApp(); 34 | 35 | DispatcherUnhandledException += (sender, e) => 36 | { 37 | Logger.Error(e.Exception, "DispatcherUnhandledException"); 38 | }; 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/TabTemplateSelector.cs: -------------------------------------------------------------------------------- 1 | using System.Windows; 2 | using System.Windows.Controls; 3 | 4 | namespace DailyArena.DeckAdvisor 5 | { 6 | /// 7 | /// Class that selects the template used for tab details (switches between templates for Meta Report vs. Archetype). 8 | /// 9 | public class TabTemplateSelector : DataTemplateSelector 10 | { 11 | /// 12 | /// Select the data template to use for the item being displayed. 13 | /// 14 | /// The item being displayed. 15 | /// The item's container. 16 | /// ArchetypeTabTemplate if the item is an Archetype object, MetaReportTabTemplate otherwise. 17 | public override DataTemplate SelectTemplate(object item, DependencyObject container) 18 | { 19 | Window win = Application.Current.MainWindow; 20 | 21 | if (item is Archetype) 22 | { 23 | return win.FindResource("ArchetypeTabTemplate") as DataTemplate; 24 | } 25 | else 26 | { 27 | return win.FindResource("MetaReportTabTemplate") as DataTemplate; 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/ContentTemplateSelector.cs: -------------------------------------------------------------------------------- 1 | using System.Windows; 2 | using System.Windows.Controls; 3 | 4 | namespace DailyArena.DeckAdvisor 5 | { 6 | /// 7 | /// Class to select a Xaml template for the archetype tab detail view, depending on whether it's showing a deck, or a meta report. 8 | /// 9 | public class ContentTemplateSelector : DataTemplateSelector 10 | { 11 | /// 12 | /// Select the template to use depending on the item type. 13 | /// 14 | /// The item being shown in the detail view. 15 | /// The container the view is in (not used). 16 | /// ArchetypeContentTemplate if the item is an Archetype, otherwise MetaReportContentTemplate. 17 | public override DataTemplate SelectTemplate(object item, DependencyObject container) 18 | { 19 | Window win = Application.Current.MainWindow; 20 | 21 | if (item is Archetype) 22 | { 23 | return win.FindResource("ArchetypeContentTemplate") as DataTemplate; 24 | } 25 | else 26 | { 27 | return win.FindResource("MetaReportContentTemplate") as DataTemplate; 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace DailyArena.DeckAdvisor.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorUpdater/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace DailyArenaDeckAdvisorUpdater.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorLauncher/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace DailyArenaDeckAdvisorLauncher.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorUpdater/MainWindow.xaml: -------------------------------------------------------------------------------- 1 | 11 | 12 | Daily ArenaDeck Advisor 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorLauncher/MainWindow.xaml: -------------------------------------------------------------------------------- 1 | 11 | 12 | Daily ArenaDeck Advisor 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorUpdater/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Reflection; 4 | using System.Windows; 5 | 6 | namespace DailyArenaDeckAdvisorUpdater 7 | { 8 | /// 9 | /// Interaction logic for App.xaml 10 | /// 11 | public partial class App : Application 12 | { 13 | /// 14 | /// Default constructer, sets up the data folder, current directory, and logging. 15 | /// 16 | public App() 17 | { 18 | var dataFolder = string.Format("{0}Low\\DailyArena\\DailyArenaDeckAdvisor", Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)); 19 | if (!Directory.Exists(dataFolder)) 20 | { 21 | Directory.CreateDirectory(dataFolder); 22 | } 23 | if (!Directory.Exists($"{dataFolder}\\logs")) 24 | { 25 | Directory.CreateDirectory($"{dataFolder}\\logs"); 26 | } 27 | 28 | FileLogger.FilePath = $"{dataFolder}\\logs\\updater.txt"; 29 | if(File.Exists(FileLogger.FilePath)) 30 | { 31 | File.Delete(FileLogger.FilePath); 32 | } 33 | 34 | string codeBase = Assembly.GetExecutingAssembly().CodeBase; 35 | UriBuilder uri = new UriBuilder(codeBase); 36 | string path = Uri.UnescapeDataString(uri.Path); 37 | Directory.SetCurrentDirectory(Path.GetDirectoryName(path)); 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorSetup/Product_en-us.wxl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1033 4 | 5 | 6 | DailyArenaDeckAdvisor 7 | DailyArena 8 | DailyArena 9 | MTGA Deck Advisor Companion App 10 | Installs DailyArenaDeckAdvisor 11 | 12 | Eula-en.rtf 13 | 14 | This product requires at least Windows Vista / Server 2008. 15 | The same or a newer version of this product is already installed. 16 | You need to install the 64-bit version of this product on 64-bit Windows. 17 | You need to install the 32-bit version of this product on 32-bit Windows. 18 | 19 | The complete package. 20 | The main version including all dependencies. 21 | Main program 22 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorSetup/Product_ru-RU.wxl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1033 4 | 5 | 6 | DailyArenaDeckAdvisor 7 | DailyArena 8 | DailyArena 9 | MTGA Deck Advisor Компаньон приложение 10 | Установлено DailyArenaDeckAdvisor 11 | 12 | Eula-ru.rtf 13 | 14 | Этот продукт требует как минимум Windows Vista / Server 2008. 15 | Та же или более новая версия этого продукта уже установлена. 16 | Вам необходимо установить 64-bit версия этого продукта на 64-bit Windows. 17 | Вам необходимо установить 32-bit версия этого продукта на 32-bit Windows. 18 | 19 | Полный пакет. 20 | Основная версия, включающая все зависимости. 21 | Основная программа 22 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor.GetData/DailyArena.DeckAdvisor.GetData.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netstandard2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | ..\..\..\..\..\..\Program Files\Wizards of the Coast\MTGA\MTGA_Data\Managed\Assembly-CSharp.dll 11 | 12 | 13 | ..\..\..\..\..\..\Program Files\Wizards of the Coast\MTGA\MTGA_Data\Managed\Newtonsoft.Json.dll 14 | 15 | 16 | ..\..\..\..\..\..\Program Files\Wizards of the Coast\MTGA\MTGA_Data\Managed\UnityEngine.dll 17 | 18 | 19 | ..\..\..\..\..\..\Program Files\Wizards of the Coast\MTGA\MTGA_Data\Managed\UnityEngine.CoreModule.dll 20 | 21 | 22 | ..\..\..\..\..\..\Program Files\Wizards of the Coast\MTGA\MTGA_Data\Managed\UnityEngine.IMGUIModule.dll 23 | 24 | 25 | ..\..\..\..\..\..\Program Files\Wizards of the Coast\MTGA\MTGA_Data\Managed\Wizards.MDN.GreProtobuf.Unity.dll 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorSetup/Product_es-ES.wxl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1033 4 | 5 | 6 | DailyArenaDeckAdvisor 7 | DailyArena 8 | DailyArena 9 | MTGA Deck Advisor Aplicación Complementaria 10 | Instala DailyArenaDeckAdvisor 11 | 12 | Eula-es.rtf 13 | 14 | Este producto requiere al menos Windows Vista / Server 2008. 15 | La misma o una versión más nueva de este producto ya está instalada. 16 | Debe instalar la versión de 64 bits de este producto en Windows de 64 bits. 17 | Debe instalar la versión de 32 bits de este producto en Windows de 32 bits. 18 | 19 | El paquete completo. 20 | La versión principal que incluye todas las dependencias. 21 | Programa principal 22 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorUpdater/FileLogger.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | 4 | namespace DailyArenaDeckAdvisorUpdater 5 | { 6 | /// 7 | /// Lightweight file logger for the updater. 8 | /// 9 | /// 10 | /// Can't use the full logger class here because the updater may have to update it. 11 | /// 12 | public static class FileLogger 13 | { 14 | /// 15 | /// The path of the log file to write to. 16 | /// 17 | public static string FilePath { get; set; } 18 | 19 | /// 20 | /// Write a debug message to the log file. 21 | /// 22 | /// The message to write. 23 | /// Arguments to include with the message. 24 | public static void Log(string message, params object[] arg) 25 | { 26 | using (StreamWriter streamWriter = new StreamWriter(FilePath, true)) 27 | { 28 | streamWriter.WriteLine(message, arg); 29 | } 30 | } 31 | 32 | /// 33 | /// Write an exception message to the log file. 34 | /// 35 | /// The exception to log. 36 | /// The messate to write. 37 | /// Arguments to include wiht the message. 38 | public static void Log(Exception e, string message, params object[] arg) 39 | { 40 | using (StreamWriter streamWriter = new StreamWriter(FilePath, true)) 41 | { 42 | streamWriter.WriteLine(message, arg); 43 | streamWriter.WriteLine("{0}", e.ToString()); 44 | } 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /DailyArena.DeckAdvisor.Common/CachedState.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace DailyArena.DeckAdvisor.Common 4 | { 5 | /// 6 | /// Class to Cache state information for the application. 7 | /// 8 | public class CachedState 9 | { 10 | /// 11 | /// Gets or sets the last value selected from the Format drop-down. 12 | /// 13 | public string LastFormat { get; set; } 14 | 15 | /// 16 | /// Gets or sets the last value selcted by the deck Sort drop-down. 17 | /// 18 | public string LastSort { get; set; } 19 | 20 | /// 21 | /// Gets or sets the last value selected by the deck Sort Dir drop-down. 22 | /// 23 | public string LastSortDir { get; set; } 24 | 25 | /// 26 | /// Gets or sets the State of the "rotation-proof" toggle button. 27 | /// 28 | public bool RotationProof { get; set; } 29 | 30 | /// 31 | /// Gets or sets the selected font size for the application. 32 | /// 33 | public int FontSize { get; set; } 34 | 35 | /// 36 | /// Gets or sets the fingerprint for usage stats. 37 | /// 38 | public Guid Fingerprint { get; set; } = Guid.NewGuid(); 39 | 40 | /// 41 | /// Gets or sets the deck filter values set by the user. 42 | /// 43 | public DeckFilters Filters { get; set; } = new DeckFilters(); 44 | 45 | /// 46 | /// Gets or sets the card text filter value. 47 | /// 48 | public string CardTextFilter { get; set; } = string.Empty; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorConsole/publishandsign.bat: -------------------------------------------------------------------------------- 1 | dotnet publish -f netcoreapp2.2 -r win-x86 -c Release --self-contained false 2 | dotnet publish -f netcoreapp2.2 -r win-x64 -c Release --self-contained false 3 | dotnet publish -f netcoreapp2.2 -r win-arm -c Release --self-contained false 4 | dotnet publish -f netcoreapp2.2 -r win-arm64 -c Release --self-contained false 5 | dotnet publish -f netcoreapp2.2 -r osx-x64 -c Release --self-contained false 6 | dotnet publish -f netcoreapp2.2 -r linux-x64 -c Release --self-contained false 7 | dotnet publish -f netcoreapp2.2 -r linux-musl-x64 -c Release --self-contained false 8 | dotnet publish -f netcoreapp2.2 -r linux-arm -c Release --self-contained false 9 | "C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool.exe" sign /t http://timestamp.comodoca.com /sha1 9CFAD3D9DCDE70DC56909D3927A0DD5CB7DA1A83 ".\bin\Release\netcoreapp2.2\win-x86\DailyArena.DeckAdvisor.Console.exe" 10 | "C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool.exe" sign /t http://timestamp.comodoca.com /sha1 9CFAD3D9DCDE70DC56909D3927A0DD5CB7DA1A83 ".\bin\Release\netcoreapp2.2\win-x86\publish\DailyArena.DeckAdvisor.Console.exe" 11 | "C:\Program Files (x86)\Windows Kits\8.1\bin\x64\signtool.exe" sign /t http://timestamp.comodoca.com /sha1 9CFAD3D9DCDE70DC56909D3927A0DD5CB7DA1A83 ".\bin\Release\netcoreapp2.2\win-x64\DailyArena.DeckAdvisor.Console.exe" 12 | "C:\Program Files (x86)\Windows Kits\8.1\bin\x64\signtool.exe" sign /t http://timestamp.comodoca.com /sha1 9CFAD3D9DCDE70DC56909D3927A0DD5CB7DA1A83 ".\bin\Release\netcoreapp2.2\win-x64\publish\DailyArena.DeckAdvisor.Console.exe" 13 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorLauncher/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using Serilog; 2 | using Serilog.Debugging; 3 | using Serilog.Formatting.Compact; 4 | using System; 5 | using System.Diagnostics; 6 | using System.IO; 7 | using System.Reflection; 8 | using System.Windows; 9 | 10 | namespace DailyArenaDeckAdvisorLauncher 11 | { 12 | /// 13 | /// Interaction logic for App.xaml 14 | /// 15 | public partial class App : Application 16 | { 17 | /// 18 | /// The logger for the launcher app. 19 | /// 20 | public ILogger Logger { get; private set; } 21 | 22 | /// 23 | /// Default constructer, sets up the data folder, current directory, and logging. 24 | /// 25 | public App() 26 | { 27 | var dataFolder = string.Format("{0}Low\\DailyArena\\DailyArenaDeckAdvisor", Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)); 28 | if (!Directory.Exists(dataFolder)) 29 | { 30 | Directory.CreateDirectory(dataFolder); 31 | } 32 | if (!Directory.Exists($"{dataFolder}\\logs")) 33 | { 34 | Directory.CreateDirectory($"{dataFolder}\\logs"); 35 | } 36 | 37 | SelfLog.Enable(msg => Debug.WriteLine(msg)); 38 | SelfLog.Enable(Console.Error); 39 | Logger = new LoggerConfiguration().MinimumLevel.Debug().WriteTo. 40 | File(new CompactJsonFormatter(), $"{dataFolder}\\logs\\log.txt", 41 | rollingInterval: RollingInterval.Hour, 42 | retainedFileCountLimit: 5, 43 | fileSizeLimitBytes: 10485760, 44 | rollOnFileSizeLimit: true). 45 | CreateLogger(); 46 | 47 | string codeBase = Assembly.GetExecutingAssembly().CodeBase; 48 | UriBuilder uri = new UriBuilder(codeBase); 49 | string path = Uri.UnescapeDataString(uri.Path); 50 | Directory.SetCurrentDirectory(Path.GetDirectoryName(path)); 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | using System.Windows; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("DailyArenaDeckAdvisor")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("DailyArena")] 12 | [assembly: AssemblyProduct("DailyArenaDeckAdvisor")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | //In order to begin building localizable applications, set 22 | //CultureYouAreCodingWith in your .csproj file 23 | //inside a . For example, if you are using US english 24 | //in your source files, set the to en-US. Then uncomment 25 | //the NeutralResourceLanguage attribute below. Update the "en-US" in 26 | //the line below to match the UICulture setting in the project file. 27 | 28 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] 29 | 30 | 31 | [assembly: ThemeInfo( 32 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located 33 | //(used if a resource is not found in the page, 34 | // or application resource dictionaries) 35 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located 36 | //(used if a resource is not found in the page, 37 | // app, or any theme specific resource dictionaries) 38 | )] 39 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorUpdater/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Resources; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Windows; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("DailyArenaDeckAdvisorUpdater")] 11 | [assembly: AssemblyDescription("")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("DailyArena")] 14 | [assembly: AssemblyProduct("DailyArenaDeckAdvisorUpdater")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | 18 | // Setting ComVisible to false makes the types in this assembly not visible 19 | // to COM components. If you need to access a type in this assembly from 20 | // COM, set the ComVisible attribute to true on that type. 21 | [assembly: ComVisible(false)] 22 | 23 | //In order to begin building localizable applications, set 24 | //CultureYouAreCodingWith in your .csproj file 25 | //inside a . For example, if you are using US english 26 | //in your source files, set the to en-US. Then uncomment 27 | //the NeutralResourceLanguage attribute below. Update the "en-US" in 28 | //the line below to match the UICulture setting in the project file. 29 | 30 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] 31 | 32 | 33 | [assembly: ThemeInfo( 34 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located 35 | //(used if a resource is not found in the page, 36 | // or application resource dictionaries) 37 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located 38 | //(used if a resource is not found in the page, 39 | // app, or any theme specific resource dictionaries) 40 | )] 41 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorLauncher/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Resources; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Windows; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("DailyArenaDeckAdvisorLauncher")] 11 | [assembly: AssemblyDescription("")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("DailyArena")] 14 | [assembly: AssemblyProduct("DailyArenaDeckAdvisorLauncher")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | 18 | // Setting ComVisible to false makes the types in this assembly not visible 19 | // to COM components. If you need to access a type in this assembly from 20 | // COM, set the ComVisible attribute to true on that type. 21 | [assembly: ComVisible(false)] 22 | 23 | //In order to begin building localizable applications, set 24 | //CultureYouAreCodingWith in your .csproj file 25 | //inside a . For example, if you are using US english 26 | //in your source files, set the to en-US. Then uncomment 27 | //the NeutralResourceLanguage attribute below. Update the "en-US" in 28 | //the line below to match the UICulture setting in the project file. 29 | 30 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] 31 | 32 | 33 | [assembly: ThemeInfo( 34 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located 35 | //(used if a resource is not found in the page, 36 | // or application resource dictionaries) 37 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located 38 | //(used if a resource is not found in the page, 39 | // app, or any theme specific resource dictionaries) 40 | )] 41 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorConsole/DailyArenaDeckAdvisorConsole.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.2 6 | win-x86;win-x64;osx-x64 7 | DailyArena.DeckAdvisor.Console 8 | DailyArena.DeckAdvisor.Console 9 | DailyArena.DeckAdvisor.Console.Program 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | ..\libraries\DailyArena.Common.Core.dll 30 | 31 | 32 | 33 | 34 | 35 | True 36 | True 37 | Localization.resx 38 | 39 | 40 | 41 | 42 | 43 | ResXFileCodeGenerator 44 | Localization.Designer.cs 45 | 46 | 47 | 48 | 49 | 50 | PreserveNewest 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisorSetup/LicenseAgreementDlg_HK.wxs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | CostingComplete = 1 9 | "1"]]> 10 | LicenseAccepted = "1" 11 | 12 | 13 | 1 14 | 15 | 16 | 17 | 18 | 19 | 20 | 1 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/FiltersDialog.xaml.cs: -------------------------------------------------------------------------------- 1 | using DailyArena.DeckAdvisor.Common; 2 | using DailyArena.DeckAdvisor.Common.Extensions; 3 | using System.Windows; 4 | 5 | namespace DailyArena.DeckAdvisor 6 | { 7 | /// 8 | /// Interaction logic for SettingsDialog.xaml 9 | /// 10 | public partial class FiltersDialog : Window 11 | { 12 | /// 13 | /// Gets or sets the temporary filters object that belongs to this window. 14 | /// 15 | public DeckFilters Filters { get; private set; } 16 | 17 | /// 18 | /// Constructor. Initializes the component and sets the data context. 19 | /// 20 | public FiltersDialog() 21 | { 22 | App application = (App)Application.Current; 23 | Filters = application.State.Filters.Clone(); 24 | 25 | InitializeComponent(); 26 | DataContext = this; 27 | } 28 | 29 | /// 30 | /// Handle clicks of the Apply Button. 31 | /// 32 | /// The button that was clicked. 33 | /// The routed event arguments. 34 | private void Apply_Click(object sender, RoutedEventArgs e) 35 | { 36 | IDeckAdvisorApp application = (IDeckAdvisorApp)Application.Current; 37 | if (application.State.Filters != Filters) 38 | { 39 | application.State.Filters.SetAllFields(Filters); 40 | application.SaveState(); 41 | ((MainWindow)Owner).ApplyFilters(Filters); 42 | } 43 | Close(); 44 | } 45 | 46 | /// 47 | /// Handle clicks of the Close Button. 48 | /// 49 | /// The button that was clicked. 50 | /// The routed event arguments. 51 | private void Close_Click(object sender, RoutedEventArgs e) 52 | { 53 | bool close = true; 54 | App application = (App)Application.Current; 55 | if (application.State.Filters != Filters) 56 | { 57 | MessageBoxResult messageBoxResult = MessageBox.Show(Properties.Resources.Message_CloseConfirmation, Properties.Resources.Title_CloseConfirmation, MessageBoxButton.YesNo); 58 | if(messageBoxResult == MessageBoxResult.No) 59 | { 60 | close = false; 61 | } 62 | } 63 | if (close) 64 | { 65 | Close(); 66 | } 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /DailyArena.DeckAdvisor.Common/DailyArena.DeckAdvisor.Common.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | ..\libraries\DailyArena.Common.Core.dll 19 | 20 | 21 | C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.2\System.Configuration.dll 22 | 23 | 24 | C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.2\System.Management.dll 25 | 26 | 27 | 28 | 29 | true 30 | x64\Debug\ 31 | DEBUG;TRACE 32 | full 33 | x64 34 | prompt 35 | MinimumRecommendedRules.ruleset 36 | true 37 | 38 | 39 | x64\Release\ 40 | TRACE 41 | true 42 | pdbonly 43 | x64 44 | prompt 45 | MinimumRecommendedRules.ruleset 46 | true 47 | 48 | 49 | x86 50 | x86\Debug\ 51 | 52 | 53 | x86 54 | x86\Release\ 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /DailyArena.DeckAdvisor.Common/IDeckAdvisorProgram.cs: -------------------------------------------------------------------------------- 1 | using DailyArena.Common.Core.Bindable; 2 | using Serilog; 3 | using System; 4 | using System.Collections.Generic; 5 | 6 | namespace DailyArena.DeckAdvisor.Common 7 | { 8 | /// 9 | /// Interface implemented by classes the run the core Deck Advisor program functionality. 10 | /// 11 | public interface IDeckAdvisorProgram 12 | { 13 | /// 14 | /// Gets or sets a reference to the application logger. 15 | /// 16 | ILogger Logger { get; set; } 17 | 18 | /// 19 | /// Gets the application name to use while logging. 20 | /// 21 | string ApplicationName { get; } 22 | 23 | /// 24 | /// Gets the application name to use while sending Usage Statistics. 25 | /// 26 | string ApplicationUsageName { get; } 27 | 28 | /// 29 | /// Implementation-specific method to query a configuration setting value. 30 | /// 31 | /// 32 | string GetConfigurationSetting(string key); 33 | 34 | /// 35 | /// A dictionary mapping the Format names shown on the GUI drop-down to the name to use when querying archetype data from the server. 36 | /// 37 | Dictionary> FormatMappings { get; set; } 38 | 39 | /// 40 | /// Method to get a localized string based on the resource name. 41 | /// 42 | /// The resource name to get a localized string for. 43 | /// The localized string for the requested resource name. 44 | string GetLocalizedString(string name); 45 | 46 | /// 47 | /// Gets the currently running app. 48 | /// 49 | IDeckAdvisorApp CurrentApp { get; } 50 | 51 | /// 52 | /// Gets or the selected format being viewed. 53 | /// 54 | Bindable Format { get; } 55 | 56 | /// 57 | /// Gets the selected deck sort field. 58 | /// 59 | Bindable Sort { get; } 60 | 61 | /// 62 | /// Gets the selected deck sort direction. 63 | /// 64 | Bindable SortDir { get; } 65 | 66 | /// 67 | /// Gets the state of the "Rotation" toggle button. 68 | /// 69 | BindableBool RotationProof { get; } 70 | 71 | /// 72 | /// Gets the card text filter value. 73 | /// 74 | Bindable CardText { get; } 75 | 76 | /// 77 | /// Gets the selected font size for the display. 78 | /// 79 | Bindable SelectedFontSize { get; } 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/SettingsDialog.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.ObjectModel; 2 | using System.Diagnostics; 3 | using System.Windows; 4 | 5 | namespace DailyArena.DeckAdvisor 6 | { 7 | /// 8 | /// Interaction logic for SettingsDialog.xaml 9 | /// 10 | public partial class SettingsDialog : Window 11 | { 12 | /// 13 | /// Xaml-bindable font sizes setting field. 14 | /// 15 | public ObservableCollection FontSizes { get; private set; } = new ObservableCollection() { 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24 }; 16 | 17 | /// 18 | /// Constructor. Initializes the component and sets the data context. 19 | /// 20 | public SettingsDialog() 21 | { 22 | InitializeComponent(); 23 | DataContext = this; 24 | } 25 | 26 | /// 27 | /// Handle clicks of the Github Button. 28 | /// 29 | /// The button that was clicked. 30 | /// The routed event arguments. 31 | private void GithubButton_Click(object sender, RoutedEventArgs e) 32 | { 33 | Process.Start("https://github.com/jceddy/DailyArenaDeckAdvisor"); 34 | } 35 | 36 | /// 37 | /// Handle clicks of the Issues Button. 38 | /// 39 | /// The button that was clicked. 40 | /// The routed event arguments. 41 | private void IssuesButton_Click(object sender, RoutedEventArgs e) 42 | { 43 | Process.Start("https://github.com/jceddy/DailyArenaDeckAdvisor/issues"); 44 | } 45 | 46 | /// 47 | /// Handle clicks of the Wiki Button. 48 | /// 49 | /// The button that was clicked. 50 | /// The routed event arguments. 51 | private void WikiButton_Click(object sender, RoutedEventArgs e) 52 | { 53 | Process.Start("https://github.com/jceddy/DailyArenaDeckAdvisor/wiki"); 54 | } 55 | 56 | /// 57 | /// Handle clicks of the Patreon Button. 58 | /// 59 | /// The button that was clicked. 60 | /// The routed event arguments. 61 | private void PatreonButton_Click(object sender, RoutedEventArgs e) 62 | { 63 | Process.Start("https://www.patreon.com/DailyArena"); 64 | } 65 | 66 | /// 67 | /// Handle clicks of the MTGAZone Button. 68 | /// 69 | /// The button that was clicked. 70 | /// The routed event arguments. 71 | private void MTGAZoneButton_Click(object sender, RoutedEventArgs e) 72 | { 73 | Process.Start("https://mtgazone.com"); 74 | } 75 | 76 | /// 77 | /// Handle clicks of the Close Button. 78 | /// 79 | /// The button that was clicked. 80 | /// The routed event arguments. 81 | private void Close_Click(object sender, RoutedEventArgs e) 82 | { 83 | Close(); 84 | } 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /DailyArenaDeckAdvisor/SettingsDialog.xaml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 33 |