From b9ef2eb3143af159569413a01b357eac7a40ee5c Mon Sep 17 00:00:00 2001 From: Kurt Date: Sun, 29 Mar 2020 15:10:46 -0700 Subject: [PATCH] Fix town & town => town & player Split things up for a little more verbosity --- .../Structures/Villager/IVillagerOrigin.cs | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/NHSE.Core/Structures/Villager/IVillagerOrigin.cs b/NHSE.Core/Structures/Villager/IVillagerOrigin.cs index 21ac045..fda27ba 100644 --- a/NHSE.Core/Structures/Villager/IVillagerOrigin.cs +++ b/NHSE.Core/Structures/Villager/IVillagerOrigin.cs @@ -11,28 +11,41 @@ public interface IVillagerOrigin public static class VillagerOriginExtensions { public static bool IsOriginatedFrom(this IVillagerOrigin visit, IVillagerOrigin host) + { + return visit.IsSameTown(host) && visit.IsSamePlayer(host); + } + + public static bool IsSameTown(this IVillagerOrigin visit, IVillagerOrigin host) { var hostTown = host.GetTownIdentity(); var visitTown = visit.GetTownIdentity(); - if (!hostTown.SequenceEqual(visitTown)) - return false; + return hostTown.SequenceEqual(visitTown); + } - var hostPlayer = host.GetTownIdentity(); - var visitPlayer = visit.GetTownIdentity(); - if (!hostPlayer.SequenceEqual(visitPlayer)) - return false; - - return true; + public static bool IsSamePlayer(this IVillagerOrigin visit, IVillagerOrigin host) + { + var hostPlayer = host.GetPlayerIdentity(); + var visitPlayer = visit.GetPlayerIdentity(); + return hostPlayer.SequenceEqual(visitPlayer); } public static void ChangeOrigins(this IVillagerOrigin visit, IVillagerOrigin host, byte[] visitData) + { + visit.ChangeToHostTown(host, visitData); + visit.ChangeToHostPlayer(host, visitData); + } + + private static void ChangeToHostTown(this IVillagerOrigin visit, IVillagerOrigin host, byte[] visitData) { var hostTown = host.GetTownIdentity(); var visitTown = visit.GetTownIdentity(); visitData.ReplaceOccurrences(visitTown, hostTown); + } - var hostPlayer = host.GetTownIdentity(); - var visitPlayer = visit.GetTownIdentity(); + private static void ChangeToHostPlayer(this IVillagerOrigin visit, IVillagerOrigin host, byte[] visitData) + { + var hostPlayer = host.GetPlayerIdentity(); + var visitPlayer = visit.GetPlayerIdentity(); visitData.ReplaceOccurrences(visitPlayer, hostPlayer); } }