private bool Update(Entity old, EntityProto val) { if (old.Val == val.Val.ToString()) return false; old.Val = val.Val.ToString(); return true; }
private CollectionDiffWithValue<Entity, Entity> TestSyncWithValue(Entity[] oldItems, EntityProto[] newItems, int addedCount = 0, int removedCount = 0, int editedCount = 0, int unchangedCount = 0) { var list = oldItems.ToList(); var result = CollectionHelper.SyncWithContent(list, newItems, EqualityEntity, FacEntity, Update, null); Assert.IsNotNull(result, "result is not null"); Assert.AreEqual(addedCount > 0 || removedCount > 0 || editedCount > 0, result.Changed, "is changed"); Assert.AreEqual(addedCount, result.Added.Length, "Aadded"); Assert.AreEqual(editedCount, result.Edited.Length, "Edited"); Assert.AreEqual(removedCount, result.Removed.Length, "Removed"); Assert.AreEqual(unchangedCount, result.Unchanged.Length, "Unchanged"); return result; }
private bool EqualityEntity(Entity old, EntityProto val) { return old.Id == val.Id; }
private Entity FacEntity(EntityProto val) { return new Entity { Val = val.Val.ToString() }; }
public virtual void Deserialize(BinaryReader r) { if (!m_Init) { InitSkEntity(); } int readVersion = r.ReadInt32(); if (readVersion == 2) { _attribs.DisableNumAttribsEvent(); for (int i = 0; i < (int)AttribType.HPRecover; i++) { _attribs.sums[i] = _attribs.raws[i] = r.ReadSingle(); } _attribs.EnableNumAttribsEvent(); SetAttribute(AttribType.HPRecover, 0.01f); } else { _attribs.Deserialize(r); } if (1 == readVersion) { int buffLength = r.ReadInt32(); m_InitBuffList = new int[buffLength]; for (int i = 0; i < buffLength; i++) { m_InitBuffList[i] = r.ReadInt32(); } } EntityProto entityProto = Entity.entityProto; if (null != entityProto) { switch (entityProto.proto) { case EEntityProto.Monster: MonsterProtoDb.Item monsterPDB = MonsterProtoDb.Get(entityProto.protoId); if (null != monsterPDB) { m_InitBuffList = monsterPDB.initBuff; } break; case EEntityProto.Npc: NpcProtoDb.Item npcPDB = NpcProtoDb.Get(entityProto.protoId); if (null != npcPDB) { m_InitBuffList = npcPDB.InFeildBuff; } break; case EEntityProto.Player: PlayerProtoDb.Item playerPDB = PlayerProtoDb.Get(); if (null != playerPDB) { m_InitBuffList = playerPDB.initBuff; } break; case EEntityProto.RandomNpc: PlayerProtoDb.Item RnpcPDB = PlayerProtoDb.GetRandomNpc(); if (null != RnpcPDB) { m_InitBuffList = RnpcPDB.InFeildBuff; } break; } } }