public void Apply(VMAvatar avatar) { avatar.SkinTone = (AppearanceType)SkinTone; for (int i = 0; i < PersonDataMap.Length; i++) { avatar.ForceEnableSkill = true; avatar.SetPersonData((VMPersonDataVariable)PersonDataMap[i], PersonData[i]); avatar.ForceEnableSkill = false; } avatar.SetPersonData(VMPersonDataVariable.SkinColor, SkinTone); avatar.DefaultSuits = DefaultSuits; avatar.BodyOutfit = new VMOutfitReference(BodyOutfit); avatar.HeadOutfit = new VMOutfitReference(HeadOutfit); avatar.Name = Name; avatar.AvatarState.Permissions = Permissions; ((VMTSOAvatarState)avatar.TSOState).Flags = AvatarFlags; avatar.TSOState.Budget.Value = Budget; avatar.PersistID = PersistID; avatar.ReplaceMotiveData(MotiveData); avatar.MeToPersist = new Dictionary <uint, List <short> >(); foreach (var obj in Relationships) { avatar.MeToPersist[obj.Target] = new List <short>(obj.Values); } ((VMTSOAvatarState)avatar.TSOState).JobInfo = OnlineJobInfo; if (IsWorker) { avatar.SetPersonData(VMPersonDataVariable.OnlineJobStatusFlags, 1); //validated immediately. } avatar.SkillLocks = SkillLock; ((VMTSOAvatarState)avatar.TSOState).IgnoredAvatars = IgnoredAvatars; }