private bool IsPreferredType(ENEMY_POP_TYPE now, FieldMapTable.EnemyPopTableData popData) { if (now == ENEMY_POP_TYPE.RARE_SPECIES && popData.enemyPopType == ENEMY_POP_TYPE.FIELD_BOSS) { return(true); } return(false); }
public bool TryGetEnableLastEndTime(int mapId, out FieldMapEnemyPopTimeZoneData resultTimeZone, out ENEMY_POP_TYPE resultType) { resultTimeZone = null; resultType = ENEMY_POP_TYPE.RARE_SPECIES; if (!MonoBehaviourSingleton <FieldManager> .IsValid()) { return(false); } List <FieldMapEnemyPopTimeZoneData> enemyTimeZoneDataList = GetEnemyTimeZoneDataList(mapId); if (enemyTimeZoneDataList == null || enemyTimeZoneDataList.Count <= 0) { return(false); } List <FieldMapTable.EnemyPopTableData> rareOrBossEnemyList = Singleton <FieldMapTable> .I.GetRareOrBossEnemyList(mapId); if (rareOrBossEnemyList == null || rareOrBossEnemyList.Count <= 0) { return(false); } bool result = false; DateTime minValue = DateTime.MinValue; if (!MonoBehaviourSingleton <FieldManager> .I.fieldData.field.TryGetCreatedAt(out DateTime createdAt)) { return(false); } DateTime now = TimeManager.GetNow(); int i = 0; for (int count = enemyTimeZoneDataList.Count; i < count; i++) { FieldMapEnemyPopTimeZoneData fieldMapEnemyPopTimeZoneData = enemyTimeZoneDataList[i]; if (fieldMapEnemyPopTimeZoneData.TryGetStartTime(out DateTime result2) && fieldMapEnemyPopTimeZoneData.TryGetEndTime(out DateTime result3)) { result2 = TimeManager.CombineDateAndTime(createdAt, result2); result3 = TimeManager.CombineDateAndTime(createdAt, result3); if (createdAt >= result2 && now <= result3) { FieldMapTable.EnemyPopTableData enemyPopTableData = FindEnemyPopData(rareOrBossEnemyList, mapId, fieldMapEnemyPopTimeZoneData.enemyId); if (enemyPopTableData != null && (result3 > minValue || IsPreferredType(resultType, enemyPopTableData))) { result = true; resultType = enemyPopTableData.enemyPopType; resultTimeZone = fieldMapEnemyPopTimeZoneData; } } } } return(result); }