Esempio n. 1
0
    public void CreateDropInfoList(Coop_Model_EnemyDefeat model, out List <DropDeliveryInfo> deliveryList, out List <DropItemInfo> itemList)
    {
        itemList     = new List <DropItemInfo>();
        deliveryList = new List <DropDeliveryInfo>();
        int i = 0;

        for (int count = model.dropIds.Count; i < count; i++)
        {
            itemList.Add(new DropItemInfo((REWARD_TYPE)model.dropTypes[i], (uint)model.dropItemIds[i], model.dropNums[i]));
        }
        int mapId = MonoBehaviourSingleton <FieldManager> .I.GetMapId();

        Delivery[] deliveryList2 = MonoBehaviourSingleton <DeliveryManager> .I.GetDeliveryList(false);

        int j = 0;

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

            if (deliveryTableData != null)
            {
                int k = 0;
                for (int num2 = deliveryTableData.needs.Length; k < num2; k++)
                {
                    uint num3 = (uint)k;
                    if (deliveryTableData.IsNeedTarget(num3, (uint)model.eid, (uint)mapId) && (model.deliver & (1 << (int)deliveryTableData.GetRateType(num3))) > 0)
                    {
                        int have = 0;
                        int need = 0;
                        MonoBehaviourSingleton <DeliveryManager> .I.GetProgressDelivery(deliveryList2[j].dId, out have, out need, num3);

                        if (have < need)
                        {
                            int num4 = 1;
                            if ((model.boostBit & (1 << (int)deliveryTableData.GetRateType(num3))) > 0)
                            {
                                num4 += model.boostNum;
                            }
                            deliveryList.Add(new DropDeliveryInfo(deliveryList2[j].dId, (int)num3, deliveryTableData.name, deliveryTableData.GetNeedItemName(num3), num4, new List <DELIVERY_CONDITION_TYPE>
                            {
                                deliveryTableData.GetConditionType(0u),
                                deliveryTableData.GetConditionType(1u),
                                deliveryTableData.GetConditionType(2u),
                                deliveryTableData.GetConditionType(3u),
                                deliveryTableData.GetConditionType(4u)
                            }));
                        }
                    }
                }
            }
        }
    }
    private void ProgressDelivery(Delivery[] list, Reward reward)
    {
        if (reward.IsPickup())
        {
            int i = 0;
            for (int num = list.Length; i < num; i++)
            {
                DeliveryTable.DeliveryData deliveryTableData = Singleton <DeliveryTable> .I.GetDeliveryTableData((uint)list[i].dId);

                if (deliveryTableData != null)
                {
                    int j = 0;
                    for (int num2 = deliveryTableData.needs.Length; j < num2; j++)
                    {
                        uint num3 = (uint)j;
                        if (deliveryTableData.IsNeedTarget(num3, (uint)reward.enemyId, (uint)mapId) && (reward.sigInfo.deliver.bit & (1 << (int)deliveryTableData.GetRateType(num3))) > 0)
                        {
                            int have = 0;
                            int need = 0;
                            MonoBehaviourSingleton <DeliveryManager> .I.GetProgressDelivery(list[i].dId, out have, out need, num3);

                            if (have < need)
                            {
                                int num4 = 1;
                                if ((reward.sigInfo.deliver.boostBit & (1 << (int)deliveryTableData.GetRateType(num3))) > 0)
                                {
                                    num4 += reward.sigInfo.deliver.boostNum;
                                }
                                MonoBehaviourSingleton <DeliveryManager> .I.ProgressDelivery(list[i].dId, (int)num3, num4);
                            }
                        }
                    }
                }
            }
        }
    }