diff --git a/Server/Manager/ItemManager.cs b/Server/Manager/ItemManager.cs index 0d0c073..3532ce4 100644 --- a/Server/Manager/ItemManager.cs +++ b/Server/Manager/ItemManager.cs @@ -22,65 +22,57 @@ namespace Server.Manager { RewardData rewardData; - //아이템 획득 처리 - if (reward == 0) + rewardData = Statics.rewardExcel.getRewardData(reward); + switch (rewardData.reward_item_type) { - //따로 처리가 필요함. - } - else - { - rewardData = Statics.rewardExcel.getRewardData(reward); - switch (rewardData.reward_item_type) - { - case eRewardItemType.gold: - user.gold += rewardData.return_count; - break; - case eRewardItemType.freecash: - user.free_cash += rewardData.return_count; - break; - case eRewardItemType.paycash: - user.pay_cash += rewardData.return_count; - break; - case eRewardItemType.character: - for (int n = 0; n < rewardData.return_count; n++) - { - DeckUnitInfo deckUnitInfo = new DeckUnitInfo(); - deckUnitInfo.user_id = user.id; - deckUnitInfo.unit_data_id = rewardData.return_item; - box.Add(deckUnitInfo); - } - break; - case eRewardItemType.equipment: - Random rand = new Random(); - for (int n = 0; n < rewardData.return_count; n++) - { - Equipment equipment = new Equipment(); - equipment.user_id = user.id; - equipment.equip_unit = 0; - equipment.rand_stats = rand.Next(5); - equipment.equipment_data_id = rewardData.return_item; - box.Add(equipment); - } - break; - case eRewardItemType.consumable: - ConsumableItem consumableItem = new ConsumableItem(); - consumableItem.user_id = user.id; - consumableItem.consumable_item_data_id = rewardData.return_item; - consumableItem.count = rewardData.return_count; - box.Add(consumableItem); - break; - case eRewardItemType.etc: - EtcItem etcItem = new EtcItem(); - etcItem.user_id = user.id; - etcItem.etc_item_data_id = rewardData.return_item; - etcItem.count = rewardData.return_count; - box.Add(etcItem); - break; - default: - throw new RuntimeException("Not case", Error.nodata); + case eRewardItemType.gold: + user.gold += rewardData.return_count; + break; + case eRewardItemType.freecash: + user.free_cash += rewardData.return_count; + break; + case eRewardItemType.paycash: + user.pay_cash += rewardData.return_count; + break; + case eRewardItemType.character: + for (int n = 0; n < rewardData.return_count; n++) + { + DeckUnitInfo deckUnitInfo = new DeckUnitInfo(); + deckUnitInfo.user_id = user.id; + deckUnitInfo.unit_data_id = rewardData.return_item; + box.Add(deckUnitInfo); + } + break; + case eRewardItemType.equipment: + Random rand = new Random(); + for (int n = 0; n < rewardData.return_count; n++) + { + Equipment equipment = new Equipment(); + equipment.user_id = user.id; + equipment.equip_unit = 0; + equipment.rand_stats = rand.Next(5); + equipment.equipment_data_id = rewardData.return_item; + box.Add(equipment); + } + break; + case eRewardItemType.consumable: + ConsumableItem consumableItem = new ConsumableItem(); + consumableItem.user_id = user.id; + consumableItem.consumable_item_data_id = rewardData.return_item; + consumableItem.count = rewardData.return_count; + box.Add(consumableItem); + break; + case eRewardItemType.etc: + EtcItem etcItem = new EtcItem(); + etcItem.user_id = user.id; + etcItem.etc_item_data_id = rewardData.return_item; + etcItem.count = rewardData.return_count; + box.Add(etcItem); + break; + default: + throw new RuntimeException("Not case", Error.nodata); - } } } diff --git a/Server/Service/BuyShopItem.cs b/Server/Service/BuyShopItem.cs index 1fa85b9..5a21741 100644 --- a/Server/Service/BuyShopItem.cs +++ b/Server/Service/BuyShopItem.cs @@ -2,11 +2,13 @@ using Newtonsoft.Json; using Server.SQL; using Server.Manager; +using NLog; namespace Server.Service { public class BuyShopItem : AbstractService { + private static readonly NLog.ILogger logger = LogManager.GetCurrentClassLogger(); private BuyShopItemReq req; private void SaveSQL(ItemManager item) @@ -25,16 +27,12 @@ namespace Server.Service { case eBuyType.gold: if (user.gold < shopItemData.buy) - { throw new RuntimeException("Not gold", Error.nogold); - } user.gold -= shopItemData.buy; break; case eBuyType.cash: if (!user.buyCash(shopItemData.buy)) - { throw new RuntimeException("Not cash", Error.nogold); - } break; case eBuyType.money://현금결제 현재로서는 무조건 결제완료가 나오도록 처리할것 break; @@ -44,7 +42,10 @@ namespace Server.Service ItemManager item = new ItemManager(user); - item.addReward(shopItemData.reward); + if (shopItemData.reward != 0) + item.addReward(shopItemData.reward); + else + logger.Error("처리 필요"); SaveSQL(item); return makeResp(user, item);