유닛 아이템 처리방식 변경

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;
//아이템 획득 처리
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);
}
}
}

View File

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