public void UpdateList()
    {
        int i = 0;

        for (int count = targetList.Count; i < count; i++)
        {
            targetStockList.Add(targetList[i]);
        }
        targetList.Clear();
        targetIDList.Clear();
        targetPortalIDList.Clear();
        Delivery[] deliveryList = MonoBehaviourSingleton <DeliveryManager> .I.GetDeliveryList(false);

        int mapId = MonoBehaviourSingleton <FieldManager> .I.GetMapId();

        int j = 0;

        for (int num = deliveryList.Length; j < num; j++)
        {
            DeliveryTable.DeliveryData deliveryTableData = Singleton <DeliveryTable> .I.GetDeliveryTableData((uint)deliveryList[j].dId);

            if (deliveryTableData != null)
            {
                uint num2 = 0u;
                for (uint num3 = (uint)deliveryTableData.needs.Length; num2 < num3; num2++)
                {
                    uint mapID = deliveryTableData.GetMapID(num2);
                    if (mapID == 0 || mapID == mapId)
                    {
                        uint enemyID = deliveryTableData.GetEnemyID(num2);
                        if (!targetIDList.Contains(enemyID) && (mapID != 0 || enemyID != 0))
                        {
                            int have = 0;
                            int need = 0;
                            MonoBehaviourSingleton <DeliveryManager> .I.GetProgressDelivery(deliveryList[j].dId, out have, out need, num2);

                            if (have < need)
                            {
                                targetIDList.Add(enemyID);
                            }
                        }
                    }
                }
                uint num4 = 0u;
                for (uint num5 = (uint)deliveryTableData.targetPortalID.Length; num4 < num5; num4++)
                {
                    uint item = (uint)deliveryTableData.targetPortalID[num4];
                    if (!targetPortalIDList.Contains(item) && !MonoBehaviourSingleton <DeliveryManager> .I.IsCompletableDelivery(deliveryList[j].dId))
                    {
                        targetPortalIDList.Add(item);
                    }
                }
            }
        }
        List <StageObject> enemyList = MonoBehaviourSingleton <StageObjectManager> .I.enemyList;
        int count2 = enemyList.Count;

        for (int k = 0; k < count2; k++)
        {
            CheckTarget(enemyList[k] as Enemy);
        }
        if (MonoBehaviourSingleton <InGameProgress> .I.portalObjectList != null)
        {
            int l = 0;
            for (int count3 = MonoBehaviourSingleton <InGameProgress> .I.portalObjectList.Count; l < count3; l++)
            {
                CheckTarget(MonoBehaviourSingleton <InGameProgress> .I.portalObjectList[l]);
            }
        }
    }
Exemple #2
0
    public void GetTargetEnemyData(int delivery_id, out uint jump_quest_id, out uint jump_map_id, out string map_name, out string enemy_name, out DIFFICULTY_TYPE?difficulty, out int[] targetPortalID)
    {
        jump_quest_id  = 0u;
        jump_map_id    = 0u;
        map_name       = string.Empty;
        enemy_name     = string.Empty;
        difficulty     = null;
        targetPortalID = null;
        DeliveryTable.DeliveryData deliveryTableData = Singleton <DeliveryTable> .I.GetDeliveryTableData((uint)delivery_id);

        if (deliveryTableData != null)
        {
            uint enemy_id = deliveryTableData.GetEnemyID(0u);
            uint mapID    = deliveryTableData.GetMapID(0u);
            int  num      = (int)Singleton <FieldMapTable> .I.GetTargetEnemyPopMapID(enemy_id);

            if (num != 0)
            {
                if (deliveryTableData.jumpMapID < 0)
                {
                    num = -1;
                }
                else
                {
                    if (mapID != 0)
                    {
                        num = (int)mapID;
                    }
                    if (deliveryTableData.jumpMapID > 0)
                    {
                        num = deliveryTableData.jumpMapID;
                    }
                    FieldMapTable.FieldMapTableData fieldMapData = Singleton <FieldMapTable> .I.GetFieldMapData((uint)num);

                    if (fieldMapData != null)
                    {
                        map_name    = fieldMapData.mapName;
                        jump_map_id = (uint)num;
                    }
                    else
                    {
                        num = -1;
                    }
                }
                if (num == -1)
                {
                    map_name    = "????????";
                    jump_map_id = 0u;
                }
            }
            else if (deliveryTableData.jumpMapID > 0)
            {
                FieldMapTable.FieldMapTableData fieldMapData2 = Singleton <FieldMapTable> .I.GetFieldMapData((uint)deliveryTableData.jumpMapID);

                if (fieldMapData2 != null)
                {
                    map_name       = fieldMapData2.mapName;
                    targetPortalID = deliveryTableData.targetPortalID;
                    if (targetPortalID != null)
                    {
                        bool flag = false;
                        int  i    = 0;
                        for (int num2 = targetPortalID.Length; i < num2; i++)
                        {
                            if (targetPortalID[i] != 0)
                            {
                                flag = true;
                                break;
                            }
                        }
                        if (flag)
                        {
                            map_name = string.Format(StringTable.Get(STRING_CATEGORY.QUEST_DELIVERY, 2u), map_name);
                        }
                    }
                    jump_map_id = (uint)deliveryTableData.jumpMapID;
                    enemy_name  = StringTable.Get(STRING_CATEGORY.QUEST_DELIVERY, 1u);
                }
                else
                {
                    map_name    = "????????";
                    jump_map_id = 0u;
                }
            }
            else
            {
                bool            is_find        = false;
                string          tmp_name       = string.Empty;
                uint            tmp_quest_id   = 0u;
                DIFFICULTY_TYPE tmp_difficulty = DIFFICULTY_TYPE.LV1;
                Singleton <QuestTable> .I.AllQuestData(delegate(QuestTable.QuestTableData data)
                {
                    if (!is_find)
                    {
                        for (int j = 0; j < data.seriesNum; j++)
                        {
                            if (data.enemyID[j] == (int)enemy_id)
                            {
                                is_find        = true;
                                tmp_name       = data.questText;
                                tmp_difficulty = data.difficulty;
                                tmp_quest_id   = data.questID;
                            }
                        }
                    }
                });

                if (is_find)
                {
                    map_name      = tmp_name;
                    difficulty    = tmp_difficulty;
                    jump_quest_id = tmp_quest_id;
                }
            }
            if (!string.IsNullOrEmpty(deliveryTableData.placeName))
            {
                map_name = deliveryTableData.placeName;
            }
            if (!string.IsNullOrEmpty(deliveryTableData.enemyName))
            {
                enemy_name = deliveryTableData.enemyName;
            }
            if (string.IsNullOrEmpty(enemy_name))
            {
                EnemyTable.EnemyData enemyData = Singleton <EnemyTable> .I.GetEnemyData(enemy_id);

                if (enemyData != null)
                {
                    enemy_name = enemyData.name;
                }
                if (enemy_id == 0 && mapID != 0)
                {
                    enemy_name = StringTable.Get(STRING_CATEGORY.QUEST_DELIVERY, 0u);
                }
            }
        }
    }