diff --git a/ChebsNecromancy/BasePlugin.cs b/ChebsNecromancy/BasePlugin.cs index 1fd1fee..3dd836e 100644 --- a/ChebsNecromancy/BasePlugin.cs +++ b/ChebsNecromancy/BasePlugin.cs @@ -34,11 +34,11 @@ internal class BasePlugin : BaseUnityPlugin { public const string PluginGuid = "com.chebgonaz.ChebsNecromancy"; public const string PluginName = "ChebsNecromancy"; - public const string PluginVersion = "4.9.1"; + public const string PluginVersion = "4.10.0"; private const string ConfigFileName = PluginGuid + ".cfg"; private static readonly string ConfigFileFullPath = Path.Combine(Paths.ConfigPath, ConfigFileName); - public readonly System.Version ChebsValheimLibraryVersion = new("2.5.4"); + public readonly System.Version ChebsValheimLibraryVersion = new("2.6.1"); private readonly Harmony harmony = new(PluginGuid); diff --git a/ChebsNecromancy/ChebsNecromancy.csproj b/ChebsNecromancy/ChebsNecromancy.csproj index e5e934b..c8871c2 100644 --- a/ChebsNecromancy/ChebsNecromancy.csproj +++ b/ChebsNecromancy/ChebsNecromancy.csproj @@ -24,7 +24,7 @@ e3243d22-4307-4008-ba36-9f326008cde5 - 4.9.1.0 + 4.10.0.0 $(Version) $(Version) @@ -36,13 +36,12 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/ChebsNecromancy/Items/Armor/Player/NecromancerHood.cs b/ChebsNecromancy/Items/Armor/Player/NecromancerHood.cs index 8ee701d..da36ce0 100644 --- a/ChebsNecromancy/Items/Armor/Player/NecromancerHood.cs +++ b/ChebsNecromancy/Items/Armor/Player/NecromancerHood.cs @@ -51,7 +51,7 @@ public override void UpdateRecipe() UpdateRecipe(CraftingStationRequired, CraftingCost, CraftingStationLevel); } - public override CustomItem GetCustomItemFromPrefab(GameObject prefab) + public override CustomItem GetCustomItemFromPrefab(GameObject prefab, bool fixReference = true) { ItemConfig config = new ItemConfig(); config.Name = "$item_chebgonaz_necromancerhood"; diff --git a/ChebsNecromancy/Items/Armor/Player/SpectralShroud.cs b/ChebsNecromancy/Items/Armor/Player/SpectralShroud.cs index 9f09d7b..ee587ec 100644 --- a/ChebsNecromancy/Items/Armor/Player/SpectralShroud.cs +++ b/ChebsNecromancy/Items/Armor/Player/SpectralShroud.cs @@ -93,7 +93,7 @@ public override void UpdateRecipe() UpdateRecipe(CraftingStationRequired, CraftingCost, CraftingStationLevel); } - public override CustomItem GetCustomItemFromPrefab(GameObject prefab) + public override CustomItem GetCustomItemFromPrefab(GameObject prefab, bool fixReference = true) { ItemConfig config = new ItemConfig(); config.Name = "$item_friendlyskeletonwand_spectralshroud"; diff --git a/ChebsNecromancy/Items/Wands/DraugrWand.cs b/ChebsNecromancy/Items/Wands/DraugrWand.cs index edacd04..765c80a 100644 --- a/ChebsNecromancy/Items/Wands/DraugrWand.cs +++ b/ChebsNecromancy/Items/Wands/DraugrWand.cs @@ -125,7 +125,7 @@ public override void UpdateRecipe() UpdateRecipe(CraftingStationRequired, CraftingCost, CraftingStationLevel); } - public override CustomItem GetCustomItemFromPrefab(GameObject prefab) + public override CustomItem GetCustomItemFromPrefab(GameObject prefab, bool fixReference = true) { var config = new ItemConfig(); config.Name = "$item_friendlyskeletonwand_draugrwand"; diff --git a/ChebsNecromancy/Items/Wands/OrbOfBeckoning.cs b/ChebsNecromancy/Items/Wands/OrbOfBeckoning.cs index 211632a..56598d6 100644 --- a/ChebsNecromancy/Items/Wands/OrbOfBeckoning.cs +++ b/ChebsNecromancy/Items/Wands/OrbOfBeckoning.cs @@ -77,7 +77,7 @@ public override void UpdateRecipe() UpdateRecipe(CraftingStationRequired, CraftingCost, CraftingStationLevel); } - public override CustomItem GetCustomItemFromPrefab(GameObject prefab) + public override CustomItem GetCustomItemFromPrefab(GameObject prefab, bool fixReference = true) { ItemConfig config = new(); config.Name = NameLocalization; diff --git a/ChebsNecromancy/Items/Wands/SkeletonWand.cs b/ChebsNecromancy/Items/Wands/SkeletonWand.cs index 2a231d4..e1220fa 100644 --- a/ChebsNecromancy/Items/Wands/SkeletonWand.cs +++ b/ChebsNecromancy/Items/Wands/SkeletonWand.cs @@ -128,7 +128,7 @@ public override void UpdateRecipe() UpdateRecipe(CraftingStationRequired, CraftingCost, CraftingStationLevel); } - public override CustomItem GetCustomItemFromPrefab(GameObject prefab) + public override CustomItem GetCustomItemFromPrefab(GameObject prefab, bool fixReference = true) { ItemConfig config = new ItemConfig(); config.Name = "$item_friendlyskeletonwand"; diff --git a/ChebsNecromancy/Items/Wands/Wand.cs b/ChebsNecromancy/Items/Wands/Wand.cs index 47aeeb4..b3e50dd 100644 --- a/ChebsNecromancy/Items/Wands/Wand.cs +++ b/ChebsNecromancy/Items/Wands/Wand.cs @@ -148,7 +148,7 @@ public virtual void CreateButtons() Name = ItemName + "Follow", Config = FollowConfig, GamepadConfig = FollowGamepadConfig, - HintToken = "$friendlyskeletonwand_follow", + HintToken = "$chebgonaz_follow", BlockOtherInputs = true }; InputManager.Instance.AddButton(BasePlugin.PluginGuid, FollowButton); @@ -161,7 +161,7 @@ public virtual void CreateButtons() Name = ItemName + "Wait", Config = WaitConfig, GamepadConfig = WaitGamepadConfig, - HintToken = "$friendlyskeletonwand_wait", + HintToken = "$chebgonaz_wait", BlockOtherInputs = true }; InputManager.Instance.AddButton(BasePlugin.PluginGuid, WaitButton); @@ -263,7 +263,7 @@ public void MakeNearbyMinionsFollow(float radius, bool follow) if (distance > radius && !minionFollowingOrb) continue; MessageHud.instance.ShowMessage(MessageHud.MessageType.Center, - follow ? "$friendlyskeletonwand_skeletonfollowing" : "$friendlyskeletonwand_skeletonwaiting"); + follow ? "$chebgonaz_skeletonfollowing" : "$chebgonaz_skeletonwaiting"); if (follow) { minion.Follow(player.gameObject); diff --git a/ChebsNecromancy/Package/manifest.json b/ChebsNecromancy/Package/manifest.json index e30bcf7..0091370 100644 --- a/ChebsNecromancy/Package/manifest.json +++ b/ChebsNecromancy/Package/manifest.json @@ -1,9 +1,9 @@ { "name": "ChebsNecromancy", "description": "Cheb's Necromancy adds Necromancy to Valheim via craftable wands and structures. Minions will follow you, guard your base, and perform menial tasks.", - "version_number": "4.9.1", + "version_number": "4.10.0", "website_url": "https://github.com/jpw1991/chebs-necromancy", "dependencies": [ - "ValheimModding-Jotunn-2.16.2" + "ValheimModding-Jotunn-2.19.3" ] } diff --git a/ChebsNecromancy/Structures/TreasurePylon.cs b/ChebsNecromancy/Structures/TreasurePylon.cs index b4016e5..a765fe6 100644 --- a/ChebsNecromancy/Structures/TreasurePylon.cs +++ b/ChebsNecromancy/Structures/TreasurePylon.cs @@ -88,8 +88,8 @@ IEnumerator LookForPieces() while (true) { yield return new WaitForSeconds(UpdateInterval.Value + Random.value); - - if (!piece.m_nview.IsOwner()) continue; + + if (!piece || !piece.m_nview.IsOwner()) continue; var playersInRange = new List(); Player.GetPlayersInRange(transform.position, PlayerDetectionDistance, playersInRange); @@ -102,7 +102,7 @@ IEnumerator LookForPieces() c => c.m_piece != null && c.m_piece.IsPlacedByPlayer() && allowedContainers.Contains(c.m_piece.m_nview.GetPrefabName()), true); - for (int i = 0; i < nearbyContainers.Count; i++) + for (var i = 0; i < nearbyContainers.Count; i++) { yield return new WaitWhile(() => playersInRange[0].IsSleeping()); @@ -123,19 +123,19 @@ IEnumerator LookForPieces() var currentContainerInventory = nearbyContainers[i].GetInventory(); //var currentContainerItems = currentContainerInventory.GetAllItems(); - for (int j = 0; j < nearbyContainers.Count; j++) + for (var j = 0; j < nearbyContainers.Count; j++) { if (j == i) continue; // skip over self var otherInventory = nearbyContainers[j].GetInventory(); var otherItems = otherInventory.GetAllItems(); - for (int k = otherItems.Count - 1; k > -1; k--) + for (var k = otherItems.Count - 1; k > -1; k--) { - ItemDrop.ItemData jItem = otherItems[k]; + var jItem = otherItems[k]; - int currentContainerItemCount = currentContainerInventory.CountItems(jItem.m_shared.m_name); - int otherContainerItemCount = otherInventory.CountItems(jItem.m_shared.m_name); + var currentContainerItemCount = currentContainerInventory.CountItems(jItem.m_shared.m_name); + var otherContainerItemCount = otherInventory.CountItems(jItem.m_shared.m_name); if (currentContainerItemCount > otherContainerItemCount) { diff --git a/Friendly-Skeleton-Wand.wiki b/Friendly-Skeleton-Wand.wiki index 9dc2099..f040d3c 160000 --- a/Friendly-Skeleton-Wand.wiki +++ b/Friendly-Skeleton-Wand.wiki @@ -1 +1 @@ -Subproject commit 9dc209950b7b6601b6cf417c06538b13f3aed9a7 +Subproject commit f040d3c88268dde1d33202dd4dc2dabd2773ac2e diff --git a/README.md b/README.md index 35ca22c..8b0fe9e 100644 --- a/README.md +++ b/README.md @@ -154,6 +154,7 @@ A special thanks to the people who've helped me along the way: Date | Version | Notes --- | --- | --- +25/04/2024 | 4.10.0 | Prepare for ashlands; upgrade CVL 28/01/2024 | 4.9.1 | Reduce logging in case of missing bone color data 27/01/2024 | 4.9.0 | Add different healing levels & spells to the priests; fix a bug that erased some default equipment set in Unity 25/01/2024 | 4.8.0 | Add skeleton priest to heal other minions diff --git a/Translations/Russian/chebsnecromancy.russian.json b/Translations/Russian/chebsnecromancy.russian.json index 31691d3..29002e4 100644 --- a/Translations/Russian/chebsnecromancy.russian.json +++ b/Translations/Russian/chebsnecromancy.russian.json @@ -83,5 +83,10 @@ "chebgonaz_miniontype_poison": "Ядовитого скелета", "chebgonaz_miniontype_mage": "Мага", "chebgonaz_miniontype_leech": "Пиявку", - "chebgonaz_miniontype_battleneckro": "Боевого никса" -} \ No newline at end of file + "chebgonaz_miniontype_priest": "Жреца", + "chebgonaz_miniontype_battleneckro": "Боевого никса", + "chebgonaz_worker_target": "Цель", + "chebgonaz_worker_cantfindtarget": "Не могу найти цель.", + "chebgonaz_phylactery_name": "Филактерий", + "chebgonaz_phylactery_desc": "Некроманту не составит труда избежать смерти. Все что требуется, это другая душа, которую нужно принести в жертву богам вместо своей собственной." +}