equip
parent
0a42dfd4d1
commit
873c16076e
|
@ -36,7 +36,7 @@ public class SEquipConfig implements BaseConfig {
|
|||
sEquipConfigByIdMap = STableManager.getConfig(SEquipConfig.class);
|
||||
}
|
||||
|
||||
public static SEquipConfig getsEquipConfigByI(int equipTid) {
|
||||
public static SEquipConfig getsEquipConfigById(int equipTid) {
|
||||
return sEquipConfigByIdMap.get(equipTid);
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
package com.ljsd.jieling.handler;
|
||||
|
||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.HeroInfoProto;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class EquipUnLoadOptHandler extends BaseHandler {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.EQUIP_UNLOAD_OPT_REQUEST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
||||
HeroInfoProto.EquipUnLoadOptRequest equipUnLoadOptRequest = HeroInfoProto.EquipUnLoadOptRequest.parseFrom(netData.parseClientProtoNetData());
|
||||
int type = equipUnLoadOptRequest.getType();
|
||||
String equipId = equipUnLoadOptRequest.getEquipId();
|
||||
String heroId = equipUnLoadOptRequest.getHeroId();
|
||||
HeroLogic.getInstance().unloadEquipOpt(iSession,type,heroId,equipId);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package com.ljsd.jieling.handler;
|
||||
|
||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.HeroInfoProto;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class EquipWearHandler extends BaseHandler{
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.EQUIP_WEAR_REQUEST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
||||
HeroInfoProto.EquipWearRequest equipWearRequest = HeroInfoProto.EquipWearRequest.parseFrom(netData.parseClientProtoNetData());
|
||||
HeroLogic.getInstance().wearEquipOpt(iSession,equipWearRequest.getHeroId(),equipWearRequest.getEquipId());
|
||||
|
||||
}
|
||||
}
|
|
@ -21,6 +21,8 @@ public class Equip extends MongoBase {
|
|||
|
||||
private int star;
|
||||
|
||||
private String heroId;
|
||||
|
||||
private Map<Integer,Integer> propertyValueByIdMap; //主属性 key 对应PropertyConfig id
|
||||
|
||||
private Map<Integer,Integer> secondValueByIdMap; //副属性
|
||||
|
@ -38,7 +40,7 @@ public class Equip extends MongoBase {
|
|||
this.id = KeyGenUtils.produceIdByModule(UUIDEnum.EQUIP,uid);
|
||||
this.equipId = equipTid;
|
||||
this.propertyValueByIdMap = new HashMap<>();
|
||||
SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigByI(equipTid);
|
||||
SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(equipTid);
|
||||
int properTyId = sEquipConfig.getPropertyMin()[0];
|
||||
int properMinNum = sEquipConfig.getPropertyMin()[1];
|
||||
int properMaxNum = sEquipConfig.getPropertyMax()[1];
|
||||
|
@ -103,4 +105,13 @@ public class Equip extends MongoBase {
|
|||
updateString("star",star);
|
||||
this.star = star;
|
||||
}
|
||||
|
||||
public String getHeroId() {
|
||||
return heroId;
|
||||
}
|
||||
|
||||
public void setHeroId(String heroId) throws Exception {
|
||||
updateString("heroId",heroId);
|
||||
this.heroId = heroId;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,4 +17,8 @@ public class EquipManager extends MongoBase {
|
|||
removeString("equipMap." + equipId);
|
||||
equipMap.remove(equipId);
|
||||
}
|
||||
|
||||
public Map<String, Equip> getEquipMap() {
|
||||
return equipMap;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,9 @@ import com.ljsd.jieling.util.KeyGenUtils;
|
|||
import com.ljsd.jieling.util.UUIDEnum;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class Hero extends MongoBase {
|
||||
private String id;
|
||||
|
@ -23,7 +25,7 @@ public class Hero extends MongoBase {
|
|||
|
||||
private List<Integer> skillList;
|
||||
|
||||
private List<Equip> equipList;
|
||||
private Map<Integer,String> equipByPositionMap;
|
||||
|
||||
private int breakId;
|
||||
|
||||
|
@ -42,7 +44,7 @@ public class Hero extends MongoBase {
|
|||
this.level = 1;
|
||||
this.star = scHero.getStar();
|
||||
this.skillList = new ArrayList<>();
|
||||
this.equipList = new ArrayList<>();
|
||||
this.equipByPositionMap = new HashMap<>();
|
||||
List<Integer> skillIds = scHero.getSkillListByStar().get(star);
|
||||
if(skillIds!=null && skillIds.isEmpty()){
|
||||
this.skillList.addAll(skillIds);
|
||||
|
@ -116,12 +118,23 @@ public class Hero extends MongoBase {
|
|||
this.skillList = skillList;
|
||||
}
|
||||
|
||||
public void setEquipList(List<Equip> equipList) {
|
||||
this.equipList = equipList;
|
||||
public Map<Integer, String> getEquipByPositionMap() {
|
||||
return equipByPositionMap;
|
||||
}
|
||||
|
||||
public List<Equip> getEquipList() {
|
||||
return equipList;
|
||||
public void setEquipByPositionMap(Map<Integer, String> equipByPositionMap) throws Exception {
|
||||
updateString("breakId",breakId);
|
||||
this.equipByPositionMap = equipByPositionMap;
|
||||
}
|
||||
|
||||
public void updateEquipPositionMap(int position,String equipId) throws Exception {
|
||||
updateString("breakId." + position ,breakId);
|
||||
this.equipByPositionMap.put(position,equipId);
|
||||
}
|
||||
|
||||
public void removeEquip(int position){
|
||||
removeString("breakId." + position);
|
||||
this.equipByPositionMap.remove(position);
|
||||
}
|
||||
|
||||
public int getBreakId() {
|
||||
|
|
|
@ -8,10 +8,7 @@ import com.ljsd.jieling.network.session.ISession;
|
|||
import com.ljsd.jieling.protocols.CommonProto;
|
||||
import com.ljsd.jieling.protocols.HeroInfoProto;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import com.ljsd.jieling.util.CBean2Proto;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MathUtils;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import com.ljsd.jieling.util.*;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -415,5 +412,59 @@ public class HeroLogic {
|
|||
|
||||
|
||||
|
||||
// equip TODO 装备会导致英雄属性发生变化
|
||||
public void wearEquipOpt(ISession session,String heroId,String equipId) throws Exception {
|
||||
int uid = session.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
Hero hero = user.getHeroManager().getHero(heroId);
|
||||
Equip equip = user.getEquipManager().getEquipMap().get(equipId);
|
||||
if( null == equip || null == hero ){
|
||||
return;
|
||||
}
|
||||
if(!StringUtil.isEmpty(equip.getHeroId())){
|
||||
return;
|
||||
}
|
||||
int equipIdTid = equip.getEquipId();
|
||||
SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(equipIdTid);
|
||||
int position = sEquipConfig.getPosition();
|
||||
Map<Integer, String> equipByPositionMap = hero.getEquipByPositionMap();
|
||||
if( equipByPositionMap!=null && equipByPositionMap.get(position)!= null){
|
||||
return;
|
||||
}
|
||||
|
||||
hero.updateEquipPositionMap(position,equipId);
|
||||
|
||||
//发送成功消息
|
||||
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.EQUIP_WEAR_REQUEST_VALUE,null,true);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void unloadEquipOpt(ISession session,int type,String heroId,String equipId) throws Exception {
|
||||
int uid = session.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
Equip equip = user.getEquipManager().getEquipMap().get(equipId);
|
||||
Hero hero = user.getHeroManager().getHero(heroId);
|
||||
if( hero == null|| null == equip || !StringUtil.isEmpty(equip.getHeroId()) ){
|
||||
return;
|
||||
}
|
||||
int equipIdTid = equip.getEquipId();
|
||||
SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(equipIdTid);
|
||||
int position = sEquipConfig.getPosition();
|
||||
|
||||
if(type == 1){
|
||||
equip.setHeroId("");
|
||||
hero.removeEquip(position);
|
||||
}
|
||||
if(type == 2){
|
||||
hero.setEquipByPositionMap(new HashMap<>());
|
||||
}
|
||||
|
||||
//发送成功消息
|
||||
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.EQUIP_UNLOAD_OPT_RESPONSE_VALUE,null,true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ public class CBean2Proto {
|
|||
.setLevel(hero.getLevel())
|
||||
.setStar(hero.getStar())
|
||||
.addAllSkillIdList(hero.getSkillList())
|
||||
.addAllEquipIdList(getHeroEquip(hero.getEquipList()))
|
||||
// .addAllEquipIdList(getHeroEquip(hero.getEquipList()))
|
||||
.build();
|
||||
return heroProto;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue