유닛 아이템 처리방식 변경

This commit is contained in:
김판돌 2024-03-09 19:20:07 +09:00
parent fc9ce60920
commit 09eb956650
2 changed files with 54 additions and 61 deletions

View File

@ -22,65 +22,57 @@ namespace Server.Manager
{ {
RewardData rewardData; RewardData rewardData;
//아이템 획득 처리 rewardData = Statics.rewardExcel.getRewardData(reward);
if (reward == 0) switch (rewardData.reward_item_type)
{ {
//따로 처리가 필요함. case eRewardItemType.gold:
} user.gold += rewardData.return_count;
else break;
{ case eRewardItemType.freecash:
rewardData = Statics.rewardExcel.getRewardData(reward); user.free_cash += rewardData.return_count;
switch (rewardData.reward_item_type) break;
{ case eRewardItemType.paycash:
case eRewardItemType.gold: user.pay_cash += rewardData.return_count;
user.gold += rewardData.return_count; break;
break; case eRewardItemType.character:
case eRewardItemType.freecash: for (int n = 0; n < rewardData.return_count; n++)
user.free_cash += rewardData.return_count; {
break; DeckUnitInfo deckUnitInfo = new DeckUnitInfo();
case eRewardItemType.paycash: deckUnitInfo.user_id = user.id;
user.pay_cash += rewardData.return_count; deckUnitInfo.unit_data_id = rewardData.return_item;
break; box.Add(deckUnitInfo);
case eRewardItemType.character: }
for (int n = 0; n < rewardData.return_count; n++) break;
{ case eRewardItemType.equipment:
DeckUnitInfo deckUnitInfo = new DeckUnitInfo(); Random rand = new Random();
deckUnitInfo.user_id = user.id; for (int n = 0; n < rewardData.return_count; n++)
deckUnitInfo.unit_data_id = rewardData.return_item; {
box.Add(deckUnitInfo); Equipment equipment = new Equipment();
} equipment.user_id = user.id;
break; equipment.equip_unit = 0;
case eRewardItemType.equipment: equipment.rand_stats = rand.Next(5);
Random rand = new Random(); equipment.equipment_data_id = rewardData.return_item;
for (int n = 0; n < rewardData.return_count; n++) box.Add(equipment);
{ }
Equipment equipment = new Equipment(); break;
equipment.user_id = user.id; case eRewardItemType.consumable:
equipment.equip_unit = 0; ConsumableItem consumableItem = new ConsumableItem();
equipment.rand_stats = rand.Next(5); consumableItem.user_id = user.id;
equipment.equipment_data_id = rewardData.return_item; consumableItem.consumable_item_data_id = rewardData.return_item;
box.Add(equipment); consumableItem.count = rewardData.return_count;
} box.Add(consumableItem);
break; break;
case eRewardItemType.consumable: case eRewardItemType.etc:
ConsumableItem consumableItem = new ConsumableItem(); EtcItem etcItem = new EtcItem();
consumableItem.user_id = user.id; etcItem.user_id = user.id;
consumableItem.consumable_item_data_id = rewardData.return_item; etcItem.etc_item_data_id = rewardData.return_item;
consumableItem.count = rewardData.return_count; etcItem.count = rewardData.return_count;
box.Add(consumableItem); box.Add(etcItem);
break; break;
case eRewardItemType.etc: default:
EtcItem etcItem = new EtcItem(); throw new RuntimeException("Not case", Error.nodata);
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);
}
} }
} }

View File

@ -2,11 +2,13 @@
using Newtonsoft.Json; using Newtonsoft.Json;
using Server.SQL; using Server.SQL;
using Server.Manager; using Server.Manager;
using NLog;
namespace Server.Service namespace Server.Service
{ {
public class BuyShopItem : AbstractService public class BuyShopItem : AbstractService
{ {
private static readonly NLog.ILogger logger = LogManager.GetCurrentClassLogger();
private BuyShopItemReq req; private BuyShopItemReq req;
private void SaveSQL(ItemManager item) private void SaveSQL(ItemManager item)
@ -25,16 +27,12 @@ namespace Server.Service
{ {
case eBuyType.gold: case eBuyType.gold:
if (user.gold < shopItemData.buy) if (user.gold < shopItemData.buy)
{
throw new RuntimeException("Not gold", Error.nogold); throw new RuntimeException("Not gold", Error.nogold);
}
user.gold -= shopItemData.buy; user.gold -= shopItemData.buy;
break; break;
case eBuyType.cash: case eBuyType.cash:
if (!user.buyCash(shopItemData.buy)) if (!user.buyCash(shopItemData.buy))
{
throw new RuntimeException("Not cash", Error.nogold); throw new RuntimeException("Not cash", Error.nogold);
}
break; break;
case eBuyType.money://현금결제 현재로서는 무조건 결제완료가 나오도록 처리할것 case eBuyType.money://현금결제 현재로서는 무조건 결제완료가 나오도록 처리할것
break; break;
@ -44,7 +42,10 @@ namespace Server.Service
ItemManager item = new ItemManager(user); ItemManager item = new ItemManager(user);
item.addReward(shopItemData.reward); if (shopItemData.reward != 0)
item.addReward(shopItemData.reward);
else
logger.Error("처리 필요");
SaveSQL(item); SaveSQL(item);
return makeResp(user, item); return makeResp(user, item);