92 lines
2.9 KiB
C#
92 lines
2.9 KiB
C#
using Server.System;
|
|
using Newtonsoft.Json;
|
|
using Server.SQL;
|
|
|
|
namespace Server.Service
|
|
{
|
|
public class EquipChange : AbstractService
|
|
{
|
|
private EquipChangeReq req;
|
|
public override string Process()
|
|
{
|
|
//문제 1 장비 장착 저장이 안됨.
|
|
//문제 2 기존에 장비가 있다면 신규 장비로 교체가 되야함.
|
|
UserSQL userSQL = new UserSQL();
|
|
EquipmentrSQL equipmentrSQL = new EquipmentrSQL();
|
|
DeckUnitInfoSQL deckUnitInfoSQL = new DeckUnitInfoSQL();
|
|
User user = userSQL.SelectUuid(req.uuid);
|
|
Equipment equipment = equipmentrSQL.SelectItem(user.id, req.equipment_id);
|
|
DeckUnitInfo deckUnitInfo = deckUnitInfoSQL.SelectItem(user.id, req.unit_id);
|
|
|
|
if(equipment == null || deckUnitInfo == null)
|
|
{
|
|
throw new RuntimeException("Not Data", Error.nodata);
|
|
}
|
|
|
|
EquipmentData equipmentData = Statics.equipmentData[equipment.equipment_data_id];
|
|
|
|
switch (equipmentData.part)
|
|
{
|
|
case 0:
|
|
deckUnitInfo.equip0_id = equipment.id;
|
|
break;
|
|
case 1:
|
|
deckUnitInfo.equip1_id = equipment.id;
|
|
break;
|
|
case 2:
|
|
deckUnitInfo.equip2_id = equipment.id;
|
|
break;
|
|
case 3:
|
|
deckUnitInfo.equip3_id = equipment.id;
|
|
break;
|
|
case 4:
|
|
deckUnitInfo.equip4_id = equipment.id;
|
|
break;
|
|
case 5:
|
|
deckUnitInfo.equip5_id = equipment.id;
|
|
break;
|
|
}
|
|
equipment.equip_unit = deckUnitInfo.id;
|
|
|
|
equipmentrSQL.Update(equipment);
|
|
deckUnitInfoSQL.Update(deckUnitInfo);
|
|
|
|
return makeResp(equipment, deckUnitInfo);
|
|
}
|
|
|
|
public override Protocol ProtocolValue() => Protocol.EquipChange;
|
|
|
|
public override Req Requst(string json)
|
|
{
|
|
req = JsonConvert.DeserializeObject<EquipChangeReq>(json);
|
|
return req;
|
|
}
|
|
|
|
private string makeResp(Equipment equipment, DeckUnitInfo deck_unit_info)
|
|
{
|
|
EquipChangeResp resp = new EquipChangeResp();
|
|
resp.status = 200;
|
|
resp.equipment = equipment;
|
|
resp.deck_unit_info = deck_unit_info;
|
|
return resp.ToJson();
|
|
}
|
|
}
|
|
|
|
public class EquipChangeReq : Req
|
|
{
|
|
public string uuid;
|
|
public long unit_id;
|
|
public long equipment_id;
|
|
public override bool IsReceivedAllField()
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
public class EquipChangeResp : Resp
|
|
{
|
|
public Equipment equipment;
|
|
public DeckUnitInfo deck_unit_info;
|
|
}
|
|
}
|