itembox제작
This commit is contained in:
parent
0fe0af2130
commit
2823581f19
|
|
@ -0,0 +1,145 @@
|
|||
using Server.SQL;
|
||||
using Server.System;
|
||||
|
||||
namespace Server.Manager
|
||||
{
|
||||
public class ItemManager
|
||||
{
|
||||
User user;
|
||||
|
||||
public ItemBox box;
|
||||
|
||||
public ItemManager(User user)
|
||||
{
|
||||
this.user = user;
|
||||
box = new ItemBox(user);
|
||||
}
|
||||
|
||||
public void addReward(long reward)
|
||||
{
|
||||
RewardData rewardData;
|
||||
|
||||
//아이템 획득 처리
|
||||
if (reward == 0)
|
||||
{
|
||||
//따로 처리가 필요함.
|
||||
}
|
||||
else
|
||||
{
|
||||
rewardData = Statics.rewardExcel.getRewardData(reward);
|
||||
switch (rewardData.reward_item_type)
|
||||
{
|
||||
case eRewardItemType.gold:
|
||||
user.gold += rewardData.return_item;
|
||||
break;
|
||||
case eRewardItemType.freecash:
|
||||
user.free_cash += rewardData.return_item;
|
||||
break;
|
||||
case eRewardItemType.paycash:
|
||||
user.pay_cash += rewardData.return_item;
|
||||
break;
|
||||
case eRewardItemType.character:
|
||||
DeckUnitInfo deckUnitInfo = new DeckUnitInfo();
|
||||
deckUnitInfo.user_id = user.id;
|
||||
deckUnitInfo.unit_id = rewardData.return_item;
|
||||
box.Add(deckUnitInfo);
|
||||
break;
|
||||
case eRewardItemType.equipment:
|
||||
Equipment equipment = new Equipment();
|
||||
equipment.user_id = user.id;
|
||||
equipment.equip_unit = 0;
|
||||
equipment.rand_stats = (new Random()).Next(5);
|
||||
equipment.equipment_data_id = rewardData.return_item;
|
||||
box.Add(equipment);
|
||||
break;
|
||||
case eRewardItemType.consumable:
|
||||
//소모품 만들고 넣기
|
||||
break;
|
||||
case eRewardItemType.etc:
|
||||
//기타아이탬 만들고 넣기
|
||||
break;
|
||||
default:
|
||||
throw new RuntimeException("Not case", Error.nodata);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//리워드 아이탬 획득 코드 작성
|
||||
//패키지 구매시 패키지를 전부 풀어서 아이탬을 획득하는 코드 작성
|
||||
}
|
||||
|
||||
public class ItemBox
|
||||
{
|
||||
List<DeckUnitInfo> _deckUnitInfo;
|
||||
public List<DeckUnitInfo> deckUnitInfo { get { return _deckUnitInfo; } }
|
||||
|
||||
public List<DeckUnitInfo> addDeckUnitInfo;
|
||||
|
||||
List<Equipment> _equipment;
|
||||
public List<Equipment> equipment { get { return _equipment; } }
|
||||
public List<Equipment> addEquipment;
|
||||
|
||||
public ItemBox(User user)
|
||||
{
|
||||
_deckUnitInfo = Statics.deckUnitInfoSQL.SelectUid(user.id);
|
||||
_equipment = Statics.equipmentrSQL.SelectUid(user.id);
|
||||
addDeckUnitInfo = new List<DeckUnitInfo>();
|
||||
addEquipment = new List<Equipment>();
|
||||
}
|
||||
|
||||
public void SaveSQL()
|
||||
{
|
||||
if (_deckUnitInfo.Count != 0)
|
||||
{
|
||||
Statics.deckUnitInfoSQL.Insert(_deckUnitInfo);
|
||||
Statics.deckUnitInfoSQL.SaveChanges();
|
||||
_deckUnitInfo.Clear();
|
||||
}
|
||||
if (_equipment.Count != 0)
|
||||
{
|
||||
Statics.equipmentrSQL.Insert(_equipment);
|
||||
Statics.equipmentrSQL.SaveChanges();
|
||||
_equipment.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public bool Add(DeckUnitInfo item)
|
||||
{
|
||||
if(_deckUnitInfo.FindIndex(n => n.unit_id == item.unit_id) != -1)
|
||||
return false;
|
||||
_deckUnitInfo.Add(item);
|
||||
addDeckUnitInfo.Add(item);
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool Add(List<DeckUnitInfo> items)
|
||||
{
|
||||
foreach(var item in items)
|
||||
{
|
||||
if (_deckUnitInfo.FindIndex(n => n.unit_id == item.unit_id) != -1)
|
||||
return false;
|
||||
}
|
||||
_deckUnitInfo.AddRange(items);
|
||||
addDeckUnitInfo.AddRange(items);
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool Add(Equipment item)
|
||||
{
|
||||
_equipment.Add(item);
|
||||
addEquipment.Add(item);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public bool Add(List<Equipment> items)
|
||||
{
|
||||
_equipment.AddRange(items);
|
||||
addEquipment.AddRange(items);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@ using Newtonsoft.Json;
|
|||
using Server.SQL;
|
||||
using LibGit2Sharp;
|
||||
using System.Collections.Generic;
|
||||
using Server.Manager;
|
||||
|
||||
namespace Server.Service
|
||||
{
|
||||
|
|
@ -10,16 +11,16 @@ namespace Server.Service
|
|||
{
|
||||
private BuyShopItemReq req;
|
||||
|
||||
private void SaveSQL()
|
||||
private void SaveSQL(ItemManager item)
|
||||
{
|
||||
Statics.userSQL.SaveChanges();
|
||||
item.SaveSQL();
|
||||
}
|
||||
|
||||
public override string Process()
|
||||
{
|
||||
User user = Statics.userSQL.SelectUuid(req.uuid);
|
||||
ShopItemData shopItemData = Statics.shopItemExcel.getShopItemData(req.index);
|
||||
RewardData rewardData;
|
||||
|
||||
//획득 가능한 아이템인지 확인
|
||||
switch (shopItemData.buy_type)
|
||||
|
|
@ -43,61 +44,16 @@ namespace Server.Service
|
|||
throw new RuntimeException("Not case", Error.nodata);
|
||||
}
|
||||
|
||||
DeckUnitInfo deckUnitInfo = null;
|
||||
Equipment equipment = null;
|
||||
ItemManager item = new ItemManager(user);
|
||||
|
||||
//아이템 획득 처리
|
||||
if (shopItemData.reward == 0)
|
||||
{
|
||||
//따로 처리가 필요함.
|
||||
}
|
||||
else
|
||||
{
|
||||
rewardData = Statics.rewardExcel.getRewardData(shopItemData.reward);
|
||||
switch (rewardData.reward_item_type)
|
||||
{
|
||||
case eRewardItemType.gold:
|
||||
user.gold += rewardData.return_item;
|
||||
break;
|
||||
case eRewardItemType.freecash:
|
||||
user.free_cash += rewardData.return_item;
|
||||
break;
|
||||
case eRewardItemType.paycash:
|
||||
user.pay_cash += rewardData.return_item;
|
||||
break;
|
||||
case eRewardItemType.character:
|
||||
deckUnitInfo = new DeckUnitInfo();
|
||||
deckUnitInfo.user_id = user.id;
|
||||
deckUnitInfo.unit_id = rewardData.return_item;
|
||||
break;
|
||||
case eRewardItemType.equipment:
|
||||
equipment = new Equipment();
|
||||
equipment.user_id = user.id;
|
||||
equipment.equip_unit = 0;
|
||||
equipment.rand_stats = (new Random()).Next(5);
|
||||
equipment.equipment_data_id = rewardData.return_item;
|
||||
break;
|
||||
case eRewardItemType.consumable:
|
||||
//소모품 만들고 넣기
|
||||
break;
|
||||
case eRewardItemType.etc:
|
||||
//기타아이탬 만들고 넣기
|
||||
break;
|
||||
default:
|
||||
throw new RuntimeException("Not case", Error.nodata);
|
||||
item.addReward(shopItemData.reward);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
SaveSQL();
|
||||
SaveSQL(item);
|
||||
return makeResp();
|
||||
}
|
||||
|
||||
public override Protocol ProtocolValue() => Protocol.BuyShopItem;
|
||||
|
||||
|
||||
public override Req Requst(string json)
|
||||
{
|
||||
req = JsonConvert.DeserializeObject<BuyShopItemReq>(json);
|
||||
|
|
|
|||
Loading…
Reference in New Issue