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); } } } } } } }