fix map team

back_recharge
wangyuan 2019-09-10 12:01:05 +08:00
parent 2a286218e6
commit 11376e12b1
1 changed files with 18 additions and 11 deletions

View File

@ -1540,25 +1540,32 @@ public class MapLogic {
}
int teamId = mapManager.getTeamId();
List<TeamPosHeroInfo> team = user.getTeamPosManager().getTeamPosForHero().get(teamId);
for (TeamPosHeroInfo teamPosHeroInfo : team) {
mapManager.updateHeroOneAttribute(teamPosHeroInfo.getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[teamPosHeroInfo.getPosition()+1]);
}
if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4&&teamId==401){
if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){
mapManager.updateEndlessFightCount(mapManager.getEndlessMapInfo().getFightCount()+1);
Set<String> cacheRemove = new HashSet<>();
for (int i = 0 ; i <team.size();i++) {
Hero hero = user.getHeroManager().getHero(team.get(i).getHeroId());
Map<Integer, Integer> heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,teamId);
int per =(int) (checkResult[i+2] / (double) heroAllAttribute.get(HeroAttributeEnum.Hp.getPropertyId())*10000);
mapManager.updateEndlessHeroHp(team.get(i).getHeroId(),per);
Map<Integer, Integer> currAttrMap = mapManager.getHeroAllAttributeMap().get(hero.getId());
if(currAttrMap==null){
continue;
mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]);
if(per<=0){
cacheRemove.add(hero.getId());
}
if(currAttrMap.get(HeroAttributeEnum.CurHP.getPropertyId())==0){
mapManager.removeOneHeroAttribute(hero.getId());
}else{
mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]);
}
if(!cacheRemove.isEmpty()){
Iterator<TeamPosHeroInfo> iterator = team.iterator();
while (iterator.hasNext()){
TeamPosHeroInfo next = iterator.next();
if(cacheRemove.contains(next.getHeroId())){
iterator.remove();
}
}
user.getTeamPosManager().updateTeamPosByTeamId(teamId,team);
}
}else{
for (TeamPosHeroInfo teamPosHeroInfo : team) {
mapManager.updateHeroOneAttribute(teamPosHeroInfo.getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[teamPosHeroInfo.getPosition()+1]);
}
}
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMonsterGroup.getRewardgroup(), 1, 1, BIReason.MAP_GENERAL_FIGHT_REWARD);