private static void CopyMinion(StoredMinionIdentity src_id, MinionIdentity dest_id) { dest_id.SetName(src_id.storedName); dest_id.nameStringKey = src_id.nameStringKey; dest_id.gender = src_id.gender; dest_id.genderStringKey = src_id.genderStringKey; dest_id.arrivalTime = src_id.arrivalTime; dest_id.voiceIdx = src_id.voiceIdx; dest_id.bodyData = src_id.bodyData; if (src_id.traitIDs != null) { Traits component = dest_id.GetComponent <Traits>(); component.SetTraitIds(src_id.traitIDs); } if (src_id.accessories != null) { Accessorizer component2 = dest_id.GetComponent <Accessorizer>(); component2.SetAccessories(src_id.accessories); } ConsumableConsumer component3 = dest_id.GetComponent <ConsumableConsumer>(); if (src_id.forbiddenTags != null) { component3.forbiddenTags = src_id.forbiddenTags.ToArray(); } if (src_id.MasteryBySkillID != null) { MinionResume component4 = dest_id.GetComponent <MinionResume>(); component4.RestoreResume(src_id.MasteryBySkillID, src_id.AptitudeBySkillGroup, src_id.TotalExperienceGained); component4.SetHats(src_id.currentHat, src_id.targetHat); } if (src_id.choreGroupPriorities != null) { ChoreConsumer component5 = dest_id.GetComponent <ChoreConsumer>(); component5.SetChoreGroupPriorities(src_id.choreGroupPriorities); } AttributeLevels component6 = dest_id.GetComponent <AttributeLevels>(); if (src_id.attributeLevels != null) { component6.SaveLoadLevels = src_id.attributeLevels.ToArray(); component6.OnDeserialized(); } dest_id.GetComponent <Accessorizer>().ApplyAccessories(); dest_id.assignableProxy = new Ref <MinionAssignablesProxy>(); dest_id.assignableProxy.Set(src_id.assignableProxy.Get()); dest_id.assignableProxy.Get().SetTarget(dest_id, dest_id.gameObject); Equipment equipment = dest_id.GetEquipment(); foreach (AssignableSlotInstance slot in equipment.Slots) { Equippable equippable = slot.assignable as Equippable; if ((UnityEngine.Object)equippable != (UnityEngine.Object)null) { equipment.Equip(equippable); } } Schedulable component7 = src_id.GetComponent <Schedulable>(); Schedule schedule = component7.GetSchedule(); if (schedule != null) { schedule.Unassign(component7); Schedulable component8 = dest_id.GetComponent <Schedulable>(); schedule.Assign(component8); } }