Пример #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 InitPortalPointForExplore(ExploreStatus exploreStatus)
    {
        if (current != null && current.fieldPortalInfoList != null)
        {
            foreach (FieldMapPortalInfo fieldPortalInfo in current.fieldPortalInfoList)
            {
                if (fieldPortalInfo.IsValid())
                {
                    FieldMapTable.PortalTableData portalData = Singleton <FieldMapTable> .I.GetPortalData(fieldPortalInfo.portalData.portalID);

                    FieldPortal fieldPortal = new FieldPortal();
                    fieldPortal.pId   = (int)fieldPortalInfo.portalData.portalID;
                    fieldPortal.used  = false;
                    fieldPortal.point = 0;
                    ExplorePortalPoint portalData2 = exploreStatus.GetPortalData(fieldPortal.pId);
                    if (portalData2 != null)
                    {
                        fieldPortal.point = portalData2.point;
                        fieldPortal.used  = (ExplorePortalPoint.USEDFLAG_CLOSED != portalData2.used);
                    }
                    fieldPortalInfo.fieldPortal = fieldPortal;
                }
            }
            _ResetPortalPointToIndex(0);
        }
    }
 public ExplorePortalPoint(FieldMapTable.PortalTableData tableData)
 {
     fieldPortal     = new FieldPortal();
     fieldPortal.pId = (int)tableData.portalID;
     used            = USEDFLAG_CLOSED;
     linkPortalId    = (int)tableData.linkPortalId;
     portalData      = tableData;
     if (tableData.portalPoint == 0)
     {
         used = USEDFLAG_PASSED;
     }
 }
Пример #4
0
    private void _SetFieldPortalInfoList(uint mapId)
    {
        int num = current.fieldPortalInfoList.Count;

        current.portalPointToIndex = -1;
        int num2 = 0;
        List <FieldMapTable.PortalTableData> portalListByMapID = Singleton <FieldMapTable> .I.GetPortalListByMapID(mapId, true);

        if (portalListByMapID != null)
        {
            num2 = portalListByMapID.Count;
            for (int i = 0; i < num2; i++)
            {
                FieldPortal fieldPortal = MonoBehaviourSingleton <WorldMapManager> .I.GetFieldPortal((int)portalListByMapID[i].portalID);

                if (QuestManager.IsValidExplore() && fieldPortal != null)
                {
                    FieldPortal fieldPortal2 = new FieldPortal();
                    fieldPortal2.pId   = fieldPortal.pId;
                    fieldPortal2.used  = fieldPortal.used;
                    fieldPortal2.point = fieldPortal.point;
                    fieldPortal        = fieldPortal2;
                }
                if (num <= i)
                {
                    current.fieldPortalInfoList.Add(new FieldMapPortalInfo(portalListByMapID[i], fieldPortal));
                    num++;
                }
                else
                {
                    current.fieldPortalInfoList[i].SetPortalData(portalListByMapID[i], fieldPortal);
                }
                if (current.portalPointToIndex < 0 && current.fieldPortalInfoList[i].IsAddPortalPoint())
                {
                    current.portalPointToIndex = i;
                }
            }
        }
        for (int j = num2; j < num; j++)
        {
            current.fieldPortalInfoList[j].Clear();
        }
    }
Пример #5
0
    public bool AddPortalPointToPortalInfo(FieldMapPortalInfo portalInfo, int addPoint)
    {
        FieldPortal fieldPortal = portalInfo.fieldPortal;

        if (fieldPortal == null)
        {
            fieldPortal = MonoBehaviourSingleton <WorldMapManager> .I.GetFieldPortal((int)portalInfo.portalData.portalID);

            if (fieldPortal == null)
            {
                fieldPortal       = new FieldPortal();
                fieldPortal.pId   = (int)portalInfo.portalData.portalID;
                fieldPortal.used  = false;
                fieldPortal.point = 0;
            }
            else if (QuestManager.IsValidExplore())
            {
                FieldPortal fieldPortal2 = new FieldPortal();
                fieldPortal2.pId   = fieldPortal.pId;
                fieldPortal2.used  = fieldPortal.used;
                fieldPortal2.point = fieldPortal.point;
                fieldPortal        = fieldPortal2;
            }
            portalInfo.fieldPortal = fieldPortal;
        }
        fieldPortal.point += addPoint;
        if (!portalInfo.IsFull())
        {
            return(false);
        }
        _ResetPortalPointToIndex(current.portalPointToIndex);
        if (QuestManager.IsValidExplore())
        {
            _ResetPortalPointToIndex(0);
        }
        return(true);
    }
Пример #6
0
 public FieldMapPortalInfo(FieldMapTable.PortalTableData _portal, FieldPortal _fieldPortal)
 {
     portalData  = _portal;
     fieldPortal = _fieldPortal;
 }
Пример #7
0
 public void Clear()
 {
     portalData  = null;
     fieldPortal = null;
 }
Пример #8
0
 public void SetPortalData(FieldMapTable.PortalTableData _portal, FieldPortal _fieldPortal)
 {
     portalData  = _portal;
     fieldPortal = _fieldPortal;
 }