private void CopyMinion(MinionIdentity src_id, StoredMinionIdentity dest_id) { dest_id.storedName = src_id.name; 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; Traits component = src_id.GetComponent <Traits>(); dest_id.traitIDs = new List <string>(component.GetTraitIds()); dest_id.assignableProxy.Set(src_id.assignableProxy.Get()); dest_id.assignableProxy.Get().SetTarget(dest_id, dest_id.gameObject); Accessorizer component2 = src_id.GetComponent <Accessorizer>(); dest_id.accessories = component2.GetAccessories(); ConsumableConsumer component3 = src_id.GetComponent <ConsumableConsumer>(); if (component3.forbiddenTags != null) { dest_id.forbiddenTags = new List <Tag>(component3.forbiddenTags); } MinionResume component4 = src_id.GetComponent <MinionResume>(); dest_id.MasteryBySkillID = component4.MasteryBySkillID; dest_id.AptitudeBySkillGroup = component4.AptitudeBySkillGroup; dest_id.TotalExperienceGained = component4.TotalExperienceGained; dest_id.currentHat = component4.CurrentHat; dest_id.targetHat = component4.TargetHat; ChoreConsumer component5 = src_id.GetComponent <ChoreConsumer>(); dest_id.choreGroupPriorities = component5.GetChoreGroupPriorities(); AttributeLevels component6 = src_id.GetComponent <AttributeLevels>(); component6.OnSerializing(); dest_id.attributeLevels = new List <AttributeLevels.LevelSaveLoad>(component6.SaveLoadLevels); StoreModifiers(src_id, dest_id); 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); } }
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); } }