鸿蒙阵bug修复
parent
7190830e5e
commit
de527d2f01
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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()));
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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()){
|
||||
|
|
|
|||
|
|
@ -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++;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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){
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue