diff --git a/appveyor.yml b/appveyor.yml index 2160b65..0d7e3d9 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,4 @@ -version: 0.13.{build} +version: 0.14.{build} branches: only: - master diff --git a/build/pack.bat b/build/pack.bat index a4225d8..73ad2ee 100644 --- a/build/pack.bat +++ b/build/pack.bat @@ -5,4 +5,5 @@ dotnet pack ../src/OpenRpg.Combat -c Release -o ../../_dist /p:version=%version% dotnet pack ../src/OpenRpg.Localization -c Release -o ../../_dist /p:version=%version% dotnet pack ../src/OpenRpg.Data -c Release -o ../../_dist /p:version=%version% dotnet pack ../src/OpenRpg.Quests -c Release -o ../../_dist /p:version=%version% -dotnet pack ../src/OpenRpg.Genres.Fantasy -c Release -o ../../_dist /p:version=%version% \ No newline at end of file +dotnet pack ../src/OpenRpg.Genres.Fantasy -c Release -o ../../_dist /p:version=%version% +dotnet pack ../src/OpenRpg.Cards -c Release -o ../../_dist /p:version=%version% \ No newline at end of file diff --git a/src/OpenRpg.Cards/DefaultCardVariables.cs b/src/OpenRpg.Cards/DefaultCardVariables.cs new file mode 100644 index 0000000..fd16ce5 --- /dev/null +++ b/src/OpenRpg.Cards/DefaultCardVariables.cs @@ -0,0 +1,9 @@ +using OpenRpg.Core.Variables; + +namespace OpenRpg.Cards +{ + public class DefaultCardVariables : DefaultVariables, ICardVariables + { + + } +} \ No newline at end of file diff --git a/src/OpenRpg.Cards/Effects/CardEffects.cs b/src/OpenRpg.Cards/Effects/CardEffects.cs new file mode 100644 index 0000000..6422f7b --- /dev/null +++ b/src/OpenRpg.Cards/Effects/CardEffects.cs @@ -0,0 +1,14 @@ +using System.Collections.Generic; +using OpenRpg.Core.Common; +using OpenRpg.Core.Effects; + +namespace OpenRpg.Cards.Effects +{ + public class CardEffects : IHasDataId, IHasLocaleDescription, IHasEffects + { + public int Id { get; set; } + public string NameLocaleId { get; set; } + public string DescriptionLocaleId { get; set; } + public IEnumerable Effects { get; set; } + } +} \ No newline at end of file diff --git a/src/OpenRpg.Cards/Genres/ClassCard.cs b/src/OpenRpg.Cards/Genres/ClassCard.cs new file mode 100644 index 0000000..bb99888 --- /dev/null +++ b/src/OpenRpg.Cards/Genres/ClassCard.cs @@ -0,0 +1,13 @@ +using OpenRpg.Cards.Genres.Conventions; +using OpenRpg.Cards.Types; +using OpenRpg.Core.Classes; + +namespace OpenRpg.Cards.Genres +{ + public class ClassCard : GenericDataCardWithEffects + { + public override int CardType => CardTypes.ClassCard; + + public ClassCard(IClassTemplate data) : base(data) { } + } +} \ No newline at end of file diff --git a/src/OpenRpg.Cards/Genres/Conventions/GenericDataCard.cs b/src/OpenRpg.Cards/Genres/Conventions/GenericDataCard.cs new file mode 100644 index 0000000..365a780 --- /dev/null +++ b/src/OpenRpg.Cards/Genres/Conventions/GenericDataCard.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using OpenRpg.Core.Common; +using OpenRpg.Core.Effects; +using OpenRpg.Items; + +namespace OpenRpg.Cards.Genres.Conventions +{ + public abstract class GenericDataCard : ICard + where T : IHasLocaleDescription + { + public abstract int CardType { get; } + public ICardVariables Variables { get; set; } = new DefaultCardVariables(); + + public T Data { get; } + + protected GenericDataCard(T data) + { Data = data; } + + public virtual string NameLocaleId => Data.NameLocaleId; + public virtual string DescriptionLocaleId => Data.DescriptionLocaleId; + public abstract IEnumerable Effects { get; } + + } +} \ No newline at end of file diff --git a/src/OpenRpg.Cards/Genres/Conventions/GenericDataCardWithEffects.cs b/src/OpenRpg.Cards/Genres/Conventions/GenericDataCardWithEffects.cs new file mode 100644 index 0000000..35afb4f --- /dev/null +++ b/src/OpenRpg.Cards/Genres/Conventions/GenericDataCardWithEffects.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; +using OpenRpg.Core.Common; +using OpenRpg.Core.Effects; + +namespace OpenRpg.Cards.Genres.Conventions +{ + public abstract class GenericDataCardWithEffects : GenericDataCard + where T : IHasLocaleDescription, IHasEffects + { + protected GenericDataCardWithEffects(T data) : base(data) + { } + + public override IEnumerable Effects => Data.Effects; + } +} \ No newline at end of file diff --git a/src/OpenRpg.Cards/Genres/EffectCard.cs b/src/OpenRpg.Cards/Genres/EffectCard.cs new file mode 100644 index 0000000..5c341e0 --- /dev/null +++ b/src/OpenRpg.Cards/Genres/EffectCard.cs @@ -0,0 +1,15 @@ +using OpenRpg.Cards.Effects; +using OpenRpg.Cards.Genres.Conventions; +using OpenRpg.Cards.Types; + +namespace OpenRpg.Cards.Genres +{ + public class EffectCard : GenericDataCardWithEffects + { + public override int CardType => CardTypes.EffectCard; + + public EffectCard(CardEffects data) : base(data) + { + } + } +} \ No newline at end of file diff --git a/src/OpenRpg.Cards/Genres/EquipmentCard.cs b/src/OpenRpg.Cards/Genres/EquipmentCard.cs new file mode 100644 index 0000000..5fd0d89 --- /dev/null +++ b/src/OpenRpg.Cards/Genres/EquipmentCard.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using OpenRpg.Cards.Types; +using OpenRpg.Core.Effects; +using OpenRpg.Items; +using OpenRpg.Items.Extensions; + +namespace OpenRpg.Cards.Genres +{ + public class EquipmentCard : ICard + { + public Guid UniqueId { get; set; } = Guid.NewGuid(); + public string AssetCode { get; set; } + + public int CardType => CardTypes.EquipmentCard; + public ICardVariables Variables { get; protected set; } = new DefaultCardVariables(); + public IItem Data { get; } + + public EquipmentCard(IItem item) + { Data = item; } + + public string NameLocaleId => Data.ItemTemplate.NameLocaleId; + public string DescriptionLocaleId => Data.ItemTemplate.DescriptionLocaleId; + public IEnumerable Effects => Data.GetItemEffects(); + } +} \ No newline at end of file diff --git a/src/OpenRpg.Cards/Genres/ItemCard.cs b/src/OpenRpg.Cards/Genres/ItemCard.cs new file mode 100644 index 0000000..e07610b --- /dev/null +++ b/src/OpenRpg.Cards/Genres/ItemCard.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using OpenRpg.Cards.Types; +using OpenRpg.Core.Effects; +using OpenRpg.Items; +using OpenRpg.Items.Extensions; + +namespace OpenRpg.Cards.Genres +{ + public class ItemCard : ICard + { + public int CardType => CardTypes.ItemCard; + public ICardVariables Variables { get; protected set; } = new DefaultCardVariables(); + + public IItem Data { get; } + + public ItemCard(IItem item) + { Data = item; } + + public string NameLocaleId => Data.ItemTemplate.NameLocaleId; + public string DescriptionLocaleId => Data.ItemTemplate.DescriptionLocaleId; + public IEnumerable Effects => Data.GetItemEffects(); + public string AssetCode { get; set; } + } +} \ No newline at end of file diff --git a/src/OpenRpg.Cards/Genres/RaceCard.cs b/src/OpenRpg.Cards/Genres/RaceCard.cs new file mode 100644 index 0000000..6450c8d --- /dev/null +++ b/src/OpenRpg.Cards/Genres/RaceCard.cs @@ -0,0 +1,13 @@ +using OpenRpg.Cards.Genres.Conventions; +using OpenRpg.Cards.Types; +using OpenRpg.Core.Races; + +namespace OpenRpg.Cards.Genres +{ + public class RaceCard : GenericDataCardWithEffects + { + public override int CardType => CardTypes.RaceCard; + + public RaceCard(IRaceTemplate data) : base(data) {} + } +} \ No newline at end of file diff --git a/src/OpenRpg.Cards/ICard.cs b/src/OpenRpg.Cards/ICard.cs new file mode 100644 index 0000000..c729240 --- /dev/null +++ b/src/OpenRpg.Cards/ICard.cs @@ -0,0 +1,11 @@ +using OpenRpg.Core.Common; +using OpenRpg.Core.Effects; + +namespace OpenRpg.Cards +{ + public interface ICard : IHasLocaleDescription, IHasEffects + { + int CardType { get; } + ICardVariables Variables { get; } + } +} \ No newline at end of file diff --git a/src/OpenRpg.Cards/ICardVariables.cs b/src/OpenRpg.Cards/ICardVariables.cs new file mode 100644 index 0000000..d07f5b1 --- /dev/null +++ b/src/OpenRpg.Cards/ICardVariables.cs @@ -0,0 +1,9 @@ +using OpenRpg.Core.Variables; + +namespace OpenRpg.Cards +{ + public interface ICardVariables : IVariables + { + + } +} \ No newline at end of file diff --git a/src/OpenRpg.Cards/OpenRpg.Cards.csproj b/src/OpenRpg.Cards/OpenRpg.Cards.csproj new file mode 100644 index 0000000..ca6d100 --- /dev/null +++ b/src/OpenRpg.Cards/OpenRpg.Cards.csproj @@ -0,0 +1,19 @@ + + + + 0.0.0 + netstandard2.0;net46 + OpenRpg.Cards + Grofit (LP) + https://github.com/openrpg/OpenRpg/blob/master/LICENSE + https://github.com/openrpg/OpenRpg + Adds a basic starting point for wrapping objects as cards for card game scenarios + rpg game-development xna monogame unity godot + + + + + + + + diff --git a/src/OpenRpg.Cards/Types/CardTypes.cs b/src/OpenRpg.Cards/Types/CardTypes.cs new file mode 100644 index 0000000..be35c00 --- /dev/null +++ b/src/OpenRpg.Cards/Types/CardTypes.cs @@ -0,0 +1,13 @@ +namespace OpenRpg.Cards.Types +{ + public class CardTypes + { + public static readonly int Unknown = 0; + + public static readonly int RaceCard = 1; + public static readonly int ClassCard = 2; + public static readonly int ItemCard = 3; + public static readonly int EquipmentCard = 4; + public static readonly int EffectCard = 5; + } +} \ No newline at end of file diff --git a/src/OpenRpg.Combat/Abilities/Ability.cs b/src/OpenRpg.Combat/Abilities/Ability.cs new file mode 100644 index 0000000..0eb281e --- /dev/null +++ b/src/OpenRpg.Combat/Abilities/Ability.cs @@ -0,0 +1,12 @@ +using OpenRpg.Core.Common; + +namespace OpenRpg.Combat.Abilities +{ + public class Ability : IHasDataId, IHasLocaleDescription + { + public int Id { get; set; } + public string NameLocaleId { get; set; } + public string DescriptionLocaleId { get; set; } + public IAbilityVariables AbilityVariables { get; set; } = new DefaultAbilityVariables(); + } +} \ No newline at end of file diff --git a/src/OpenRpg.Combat/Abilities/DefaultAbilityVariables.cs b/src/OpenRpg.Combat/Abilities/DefaultAbilityVariables.cs new file mode 100644 index 0000000..3cea53a --- /dev/null +++ b/src/OpenRpg.Combat/Abilities/DefaultAbilityVariables.cs @@ -0,0 +1,9 @@ +using OpenRpg.Core.Variables; + +namespace OpenRpg.Combat.Abilities +{ + public class DefaultAbilityVariables : DefaultVariables, IAbilityVariables + { + + } +} \ No newline at end of file diff --git a/src/OpenRpg.Combat/Abilities/IAbilityVariables.cs b/src/OpenRpg.Combat/Abilities/IAbilityVariables.cs new file mode 100644 index 0000000..73722d9 --- /dev/null +++ b/src/OpenRpg.Combat/Abilities/IAbilityVariables.cs @@ -0,0 +1,7 @@ +using OpenRpg.Core.Variables; + +namespace OpenRpg.Combat.Abilities +{ + public interface IAbilityVariables : IVariables + {} +} \ No newline at end of file diff --git a/src/OpenRpg.Combat/OpenRpg.Combat.csproj b/src/OpenRpg.Combat/OpenRpg.Combat.csproj index ba2c73a..8a49ae7 100644 --- a/src/OpenRpg.Combat/OpenRpg.Combat.csproj +++ b/src/OpenRpg.Combat/OpenRpg.Combat.csproj @@ -11,7 +11,6 @@ rpg game-development xna monogame unity godot - diff --git a/src/OpenRpg.Core/Classes/DefaultClassTemplateVariables.cs b/src/OpenRpg.Core/Classes/DefaultClassTemplateVariables.cs index 9573bf5..8a0224f 100644 --- a/src/OpenRpg.Core/Classes/DefaultClassTemplateVariables.cs +++ b/src/OpenRpg.Core/Classes/DefaultClassTemplateVariables.cs @@ -2,7 +2,7 @@ namespace OpenRpg.Core.Classes { - public class DefaultClassTemplateVariables : DefaultVariables, IClassTemplateVariables + public class DefaultClassTemplateVariables : DefaultVariables, IClassTemplateVariables { } diff --git a/src/OpenRpg.Core/Classes/DefaultClassVariables.cs b/src/OpenRpg.Core/Classes/DefaultClassVariables.cs index e41d6c3..5bb7f07 100644 --- a/src/OpenRpg.Core/Classes/DefaultClassVariables.cs +++ b/src/OpenRpg.Core/Classes/DefaultClassVariables.cs @@ -2,7 +2,7 @@ namespace OpenRpg.Core.Classes { - public class DefaultClassVariables : DefaultVariables, IClassVariables + public class DefaultClassVariables : DefaultVariables, IClassVariables { } diff --git a/src/OpenRpg.Core/Classes/IClassTemplate.cs b/src/OpenRpg.Core/Classes/IClassTemplate.cs index 67d411f..e5bac99 100644 --- a/src/OpenRpg.Core/Classes/IClassTemplate.cs +++ b/src/OpenRpg.Core/Classes/IClassTemplate.cs @@ -4,7 +4,7 @@ namespace OpenRpg.Core.Classes { - public interface IClassTemplate : IHasDataId, IHasAssetCode, IHasEffects, IHasRequirements, IHasLocaleDescription + public interface IClassTemplate : IHasDataId, IHasEffects, IHasRequirements, IHasLocaleDescription { IClassTemplateVariables Variables { get; } } diff --git a/src/OpenRpg.Core/Classes/IClassTemplateVariables.cs b/src/OpenRpg.Core/Classes/IClassTemplateVariables.cs index 69f1029..bedbd05 100644 --- a/src/OpenRpg.Core/Classes/IClassTemplateVariables.cs +++ b/src/OpenRpg.Core/Classes/IClassTemplateVariables.cs @@ -2,7 +2,7 @@ namespace OpenRpg.Core.Classes { - public interface IClassTemplateVariables : IVariables + public interface IClassTemplateVariables : IVariables { } } \ No newline at end of file diff --git a/src/OpenRpg.Core/Classes/IClassVariables.cs b/src/OpenRpg.Core/Classes/IClassVariables.cs index 25e0324..23ea47c 100644 --- a/src/OpenRpg.Core/Classes/IClassVariables.cs +++ b/src/OpenRpg.Core/Classes/IClassVariables.cs @@ -2,7 +2,7 @@ namespace OpenRpg.Core.Classes { - public interface IClassVariables : IVariables + public interface IClassVariables : IVariables { } } \ No newline at end of file diff --git a/src/OpenRpg.Core/Common/IHasAssetCode.cs b/src/OpenRpg.Core/Common/IHasAssetCode.cs deleted file mode 100644 index c0ebd95..0000000 --- a/src/OpenRpg.Core/Common/IHasAssetCode.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace OpenRpg.Core.Common -{ - public interface IHasAssetCode - { - string AssetCode { get; } - } -} \ No newline at end of file diff --git a/src/OpenRpg.Core/Races/DefaultRaceTemplateVariables.cs b/src/OpenRpg.Core/Races/DefaultRaceTemplateVariables.cs index 7ba622f..4de0903 100644 --- a/src/OpenRpg.Core/Races/DefaultRaceTemplateVariables.cs +++ b/src/OpenRpg.Core/Races/DefaultRaceTemplateVariables.cs @@ -2,7 +2,7 @@ namespace OpenRpg.Core.Races { - public class DefaultRaceTemplateVariables : DefaultVariables, IRaceTemplateVariables + public class DefaultRaceTemplateVariables : DefaultVariables, IRaceTemplateVariables { } diff --git a/src/OpenRpg.Core/Races/IRaceTemplate.cs b/src/OpenRpg.Core/Races/IRaceTemplate.cs index 80cc6e2..1fc3b33 100644 --- a/src/OpenRpg.Core/Races/IRaceTemplate.cs +++ b/src/OpenRpg.Core/Races/IRaceTemplate.cs @@ -4,7 +4,7 @@ namespace OpenRpg.Core.Races { - public interface IRaceTemplate : IHasDataId, IHasAssetCode, IHasEffects, IHasRequirements, IHasLocaleDescription + public interface IRaceTemplate : IHasDataId, IHasEffects, IHasRequirements, IHasLocaleDescription { IRaceTemplateVariables Variables { get; } } diff --git a/src/OpenRpg.Core/Races/IRaceTemplateVariables.cs b/src/OpenRpg.Core/Races/IRaceTemplateVariables.cs index 40940ab..f378f14 100644 --- a/src/OpenRpg.Core/Races/IRaceTemplateVariables.cs +++ b/src/OpenRpg.Core/Races/IRaceTemplateVariables.cs @@ -2,7 +2,7 @@ namespace OpenRpg.Core.Races { - public interface IRaceTemplateVariables : IVariables + public interface IRaceTemplateVariables : IVariables { } } \ No newline at end of file diff --git a/src/OpenRpg.Items/DefaultItemVariables.cs b/src/OpenRpg.Items/DefaultItemVariables.cs index de5f666..3262961 100644 --- a/src/OpenRpg.Items/DefaultItemVariables.cs +++ b/src/OpenRpg.Items/DefaultItemVariables.cs @@ -2,7 +2,7 @@ namespace OpenRpg.Items { - public class DefaultItemVariables : DefaultVariables, IItemVariables + public class DefaultItemVariables : DefaultVariables, IItemVariables { } diff --git a/src/OpenRpg.Items/Extensions/IItemExtensions.cs b/src/OpenRpg.Items/Extensions/IItemExtensions.cs index 99b6fbc..d97e1b3 100644 --- a/src/OpenRpg.Items/Extensions/IItemExtensions.cs +++ b/src/OpenRpg.Items/Extensions/IItemExtensions.cs @@ -1,4 +1,6 @@ using System.Collections.Generic; +using System.Linq; +using OpenRpg.Core.Effects; using OpenRpg.Core.Modifications; using OpenRpg.Core.Requirements; using OpenRpg.Items.Loot; @@ -35,5 +37,13 @@ public static ILootTableEntry GenerateLootTableEntry(this IItem item, float drop Variables = variables }; } + + public static IEnumerable GetItemEffects(this IItem item) + { + if(!item.Modifications.Any()) + { return item.ItemTemplate.Effects; } + + return item.ItemTemplate.Effects.Union(item.Modifications.SelectMany(x => x.Effects)); + } } } \ No newline at end of file diff --git a/src/OpenRpg.Items/Extensions/IItemVariablesExtensions.cs b/src/OpenRpg.Items/Extensions/IItemVariablesExtensions.cs index cf04806..a2b57ac 100644 --- a/src/OpenRpg.Items/Extensions/IItemVariablesExtensions.cs +++ b/src/OpenRpg.Items/Extensions/IItemVariablesExtensions.cs @@ -7,7 +7,7 @@ public static class ItemVariablesExtensions { public static IItemVariables Clone(this DefaultItemVariables itemVariables) { - return new DefaultItemVariables { InternalVariables = new Dictionary(itemVariables.InternalVariables) }; + return new DefaultItemVariables { InternalVariables = new Dictionary(itemVariables.InternalVariables) }; } public static int Amount(this IItemVariables variables) => (int)variables[ItemVariableTypes.Amount]; diff --git a/src/OpenRpg.Items/IItemVariables.cs b/src/OpenRpg.Items/IItemVariables.cs index 8ebe244..723575d 100644 --- a/src/OpenRpg.Items/IItemVariables.cs +++ b/src/OpenRpg.Items/IItemVariables.cs @@ -2,7 +2,7 @@ namespace OpenRpg.Items { - public interface IItemVariables : IVariables + public interface IItemVariables : IVariables { } diff --git a/src/OpenRpg.Items/Templates/IItemTemplate.cs b/src/OpenRpg.Items/Templates/IItemTemplate.cs index fc81037..016d736 100644 --- a/src/OpenRpg.Items/Templates/IItemTemplate.cs +++ b/src/OpenRpg.Items/Templates/IItemTemplate.cs @@ -6,7 +6,7 @@ namespace OpenRpg.Items.Templates { - public interface IItemTemplate : IHasDataId, IHasAssetCode, IHasLocaleDescription, IHasRequirements, IHasEffects, IAllowsModification + public interface IItemTemplate : IHasDataId, IHasLocaleDescription, IHasRequirements, IHasEffects, IAllowsModification { int ItemType { get; } IItemTemplateVariables Variables { get; set; } diff --git a/src/OpenRpg.Quests/DefaultQuestVariables.cs b/src/OpenRpg.Quests/DefaultQuestVariables.cs index 6935005..2c5bbf3 100644 --- a/src/OpenRpg.Quests/DefaultQuestVariables.cs +++ b/src/OpenRpg.Quests/DefaultQuestVariables.cs @@ -2,7 +2,7 @@ namespace OpenRpg.Quests { - public class DefaultQuestVariables : DefaultVariables, IQuestVariables + public class DefaultQuestVariables : DefaultVariables, IQuestVariables { } } \ No newline at end of file diff --git a/src/OpenRpg.Quests/IQuest.cs b/src/OpenRpg.Quests/IQuest.cs index a6879fe..e10256f 100644 --- a/src/OpenRpg.Quests/IQuest.cs +++ b/src/OpenRpg.Quests/IQuest.cs @@ -4,7 +4,7 @@ namespace OpenRpg.Quests { - public interface IQuest : IHasDataId, IHasRequirements, IHasLocaleDescription, IHasAssetCode + public interface IQuest : IHasDataId, IHasRequirements, IHasLocaleDescription { bool IsRepeatable { get; } IEnumerable Objectives { get; } diff --git a/src/OpenRpg.Quests/IQuestVariables.cs b/src/OpenRpg.Quests/IQuestVariables.cs index 47e9387..0721eed 100644 --- a/src/OpenRpg.Quests/IQuestVariables.cs +++ b/src/OpenRpg.Quests/IQuestVariables.cs @@ -2,7 +2,7 @@ namespace OpenRpg.Quests { - public interface IQuestVariables : IVariables + public interface IQuestVariables : IVariables { } diff --git a/src/OpenRpg.sln b/src/OpenRpg.sln index 9ff19ff..3b58309 100644 --- a/src/OpenRpg.sln +++ b/src/OpenRpg.sln @@ -20,6 +20,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Combat", "Combat", "{98CD79 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRpg.Combat", "OpenRpg.Combat\OpenRpg.Combat.csproj", "{754A79DD-AC13-4EC1-9DDA-AF5D5F6DABCE}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Cards", "Cards", "{C5E5EB5E-7F08-4CF4-B4DF-F20434DE2930}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRpg.Cards", "OpenRpg.Cards\OpenRpg.Cards.csproj", "{2A8FA13E-2E89-457B-9457-46C345768495}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -50,6 +54,10 @@ Global {754A79DD-AC13-4EC1-9DDA-AF5D5F6DABCE}.Debug|Any CPU.Build.0 = Debug|Any CPU {754A79DD-AC13-4EC1-9DDA-AF5D5F6DABCE}.Release|Any CPU.ActiveCfg = Release|Any CPU {754A79DD-AC13-4EC1-9DDA-AF5D5F6DABCE}.Release|Any CPU.Build.0 = Release|Any CPU + {2A8FA13E-2E89-457B-9457-46C345768495}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A8FA13E-2E89-457B-9457-46C345768495}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A8FA13E-2E89-457B-9457-46C345768495}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A8FA13E-2E89-457B-9457-46C345768495}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {86FD715B-0B33-40EB-B8AC-25EE62398A66} = {6BE3D2A4-F53A-4879-868E-A7522A445FE9} @@ -58,5 +66,6 @@ Global {AB5563B9-CE48-49A4-BE3C-793351C7377F} = {7C187634-FF6B-4A6E-AAD2-FCA3C97C1E5A} {8D5C52B0-B68B-4539-9D2F-DA22C825B923} = {56A39779-8FA4-499E-8EF9-4757765CC230} {754A79DD-AC13-4EC1-9DDA-AF5D5F6DABCE} = {98CD79A9-0E41-49CE-8246-3A32C1A2E004} + {2A8FA13E-2E89-457B-9457-46C345768495} = {C5E5EB5E-7F08-4CF4-B4DF-F20434DE2930} EndGlobalSection EndGlobal