public void OnDiff(BaseModelDiff.DiffFieldPortal diff) { bool flag = false; if (Utility.IsExist(diff.add)) { fieldPortalList.AddRange(diff.add); flag = true; } if (Utility.IsExist(diff.update)) { diff.update.ForEach(delegate(FieldPortal portal) { WorldMapManager worldMapManager = this; FieldPortal fieldPortal = fieldPortalList.Find((FieldPortal f) => f.pId == portal.pId); if (fieldPortal != null) { fieldPortal.used = portal.used; fieldPortal.point = portal.point; } }); flag = true; } if (flag) { Dirty(); } }
public void OnDiff(BaseModelDiff.DiffFieldPortal diff) { if (!QuestManager.IsValidExplore()) { bool flag = false; if (Utility.IsExist(diff.add)) { int i = 0; for (int count = diff.add.Count; i < count; i++) { FieldMapPortalInfo fieldMapPortalInfo = current.fieldPortalInfoList.Find((FieldMapPortalInfo p) => p.IsValid() && p.portalData.portalID == diff.add[i].pId); if (fieldMapPortalInfo != null) { fieldMapPortalInfo.fieldPortal = diff.add[i]; flag |= fieldMapPortalInfo.IsFull(); } } } if (Utility.IsExist(diff.update)) { int j = 0; for (int count2 = diff.update.Count; j < count2; j++) { FieldMapPortalInfo fieldMapPortalInfo2 = current.fieldPortalInfoList.Find((FieldMapPortalInfo p) => p.IsValid() && p.portalData.portalID == diff.update[j].pId); if (fieldMapPortalInfo2 != null) { if (fieldMapPortalInfo2.fieldPortal != null) { fieldMapPortalInfo2.fieldPortal.used = diff.update[j].used; fieldMapPortalInfo2.fieldPortal.point = diff.update[j].point; } else { fieldMapPortalInfo2.fieldPortal = MonoBehaviourSingleton <WorldMapManager> .I.GetFieldPortal(diff.update[j].pId); } flag |= fieldMapPortalInfo2.IsFull(); } } } if (flag) { _ResetPortalPointToIndex(0); } } }