mirror of
https://github.com/kwsch/NHSE.git
synced 2026-04-25 07:37:02 -05:00
32 lines
958 B
C#
32 lines
958 B
C#
using NHSE.Core;
|
|
|
|
namespace NHSE.Villagers;
|
|
|
|
public static class VillagerSwap
|
|
{
|
|
public static VillagerData GetReplacementVillager(VillagerInfo exist, string newVillager, bool prepMoveOut = false)
|
|
{
|
|
var replace = VillagerResources.GetVillager(newVillager);
|
|
return AdaptVillager(exist, replace, prepMoveOut);
|
|
}
|
|
|
|
private static VillagerData AdaptVillager(VillagerInfo exist, VillagerData replace, bool prepMoveOut = false)
|
|
{
|
|
var ov = exist.Villager;
|
|
var oh = exist.House;
|
|
var nv = new Villager2(replace.Villager);
|
|
_ = new VillagerHouse1(replace.House) {NPC1 = oh.NPC1, NPC2 = oh.NPC2, BuildPlayer = oh.BuildPlayer};
|
|
|
|
// Copy Memories
|
|
var om = nv.GetMemory(0);
|
|
var nm = ov.GetMemory(0);
|
|
nm.PlayerId = om.PlayerId;
|
|
nv.SetMemory(nm, 0);
|
|
|
|
if (!prepMoveOut)
|
|
return replace;
|
|
|
|
nv.MovingOut = true;
|
|
return replace;
|
|
}
|
|
} |