コード例 #1
0
    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);
        }
    }