原有的升级通知更换到setLevel外边,因为这个方法不只是升级用,也可能归送

hero实现clone接口,对象克隆
back_recharge
duhui 2021-03-15 16:18:16 +08:00
parent f85e86a2eb
commit 15fbc91a9b
4 changed files with 112 additions and 88 deletions

View File

@ -16,6 +16,7 @@ import com.ljsd.jieling.handler.map.*;
import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.fight.CombatLogic; import com.ljsd.jieling.logic.fight.CombatLogic;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.main.VipMissionIdsType; import com.ljsd.jieling.logic.mission.main.VipMissionIdsType;
import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.netty.cocdex.PacketNetData;
@ -153,7 +154,8 @@ public class GMRequestHandler extends BaseHandler{
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE,scHero.getStar()); Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE,scHero.getStar());
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByTypeTree = new TreeMap<>(scHeroRankUpConfigByType); Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByTypeTree = new TreeMap<>(scHeroRankUpConfigByType);
SCHeroRankUpConfig scHeroRankUpConfig = ((TreeMap<Integer, SCHeroRankUpConfig>) scHeroRankUpConfigByTypeTree).lowerEntry(hero.getStar()).getValue(); SCHeroRankUpConfig scHeroRankUpConfig = ((TreeMap<Integer, SCHeroRankUpConfig>) scHeroRankUpConfigByTypeTree).lowerEntry(hero.getStar()).getValue();
hero.setLevel(cUser,scHeroRankUpConfig.getOpenLevel()); cUser.getUserMissionManager().onGameEvent(cUser, GameEvent.HERO_LEVEL_UP,hero.getOriginalLevel(),scHeroRankUpConfig.getOpenLevel());
hero.setLevel(scHeroRankUpConfig.getOpenLevel());
hero.setStarBreakId(scHeroRankUpConfig.getId()); hero.setStarBreakId(scHeroRankUpConfig.getId());
scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.BREAK_TYPE,scHero.getStar()); scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.BREAK_TYPE,scHero.getStar());
@ -359,7 +361,8 @@ public class GMRequestHandler extends BaseHandler{
} }
heroTmp.upStar(maxStar-heroTmp.getStar()); heroTmp.upStar(maxStar-heroTmp.getStar());
SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByType.get(maxStar-1); SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByType.get(maxStar-1);
heroTmp.setLevel(cUser,scHeroRankUpConfig.getOpenLevel()); cUser.getUserMissionManager().onGameEvent(cUser, GameEvent.HERO_LEVEL_UP,heroTmp.getOriginalLevel(),scHeroRankUpConfig.getOpenLevel());
heroTmp.setLevel(scHeroRankUpConfig.getOpenLevel());
heroTmp.setStarBreakId(scHeroRankUpConfig.getId()); heroTmp.setStarBreakId(scHeroRankUpConfig.getId());
scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.BREAK_TYPE,scHero.getStar()); scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.BREAK_TYPE,scHero.getStar());
for(SCHeroRankUpConfig scHeroRankUpConfigBreak :scHeroRankUpConfigByType.values()){ for(SCHeroRankUpConfig scHeroRankUpConfigBreak :scHeroRankUpConfigByType.values()){

View File

@ -4,6 +4,7 @@ import com.ljsd.jieling.config.clazzStaticCfg.HeroStaticConfig;
import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.logic.dao.Hero; import com.ljsd.jieling.logic.dao.Hero;
import com.ljsd.jieling.logic.mission.GameEvent;
import rpc.protocols.CommonProto; import rpc.protocols.CommonProto;
import rpc.protocols.Expedition; import rpc.protocols.Expedition;
import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.ItemUtil;
@ -40,7 +41,8 @@ public class Cmd_addhero extends GmRoleAbstract{
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE,scHero.getStar()); Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE,scHero.getStar());
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByTypeTree = new TreeMap<>(scHeroRankUpConfigByType); Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByTypeTree = new TreeMap<>(scHeroRankUpConfigByType);
SCHeroRankUpConfig scHeroRankUpConfig = ((TreeMap<Integer, SCHeroRankUpConfig>) scHeroRankUpConfigByTypeTree).lowerEntry(hero.getStar()).getValue(); SCHeroRankUpConfig scHeroRankUpConfig = ((TreeMap<Integer, SCHeroRankUpConfig>) scHeroRankUpConfigByTypeTree).lowerEntry(hero.getStar()).getValue();
hero.setLevel(getUser(),scHeroRankUpConfig.getOpenLevel()); getUser().getUserMissionManager().onGameEvent(getUser(), GameEvent.HERO_LEVEL_UP,hero.getOriginalLevel(),scHeroRankUpConfig.getOpenLevel());
hero.setLevel(scHeroRankUpConfig.getOpenLevel());
hero.setStarBreakId(scHeroRankUpConfig.getId()); hero.setStarBreakId(scHeroRankUpConfig.getId());
scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.BREAK_TYPE,scHero.getStar()); scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.BREAK_TYPE,scHero.getStar());

View File

@ -19,7 +19,7 @@ import org.slf4j.LoggerFactory;
import java.util.*; import java.util.*;
public class Hero extends MongoBase { public class Hero extends MongoBase implements Cloneable {
private static final Logger LOGGER = LoggerFactory.getLogger(Hero.class); private static final Logger LOGGER = LoggerFactory.getLogger(Hero.class);
private String id; private String id;
@ -54,6 +54,7 @@ public class Hero extends MongoBase {
private Set<String> jewelInfo = new HashSet<>(); private Set<String> jewelInfo = new HashSet<>();
private int skin; private int skin;
public Hero() { public Hero() {
//绑定关系 //绑定关系
this.setRootCollection(User._COLLECTION_NAME); this.setRootCollection(User._COLLECTION_NAME);
@ -119,7 +120,7 @@ public class Hero extends MongoBase {
} }
public void upStar(int upStar) throws Exception { public void upStar(int upStar) {
this.star += upStar; this.star += upStar;
updateString("star", star); updateString("star", star);
} }
@ -129,13 +130,12 @@ public class Hero extends MongoBase {
this.id = id; this.id = id;
} }
public void setLevel(User user,int level) throws Exception { public void setLevel(int level){
user.getUserMissionManager().onGameEvent(user, GameEvent.HERO_LEVEL_UP,this.level,level);
updateString("level",level); updateString("level",level);
this.level = level; this.level = level;
} }
public void setStar(int star) throws Exception { public void setStar(int star) {
updateString("star", star); updateString("star", star);
this.star = star; this.star = star;
} }
@ -159,6 +159,7 @@ public class Hero extends MongoBase {
/** /**
* 鸿鸿 * 鸿鸿
*
* @param heroManager * @param heroManager
* @return * @return
*/ */
@ -192,6 +193,7 @@ public class Hero extends MongoBase {
/** /**
* *
*
* @return * @return
*/ */
public int getOriginalLevel() { public int getOriginalLevel() {
@ -269,6 +271,7 @@ public class Hero extends MongoBase {
/** /**
* breaId 鸿 * breaId 鸿
*
* @param heroManager * @param heroManager
* @return * @return
*/ */
@ -294,7 +297,6 @@ public class Hero extends MongoBase {
} }
public void setCreateTime(int createTime) throws Exception { public void setCreateTime(int createTime) throws Exception {
updateString("createTime", createTime); updateString("createTime", createTime);
this.createTime = createTime; this.createTime = createTime;
@ -317,6 +319,7 @@ public class Hero extends MongoBase {
updateString("starBreakId", starBreakId); updateString("starBreakId", starBreakId);
this.starBreakId = starBreakId; this.starBreakId = starBreakId;
} }
public void updateEspecial(int especialEquipLevel) { public void updateEspecial(int especialEquipLevel) {
this.especialEquipLevel = especialEquipLevel; this.especialEquipLevel = especialEquipLevel;
updateString("especialEquipLevel", especialEquipLevel); updateString("especialEquipLevel", especialEquipLevel);
@ -332,6 +335,10 @@ public class Hero extends MongoBase {
this.isLock = isLock; this.isLock = isLock;
} }
public void setEspecialEquipLevel(int especialEquipLevel) {
this.especialEquipLevel = especialEquipLevel;
}
public int getEspecialEquipLevel() { public int getEspecialEquipLevel() {
return especialEquipLevel; return especialEquipLevel;
} }
@ -357,6 +364,7 @@ public class Hero extends MongoBase {
jewelInfo.add(jewelId); jewelInfo.add(jewelId);
updateString("jewelInfo", jewelInfo); updateString("jewelInfo", jewelInfo);
} }
public void removeJewel(String jewelId) { public void removeJewel(String jewelId) {
jewelInfo.remove(jewelId); jewelInfo.remove(jewelId);
updateString("jewelInfo", jewelInfo); updateString("jewelInfo", jewelInfo);
@ -393,6 +401,16 @@ public class Hero extends MongoBase {
public void setSkin(int skin) { public void setSkin(int skin) {
this.skin = skin; this.skin = skin;
updateString("skin", skin); updateString("skin", skin);
}
@Override
public Hero clone() {
Hero hero = null;
try {
hero = (Hero) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return hero;
} }
} }

View File

@ -694,7 +694,8 @@ public class HeroLogic {
} }
if(!isBreak){ if(!isBreak){
hero.setLevel( user,targetLevel); user.getUserMissionManager().onGameEvent(user, GameEvent.HERO_LEVEL_UP,hero.getOriginalLevel(),targetLevel);
hero.setLevel(targetLevel);
}else{ }else{
hero.setBreakId(breakId); hero.setBreakId(breakId);
user.getUserMissionManager().onGameEvent(user,GameEvent.HERO_UP,1); user.getUserMissionManager().onGameEvent(user,GameEvent.HERO_UP,1);
@ -2355,7 +2356,7 @@ public class HeroLogic {
itemNum.add(item.getItemNum()); itemNum.add(item.getItemNum());
}); });
ReportUtil.onReportEvent(user,ReportEventEnum.HERO_COMPOSITION.getType(),String.valueOf(hero.getTemplateId()),hero.getLevel(user.getHeroManager()),hero.getStar(),itemId,itemNum); ReportUtil.onReportEvent(user,ReportEventEnum.HERO_COMPOSITION.getType(),String.valueOf(hero.getTemplateId()),hero.getLevel(user.getHeroManager()),hero.getStar(),itemId,itemNum);
hero.setLevel(user,1); hero.setLevel(1);
hero.setBreakId(0); hero.setBreakId(0);
HeroInfoProto.HeroReturnResponse build = HeroInfoProto.HeroReturnResponse.newBuilder().setDrop(drop).build(); HeroInfoProto.HeroReturnResponse build = HeroInfoProto.HeroReturnResponse.newBuilder().setDrop(drop).build();
MessageUtil.sendMessage(session,1,responseMsgId,build,true); MessageUtil.sendMessage(session,1,responseMsgId,build,true);