예제 #1
0
    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();
        }
    }
예제 #2
0
 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);
         }
     }
 }