Fix town & town => town & player

Split things up for a little more verbosity
This commit is contained in:
Kurt
2020-03-29 15:10:46 -07:00
parent d0a77f4d3f
commit b9ef2eb314

View File

@@ -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);
}
}