血量战斗修改

back_recharge
lvxinran 2020-08-28 05:26:02 +08:00
parent e4fd71e3a5
commit f223f8217c
3 changed files with 43 additions and 41 deletions

View File

@ -2618,31 +2618,31 @@ public class MapLogic {
}
endlessMapInfo.setEndlessHeroInfo(endlessHeroInfo);
mapManager.setEndlessMapInfo(endlessMapInfo);
List<TeamPosHeroInfo> team = user.getTeamPosManager().getTeamPosForHero().get(GlobalsDef.ENDLESS_TEAM);
if(team!=null&&team.size()>0){
Set<String> cacheRemove = new HashSet<>();
Map<String, Map<Integer, Integer>> heroAllAttributeMap = mapManager.getHeroAllAttributeMap();
if(heroAllAttributeMap !=null){
for(Map.Entry<String, Map<Integer, Integer>> entry:heroAllAttributeMap.entrySet()){
if(entry.getValue().get(HeroAttributeEnum.CurHP.getPropertyId())==0){
cacheRemove.add(entry.getKey());
}
}
}
if(!cacheRemove.isEmpty()){
Iterator<TeamPosHeroInfo> iterator = team.iterator();
while (iterator.hasNext()){
TeamPosHeroInfo next = iterator.next();
if(cacheRemove.contains(next.getHeroId())){
if(heroAllAttributeMap.containsKey(next.getHeroId())){
mapManager.removeOneHeroAttribute(next.getHeroId());
}
iterator.remove();
}
}
user.getTeamPosManager().updateTeamPosByTeamId(GlobalsDef.ENDLESS_TEAM,team);
}
}
// List<TeamPosHeroInfo> team = user.getTeamPosManager().getTeamPosForHero().get(GlobalsDef.ENDLESS_TEAM);
// if(team!=null&&team.size()>0){
// Set<String> cacheRemove = new HashSet<>();
// Map<String, Map<Integer, Integer>> heroAllAttributeMap = mapManager.getHeroAllAttributeMap();
// if(heroAllAttributeMap !=null){
// for(Map.Entry<String, Map<Integer, Integer>> entry:heroAllAttributeMap.entrySet()){
// if(entry.getValue().get(HeroAttributeEnum.CurHP.getPropertyId())==0){
// cacheRemove.add(entry.getKey());
// }
// }
// }
// if(!cacheRemove.isEmpty()){
// Iterator<TeamPosHeroInfo> iterator = team.iterator();
// while (iterator.hasNext()){
// TeamPosHeroInfo next = iterator.next();
// if(cacheRemove.contains(next.getHeroId())){
// if(heroAllAttributeMap.containsKey(next.getHeroId())){
// mapManager.removeOneHeroAttribute(next.getHeroId());
// }
// iterator.remove();
// }
// }
// user.getTeamPosManager().updateTeamPosByTeamId(GlobalsDef.ENDLESS_TEAM,team);
// }
// }
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
}

View File

@ -215,19 +215,19 @@ public class EndlessMap extends AbstractMap{
int groupId = option[0];
PVEFightEvent pveFightEvent = new PVEFightEvent(uid, GlobalsDef.ENDLESS_TEAM, 10, "", GameFightType.MapFastFight, groupId, 3);
// List<TeamPosHeroInfo> endteam = user.getTeamPosManager().getTeamPosForHero().get(GlobalsDef.ENDLESS_TEAM);
// Map<String,Integer> bloodMap = new HashMap<>();
// Map<String, Integer> endlessHeroInfo = mapManager.getEndlessMapInfo().getEndlessHeroInfo();
// for (int i = 0 ; i <endteam.size();i++) {
//
// String heroId= endteam.get(i).getHeroId();
//// Hero hero = user.getHeroManager().getHero(endteam.get(i).getHeroId());
//// Map<Integer, Integer> heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,GlobalsDef.ENDLESS_TEAM);
//// int blood = (int)((heroAllAttribute.get(HeroAttributeEnum.Hp.getPropertyId())/10000d)* endlessHeroInfo.get(heroId));
//
// bloodMap.put(heroId,(10000-endlessHeroInfo.get(heroId))/100);
// }
// pveFightEvent.setAttackBloodMap(bloodMap);
List<TeamPosHeroInfo> endteam = user.getTeamPosManager().getTeamPosForHero().get(GlobalsDef.ENDLESS_TEAM);
Map<String,Integer> bloodMap = new HashMap<>();
Map<String, Integer> endlessHeroInfo = mapManager.getEndlessMapInfo().getEndlessHeroInfo();
for (int i = 0 ; i <endteam.size();i++) {
String heroId= endteam.get(i).getHeroId();
// Hero hero = user.getHeroManager().getHero(endteam.get(i).getHeroId());
// Map<Integer, Integer> heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,GlobalsDef.ENDLESS_TEAM);
// int blood = (int)((heroAllAttribute.get(HeroAttributeEnum.Hp.getPropertyId())/10000d)* endlessHeroInfo.get(heroId));
bloodMap.put(heroId,(10000-endlessHeroInfo.get(heroId))/100);
}
pveFightEvent.setAttackBloodMap(bloodMap);
//怪物剩余血量
FightResult fightResult = FightDispatcher.dispatcher(pveFightEvent);
int[] checkResult = fightResult.getCheckResult();
@ -251,17 +251,18 @@ public class EndlessMap extends AbstractMap{
int position = info.getPosition();
Hero hero = user.getHeroManager().getHero(info.getHeroId());
Map<Integer, Integer> heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,GlobalsDef.ENDLESS_TEAM);
int per = (int)(checkResult[position+1] / heroAllAttribute.get(HeroAttributeEnum.Hp.getPropertyId())*10000d);
int per = (int)(checkResult[position+1] *10000d / heroAllAttribute.get(HeroAttributeEnum.Hp.getPropertyId()));
if(checkResult[position+1]>0&&per<=0){
per = 1;
}
System.out.println("per"+per);
mapManager.updateEndlessHeroHp(info.getHeroId(),per);
}
endlessRefreshMonster(uid,mapManager.getTriggerXY());
List<TeamPosHeroInfo> updateTeam = new ArrayList<>();
Map<String, Integer> endlessHeroInfo = mapManager.getEndlessMapInfo().getEndlessHeroInfo();
Map<String, Integer> endlessThisHeroInfo = mapManager.getEndlessMapInfo().getEndlessHeroInfo();
for(TeamPosHeroInfo info:team){
if(endlessHeroInfo.containsKey(info.getHeroId())&&endlessHeroInfo.get(info.getHeroId())!=0){
if(endlessThisHeroInfo.containsKey(info.getHeroId())&&endlessThisHeroInfo.get(info.getHeroId())!=0){
updateTeam.add(info);
}
}

View File

@ -290,6 +290,7 @@ public class FightUtil {
.setUnitSkillIds(heroSkill.substring(0,heroSkill.length()-1))
.setProperty(property.substring(0, property.length()-1))
.setStar(hero.getStar())
.setPosition(teamPosHeroInfo.getPosition())
.build();
heroFightInfos.add(heroFightInfo);
}