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 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; } }
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(); } }
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); }
public FieldMapPortalInfo(FieldMapTable.PortalTableData _portal, FieldPortal _fieldPortal) { portalData = _portal; fieldPortal = _fieldPortal; }
public void Clear() { portalData = null; fieldPortal = null; }
public void SetPortalData(FieldMapTable.PortalTableData _portal, FieldPortal _fieldPortal) { portalData = _portal; fieldPortal = _fieldPortal; }