鸿蒙阵bug修复

master_otnew
grimm 2023-12-27 18:53:17 +08:00
parent 7190830e5e
commit de527d2f01
14 changed files with 135 additions and 153 deletions

View File

@ -58,7 +58,7 @@ public class ArenaChallengeHandler extends BaseHandler<ArenaInfoProto.ArenaChall
if(!"".equals(err)){
throw new ErrorCodeException(ErrorCode.newDefineCode(err));
}
int fightResult=0;
int fightResult;
int myscore = SArenaSetting.getSArenaSetting().getScore();
int defScore = SArenaSetting.getSArenaSetting().getScore();
int enemyType = enemyInfo.getEnemyType();
@ -114,7 +114,7 @@ public class ArenaChallengeHandler extends BaseHandler<ArenaInfoProto.ArenaChall
}
if (fightResult == 1){
myscoreChange = ArenaLogic.getInstance().calScore(myscore, defScore,fightResult);
defScoreChange = ArenaLogic.getInstance().calScore(defScore, myscore,fightResult^1);
defScoreChange = ArenaLogic.getInstance().calScore(defScore, myscore, 0);
}
}
@ -157,9 +157,8 @@ public class ArenaChallengeHandler extends BaseHandler<ArenaInfoProto.ArenaChall
StringBuilder builderHero = new StringBuilder();
String heroId = info.getHeroId();
int position = info.getPosition();
Hero hero = user.getHeroManager().getHero(heroId);
builderHero.append(hero.getTemplateId()).append("-").append(hero.getStar()).append("-").append(hero.getLevel());
builderHero.append(hero.getTemplateId()).append("-").append(hero.getStar()).append("-").append(hero.getLevel(user));
heroes[position-1] = builderHero.toString();
}
PokemonManager pokemonManager = user.getPokemonManager();
@ -187,7 +186,7 @@ public class ArenaChallengeHandler extends BaseHandler<ArenaInfoProto.ArenaChall
int position = info.getPosition();
Hero hero = defUser.getHeroManager().getHero(heroId);
builderHero.append(hero.getTemplateId()).append("-").append(hero.getStar()).append("-").append(hero.getLevel());
builderHero.append(hero.getTemplateId()).append("-").append(hero.getStar()).append("-").append(hero.getLevel(defUser));
defHeroes[position-1] = builderHero.toString();
}

View File

@ -111,7 +111,7 @@ public class StartHardStageRequestHandler extends BaseHandler<PlayerInfoProto.Ha
if (!node.isHasPass()) {
node.setHasPass(true);
node.setState(1);
dropList.addAll(HardStageLogic.getFirstRewards(user, nodeConfig));
dropList.addAll(HardStageLogic.getFirstRewards(nodeConfig));
HardStageLogic.updateChapterAndNodeLevel(user, nodeConfig);
logResult = 1;
user.getHardStageManager().updateString("chapterMap." + nodeConfig.getChapter(), chapterMap.get(nodeConfig.getChapter()));

View File

@ -2332,7 +2332,7 @@ public class MapLogic {
response.addOpenMapId(map);
}
for (Map.Entry<String, Hero> heroEntry : heroManager.getEndlessHeroInfo().entrySet()) {
if (heroEntry.getValue().getLevel() < 20) {
if (heroEntry.getValue().getLevel(user) < 20) {
continue;
}
if (endlessHeroInfo.get(heroEntry.getKey()) == null) {
@ -2744,7 +2744,8 @@ public class MapLogic {
skinId = 0;
skinTime = 0;
}
TrailHero trailHero = new TrailHero(hero.getTemplateId(), HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero, false, 0), hero.getStar(), heroSkill, hero.getLevel(), hero.getGodSoulLv(),hero.getPropertyId());
Map<Integer, Long> notBufferAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero, false, 0);
TrailHero trailHero = new TrailHero(hero.getTemplateId(), notBufferAttribute, hero.getStar(), heroSkill, hero.getLevel(user), hero.getGodSoulLv(),hero.getPropertyId());
trailHero.setSkinId(skinId);
trailHero.setSkinTime(skinTime);
trailHero.setPosition(saveHero.getPosition());

View File

@ -63,7 +63,7 @@ public class Cmd_fixsj extends GmAbstract {
if(entry.getValue().get(hero.getTemplateId())<1){
continue;
}
if(hero.getLevel()!=1){
if(hero.getLevel(user)!=1){
continue;
}
if(hero.getStar()!= SCHero.getsCHero().get(hero.getTemplateId()).getStar()){

View File

@ -67,7 +67,7 @@ public class BloodLogic {
}
}
int position = heroInfo.getPosition();
heroAllAttribute.put(heroInfo.getHeroId(), new FamilyHeroInfo(hero.getTemplateId(), hero.getLevel(),hero.getStar(), heroAttributeMap,position,hero.getGodSoulLv(),hero.getPropertyId()));
heroAllAttribute.put(heroInfo.getHeroId(), new FamilyHeroInfo(hero.getTemplateId(), hero.getLevel(user),hero.getStar(), heroAttributeMap,position,hero.getGodSoulLv(),hero.getPropertyId()));
}
return heroAllAttribute;
}
@ -78,9 +78,9 @@ public class BloodLogic {
FamilyHeroInfo value = entry.getValue();
Map<Integer, Long> attribute = value.getAttribute();
if(fightResult[0]==0) {
attribute.put(HeroAttributeEnum.CurHP.getPropertyId(), Long.valueOf(fightResult[index]));
attribute.put(HeroAttributeEnum.CurHP.getPropertyId(), fightResult[index]);
}else{
attribute.put(HeroAttributeEnum.CurHP.getPropertyId(), Long.valueOf(0));
attribute.put(HeroAttributeEnum.CurHP.getPropertyId(), 0L);
}
value.setAttribute(attribute);
index++;

View File

@ -219,44 +219,31 @@ public class Hero extends MongoBase implements Comparable<Hero>,Cloneable {
/**
* 鸿鸿
*/
public int getLevel() {
try {
int rootId = getRootId();
User user = UserManager.getUser(rootId);
if (user == null){
String uid = id.substring(0, 8);
user = UserManager.getUser(Integer.parseInt(uid));
if (user == null){
return level;
}
}
HeroManager heroManager = user.getHeroManager();
// 英雄 配置表信息
SCHero scHero = SCHero.getsCHero().get(templateId);
int maxLevel = scHero.getMaxLevel();
public int getLevel(User user) {
HeroManager heroManager = user.getHeroManager();
// 英雄 配置表信息
SCHero scHero = SCHero.getsCHero().get(templateId);
int maxLevel = scHero.getMaxLevel();
// 如果鸿蒙碑开启 返回鸿蒙系统中神将返回鸿蒙碑等级
if (heroManager.getHongmengTablet() > 0) {
// 存在共鸣或者使者
if (heroManager.getResonances().containsValue(id) || heroManager.getHongmengGuards().containsValue(id)) {
// 鸿蒙碑超过等级上限,返回鸿蒙碑等级
if (heroManager.getHongmengTablet() <= maxLevel) {
return heroManager.getHongmengTablet();
}
// 最高品质大于等于10的英雄返回鸿蒙碑等级否则返回上限等级
return scHero.getMaxRank() >= 10 ? heroManager.getHongmengTablet() : maxLevel;
// 如果鸿蒙碑开启 返回鸿蒙系统中神将返回鸿蒙碑等级
if (heroManager.getHongmengTablet() > 0) {
// 存在共鸣或者使者
if (heroManager.getResonances().containsValue(id) || heroManager.getHongmengGuards().containsValue(id)) {
// 鸿蒙碑超过等级上限,返回鸿蒙碑等级
if (heroManager.getHongmengTablet() <= maxLevel) {
return heroManager.getHongmengTablet();
}
// 最高品质大于等于10的英雄返回鸿蒙碑等级否则返回上限等级
return scHero.getMaxRank() >= 10 ? heroManager.getHongmengTablet() : maxLevel;
}
if (heroManager.getResonances().containsValue(id)) {
// 模板
HongMengAddAttribute hongMengAddAttribute = heroManager.getResonanceAddition().get(HongMengAttributeEnum.LEVEL);
if (hongMengAddAttribute != null) {
// 是否达到限制等级
return Math.min(hongMengAddAttribute.value, maxLevel);
}
}
if (heroManager.getResonances().containsValue(id)) {
// 模板
HongMengAddAttribute hongMengAddAttribute = heroManager.getResonanceAddition().get(HongMengAttributeEnum.LEVEL);
if (hongMengAddAttribute != null) {
// 是否达到限制等级
return Math.min(hongMengAddAttribute.value, maxLevel);
}
} catch (Exception e) {
LOGGER.error("获取鸿蒙阵等级报错, id:{}, error:{}", id, e.getMessage());
}
return level;
}
@ -326,15 +313,16 @@ public class Hero extends MongoBase implements Comparable<Hero>,Cloneable {
/**
* breaId 鸿
*/
public int getBreakIdByHongMeng(HeroManager heroManager) {
public int getBreakIdByHongMeng(User user) {
HeroManager heroManager = user.getHeroManager();
// 英雄在共鸣池中
if (heroManager.getHongmengTablet() > 0){
if (heroManager.getResonances().containsValue(id) || heroManager.getHongmengGuards().containsValue(id)) {
return HeroLogic.getInstance().calRobotBreakByLevel(templateId, getLevel());
return HeroLogic.getInstance().calRobotBreakByLevel(templateId, getLevel(user));
}
}else{
if (heroManager.getResonances().containsValue(id)) {
return HeroLogic.getInstance().calRobotBreakByLevel(templateId, getLevel());
return HeroLogic.getInstance().calRobotBreakByLevel(templateId, getLevel(user));
}
}
return breakId;

View File

@ -43,7 +43,7 @@ public class HeroVo {
heroVo.id = hero.getId();
heroVo.templateId = hero.getTemplateId();
heroVo.star = hero.getStar();
heroVo.HMBreakId = hero.getBreakIdByHongMeng(heroManager);
heroVo.HMBreakId = hero.getBreakIdByHongMeng(user);
heroVo.starBreakId = hero.getStarBreakId();
heroVo.baubles = user.getEquipManager().getBaubles(hero.getBauBlesId());
heroVo.propertyId = hero.getPropertyId();

View File

@ -259,10 +259,10 @@ public class ExpeditionLogic {
//移除已经删除的hero
Set<String> removeId = heroHP.keySet().stream().filter(k -> {
if(heroMap.containsKey(k)) {
return heroMap.get(k).getLevel() < 20;
return heroMap.get(k).getLevel(user) < 20;
}
if(heroMapTemp.containsKey(k)) {
return heroMapTemp.get(k).getLevel() < 20;
return heroMapTemp.get(k).getLevel(user) < 20;
}
return !heroMap.containsKey(k) && !heroMapTemp.containsKey(k);
}).collect(Collectors.toSet());
@ -856,24 +856,28 @@ public class ExpeditionLogic {
}
}
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(),hero.getLevel(), heroAttributeMap).toString();
CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo
.newBuilder()
.setUnitId(Integer.toString(hero.getTemplateId()))
.setUnitSkillIds(skillSb.substring(0,skillSb.length()-1))
.setProperty(property.substring(0, property.length()-1))
.setPosition(teamPosHeroInfo.getPosition())
.setStar(hero.getStar())
.setSkinId(hero.getSkin())
.setForceScore(HeroLogic.getInstance().calTeamForce(user,teamId))
.setGodSoulLv(hero.getGodSoulLv())
.setPropertyId(hero.getPropertyId())
.build();
heroFightInfos.add(heroFightInfo);
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(),hero.getLevel(user), heroAttributeMap).toString();
buildFightUnitInfo(user, teamId, heroFightInfos, teamPosHeroInfo, hero, skillSb, property);
}
return HeroLogic.getInstance().combinationFightTeam(user,teamId,heroFightInfos);
}
public static void buildFightUnitInfo(User user, int teamId, List<CommonProto.FightUnitInfo> heroFightInfos, TeamPosHeroInfo teamPosHeroInfo, Hero hero, StringBuilder skillSb, String property) {
CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo
.newBuilder()
.setUnitId(Integer.toString(hero.getTemplateId()))
.setUnitSkillIds(skillSb.substring(0,skillSb.length()-1))
.setProperty(property.substring(0, property.length()-1))
.setPosition(teamPosHeroInfo.getPosition())
.setStar(hero.getStar())
.setSkinId(hero.getSkin())
.setForceScore(HeroLogic.getInstance().calTeamForce(user,teamId))
.setGodSoulLv(hero.getGodSoulLv())
.setPropertyId(hero.getPropertyId())
.build();
heroFightInfos.add(heroFightInfo);
}
public void getAllTreasureInfo(ISession session, MessageTypeProto.MessageType messageType) throws Exception {
int uid = session.getUid();
User user = UserManager.getUser(uid);

View File

@ -357,7 +357,7 @@ public class FightUtil {
}
private static void getHeroPropertyBuid(User user, List<CommonProto.FightUnitInfo> heroFightInfos, TeamPosHeroInfo teamPosHeroInfo, Hero hero, Map<Integer, Long> heroAttributeMap, StringBuilder propertySb, String heroSkill) {
getHeroPropertyBuid2(heroFightInfos, teamPosHeroInfo, hero, heroAttributeMap, propertySb, heroSkill, hero.getLevel(), hero.getStar(), hero.getGodSoulLv());
getHeroPropertyBuid2(heroFightInfos, teamPosHeroInfo, hero, heroAttributeMap, propertySb, heroSkill, hero.getLevel(user), hero.getStar(), hero.getGodSoulLv());
}
private static void getHeroPropertyBuid2(List<CommonProto.FightUnitInfo> heroFightInfos, TeamPosHeroInfo teamPosHeroInfo, Hero hero, Map<Integer, Long> heroAttributeMap, StringBuilder propertySb, String heroSkill, int level, int star, int godSoulLv) {
@ -443,7 +443,7 @@ public class FightUtil {
StringBuilder skillSb = new StringBuilder();
StringBuilder propertySb = new StringBuilder();
String heroSkill = HeroLogic.getInstance().getHeroSkills(user, hero, skillSb).toString();
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(), hero.getLevel(), heroAttributeMap).toString();
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(), hero.getLevel(user), heroAttributeMap).toString();
CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo
.newBuilder()
.setUnitId(Integer.toString(hero.getTemplateId()))
@ -612,7 +612,7 @@ public class FightUtil {
StringBuilder skillSb = new StringBuilder();
String heroSkill = HeroLogic.getInstance().getHeroSkills(userByRpc, hero, skillSb).toString();
Map<Integer, Long> attributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(userByRpc, hero, false, teamId);
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(), hero.getLevel(), attributeMap).toString();
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(), hero.getLevel(userByRpc), attributeMap).toString();
CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo
.newBuilder()
.setUnitId(Integer.toString(hero.getTemplateId()))
@ -663,7 +663,7 @@ public class FightUtil {
StringBuilder stringBuilder = new StringBuilder();
StringBuilder propertySb = new StringBuilder();
String heroSkill = HeroLogic.getInstance().getYuxuHeroSkills(user, hero, yuxuHero,stringBuilder).toString();
getHeroPropertyBuid2(heroFightInfos, teamPosHeroInfo, hero, heroAttributeMap, propertySb, heroSkill, yuxuHero.getLevel(), yuxuHero.getStar(), yuxuHero.getGodSoulLv());
getHeroPropertyBuid2(heroFightInfos, teamPosHeroInfo, hero, heroAttributeMap, propertySb, heroSkill, yuxuHero.getLevel(user), yuxuHero.getStar(), yuxuHero.getGodSoulLv());
}
//玉虚不继承任何英雄外的技能
return CommonProto.FightTeamInfo.

View File

@ -57,7 +57,7 @@ public enum PassiveskillCalEnum {
float[] value = config.getValue();
int battlePropertyId = (int) value[0];
SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByBattlePID(battlePropertyId);
int level = hero.getLevel();
int level = hero.getLevel(user);
int times=level-100;
if(times<=0){
return;

View File

@ -10,6 +10,7 @@ import com.ljsd.jieling.logic.dao.Hero;
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.expedition.ExpeditionLogic;
import com.ljsd.jieling.logic.hero.HeroLogic;
import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.logic.store.StoreLogic;
@ -35,7 +36,7 @@ public class HardStageLogic {
private static final Logger LOGGER = LoggerFactory.getLogger(HardStageLogic.class);
private static Map<Integer, List<Integer>> reportRecord;//全服第一次三星通过,最快速度三星通过
// private static Map<Integer, List<Integer>> reportRecord;//全服第一次三星通过,最快速度三星通过
private static int hardStageBuffCopy = 100;//buff类型-赋值6个相同神将
private static int hardStageBuffLimit = 101;//buff类型-只能上阵限制类型神将
@ -56,7 +57,7 @@ public class HardStageLogic {
if(map.containsKey(maxChapter.getAsInt())){
int maxId = map.get(maxChapter.getAsInt()).getNodeList().stream().mapToInt(HardStageNode::getId).max().getAsInt();
if(map.get(maxChapter.getAsInt()).getNodeList().stream().filter(n -> n.getId() == maxId && n.isHasPass()).count() >0){
if(map.get(maxChapter.getAsInt()).getNodeList().stream().anyMatch(n -> n.getId() == maxId && n.isHasPass())){
SHardStage config = SHardStage.getConfigMap().get(maxId);
if(config != null){
if (SHardStage.getPreList(config.getId()) != null) {
@ -116,13 +117,6 @@ public class HardStageLogic {
return builder;
}
/**
*
*/
public static void fight(ISession session, int teamId, int nodeId) {
}
/**
*
*/
@ -139,17 +133,10 @@ public class HardStageLogic {
}
}
/**
*
*/
public static void getHSReport() {
}
/**
*
*/
public static int passReward(User user, HardStageNode node, int[] num, List<Integer> dropList) throws Exception {
public static int passReward(HardStageNode node, int[] num, List<Integer> dropList) {
int addStar = 0;
SHardStage config = SHardStage.getConfigMap().get(node.getId());
int currentStar = node.getState();
@ -179,7 +166,7 @@ public class HardStageLogic {
//第一星
rewardId = config.getReward1()[0];
}
if (addDropAndStar(node, dropList, rewardId, user)) {
if (addDropAndStar(node, dropList, rewardId)) {
node.setState(node.getState() + (int) increase);
addStar += 1;
}
@ -218,7 +205,7 @@ public class HardStageLogic {
if (nodeConfig.getHardStageBuff() != 0) {
buff = SHardStageBuff.getConfigMap().get(nodeConfig.getHardStageBuff());
if (buff != null && buff.getType() == hardStageBuffLimit) {
if (!Arrays.stream(buff.getVocation()).boxed().anyMatch(n -> n.equals(Integer.valueOf(hero.getPropertyId())))) {
if (Arrays.stream(buff.getVocation()).boxed().noneMatch(n -> n.equals(hero.getPropertyId()))) {
continue;
}
}
@ -235,20 +222,8 @@ public class HardStageLogic {
}
}
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(), hero.getLevel(), heroAttributeMap).toString();
CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo
.newBuilder()
.setUnitId(Integer.toString(hero.getTemplateId()))
.setUnitSkillIds(skillSb.substring(0, skillSb.length() - 1))
.setProperty(property.substring(0, property.length() - 1))
.setPosition(teamPosHeroInfo.getPosition())
.setStar(hero.getStar())
.setSkinId(hero.getSkin())
.setForceScore(HeroLogic.getInstance().calTeamForce(user,teamId))
.setGodSoulLv(hero.getGodSoulLv())
.setPropertyId(hero.getPropertyId())
.build();
heroFightInfos.add(heroFightInfo);
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(), hero.getLevel(user), heroAttributeMap).toString();
ExpeditionLogic.buildFightUnitInfo(user, teamId, heroFightInfos, teamPosHeroInfo, hero, skillSb, property);
}
//TOO 添加被动技能
@ -267,14 +242,14 @@ public class HardStageLogic {
HardStageNode node = chapterMap.get(nodeConfig.getChapter()).getNode(nodeConfig.getId());
int star = 0;
if (node.getType() == 1) {//大节点
star = passReward(user, node, resultNum, dropList);//星级通关奖励
star = passReward(node, resultNum, dropList);//星级通关奖励
chapterMap.get(nodeConfig.getChapter()).addStars(star);
if (!node.isHasPass()) {
node.setHasPass(true);
dropList.addAll(getFirstRewards(user, nodeConfig));//关卡通过奖励
dropList.addAll(getFirstRewards(nodeConfig));//关卡通过奖励
updateChapterAndNodeLevel(user,nodeConfig);
if (SHardStage.getPreList(nodeConfig.getId()) != null) {
SHardStage.getPreList(nodeConfig.getId()).stream().forEach(n -> {
SHardStage.getPreList(nodeConfig.getId()).forEach(n -> {
if (n != null) {
int level = user.getPlayerInfoManager().getLevel();
user.getHardStageManager().openNewNode(level, n);
@ -288,7 +263,7 @@ public class HardStageLogic {
node.setHasPass(true);
node.setState(1);
user.getHardStageManager().setCurNode(nodeConfig.getSection());//通过的关卡
dropList.addAll(getFirstRewards(user, nodeConfig));//关卡通过奖励
dropList.addAll(getFirstRewards(nodeConfig));//关卡通过奖励
updateChapterAndNodeLevel(user,nodeConfig);
user.getHardStageManager().updateString("chapterMap." + nodeConfig.getChapter(), chapterMap.get(nodeConfig.getChapter()));
}
@ -315,8 +290,8 @@ public class HardStageLogic {
/**
*
*/
public static List<Integer> getFirstRewards(User user, SHardStage nodeConfig) throws Exception {
List<Integer> dropList = new ArrayList<Integer>();
public static List<Integer> getFirstRewards(SHardStage nodeConfig) {
List<Integer> dropList = new ArrayList<>();
for (int rewardGroupId : nodeConfig.getPassReward()) {
dropList.add(rewardGroupId);
}
@ -327,11 +302,10 @@ public class HardStageLogic {
*
*/
public static CommonProto.Drop.Builder getReward(User user, int rewardId) throws Exception {
CommonProto.Drop.Builder drop = ItemUtil.drop(user, new int[]{rewardId}, 1, 0, BIReason.HARD_STAGE_GET);
return drop;
return ItemUtil.drop(user, new int[]{rewardId}, 1, 0, BIReason.HARD_STAGE_GET);
}
private static boolean addDropAndStar(HardStageNode node, List<Integer> dropList, int rewardGroupId, User user) throws Exception {
private static boolean addDropAndStar(HardStageNode node, List<Integer> dropList, int rewardGroupId) {
if(!node.getRewardMap().containsKey(rewardGroupId)){
node.getRewardMap().put(rewardGroupId,false);
}
@ -357,11 +331,11 @@ public class HardStageLogic {
/**
*
*/
public static void refreshInfoByLevel(User user,int level) throws Exception {
int curNodeId = user.getHardStageManager().getCurNode();
int chapterId = user.getHardStageManager().getCurChapter();
List<Integer> noOpenId = user.getHardStageManager().getNoOpenId();
List<Integer> needDel = Lists.newArrayList();
public static void refreshInfoByLevel(User user,int level) {
// int curNodeId = user.getHardStageManager().getCurNode();
// int chapterId = user.getHardStageManager().getCurChapter();
List<Integer> noOpenId = user.getHardStageManager().getNoOpenId();
List<Integer> needDel = Lists.newArrayList();
for (int id:noOpenId) {
/*if (curNodeId == 0 && chapterId == 0) {
user.getHardStageManager().getChapterMap(user);
@ -380,9 +354,9 @@ public class HardStageLogic {
}
}
for (int del:needDel) {
noOpenId.remove(noOpenId.indexOf(del));
noOpenId.remove((Integer) del);
}
if(needDel.size()>0){
if(!needDel.isEmpty()){
user.getHardStageManager().setNoOpenId(noOpenId);
needDel.clear();
}
@ -407,11 +381,11 @@ public class HardStageLogic {
/**
*
*/
public static int checkStarNum(StringBuffer charString) throws Exception{
public static int checkStarNum(StringBuffer charString) {
int num=0;
char[] chars = charString.toString().toCharArray();
for(int i = 0; i < chars.length; i++) {
if(chars[i]=='1') {
for (char aChar : chars) {
if (aChar == '1') {
num++;
}
}
@ -423,18 +397,12 @@ public class HardStageLogic {
*/
public static int getHardStageStarsSum(User user) throws Exception {
Map<Integer, HardStageChapter> map = user.getHardStageManager().getChapterMap(user);
if (map.values() != null) {
int starSum = map.values().stream().mapToInt(n -> n.getStars()).sum();
return starSum;
}
return 0;
return map.values().stream().mapToInt(HardStageChapter::getStars).sum();
}
/**
* gm
*
* @param
*/
public static void test(User user,int id) throws Exception{
user.getHardStageManager().getChapterMap(user);
@ -455,7 +423,7 @@ public class HardStageLogic {
//Set key = map.keySet();
for(Integer key:map.keySet()){
HardStageChapter chapter = map.get(key);
chapter.getNodeList().stream().forEach(n->
chapter.getNodeList().forEach(n->
{
if(!n.isHasPass()){
if(n.getType()== 1){

View File

@ -1377,6 +1377,13 @@ public class HeroLogic {
return result;
}
/**
*
* @param session
* @param heroId
* @param targetLevel
* @throws Exception
*/
public void upHeroLevel(ISession session, String heroId, int targetLevel) throws Exception {
User user = UserManager.getUser(session.getUid());
Hero hero = user.getHeroManager().getHero(heroId);
@ -1391,7 +1398,7 @@ public class HeroLogic {
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
}
int oldLevel = hero.getLevel();
int oldLevel = hero.getOriginalLevel();
//判断需要进行升级还是进行突破
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.BREAK_TYPE, scHero.getStar());
SCHeroRankUpConfig scHeroRankUpConfig = null;
@ -1419,7 +1426,7 @@ public class HeroLogic {
}
breakId = scHeroRankUpConfig.getId();
} else {
if (hero.getLevel() > targetLevel) {
if (hero.getOriginalLevel() > targetLevel) {
throw new ErrorCodeException(ErrorCode.newDefineCode("level wrong"));
}
for (; oldLevel < targetLevel; oldLevel++) {
@ -1450,7 +1457,7 @@ public class HeroLogic {
//校验消耗
boolean result = ItemUtil.itemCost(user, consumeMap, BIReason.UP_HERO_LEVEL_CONSUME, hero.getTemplateId());
if (!result) {
int heroLevel = hero.getLevel();
int heroLevel = hero.getOriginalLevel();
for (; oldLevel < targetLevel; oldLevel++) {
SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsCHero().get(oldLevel);
if (!ItemUtil.itemCost(user, sHeroLevlConfig.getConsume(), BIReason.UP_HERO_LEVEL_CONSUME, hero.getTemplateId())) {
@ -1505,7 +1512,7 @@ public class HeroLogic {
}
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE, scHero.getStar());
SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByType.get(oldStar);
if (targetHero.getLevel() < scHeroRankUpConfig.getLimitLevel()) {
if (targetHero.getOriginalLevel() < scHeroRankUpConfig.getLimitLevel()) {
throw new ErrorCodeException(ErrorCode.HERO_LEVE_DOWN);
}
@ -1567,7 +1574,7 @@ public class HeroLogic {
if (reportConsumeHero.length() > 0) {
reportConsumeHero.append("|");
}
reportConsumeHero.append(hero.getTemplateId()).append("-").append(hero.getStar()).append("-").append(hero.getLevel());
reportConsumeHero.append(hero.getTemplateId()).append("-").append(hero.getStar()).append("-").append(hero.getOriginalLevel());
if (1 == isSame && hero.getTemplateId() != targetHero.getTemplateId()) {
throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH);
@ -1738,7 +1745,7 @@ public class HeroLogic {
Map<Integer, Long> result = new HashMap<>();
int templateId = hero.getTemplateId();
SCHero scHero = SCHero.getsCHero().get(templateId);
SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsCHero().get(hero.getLevel());
SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsCHero().get(hero.getLevel(user));
int[][] characterLevelPara = sHeroLevlConfig.getCharacterLevelPara();
Map<Integer, Object> paraForHero = getParaForHero(user, hero);
Map<Integer, Float> baseValueMap = new HashMap<>();
@ -1959,7 +1966,7 @@ public class HeroLogic {
private Map<Integer, Object> getParaForHero(User user, Hero hero) {
SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
return getParaRate(scHero, hero.getStar(), hero.getLevel(), hero.getBreakIdByHongMeng(user.getHeroManager()));
return getParaRate(scHero, hero.getStar(), hero.getLevel(user), hero.getBreakIdByHongMeng(user));
}
private Map<Integer, Object> getParaForRobotHero(SCHero scHero, int level, int breakId) {
@ -2473,7 +2480,7 @@ public class HeroLogic {
} else {
heroAttributeMap = calHeroFinalAttributeWhenInMap(user, hero, false, teamId);
}
return getHeroPropertyBuilder(sb, hero.getPropertyId(), hero.getLevel(), heroAttributeMap);
return getHeroPropertyBuilder(sb, hero.getPropertyId(), hero.getLevel(user), heroAttributeMap);
}
public StringBuilder getHeroPropertyBuilder(StringBuilder sb, int propertyId, int heroLevel, Map<Integer, Long> heroAttributeMap) {
@ -4588,7 +4595,7 @@ public class HeroLogic {
itemId.add(item.getItemId());
itemNum.add((int) item.getItemNum());
});
ReportUtil.onReportEvent(user, ReportEventEnum.HERO_COMPOSITION.getType(), String.valueOf(hero.getTemplateId()), hero.getLevel(), hero.getStar(), itemId, itemNum);
ReportUtil.onReportEvent(user, ReportEventEnum.HERO_COMPOSITION.getType(), String.valueOf(hero.getTemplateId()), hero.getOriginalLevel(), hero.getStar(), itemId, itemNum);
}
/**
@ -6356,13 +6363,13 @@ public class HeroLogic {
int num = Math.min(heroManager.getHeroMap().size(), averageNum);
// 获取玩家全部英雄
List<Hero> heroes = heroManager.getHeroMap().values().stream()
.sorted(Comparator.comparing(v -> v.getLevel(), Comparator.reverseOrder()))
.sorted(Comparator.comparing(v -> v.getLevel(user), Comparator.reverseOrder()))
.collect(Collectors.toList())
.subList(0, num);
// 等级相加
int count = 0;
for (int i = 0; i < num; i++) {
count += heroes.get(i).getLevel();
count += heroes.get(i).getLevel(user);
}
// 避免zero异常
if (count == 0) {

View File

@ -779,7 +779,7 @@ public class PlayerLogic {
teamOneTeamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder()
.setHeroid(hero.getId())
.setHeroTid(hero.getTemplateId())
.setLevel(yuxuHero.getLevel())
.setLevel(yuxuHero.getLevel(user))
.setStar(yuxuHero.getStar())
.setPosition(heroInfo.getPosition())
.setSkinId(hero.getSkin())
@ -937,7 +937,7 @@ public class PlayerLogic {
if(userInMem == null){
throw new ErrorCodeException(ErrorCode.FRIENDS_USER_NULL);
}
Hero hero = userInMem.getHeroManager().getHeroMap().get(heroId);
Hero hero = userInMem.getHeroManager().getHero(heroId);
if(hero == null){
throw new ErrorCodeException(ErrorCode.newDefineCode("hero no"));
}
@ -968,7 +968,7 @@ public class PlayerLogic {
}
builder.setForce(HeroLogic.getInstance().calForce(heroNotBufferAttribute));
builder.setHero(CBean2Proto.getHero(hero));
builder.setHero(CBean2Proto.getHongmengHero(userInMem, hero));
builder.setPlayerGiftLv(HeroLogic.getInstance().getGiftPotentialLv(userInMem, heroId));
Map<Integer, Integer> guildSkill = userInMem.getGuildMyInfo().getGuildSkill();
int profession = SCHero.getsCHero().get(hero.getTemplateId()).getProfession();

View File

@ -89,8 +89,6 @@ public class CBean2Proto {
/**
*
* @param user
* @return
*/
public static List<CommonProto.HeadFrameList> getHeadFrameList(User user){
List<CommonProto.HeadFrameList> headFrameLists = new ArrayList<>();
@ -323,6 +321,23 @@ public class CBean2Proto {
.setFirstOrMini(function);
}
/**
* 鸿
* @param user
* @param hero
* @return
*/
public static CommonProto.Hero getHongmengHero(User user, Hero hero){
CommonProto.Hero heroPro = getHero(hero);
heroPro.toBuilder().setLevel(hero.getLevel(user));
return heroPro;
}
/**
* proto
* @param hero
* @return
*/
public static CommonProto.Hero getHero(Hero hero){
// 魂印
List<CommonProto.SoulPos> soulPoss = new ArrayList<>();
@ -357,7 +372,7 @@ public class CBean2Proto {
.newBuilder()
.setId(hero.getId())
.setHeroId(hero.getTemplateId())
.setLevel(hero.getLevel())
.setLevel(hero.getOriginalLevel())
.setStar(hero.getStar())
.setBreakId(hero.getBreakId())
.setStarBreakId(hero.getStarBreakId())
@ -1039,7 +1054,7 @@ public class CBean2Proto {
return CommonProto.TeamSimpleInfo.newBuilder()
.setHeroid(hero.getId())
.setHeroTid(hero.getTemplateId())
.setLevel(hero.getLevel())
.setLevel(hero.getLevel(user))
.setStar(hero.getStar())
.setPosition(position)
.setSkinId(hero.getSkin())
@ -1064,9 +1079,9 @@ public class CBean2Proto {
public static CommonProto.TeamSimpleInfo getSimpleTeamInfoByPokeMon(Pokemon pokemon,int position){
return CommonProto.TeamSimpleInfo.newBuilder().setHeroid(pokemon.getId()).setHeroTid(pokemon.getTmpId()).setLevel(pokemon.getLevel()).setStar(pokemon.getStar()).setPosition(position).build();
}
public static CommonProto.TeamSimpleInfo getSimpleTeamInfoByPokeMon( com.ljsd.jieling.thrift.idl.Pokemon pokemon,int position){
return CommonProto.TeamSimpleInfo.newBuilder().setHeroid(pokemon.getId()).setHeroTid(pokemon.getTmpId()).setLevel(pokemon.getLevel()).setStar(pokemon.getStar()).setPosition(position).build();
}
// public static CommonProto.TeamSimpleInfo getSimpleTeamInfoByPokeMon( com.ljsd.jieling.thrift.idl.Pokemon pokemon,int position){
// return CommonProto.TeamSimpleInfo.newBuilder().setHeroid(pokemon.getId()).setHeroTid(pokemon.getTmpId()).setLevel(pokemon.getLevel()).setStar(pokemon.getStar()).setPosition(position).build();
// }
public static CommonProto.TeamSimpleInfo getSimpleTeamInfoByMagicSoldier(MagicSoldier soldier){
return CommonProto.TeamSimpleInfo.newBuilder()
.setHeroid(soldier.getId())
@ -1151,7 +1166,7 @@ public class CBean2Proto {
return list;
}
/**
/*
*
* @param user
* @return