装备重铸确认

back_recharge
wangyuan 2019-05-07 11:21:45 +08:00
parent db08e4a7f8
commit c2ab44a181
4 changed files with 67 additions and 8 deletions

View File

@ -0,0 +1,26 @@
package com.ljsd.jieling.handler.workshop;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.item.WorkShopLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.protocols.PlayerInfoProto;
import org.springframework.stereotype.Component;
@Component
public class RebuildConfirmHandler extends BaseHandler {
@Override
public MessageTypeProto.MessageType getMessageCode() {
return MessageTypeProto.MessageType.WORKSHOP_REBUILD_CONFIRM_REQUEST;
}
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
byte[] bytes = netData.parseClientProtoNetData();
PlayerInfoProto.WorkShopRebuildConfirmRequest workShopRebuildConfirmRequest = PlayerInfoProto.WorkShopRebuildConfirmRequest.parseFrom(bytes);
int state = workShopRebuildConfirmRequest.getState();
WorkShopLogic.getInstance().confirmRebuild(iSession,state);
}
}

View File

@ -12,7 +12,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Equip extends MongoBase {
public class Equip extends MongoBase implements Cloneable{
private String id;
@ -267,4 +267,8 @@ public class Equip extends MongoBase {
return secondValueByIdMap;
}
@Override
public Object clone() throws CloneNotSupportedException {
return (Equip) super.clone();
}
}

View File

@ -11,6 +11,8 @@ public class EquipManager extends MongoBase {
private Map<String,Equip> equipMap;
private Equip unDetermined;
public EquipManager() {
this.setRootCollection(User._COLLECTION_NAME);
@ -34,4 +36,12 @@ public class EquipManager extends MongoBase {
return equipMap;
}
public Equip getUnDetermined() {
return unDetermined;
}
public void setUnDetermined(Equip unDetermined) {
updateString("unDetermined", unDetermined);
this.unDetermined = unDetermined;
}
}

View File

@ -205,9 +205,13 @@ public class WorkShopLogic {
List<CommonProto.WorkShopUnLockInfo> workShopUnLockInfoList = new ArrayList<>(2);
workShopUnLockInfoList.add(CommonProto.WorkShopUnLockInfo.newBuilder().setType(GlobalsDef.WORK_BASE_TYPE).addAllId(workShopList == null ?new ArrayList<>(1):workShopList).build());
workShopUnLockInfoList.add(CommonProto.WorkShopUnLockInfo.newBuilder().setType(GlobalsDef.WORK_CREATE_TYPE).addAllId(cookShopList==null?new ArrayList<>(1):cookShopList).build());
PlayerInfoProto.GetWorkShopInfoResponse build = PlayerInfoProto.GetWorkShopInfoResponse.newBuilder().addAllWorkShopBaseInfo(workShopBaseInfoList).addAllWorkShopUnLockInfo(workShopUnLockInfoList).build();
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.GET_WORKSHOP_INFO_RESPONSE_VALUE,build,true);
Equip unDetermined = user.getEquipManager().getUnDetermined();
PlayerInfoProto.GetWorkShopInfoResponse.Builder builder = PlayerInfoProto.GetWorkShopInfoResponse.newBuilder().addAllWorkShopBaseInfo(workShopBaseInfoList).addAllWorkShopUnLockInfo(workShopUnLockInfoList);
if(unDetermined !=null){
CommonProto.Equip equipProto = CBean2Proto.getEquipProto(unDetermined);
builder.setUnDetermined(equipProto);
}
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.GET_WORKSHOP_INFO_RESPONSE_VALUE,builder.build(),true);
}
@ -324,12 +328,27 @@ public class WorkShopLogic {
SWorkShopRebuildConfig sWorkShopRebuildConfig = SWorkShopRebuildConfig.getsWorkShopRebuildConfigByQulity(sEquipConfig.getQuality());
int addExp = sWorkShopRebuildConfig.getExp();
user.getWorkShopController().addWorkShopExp(addExp);
equip.rebuildEquip(user.getWorkShopController().getWorkShopLevel());
equipManager.addEquip(equip);
PlayerInfoProto.WorkShopRebuildRespoonse build = PlayerInfoProto.WorkShopRebuildRespoonse.newBuilder().setEquip(CBean2Proto.getEquipProto(equip)).build();
Equip clone = (Equip)equip.clone();
clone.rebuildEquip(user.getWorkShopController().getWorkShopLevel());
equipManager.setUnDetermined(clone);
PlayerInfoProto.WorkShopRebuildRespoonse build = PlayerInfoProto.WorkShopRebuildRespoonse.newBuilder().setEquip(CBean2Proto.getEquipProto(clone)).build();
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.WORKSHOP_REBUILD_RESPONSE_VALUE,build,true);
}
public void confirmRebuild(ISession session,int state) throws Exception {
int uid = session.getUid();
User user = UserManager.getUser(uid);
EquipManager equipManager = user.getEquipManager();
Equip unDetermined = equipManager.getUnDetermined();
if(unDetermined == null){
MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.WORKSHOP_REBUILD_CONFIRM_RESONSE_VALUE,"");
return;
}
if(state == 1){
equipManager.addEquip(unDetermined);
}
equipManager.setUnDetermined(null);
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.WORKSHOP_REBUILD_CONFIRM_RESONSE_VALUE,null,true);
}
private String checkForRebuildEquip( User user,List<String> consumeEquipIds,SEquipConfig sEquipConfig,String excludeEquipId) throws Exception {