From b40bc25c168931edf606938996f06fc4a312c192 Mon Sep 17 00:00:00 2001 From: jonathan-robertson Date: Wed, 5 Jul 2023 16:15:36 -0500 Subject: [PATCH 1/5] fix respec to no longer give extra skill points --- CHANGELOG.md | 9 ++++++++ Config/buffs.xml | 12 +++++++++++ src/Data/PlayerRecord.cs | 8 ++----- src/Data/Values.cs | 1 + src/Utilities/PlayerHelper.cs | 40 ++++++++++++++++++++++++++++------- 5 files changed, 56 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e7dff0..1312bf7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [TODO] + +- add mechanic to detect/fix too many skill points +- fix purchase log to clarify total, amount removed from inventory, change given back + +## [2.0.3] - ? + +- fix respec to no longer give extra skill points + ## [2.0.2] - 2023-07-04 - improve logging, simplify logic for purchase diff --git a/Config/buffs.xml b/Config/buffs.xml index 890c3ec..a7c1185 100644 --- a/Config/buffs.xml +++ b/Config/buffs.xml @@ -123,6 +123,18 @@ + + \ No newline at end of file diff --git a/src/Data/PlayerRecord.cs b/src/Data/PlayerRecord.cs index 2fa8db7..767a29e 100644 --- a/src/Data/PlayerRecord.cs +++ b/src/Data/PlayerRecord.cs @@ -168,15 +168,11 @@ public void PurchaseSkill(string name, int level, int cost) /// Respec player, returning/unassigning all skill points but leaving level the same. /// /// Player to respec. - public void Respec(ClientInfo clientInfo, EntityPlayer player) + public void Respec(EntityPlayer player) { - player.Progression.ResetProgression(true); + _ = player.Buffs.AddBuff(Values.BuffRespec); Changes.Clear(); Save(); - player.Progression.bProgressionStatsChanged = true; - player.bPlayerStatsChanged = true; - ConnectionManager.Instance.SendPackage(NetPackageManager.GetPackage().Setup(player), false, player.entityId); - } /// diff --git a/src/Data/Values.cs b/src/Data/Values.cs index 7a687d8..e86862a 100644 --- a/src/Data/Values.cs +++ b/src/Data/Values.cs @@ -24,6 +24,7 @@ internal class Values public static string BuffTryBuyTreatment { get; private set; } = "buffAmnesiaTryBuyTreatment"; public static string BuffTryBuyTherapy { get; private set; } = "buffAmnesiaTryBuyTherapy"; public static string BuffRequestChangeCallback { get; private set; } = "buffAmnesiaRequestChangeCallback"; + public static string BuffRespec { get; private set; } = "buffAmnesiaRespec"; // game_events public static string GameEventPayFromBag { get; private set; } = "amnesia_pay_from_bag"; diff --git a/src/Utilities/PlayerHelper.cs b/src/Utilities/PlayerHelper.cs index de22aa6..271311f 100644 --- a/src/Utilities/PlayerHelper.cs +++ b/src/Utilities/PlayerHelper.cs @@ -44,14 +44,7 @@ public static void Respec(EntityPlayer player) return; } - if (!TryGetClientInfo(player.entityId, out var clientInfo)) - { - _log.Error($"Unable to find client info for player {player.entityId}."); - return; - } - - record.Respec(clientInfo, player); - ConnectionManager.Instance.SendPackage(NetPackageManager.GetPackage().Setup(player), false, player.entityId); + record.Respec(player); } /// Most of the following core logic was lifted from ActionResetPlayerData.PerformTargetAction @@ -153,6 +146,37 @@ public static void TriggerGameEvent(ClientInfo clientInfo, EntityPlayer player, clientInfo.SendPackage(NetPackageManager.GetPackage().Setup(eventName, clientInfo.entityId, "", "", NetPackageGameEventResponse.ResponseTypes.Approved)); } + /// + /// Try parsing and returning player progression data from the given PlayerDataFile. + /// + /// PlayerDataFile containing the latest progression information. + /// EntityPlayer containing the active data we'll cache the PlayerDataFile.Progression info into. + /// Parsed progression data from the given PlayerDataFile. + /// Whether the Progression data could be parsed. + public static bool TryReadProgression(PlayerDataFile playerDataFile, EntityPlayer player, out Progression progression) + { + try + { + if (playerDataFile.progressionData.Length > 0L) + { + using (var pooledBinaryReader = MemoryPools.poolBinaryReader.AllocSync(false)) + { + // TODO: is a sync lock necessary? + pooledBinaryReader.SetBaseStream(playerDataFile.progressionData); + playerDataFile.progressionData.Position = 0L; + progression = Progression.Read(pooledBinaryReader, player); + return true; + } + } + } + catch (Exception e) + { + _log.Error($"Failed to sync progression data for {player.entityId}", e); + } + progression = default; + return false; + } + public static void OpenWindow(ClientInfo clientInfo, string windowGroupName) { clientInfo.SendPackage(NetPackageManager.GetPackage().Setup($"xui open {windowGroupName}", true)); From cf55c3b3a1bb8a3be21af088530fa2b8619f1da2 Mon Sep 17 00:00:00 2001 From: jonathan-robertson Date: Wed, 5 Jul 2023 16:18:26 -0500 Subject: [PATCH 2/5] fix purchase log to clarify total & change --- CHANGELOG.md | 2 +- src/Utilities/DialogShop.cs | 46 +++++++++++++++---------------------- 2 files changed, 20 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1312bf7..aed1b35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,10 +8,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [TODO] - add mechanic to detect/fix too many skill points -- fix purchase log to clarify total, amount removed from inventory, change given back ## [2.0.3] - ? +- fix purchase log to clarify total & change - fix respec to no longer give extra skill points ## [2.0.2] - 2023-07-04 diff --git a/src/Utilities/DialogShop.cs b/src/Utilities/DialogShop.cs index 2ebd617..6154dda 100644 --- a/src/Utilities/DialogShop.cs +++ b/src/Utilities/DialogShop.cs @@ -93,30 +93,22 @@ public static void TryBuyTreatment(EntityAlive entity) { player.Buffs.RemoveBuff(Values.BuffTryBuyTreatment); - var playerName = player.GetDebugName(); - var userId = ClientInfoHelper.GetUserIdentifier(clientInfo); - if (!player.Buffs.HasBuff(Values.BuffFragileMemory)) { - _log.Info($"player {player.entityId} ({playerName} | {userId}) requested Treatment from trader but doesn't have a Fragile Memory to heal."); + _log.Info($"player {player.entityId} ({player.GetDebugName()} | {ClientInfoHelper.GetUserIdentifier(clientInfo)}) requested Treatment from trader but doesn't have a Fragile Memory to heal."); PlayerHelper.OpenWindow(clientInfo, Values.WindowShopTreatmentUnnecessary); PlayerHelper.TriggerGameEvent(clientInfo, player, Values.GameEventShopUnnecessary); return; } - _ = BltMoney.TryGetValue(player.entityId, out var blt); - _ = BagMoney.TryGetValue(player.entityId, out var bag); - var cost = GetCost(player.Progression.Level, Product.Treatment); - if (TryPurchase(clientInfo, player, blt, bag, cost, out var change)) + if (TryPurchase(clientInfo, player, Product.Treatment)) { - _log.Info($"player {player.entityId} ({playerName} | {userId}) purchased Treatment from trader: {blt}+{bag} = {blt + bag} - {cost} = {change}"); player.Buffs.RemoveBuff(Values.BuffFragileMemory); PlayerHelper.OpenWindow(clientInfo, Values.WindowShopTreatmentComplete); PlayerHelper.TriggerGameEvent(clientInfo, player, Values.GameEventShopPurchased); } else { - _log.Info($"player {player.entityId} ({playerName} | {userId}) requested Treatment from trader but doesn't have enough money: {blt}+{bag} = {blt + bag} < {cost}"); PlayerHelper.OpenWindow(clientInfo, Values.WindowShopCannotAfford); PlayerHelper.TriggerGameEvent(clientInfo, player, Values.GameEventShopCannotAfford); } @@ -130,23 +122,16 @@ public static void TryBuyTherapy(EntityAlive entity) if (PlayerHelper.TryGetClientInfoAndEntityPlayer(entity.world, entity.entityId, out var clientInfo, out var player)) { player.Buffs.RemoveBuff(Values.BuffTryBuyTherapy); + player.Buffs.RemoveBuff(Values.BuffRespec); - var playerName = player.GetDebugName(); - var userId = ClientInfoHelper.GetUserIdentifier(clientInfo); - - _ = BltMoney.TryGetValue(player.entityId, out var blt); - _ = BagMoney.TryGetValue(player.entityId, out var bag); - var cost = GetCost(player.Progression.Level, Product.Therapy); - if (TryPurchase(clientInfo, player, blt, bag, cost, out var change)) + if (TryPurchase(clientInfo, player, Product.Therapy)) { - _log.Info($"player {player.entityId} ({playerName} | {userId}) purchased Therapy from trader: {blt}+{bag} = {blt + bag} - {cost} = {change}"); PlayerHelper.Respec(player); PlayerHelper.OpenWindow(clientInfo, Values.WindowShopTherapyComplete); PlayerHelper.TriggerGameEvent(clientInfo, player, Values.GameEventShopPurchased); } else { - _log.Info($"player {player.entityId} ({playerName} | {userId}) requested Therapy from trader but doesn't have enough money: {blt}+{bag} = {blt + bag} < {cost}"); PlayerHelper.OpenWindow(clientInfo, Values.WindowShopCannotAfford); PlayerHelper.TriggerGameEvent(clientInfo, player, Values.GameEventShopCannotAfford); } @@ -182,25 +167,32 @@ private static int GetCost(int level, Product product) return -1; } - private static bool TryPurchase(ClientInfo clientInfo, EntityPlayer player, int _blt, int _bag, int _cost, out int change) + private static bool TryPurchase(ClientInfo clientInfo, EntityPlayer player, Product product) { - if (!CanAfford(player.entityId, _cost)) + var playerName = player.GetDebugName(); + var userId = ClientInfoHelper.GetUserIdentifier(clientInfo); + _ = BltMoney.TryGetValue(player.entityId, out var blt); + _ = BagMoney.TryGetValue(player.entityId, out var bag); + var cost = GetCost(player.Progression.Level, product); + + if (!CanAfford(player.entityId, cost)) { - _log.Trace($"player {player.GetDebugName()} could NOT afford {_cost}"); - change = -1; + _log.Info($"player {player.entityId} ({playerName} | {userId}) requested Therapy from trader but doesn't have enough money: {blt}+{bag} = {blt + bag} < {cost}"); return false; } - _log.Trace($"player {player.GetDebugName()} could afford {_cost}"); + int change; string eventName; - if (_bag >= _cost) + if (bag >= cost) { - change = _bag - _cost; + change = bag - cost; + _log.Info($"player {player.entityId} ({playerName} | {userId}) purchased {product} from trader with coins from bag: {bag} - {cost} = {change} in change due"); eventName = Values.GameEventPayFromBag; } else { - change = _bag + _blt - _cost; + change = bag + blt - cost; + _log.Info($"player {player.entityId} ({playerName} | {userId}) purchased {product} from trader with coins from bag and belt: {blt}+{bag} = {blt + bag} - {cost} = {change} in change due"); eventName = Values.GameEventPayFromAll; } From f1d3614c8798a69b1a5e2d7307098f20ac6918f9 Mon Sep 17 00:00:00 2001 From: jonathan-robertson Date: Sat, 8 Jul 2023 16:27:29 -0500 Subject: [PATCH 3/5] add mechanic to detect/fix too many skill points --- CHANGELOG.md | 5 +- Config/XUi/windows.xml | 9 +++ Config/XUi/xui.xml | 3 + ModInfo.xml | 2 +- src/Data/PlayerRecord.cs | 28 +++++---- src/Data/Values.cs | 1 + src/Handlers/PlayerSpawnedInWorld.cs | 7 ++- src/Utilities/PlayerHelper.cs | 92 ++++++++++++++++++++++++++++ 8 files changed, 129 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index aed1b35..a4f51a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,12 +5,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [TODO] +## [2.0.3] - 2023-07-08 - add mechanic to detect/fix too many skill points - -## [2.0.3] - ? - - fix purchase log to clarify total & change - fix respec to no longer give extra skill points diff --git a/Config/XUi/windows.xml b/Config/XUi/windows.xml index 96a5615..8980d59 100644 --- a/Config/XUi/windows.xml +++ b/Config/XUi/windows.xml @@ -1,4 +1,5 @@ + @@ -17,4 +18,12 @@ + + + + + + + + \ No newline at end of file diff --git a/Config/XUi/xui.xml b/Config/XUi/xui.xml index a5367b7..7dad04a 100644 --- a/Config/XUi/xui.xml +++ b/Config/XUi/xui.xml @@ -12,5 +12,8 @@ + + + \ No newline at end of file diff --git a/ModInfo.xml b/ModInfo.xml index c1baa12..1f3f67b 100644 --- a/ModInfo.xml +++ b/ModInfo.xml @@ -1,7 +1,7 @@  - + diff --git a/src/Data/PlayerRecord.cs b/src/Data/PlayerRecord.cs index 767a29e..9f76e78 100644 --- a/src/Data/PlayerRecord.cs +++ b/src/Data/PlayerRecord.cs @@ -28,21 +28,26 @@ internal class PlayerRecord public int Level { get; private set; } = 0; public List<(string, int)> Changes { get; private set; } = new List<(string, int)>(); - public static void Load(ClientInfo clientInfo) + public static bool TryLoad(ClientInfo clientInfo, out PlayerRecord playerRecord, EntityPlayer player = null) { var entityId = ClientInfoHelper.SafelyGetEntityIdFor(clientInfo); var userIdentifier = ClientInfoHelper.GetUserIdentifier(clientInfo); + var playerShortReference = $"{entityId} / {userIdentifier.CombinedString}"; if (Entries.ContainsKey(entityId)) { - _log.Error($"Player Record is already loaded for player {entityId} / {userIdentifier.CombinedString} and this is NOT expected."); - return; + _log.Error($"Player Record is already loaded for player {playerShortReference} and this is NOT expected."); + playerRecord = default; + return false; } - if (!GameManager.Instance.World.Players.dict.TryGetValue(entityId, out var player)) + if (player == null && !GameManager.Instance.World.Players.dict.TryGetValue(entityId, out player)) { - _log.Error($"Could not find player at {entityId} / {userIdentifier.CombinedString} even though one is logging in with this info."); - return; + _log.Error($"Could not find player at {playerShortReference} even though one is logging in with this info."); + playerRecord = default; + return false; } - var playerRecord = new PlayerRecord(entityId, userIdentifier, player.Progression.Level, player.Progression.SkillPoints); + var playerLongReference = $"{entityId} ({player.GetDebugName()} | {userIdentifier.CombinedString})"; + + playerRecord = new PlayerRecord(entityId, userIdentifier, player.Progression.Level, player.Progression.SkillPoints); var filename = Path.Combine(GameIO.GetPlayerDataDir(), $"{userIdentifier}.apr"); try { @@ -55,16 +60,16 @@ public static void Load(ClientInfo clientInfo) var level = int.Parse(changes[i].Attributes[LEVEL].Value); playerRecord.Changes.Add((name, level)); } - _log.Info($"Successfully loaded {filename}"); + _log.Info($"Successfully loaded record data for player {playerLongReference} from {filename}"); } catch (FileNotFoundException) { - _log.Info($"No player record file found for player {entityId}; creating a new one with defaults under {filename}"); + _log.Info($"No player record file found for player {playerLongReference} at {filename}; creating a new one with defaults under {filename}"); playerRecord.Save(); } catch (Exception e) { - _log.Error($"Failed to load player record file {filename}; attempting to recover from backup.", e); + _log.Error($"Failed to load record data for player {playerLongReference} from {filename}; attempting to recover from backup.", e); // TODO: try to recover from backup @@ -72,13 +77,14 @@ public static void Load(ClientInfo clientInfo) var failureFilename = filename + ".failure"; // otherwise, create default - _log.Info($"Unable to recover player record for player {entityId}; creating a new one with defaults under {filename}; admin can attempt to inspect backup file {failureFilename}"); + _log.Info($"Unable to recover record data for player {playerLongReference}; creating a new one with defaults under {filename}; admin can attempt to inspect backup file {failureFilename}"); playerRecord.Save(); } finally { Entries.Add(entityId, playerRecord); } + return true; } public static void Unload(ClientInfo clientInfo) diff --git a/src/Data/Values.cs b/src/Data/Values.cs index e86862a..5dfcde3 100644 --- a/src/Data/Values.cs +++ b/src/Data/Values.cs @@ -38,6 +38,7 @@ internal class Values public static string WindowShopTreatmentUnnecessary { get; private set; } = "amnesiaDialogShopTreatmentUnnecessaryWindowGroup"; public static string WindowShopTreatmentComplete { get; private set; } = "amnesiaDialogShopTreatmentCompleteWindowGroup"; public static string WindowShopTherapyComplete { get; private set; } = "amnesiaDialogShopTherapyCompleteWindowGroup"; + public static string WindowSkillPointIntegrityCheckReduced { get; private set; } = "amnesiaSkillPointIntegrityCheckReducedWindowGroup"; // names public static string NameLongTermMemoryLevel { get; private set; } = "LongTermMemoryLevel"; diff --git a/src/Handlers/PlayerSpawnedInWorld.cs b/src/Handlers/PlayerSpawnedInWorld.cs index 4ce531c..03c2f50 100644 --- a/src/Handlers/PlayerSpawnedInWorld.cs +++ b/src/Handlers/PlayerSpawnedInWorld.cs @@ -32,7 +32,7 @@ public static void Handle(ClientInfo clientInfo, RespawnType respawnType, Vector HandleStandardRespawnSteps(player); DialogShop.UpdatePrices(player); DialogShop.UpdateMoneyTracker(player.entityId, player.inventory.GetSlots(), player.bag.GetSlots()); - PlayerRecord.Load(clientInfo); + _ = PlayerRecord.TryLoad(clientInfo, out _, player); break; // TODO: case RespawnType.LoadedGame: // local player loading existing game case RespawnType.JoinMultiplayer: // existing player rejoining @@ -41,7 +41,10 @@ public static void Handle(ClientInfo clientInfo, RespawnType respawnType, Vector HandleStandardRespawnSteps(player); DialogShop.UpdatePrices(player); DialogShop.UpdateMoneyTracker(player.entityId, player.inventory.GetSlots(), player.bag.GetSlots()); - PlayerRecord.Load(clientInfo); + if (PlayerRecord.TryLoad(clientInfo, out var record, player)) + { + PlayerHelper.SkillPointIntegrityCheck(clientInfo, player, clientInfo.latestPlayerData, record); + } break; case RespawnType.Died: // existing player returned from death _ = PlayerHelper.AddPositiveOutlookTime(player, Config.PositiveOutlookTimeOnMemoryLoss); diff --git a/src/Utilities/PlayerHelper.cs b/src/Utilities/PlayerHelper.cs index 271311f..1a1b7b5 100644 --- a/src/Utilities/PlayerHelper.cs +++ b/src/Utilities/PlayerHelper.cs @@ -146,6 +146,98 @@ public static void TriggerGameEvent(ClientInfo clientInfo, EntityPlayer player, clientInfo.SendPackage(NetPackageManager.GetPackage().Setup(eventName, clientInfo.entityId, "", "", NetPackageGameEventResponse.ResponseTypes.Approved)); } + public static void SkillPointIntegrityCheck(ClientInfo clientInfo, EntityPlayer player, PlayerDataFile playerDataFile, PlayerRecord record) + { + //if (playerDataFile.progressionData.Length <= 0L) + //{ + // return; + //} + //// overwrite this stored player instance with received player data file info; trust the PlayerDataFile + //playerDataFile.ToPlayer(player); + + if (!TryReadProgression(playerDataFile, player, out var progression)) { return; } + + var current = CountCurrentSKillPoints(progression, out _, out var currentUnassignedSkillPoints); + var expected = CountExpectedSkillPoints(progression, playerDataFile.questJournal); + + if (current == expected) { return; } + + if (current < expected) + { + _log.Error($"player {player.entityId} ({player.GetDebugName()} | {ClientInfoHelper.GetUserIdentifier(clientInfo)}) was found to have too few skill points based on player level and quests; doing nothing for now, but this is unexpected and should probably have a solution built to address it!"); + return; + } + // note: from this point forward, we handle the case: current > expected + + _log.Info($"player {player.entityId} ({player.GetDebugName()} | {ClientInfoHelper.GetUserIdentifier(clientInfo)}) was found to have too many skill points based on player level and quests; reducing now."); + + var skillPointsToRemove = current - expected; + if (skillPointsToRemove <= currentUnassignedSkillPoints) + { + progression.SkillPoints = currentUnassignedSkillPoints - skillPointsToRemove; + _log.Info($"Removed {skillPointsToRemove} unassigned skill points from player {player.entityId} ({player.GetDebugName()} | {ClientInfoHelper.GetUserIdentifier(clientInfo)})."); + } + else + { + progression.ResetProgression(_resetSkills: true); + progression.SkillPoints -= skillPointsToRemove; + record.ReapplySkills(player); + _log.Info($"Reset progression for, removed {skillPointsToRemove} skill points from, and reapplied all affordable skill points to player {player.entityId} ({player.GetDebugName()} | {ClientInfoHelper.GetUserIdentifier(clientInfo)})."); + } + + player.Progression = progression; // update player progression data + SavePlayerDataFile(clientInfo, player); + SyncPlayerStatChanges(player, true); + OpenWindow(clientInfo, Values.WindowSkillPointIntegrityCheckReduced); + } + + public static void SavePlayerDataFile(ClientInfo clientInfo, EntityPlayer player) + { + var pdf = new PlayerDataFile(); + pdf.FromPlayer(player); + clientInfo.latestPlayerData = pdf; + pdf.Save(GameIO.GetPlayerDataDir(), clientInfo.InternalId.CombinedString); + } + + public static void SyncPlayerStatChanges(EntityPlayer player, bool progressionChanged = false) + { + player.bPlayerStatsChanged = true; + player.Progression.bProgressionStatsChanged = progressionChanged; + ConnectionManager.Instance.SendPackage(NetPackageManager.GetPackage().Setup(player), false, player.entityId); + } + + public static int CountCurrentSKillPoints(Progression progression, out int assignedSkillPoints, out int unassignedSkillPoints) + { + assignedSkillPoints = 0; + foreach (var kvp in Progression.ProgressionClasses) + { + switch (kvp.Value.Type) + { + case ProgressionType.Attribute: + for (var i = progression.GetProgressionValue(kvp.Key).Level; i > 1; i--) + { + assignedSkillPoints += kvp.Value.CalculatedCostForLevel(i); + } + continue; + case ProgressionType.Perk: + for (var i = progression.GetProgressionValue(kvp.Key).Level; i > 0; i--) + { + assignedSkillPoints += kvp.Value.CalculatedCostForLevel(i); + } + continue; + default: + continue; + } + } + unassignedSkillPoints = progression.SkillPoints; + return unassignedSkillPoints + assignedSkillPoints; + } + + public static int CountExpectedSkillPoints(Progression progression, QuestJournal questJournal) + { + return (Progression.SkillPointsPerLevel * progression.Level) + questJournal.GetRewardedSkillPoints(); + } + /// /// Try parsing and returning player progression data from the given PlayerDataFile. /// From fd2ac3b4385b4a13e4cd828d997bdfd6f1414f3c Mon Sep 17 00:00:00 2001 From: jonathan-robertson Date: Sat, 8 Jul 2023 17:47:44 -0500 Subject: [PATCH 4/5] update support invite link --- CHANGELOG.md | 1 + README.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a4f51a3..b7b41c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - add mechanic to detect/fix too many skill points - fix purchase log to clarify total & change - fix respec to no longer give extra skill points +- update support invite link ## [2.0.2] - 2023-07-04 diff --git a/README.md b/README.md index b7d3f4d..33633f3 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ As you may have guessed, this mod adds a RogueLike element to 7 Days to Die in a ### Support -🗪 If you would like support for this mod, please feel free to reach out via [Discord](https://discord.gg/tRJHSB9Uk7). +🗪 If you would like support for this mod, please feel free to reach out via [Discord](https://discord.gg/hYa2sNHXya). ## Features From a5ab1a8f3a3c584daf7b6485021aa56dc95181fd Mon Sep 17 00:00:00 2001 From: jonathan-robertson Date: Sat, 8 Jul 2023 16:32:51 -0500 Subject: [PATCH 5/5] update binary --- Amnesia.dll | Bin 83456 -> 86528 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Amnesia.dll b/Amnesia.dll index 696ff7769f5dd738bf40cc37e36ffb9005e8f1e8..a82358a0f0a3661880cfe6a5d8e3f9bd24599d7a 100644 GIT binary patch literal 86528 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 G1^zdP0({&6 literal 83456 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