Example #1
0
 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);
 }
Example #2
0
    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);
    }