diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3c175f4..eb33839 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,15 +23,15 @@ jobs: secrets: aws-access-key-id: ${{ secrets.NUGET_S3_REPO_KEY_ID }} aws-secret-access-key: ${{ secrets.NUGET_S3_REPO_KEY_SECRET }} - #nexus-api-key: ${{ secrets.NEXUS_API_KEY }} - #nexus-cookies-header: ${{ secrets.NEXUSMOD_SESSION_COOKIE }} - #nuget-org-key: ${{ secrets.NUGET_ORG_PAT }} - #ts-api-key: ${{ secrets.TS_SERVICEACCOUNT }} + nexus-api-key: ${{ secrets.NEXUS_API_KEY }} + nexus-cookies-header: ${{ secrets.NEXUSMOD_SESSION_COOKIE }} + nuget-org-key: ${{ secrets.NUGET_ORG_PAT }} + ts-api-key: ${{ secrets.TS_SERVICEACCOUNT }} webhook_url: ${{ secrets.VALHEIM_DISCORD_TITANS_WEBHOOK_URL }} with: - sln-file-name: Digitalroot.Valheim.Common.Placeholder - proj-file-name: Digitalroot.Valheim.Common.Placeholder + sln-file-name: Digitalroot.Valheim.EarlyWishbone + proj-file-name: Digitalroot.Valheim.EarlyWishbone #src-path: src #unit-test-path: UnitTests #skip-unit-tests: true @@ -42,10 +42,10 @@ jobs: #nuget-gh-upload: true #nuget-s3-upload: true #nuget-org-upload: true - #nexus-enable-upload: true - #nexus-mod-id: 000 - #ts-enable-upload: true - #ts-name: Placeholder - #ts-description: "TBD" - #ts-categories: "server-side client-side" #https://thunderstore.io/api/experimental/community/valheim/category/ - #ts-dependencies: ValheimModding-Jotunn-2.20.0 + nexus-enable-upload: true + nexus-mod-id: 2840 + ts-enable-upload: true + ts-name: Early_Wishbone + Ts-description: "Add the Wishbone to Eikthyr with a 25% chance to drop" + ts-categories: "client-side" #https://thunderstore.io/api/experimental/community/valheim/category/ + ts-dependencies: ValheimModding-Jotunn-2.20.0 diff --git a/docs/README.md b/docs/README.md index 7c7077b..6d73998 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,14 +1,17 @@ -# TBD +# Early Wishbone ## Summary -TBD +Add the Wishbone to Eikthyr with a 25% chance to drop. ## License **GNU Affero General Public License v3.0** ## Details -TBD +The Wishbone will help you find hidden treasuse in most of the biomes. +Get it early from beating Eikthyr. Use the Wishbone to find hidden +treasuses as early as the Meadows biome. Extend the lifespan and +usefulness of this utility item before it is cast aside for a belt. ### Dependencies - BepInExPack Valheim @@ -20,35 +23,17 @@ TBD ### Configuration -| Config | Category | Data Type | Desc | -| --- | --- | --- | --- | -| Campfire | Fireplaces | bool | Enable Campfire | -| Bonfire | Fireplaces | bool | Enable Bonfire | -| Sconce | Fireplaces | bool | Enable Sconce | -| StandingWoodTorch | Fireplaces | bool | Enable Standing Wood Torch | -| StandingIronTorch | Fireplaces | bool | Enable Standing Iron Torch | -| StandingGreenBurningIronTorch | Fireplaces | bool | Enable Standing Green Burning Iron Torch | -| StandingBlueBurningIronTorch | Fireplaces | bool | Enable Standing Blue Burning Iron Torch | -| StandingBrazier | Fireplaces | bool | Enable Standing Brazier | -| HangingBrazier | Fireplaces | bool | Enable Hanging Brazier | -| Hearth | Fireplaces | bool | Enable Hearth | -| HotTub | Fireplaces | bool | Enable Hot Tub | -| JackOTurnip | Fireplaces | bool | Enable Jack O' Turnip | -| StoneOven | Cooking Stations | bool | Enable Stone Oven | -| Smelter | Smelters | bool | Enable Smelter | -| BlastFurnace | Smelters | bool | Enable Blast Furnace | -| EitrRefinery | Smelters | bool | Enable Eitr Refinery | -| CustomPrefabs | Custom | string | A comma-separated list of prefab names | +* No need to configure. ###### Add to server to enforce configs. -### Crossplay ? +### Crossplay | Point of View | Server w/ Mod | Server w/o Mod | Client (PC) w/ mod | Client (PC/Console) w/o mod | | --- | --- | --- | --- | --- | -| Client (PC) w/ mod | ? | ? | ? | ? | -| Client (PC/Console) w/o mod | ? | ? | ? | ? | -| Server w/ Mod | | | ? | ? | -| Server w/o Mod | | | ? | ? | +| Client (PC) w/ mod | | | | | +| Client (PC/Console) w/o mod | | | | | +| Server w/ Mod | | | | | +| Server w/o Mod | | | | | ### Issues/Questions/Bugs - Use the repo issues tab above. diff --git a/src/Digitalroot.Valheim.ModTemplate.sln b/src/Digitalroot.Valheim.EarlyWishbone.sln similarity index 60% rename from src/Digitalroot.Valheim.ModTemplate.sln rename to src/Digitalroot.Valheim.EarlyWishbone.sln index 1629f2d..ec58353 100644 --- a/src/Digitalroot.Valheim.ModTemplate.sln +++ b/src/Digitalroot.Valheim.EarlyWishbone.sln @@ -28,7 +28,25 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ico", "ico", "{C66A8E3B-31D ico\logo.png = ico\logo.png EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Digitalroot.Valheim.EarlyWishbone", "Digitalroot.Valheim.EarlyWishbone\Digitalroot.Valheim.EarlyWishbone.csproj", "{249524A5-4299-42A3-8B06-6CCE009BB255}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests", "UnitTests\UnitTests.csproj", "{B35A418E-FB5F-4560-9AE5-E072A2579495}" +EndProject Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {249524A5-4299-42A3-8B06-6CCE009BB255}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {249524A5-4299-42A3-8B06-6CCE009BB255}.Debug|Any CPU.Build.0 = Debug|Any CPU + {249524A5-4299-42A3-8B06-6CCE009BB255}.Release|Any CPU.ActiveCfg = Release|Any CPU + {249524A5-4299-42A3-8B06-6CCE009BB255}.Release|Any CPU.Build.0 = Release|Any CPU + {B35A418E-FB5F-4560-9AE5-E072A2579495}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B35A418E-FB5F-4560-9AE5-E072A2579495}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B35A418E-FB5F-4560-9AE5-E072A2579495}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B35A418E-FB5F-4560-9AE5-E072A2579495}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection @@ -37,6 +55,7 @@ Global {1960DCD1-3C51-48FF-BFF8-5FE4C3CBABB2} = {E64D67E6-C2B6-471C-990D-2E9A91427B64} {28344659-BF34-4411-9C48-A3D5C9AFA98E} = {E5C5D2B9-639B-48CF-B5B0-E44FD7F24B1E} {C66A8E3B-31DB-4296-9DF3-78F55E2580E5} = {E5C5D2B9-639B-48CF-B5B0-E44FD7F24B1E} + {249524A5-4299-42A3-8B06-6CCE009BB255} = {E5C5D2B9-639B-48CF-B5B0-E44FD7F24B1E} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {46DD4389-95C4-4F57-BB16-2A9A816F46B9} diff --git a/src/Digitalroot.Valheim.EarlyWishbone.sln.DotSettings b/src/Digitalroot.Valheim.EarlyWishbone.sln.DotSettings new file mode 100644 index 0000000..6e583d0 --- /dev/null +++ b/src/Digitalroot.Valheim.EarlyWishbone.sln.DotSettings @@ -0,0 +1,2 @@ + + True \ No newline at end of file diff --git a/src/Digitalroot.Valheim.EarlyWishbone/.nx/description.bbcode.txt b/src/Digitalroot.Valheim.EarlyWishbone/.nx/description.bbcode.txt new file mode 100644 index 0000000..3d0fc45 --- /dev/null +++ b/src/Digitalroot.Valheim.EarlyWishbone/.nx/description.bbcode.txt @@ -0,0 +1,33 @@ +[size=3]Add the Wishbone to Eikthyr with a 25% chance to drop. +[/size][b][size=4] +License +[/size][/b][size=3][url=https://github.com/Digitalroot-Valheim/Digitalroot.Valheim.EarlyWishbone/blob/main/LICENSE]GNU Affero General Public License v3.0[/url][/size][size=3] +[/size][size=3]Closed-source license is available for commercial use.[/size] + +[b][size=4]Source[/size][/b] +[size=3][url=https://github.com/Digitalroot-Valheim/Digitalroot.Valheim.EarlyWishbone]GitHub[/url][/size] + +[b][size=4]Installation (manual)[/size][/b] +[list=1] +[*][size=3]Download the latest release archive (zip) file.[/size] +[*][size=3]Extract the archive into \steamapps\common\Valheim\BepInEx\plugins[/size] +[/list] +[b][size=4]Configuration[/size][/b][size=3] + +Go [url=https://github.com/Digitalroot-Valheim/Digitalroot.Valheim.EarlyWishbone?tab=readme-ov-file#configuration]here[/url] for config details. + +[/size][size=4][b]Crossplay[/b]:[/size][size=3] Compatible with clients without the mod. [/size] + +[b][size=4]Issues/Bugs[/size][/b] +[size=3]Open an issue or bug on the [url=https://github.com/Digitalroot-Valheim/Digitalroot.Valheim.EarlyWishbone/issues]issue board[/url].[/size] + +[b][size=4]Questions[/size][/b] +[size=3]Ask a question on the [url=https://github.com/Digitalroot-Valheim/Digitalroot.Valheim.EarlyWishbone/discussions]discussions board[/url]. + +[/size] + +[b][size=4]Support Me[/size][/b] @ [url=https://www.buymeacoffee.com/digitalroot]https://www.buymeacoffee.com/digitalroot[/url] + +[center][color=#fff2cc][size=3][b]Digitalroot can be found in the Valhalla Legends' Discord[/b][/size][/color] + +[url=https://discord.gg/SsMW3rm67u][img]https://digitalroot.net/img/vl/vl_logo_125x154.png[/img][/url][/center] diff --git a/src/Digitalroot.Valheim.EarlyWishbone/.ts/icon.png b/src/Digitalroot.Valheim.EarlyWishbone/.ts/icon.png new file mode 100644 index 0000000..a8ad1ba Binary files /dev/null and b/src/Digitalroot.Valheim.EarlyWishbone/.ts/icon.png differ diff --git a/src/Digitalroot.Valheim.EarlyWishbone/.ts/manifest.json b/src/Digitalroot.Valheim.EarlyWishbone/.ts/manifest.json new file mode 100644 index 0000000..63b8c76 --- /dev/null +++ b/src/Digitalroot.Valheim.EarlyWishbone/.ts/manifest.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://raw.githubusercontent.com/Digitalroot-Valheim/Digitalroot.Valheim.Common.Interfaces/main/src/json/tsio-manifest.json", + "name": "Early_Wishbone", + "author": "Digitalroot", + "description": "Add the Wishbone to Eikthyr with a 25% chance to drop.", + "version_number": "%VERSION_NUMBER%", + "dependencies": [ + "denikson-BepInExPack_Valheim-5.4.2202", + "ValheimModding-Jotunn-2.20.0" + ], + "website_url": "https://github.com/Digitalroot-Valheim/Digitalroot.Valheim.EarlyWishbone" +} diff --git a/src/Digitalroot.Valheim.EarlyWishbone/AssemblyInfo.cs b/src/Digitalroot.Valheim.EarlyWishbone/AssemblyInfo.cs new file mode 100644 index 0000000..4135d5a --- /dev/null +++ b/src/Digitalroot.Valheim.EarlyWishbone/AssemblyInfo.cs @@ -0,0 +1,37 @@ +using Digitalroot.Valheim.Common; +using Digitalroot.Valheim.EarlyWishbone; +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle(Main.Namespace)] +[assembly: AssemblyDescription(Main.Name)] +[assembly: AssemblyConfiguration(AssemblyInfo.Configuration)] +[assembly: AssemblyCompany(AssemblyInfo.Company)] +[assembly: AssemblyProduct(AssemblyInfo.Product)] +[assembly: AssemblyCopyright(AssemblyInfo.Copyright)] +[assembly: AssemblyTrademark(AssemblyInfo.Trademark)] +[assembly: AssemblyCulture(AssemblyInfo.Culture)] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("3ccc4dc1-5b17-47c1-b996-ca03b8639a61")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion(Main.Version)] +[assembly: AssemblyFileVersion(Main.Version)] diff --git a/src/Digitalroot.Valheim.EarlyWishbone/Digitalroot.Valheim.EarlyWishbone.csproj b/src/Digitalroot.Valheim.EarlyWishbone/Digitalroot.Valheim.EarlyWishbone.csproj new file mode 100644 index 0000000..5eadbbf --- /dev/null +++ b/src/Digitalroot.Valheim.EarlyWishbone/Digitalroot.Valheim.EarlyWishbone.csproj @@ -0,0 +1,81 @@ + + + + Digitalroot.Valheim.EarlyWishbone + net48 + 10 + Digitalroot.Valheim.EarlyWishbone + False + True + embedded + false + false + true + AGPL-3.0-or-later + Copyright © Digitalroot Technologies 2022 - 2024 + https://github.com/Digitalroot-Valheim/Digitalroot.Valheim.EarlyWishbone + https://github.com/Digitalroot-Valheim/Digitalroot.Valheim.EarlyWishbone + git + Digitalroot + Digitalroot Technologies + Digitalroot Valheim mod Early Wishbone + Early Wishbone mod for Valheim + en-US + true + README.md + + https://nuget.bepinex.dev/v3/index.json; + https://digitalroot-valheim-nuget.s3.us-west-2.amazonaws.com/index.json + + 1.0.0 + Debug;Release + + + + + + + + + + + + + + + all + runtime + + + all + + + all + runtime + compile; build; native; contentfiles; analyzers; buildtransitive + + + + + + + all + runtime + compile; build; native; contentfiles; analyzers; buildtransitive + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + + + + diff --git a/src/Digitalroot.Valheim.EarlyWishbone/FodyWeavers.xml b/src/Digitalroot.Valheim.EarlyWishbone/FodyWeavers.xml new file mode 100644 index 0000000..4717580 --- /dev/null +++ b/src/Digitalroot.Valheim.EarlyWishbone/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/Digitalroot.Valheim.EarlyWishbone/FodyWeavers.xsd b/src/Digitalroot.Valheim.EarlyWishbone/FodyWeavers.xsd new file mode 100644 index 0000000..edb1753 --- /dev/null +++ b/src/Digitalroot.Valheim.EarlyWishbone/FodyWeavers.xsd @@ -0,0 +1,111 @@ + + + + + + + + + + + + A regular expression matching the assembly names to include in merging. + + + + + A regular expression matching the assembly names to exclude from merging. + + + + + A regular expression matching the resource names to include in merging. + + + + + A regular expression matching the resource names to exclude from merging. + + + + + A switch to control whether the imported types are hidden (made private) or keep their visibility unchanged. Default is 'true' + + + + + A string that is used as prefix for the namespace of the imported types. + + + + + A switch to control whether to import the full assemblies or only the referenced types. Default is 'false' + + + + + A switch to control whether to compact the target assembly by skipping properties, events and unused methods. Default is 'false' + + + + + + A regular expression matching the assembly names to include in merging. + + + + + A regular expression matching the assembly names to exclude from merging. + + + + + A regular expression matching the resource names to include in merging. + + + + + A regular expression matching the resource names to exclude from merging. + + + + + A switch to control whether the imported types are hidden (made private) or keep their visibility unchanged. Default is 'true' + + + + + A string that is used as prefix for the namespace of the imported types. + + + + + A switch to control whether to import the full assemblies or only the referenced types. Default is 'false' + + + + + A switch to control whether to compact the target assembly by skipping properties, events and unused methods. Default is 'false' + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/src/Digitalroot.Valheim.EarlyWishbone/Main.cs b/src/Digitalroot.Valheim.EarlyWishbone/Main.cs new file mode 100644 index 0000000..8343d7b --- /dev/null +++ b/src/Digitalroot.Valheim.EarlyWishbone/Main.cs @@ -0,0 +1,84 @@ +using BepInEx; +using BepInEx.Configuration; +using Digitalroot.Valheim.Common; +using Digitalroot.Valheim.Common.Names.Vanilla; +using HarmonyLib; +using JetBrains.Annotations; +using Jotunn.Managers; +using Jotunn.Utils; +using System; +using System.Diagnostics.CodeAnalysis; +using System.Reflection; + +namespace Digitalroot.Valheim.EarlyWishbone +{ + [BepInPlugin(Guid, Name, Version)] + [BepInDependency(Jotunn.Main.ModGuid, "2.20.0")] + [NetworkCompatibility(CompatibilityLevel.VersionCheckOnly, VersionStrictness.Minor)] + [SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + public partial class Main : BaseUnityPlugin, ITraceableLogging + { + private Harmony _harmony; + [UsedImplicitly] public static ConfigEntry NexusId; + public static Main Instance; + + public Main() + { + Instance = this; +#if DEBUG + EnableTrace = true; + Log.RegisterSource(Instance); +#else + EnableTrace = false; +#endif + Log.Trace(Instance, $"{Namespace}.{MethodBase.GetCurrentMethod()?.DeclaringType?.Name}.{MethodBase.GetCurrentMethod()?.Name}"); + } + + [UsedImplicitly] + private void Awake() + { + try + { + Log.Trace(Instance, $"{Namespace}.{MethodBase.GetCurrentMethod()?.DeclaringType?.Name}.{MethodBase.GetCurrentMethod()?.Name}"); + NexusId = Config.Bind("General", "NexusID", 2840, new ConfigDescription("Nexus mod ID for updates", null, new ConfigurationManagerAttributes { Browsable = false, ReadOnly = true })); + _harmony = Harmony.CreateAndPatchAll(typeof(Main).Assembly, Guid); + CreatureManager.OnVanillaCreaturesAvailable += ModifyVanillaCreatures; + } + catch (Exception e) + { + Log.Error(Instance, e); + } + } + + private void ModifyVanillaCreatures() + { + // Get a vanilla creature prefab and change some values + var eikthyr = CreatureManager.Instance.GetCreaturePrefab(BossNames.Eikthyr); + var characterDropsComponent = eikthyr.GetComponent(); + characterDropsComponent.m_drops.Add(new CharacterDrop.Drop + { + m_amountMax = 1 + , m_amountMin = 0 + , m_chance = 25f + , m_dontScale = true + , m_levelMultiplier = false + , m_onePerPlayer = false + , m_prefab = PrefabManager.Instance.GetPrefab(PrefabNames.Wishbone) + + }); + + // Unregister the hook, modified and cloned creatures are kept over the whole game session + CreatureManager.OnVanillaCreaturesAvailable -= ModifyVanillaCreatures; + } + + #region Implementation of ITraceableLogging + + /// + public string Source => Namespace; + + /// + public bool EnableTrace { get; } + + #endregion + } +} diff --git a/src/Digitalroot.Valheim.EarlyWishbone/MetaData.cs b/src/Digitalroot.Valheim.EarlyWishbone/MetaData.cs new file mode 100644 index 0000000..dad58ea --- /dev/null +++ b/src/Digitalroot.Valheim.EarlyWishbone/MetaData.cs @@ -0,0 +1,13 @@ +using System.Diagnostics.CodeAnalysis; + +namespace Digitalroot.Valheim.EarlyWishbone +{ + [SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + public partial class Main + { + public const string Version = "1.0.0"; + public const string Name = "Early Wishbone"; + public const string Guid = "digitalroot.mods.earlywishbone"; + public const string Namespace = "Digitalroot.Valheim." + nameof(EarlyWishbone); + } +} diff --git a/src/Digitalroot.Valheim.EarlyWishbone/packages.lock.json b/src/Digitalroot.Valheim.EarlyWishbone/packages.lock.json new file mode 100644 index 0000000..a62fba0 --- /dev/null +++ b/src/Digitalroot.Valheim.EarlyWishbone/packages.lock.json @@ -0,0 +1,143 @@ +{ + "version": 1, + "dependencies": { + ".NETFramework,Version=v4.8": { + "BepInEx.Core": { + "type": "Direct", + "requested": "[5.4.21, 5.4.21]", + "resolved": "5.4.21", + "contentHash": "NMUPlbHTTfJ+qIQCI90uIvjuUQ4wnwt4cpRsK3ItBh1DhsWFzAHXNiZjBxZkPysljEKQ2iu89sxMTga4bxBXVQ==", + "dependencies": { + "BepInEx.BaseLib": "5.4.20", + "HarmonyX": "2.7.0" + } + }, + "Digitalroot.Valheim.Build.Targets": { + "type": "Direct", + "requested": "[1.0.21, )", + "resolved": "1.0.21", + "contentHash": "8mErk3UFjy80d9IlTjXNsofT7YfKLz897YE10ieB/SHNbBorzwVCPYRGsmuaNH8HyqjKQH3KnK4gDwDMBEC+DQ==" + }, + "Digitalroot.Valheim.Common.AssemblyInfo": { + "type": "Direct", + "requested": "[1.0.17, )", + "resolved": "1.0.17", + "contentHash": "EMa138YM/LPqUEnJixjQlL8pBo+UvZULBrpFmq/8Lu7TggcJgwhLQ3n5534sh/vV7D5w4LZu1iJRrScMrRidlg==" + }, + "Digitalroot.Valheim.Common.Log": { + "type": "Direct", + "requested": "[1.1.54, )", + "resolved": "1.1.54", + "contentHash": "LTZZsd3Ly+FaAoARVxb7oGRldAWzslsOVG4lGiCdwzj3Cv0aMmFLAIpykqtclPX7P3yy+GDqEuttbuK/asX4Og==", + "dependencies": { + "Digitalroot.Valheim.Common.Json": "1.0.42" + } + }, + "Digitalroot.Valheim.Common.Names": { + "type": "Direct", + "requested": "[1.4.35, )", + "resolved": "1.4.35", + "contentHash": "FHHhrtAwQyUfqntbolM9yRhcOvomBU/zrLpfPmFXrtfxYYXgWGvZlo1slvgvWCuRyoSFwqUFt/jNujOLeDzTYA==", + "dependencies": { + "Digitalroot.Valheim.Common.Utils": "1.0.65" + } + }, + "Digitalroot.Valheim.Common.References": { + "type": "Direct", + "requested": "[0.218.16, )", + "resolved": "0.218.16", + "contentHash": "RfI4oZoufAK5GVx6Y3uXDmW0t2dhNATXhPviP5srGqYM8qdQgMa4G2SWL6jaC3lP4aHp4lPEsBgCNAt1QUtEOA==" + }, + "Digitalroot.Valheim.Common.Utils": { + "type": "Direct", + "requested": "[1.0.65, )", + "resolved": "1.0.65", + "contentHash": "959nl5YeT++Q/PEXRIQqI5WmY9cA5gdcVECUN+wRPkSgyImROWHxU7u1VXus59BwRxL/rGSOz0YyIIxjVh7lBA==", + "dependencies": { + "Digitalroot.Valheim.Common.Log": "1.1.54" + } + }, + "Digitalroot.Valheim.References.JvL": { + "type": "Direct", + "requested": "[2.20.0, )", + "resolved": "2.20.0", + "contentHash": "4CCkEMVzlRDPeMQutVbRc3N0Ru4I28+2gbL788KD3+TkkqRX38+YMt1ez8gy42rka/IJ1SquxZdQnUJDnq/gcw==" + }, + "ErrorProne.NET.CoreAnalyzers": { + "type": "Direct", + "requested": "[0.1.2, )", + "resolved": "0.1.2", + "contentHash": "RQdzUtFVhwLwisP2Du7Ugm7ldwAzc+QJrlZWNIwHXcgq4b5fLwZgdN1203RdYiHS8OOALophC6yWekxu3UgN2g==" + }, + "Fody": { + "type": "Direct", + "requested": "[6.6.0, 6.6.0]", + "resolved": "6.6.0", + "contentHash": "NWWM8KiR9DGiAi47q9px9oI27xYBiM5KXxSnI4R5mz2/rG8LIcXJfw5zDLLH1xOgzqRNJgc8KTPQPoiQCidYUw==" + }, + "ILMerge.Fody": { + "type": "Direct", + "requested": "[1.22.0, 1.22.0]", + "resolved": "1.22.0", + "contentHash": "VCWQM8q7wZwHMgksBsFfbImRUmlgn7E6EKkrnUV86/keqBvMTjhlA7mBYtz6Dace8XsJYufYJvRP25uur5W5WA==", + "dependencies": { + "Fody": "6.3.0" + } + }, + "BepInEx.BaseLib": { + "type": "Transitive", + "resolved": "5.4.20", + "contentHash": "0bXgYxbCEN2Ixp3kiFEhyw+RASeFQeg/ww+lbMt7if6XMeVS60eg6epNsMA8Jbx57dmNOzNevkKKw8mP8SUMqw==" + }, + "Digitalroot.References.Unity": { + "type": "Transitive", + "resolved": "2022.3.17", + "contentHash": "edxgtveXwn+ACtMyak1McLwoQxKm/GXdh8Drcx2hoFl5VoFeR9wdwEz1yJdVtbamtecZOVghEn3tKKR3ekqOeg==" + }, + "Digitalroot.Valheim.Common.Json": { + "type": "Transitive", + "resolved": "1.0.42", + "contentHash": "5r8ytfJ7Aua1bDbLd5Ypg6k+xARnxnz/hVG/ZIhURdkPrSKhza5ynHZS/UCgturb6Ouj4OK+29I1xiUqRoXmCQ==", + "dependencies": { + "Digitalroot.References.Unity": "2022.3.17", + "LibZ.Tool": "1.2.0" + } + }, + "HarmonyX": { + "type": "Transitive", + "resolved": "2.7.0", + "contentHash": "lec/SkduQspMa3Pi/nM/NSvA84Za8HCCWA8ybdToKiTqnBZa+JC5g6rxoFQCg/1vNuYcvjy77edePZzIEsRmvw==", + "dependencies": { + "MonoMod.RuntimeDetour": "21.12.13.1" + } + }, + "LibZ.Tool": { + "type": "Transitive", + "resolved": "1.2.0", + "contentHash": "jcZROJ28bmrZx/RaFHcTlSy3x4SmSsMolJiKoluFFrE7oMiXUnYx1K+SJeHJhow05W0Rg9oi9HEyZWwdYSV3cw==" + }, + "Mono.Cecil": { + "type": "Transitive", + "resolved": "0.11.4", + "contentHash": "IC1h5g0NeJGHIUgzM1P82ld57knhP0IcQfrYITDPXlNpMYGUrsG5TxuaWTjaeqDNQMBDNZkB8L0rBnwsY6JHuQ==" + }, + "MonoMod.RuntimeDetour": { + "type": "Transitive", + "resolved": "21.12.13.1", + "contentHash": "65mB+bHjT6UCGCgO+/pYhpuGPf96rQ1Whwkut/x7cqVIW0DTndDFyWc/3bngzhnY/Y6IYtBMlXsU2ATq+CxpHg==", + "dependencies": { + "Mono.Cecil": "0.11.4", + "MonoMod.Utils": "21.12.13.1" + } + }, + "MonoMod.Utils": { + "type": "Transitive", + "resolved": "21.12.13.1", + "contentHash": "/H+0RMWqx/D1/fSuY5jhY6GFvqhdYdlnI7J3IfL8P6y4nJkoZDxqts6+RxWWOz4pbnJdWnxSjS8XG+Lq6rUi7w==", + "dependencies": { + "Mono.Cecil": "0.11.4" + } + } + } + } +} \ No newline at end of file diff --git a/src/UnitTests/UnitTests.cs b/src/UnitTests/UnitTests.cs new file mode 100644 index 0000000..a469531 --- /dev/null +++ b/src/UnitTests/UnitTests.cs @@ -0,0 +1,18 @@ +using NUnit.Framework; + +namespace UnitTests +{ + public class Tests + { + [SetUp] + public void Setup() + { + } + + [Test] + public void Test1() + { + Assert.Pass(); + } + } +} \ No newline at end of file diff --git a/src/UnitTests/UnitTests.csproj b/src/UnitTests/UnitTests.csproj new file mode 100644 index 0000000..85143ed --- /dev/null +++ b/src/UnitTests/UnitTests.csproj @@ -0,0 +1,21 @@ + + + + net6.0 + + false + + Debug;Release + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + diff --git a/src/ico/09nFbP5n.jpg b/src/ico/09nFbP5n.jpg new file mode 100644 index 0000000..4277726 Binary files /dev/null and b/src/ico/09nFbP5n.jpg differ diff --git a/src/ico/7nJs-phP.jpg b/src/ico/7nJs-phP.jpg new file mode 100644 index 0000000..adcafff Binary files /dev/null and b/src/ico/7nJs-phP.jpg differ diff --git a/src/ico/80i5jRZq.jpg b/src/ico/80i5jRZq.jpg new file mode 100644 index 0000000..b6a8a76 Binary files /dev/null and b/src/ico/80i5jRZq.jpg differ diff --git a/src/ico/EmE2o8JD.jpg b/src/ico/EmE2o8JD.jpg new file mode 100644 index 0000000..6dc84af Binary files /dev/null and b/src/ico/EmE2o8JD.jpg differ diff --git a/src/ico/EmE2o8JD.xcf b/src/ico/EmE2o8JD.xcf new file mode 100644 index 0000000..369be49 Binary files /dev/null and b/src/ico/EmE2o8JD.xcf differ diff --git a/src/ico/G2In-_P1.jpg b/src/ico/G2In-_P1.jpg new file mode 100644 index 0000000..5510e9f Binary files /dev/null and b/src/ico/G2In-_P1.jpg differ diff --git a/src/ico/OpLz0Qzg.jpg b/src/ico/OpLz0Qzg.jpg new file mode 100644 index 0000000..11cfd55 Binary files /dev/null and b/src/ico/OpLz0Qzg.jpg differ diff --git a/src/ico/bbNihw-O.jpg b/src/ico/bbNihw-O.jpg new file mode 100644 index 0000000..a397fbb Binary files /dev/null and b/src/ico/bbNihw-O.jpg differ diff --git a/src/ico/l7EWvMtq.jpg b/src/ico/l7EWvMtq.jpg new file mode 100644 index 0000000..93ed286 Binary files /dev/null and b/src/ico/l7EWvMtq.jpg differ diff --git a/src/ico/u9PHGaIc.jpg b/src/ico/u9PHGaIc.jpg new file mode 100644 index 0000000..43a4c51 Binary files /dev/null and b/src/ico/u9PHGaIc.jpg differ diff --git a/src/ico/vin4SJVq.jpg b/src/ico/vin4SJVq.jpg new file mode 100644 index 0000000..34b79e3 Binary files /dev/null and b/src/ico/vin4SJVq.jpg differ diff --git a/src/ico/wbENgBsJ.jpg b/src/ico/wbENgBsJ.jpg new file mode 100644 index 0000000..11cfd55 Binary files /dev/null and b/src/ico/wbENgBsJ.jpg differ