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(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; } }