robotlevel

back_recharge
wangyuan 2019-05-20 12:00:16 +08:00
parent a33d66e0e7
commit 204e2ef785
3 changed files with 43 additions and 30 deletions

View File

@ -110,20 +110,20 @@ public class MapLogic {
return;
}
// TODO 可进入地图条件判断
// int[][] openRule = sChallengeConfig.getOpenRule();
// if (openRule != null && openRule.length > 0) {
// if (user.getPlayerInfoManager().getLevel() < openRule[0][1]) {
// MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "需要等级:" + openRule[0][1]);
// return;
// }
// LevelDifficulty levelDifficulty = user.getLevelDifficultyManager().getLevelDifficultyInfosMap().get(openRule[0][0]);
// if (levelDifficulty == null && levelDifficulty.getState() != 4) {
// if (user.getPlayerInfoManager().getLevel() < openRule[0][1]) {
// MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "需要通关:" + openRule[0][0]);
// return;
// }
// }
// }
int[][] openRule = sChallengeConfig.getOpenRule();
if (openRule != null && openRule.length > 0) {
if (user.getPlayerInfoManager().getLevel() < openRule[0][1]) {
MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "需要等级:" + openRule[0][1]);
return;
}
LevelDifficulty levelDifficulty = user.getLevelDifficultyManager().getLevelDifficultyInfosMap().get(openRule[0][0]);
if (levelDifficulty == null || levelDifficulty.getState() != 4) {
if (user.getPlayerInfoManager().getLevel() < openRule[0][1]) {
MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "需要通关:" + openRule[0][0]);
return;
}
}
}
SChallengeSetting sChallengeSetting = SChallengeSetting.challengeSetting;
if (mapManager.getDayFightCount() >= sChallengeSetting.getLimit() + mapManager.getBuyFightCount()) {
LOGGER.info("enterMap() uid=>{} max fight count =>{} ", uid, mapManager.getDayFightCount());

View File

@ -185,7 +185,7 @@ public class BehaviorUtil {
SCHero scHero = SCHero.getsCHero().get(heroTid);
List<Integer> skillIds = scHero.getSkillListByStar().get(heroStar);
String heroSkill = HeroLogic.getInstance().getRobotHeroSkills(skillIds,skillSb).toString();
String property = HeroLogic.getInstance().getRobotHeroProperty(sArenaRobotConfig,heroTid,propertySb).toString();
String property = HeroLogic.getInstance().getRobotHeroProperty(sArenaRobotConfig,scHero,propertySb).toString();
CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo
.newBuilder()
.setUnitId(Integer.toString(heroTid))

View File

@ -776,24 +776,28 @@ public class HeroLogic {
return sb;
}
public StringBuilder getRobotHeroProperty(SArenaRobotConfig sArenaRobotConfig,int heroTid, StringBuilder sb){
public StringBuilder getRobotHeroProperty(SArenaRobotConfig sArenaRobotConfig,SCHero scHero, StringBuilder sb){
int[] differDemonsId = sArenaRobotConfig.getDifferDemonsId();
int differDemonsLv = sArenaRobotConfig.getDifferDemonsLv();
int robotLevel = sArenaRobotConfig.getRobotLevel();
Map<Integer, Integer> robotHeroAttribute = calRobotHeroAttribute(heroTid, robotLevel, sArenaRobotConfig.getBreakId(), differDemonsId, differDemonsLv);
int robotLevel = sArenaRobotConfig.getRoleLv();
Map<Integer, Integer> robotHeroAttribute = calRobotHeroAttribute(scHero, robotLevel, sArenaRobotConfig.getBreakId(), differDemonsId, differDemonsLv);
sb.append(robotLevel).append(DIVISION);
SCHero scHero = SCHero.getsCHero().get(heroTid);
List<Integer> templatePropetyIds = transTemplateByHeroPropertyName.get(scHero.getPropertyName());
for(Integer templatePropetyId:templatePropetyIds){
Integer propertyValue = robotHeroAttribute.get(templatePropetyId);
if(propertyValue == null){
propertyValue =0;
}
if(templatePropetyId>100){
sb.append(propertyValue*0.1/(robotLevel+10)).append(DIVISION);
SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByPID(templatePropetyId);
if(sPropertyConfig.getIfFormula() == 1){
sb.append(propertyValue*0.1/(sArenaRobotConfig.getRoleLv()+10)/100).append(DIVISION);
}else{
sb.append(propertyValue).append(DIVISION);
if(sPropertyConfig.getStyle() == GlobalsDef.PERCENT_TYPE){
sb.append(propertyValue/10000f).append(DIVISION);
}else{
sb.append(propertyValue).append(DIVISION);
}
}
}
@ -872,15 +876,21 @@ public class HeroLogic {
}
public Map<Integer,Integer> calRobotHeroAttribute(int template,int heroLevel,int heroBrekId,int[] pokemonIds,int pokemonLevel){
Map<Integer, Integer> heroAllAttribute = calRobotHeroAllAttribute(template,heroLevel,heroBrekId);
public Map<Integer,Integer> calRobotHeroAttribute(SCHero scHero,int heroLevel,int heroBrekId,int[] pokemonIds,int pokemonLevel){
Map<Integer, Integer> heroAllAttribute = calRobotHeroAllAttribute(scHero.getId(),heroLevel,heroBrekId);
heroAllAttribute.put(HeroAttributeEnum.CurHP.getPropertyId(),heroAllAttribute.get(GlobalsDef.HP_TYPE));
if(pokemonIds!=null){
int profession = scHero.getProfession();
for(Integer pokemonId : pokemonIds){
int[] comonpentList = SDifferDemonsConfig.getsDifferDemonsConfigByPokenID(pokemonId).getComonpentList();
for(Integer comonpentId : comonpentList){
Map<Integer, SDifferDemonsComonpentsConfig> sDifferDemonsComonpentsConfigMap = SDifferDemonsComonpentsConfig.getsDifferDemonsComonpentsConfigMap(comonpentId);
SDifferDemonsComonpentsConfig sDifferDemonsComonpentsConfig = sDifferDemonsComonpentsConfigMap.get(pokemonLevel);
Map<Integer, Map<Integer, Integer>> extraAddMap = sDifferDemonsComonpentsConfig.getExtraAddMap();
if(extraAddMap!=null&&extraAddMap.containsKey(profession)){
Map<Integer, Integer> professionAddMap = extraAddMap.get(profession);
combinedAttribute(professionAddMap,heroAllAttribute);
}
combinedAttribute(sDifferDemonsComonpentsConfig.getBaseAttribute(),heroAllAttribute);
}
}
@ -1257,10 +1267,11 @@ public class HeroLogic {
List<Integer> heroList = sArenaRobotConfig.getHeroList();
int[] differDemonsId = sArenaRobotConfig.getDifferDemonsId();
int differDemonsLv = sArenaRobotConfig.getDifferDemonsLv();
int robotLevel = sArenaRobotConfig.getRobotLevel();
int heroLevel = sArenaRobotConfig.getRoleLv();
for(Integer heroTid :heroList){
int heroBreakId = sArenaRobotConfig.getBreakId();
Map<Integer, Integer> robotHeroAttribute = calRobotHeroAttribute(heroTid, robotLevel, heroBreakId, differDemonsId, differDemonsLv);
SCHero scHero = SCHero.getsCHero().get(heroTid);
Map<Integer, Integer> robotHeroAttribute = calRobotHeroAttribute(scHero, heroLevel, heroBreakId, differDemonsId, differDemonsLv);
totalForce+=calForce(robotHeroAttribute);
}
return totalForce;
@ -1270,10 +1281,10 @@ public class HeroLogic {
Map<Integer, SArenaRobotConfig> integerSArenaRobotConfigMap = SArenaRobotConfig.getsArenaRobotConfigMap();
for(SArenaRobotConfig sArenaRobotConfig : integerSArenaRobotConfigMap.values()){
List<Integer> heroList = sArenaRobotConfig.getHeroList();
int robotLevel = sArenaRobotConfig.getRobotLevel();
int heroLevel = sArenaRobotConfig.getRobotLevel();
Map<Integer,Integer> starHeroMap = new HashMap<>();
for(Integer heroTid :heroList){
int heroBreakId = calRobotStarByLevel(heroTid, robotLevel,starHeroMap);
int heroBreakId = calRobotStarByLevel(heroTid, heroLevel,starHeroMap);
sArenaRobotConfig.setBreakId(heroBreakId);
sArenaRobotConfig.setStarOfHeroMap(starHeroMap);
}
@ -1285,8 +1296,10 @@ public class HeroLogic {
Map<Integer, List<TeamPosHeroInfo>> teamPosForHero = user.getTeamPosManager().getTeamPosForHero();
for (Map.Entry<Integer, List<TeamPosHeroInfo>> entry: teamPosForHero.entrySet() ){
List<TeamPosHeroInfo> values = entry.getValue();
if (values.contains(heroId)){
return true;
for(TeamPosHeroInfo teamPosHeroInfo : values){
if(heroId.equals(teamPosHeroInfo.getHeroId())){
return true;
}
}
}
return false;