法宝升星

back_recharge
lvxinran 2019-09-04 19:08:14 +08:00
parent 2c4a2f2218
commit 489f906a00
5 changed files with 30 additions and 16 deletions

View File

@ -1,27 +1,27 @@
package com.ljsd.jieling.handler.map; package com.ljsd.jieling.handler.map;
public class EndlessHero { public class EndlessHero {
private int maxHp; private double maxHp;
private int curHp; private double curHp;
public int getMaxHp() { public double getMaxHp() {
return maxHp; return maxHp;
} }
public int getCurHp() { public double getCurHp() {
return curHp; return curHp;
} }
public void setMaxHp(int maxHp) { public void setMaxHp(double maxHp) {
this.maxHp = maxHp; this.maxHp = maxHp;
} }
public void setCurHp(int curHp) { public void setCurHp(double curHp) {
this.curHp = curHp; this.curHp = curHp;
} }
public EndlessHero(int maxHp, int curHp) { public EndlessHero(double maxHp, double curHp) {
this.maxHp = maxHp; this.maxHp = maxHp;
this.curHp = curHp; this.curHp = curHp;
} }

View File

@ -209,7 +209,7 @@ public class MapLogic {
List<TeamPosHeroInfo> teamPosForHero = user.getTeamPosManager().getTeamPosForHero().get(teamId); List<TeamPosHeroInfo> teamPosForHero = user.getTeamPosManager().getTeamPosForHero().get(teamId);
for (int i = 0; i <teamPosForHero.size() ; i++) { for (int i = 0; i <teamPosForHero.size() ; i++) {
String endlessHeroId = teamPosForHero.get(i).getHeroId(); String endlessHeroId = teamPosForHero.get(i).getHeroId();
int maxHp = HeroLogic.getInstance().calHeroNotBufferAttribute(user,user.getHeroManager().getHero(endlessHeroId),true,teamId).get(1); int maxHp = HeroLogic.getInstance().calHeroNotBufferAttribute(user,user.getHeroManager().getHero(endlessHeroId),false,teamId).get(1);
mapManager.addEndlessHero(teamPosForHero.get(i).getHeroId(),maxHp); mapManager.addEndlessHero(teamPosForHero.get(i).getHeroId(),maxHp);
} }
EndlessMapInfo endlessMapInfo = mapManager.getEndlessMapInfo(); EndlessMapInfo endlessMapInfo = mapManager.getEndlessMapInfo();
@ -342,7 +342,8 @@ public class MapLogic {
if(endlessHeroInfo!=null&&endlessHeroInfo.size()>0){ if(endlessHeroInfo!=null&&endlessHeroInfo.size()>0){
if(initType!=2){ if(initType!=2){
if(endlessHeroInfo.get(hero.getId())!=null){ if(endlessHeroInfo.get(hero.getId())!=null){
heroAllAttribute.put(HeroAttributeEnum.CurHP.getPropertyId(), endlessHeroInfo.get(hero.getId()).getCurHp()); double curHp = endlessHeroInfo.get(hero.getId()).getCurHp() / endlessHeroInfo.get(hero.getId()).getMaxHp() * heroAllAttribute.get(HeroAttributeEnum.Hp.getPropertyId());
heroAllAttribute.put(HeroAttributeEnum.CurHP.getPropertyId(),(int)curHp);
} }
}else{ }else{
mapManager.updateEndlessHeroHp(hero.getId(),endlessHeroInfo.get(hero.getId()).getMaxHp()); mapManager.updateEndlessHeroHp(hero.getId(),endlessHeroInfo.get(hero.getId()).getMaxHp());
@ -1256,7 +1257,11 @@ public class MapLogic {
} }
if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4&&teamId==401){ if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4&&teamId==401){
for (int i = 0 ; i <team.size();i++) { for (int i = 0 ; i <team.size();i++) {
mapManager.updateEndlessHeroHp(team.get(i).getHeroId(),checkResult[i+2]); Hero hero = user.getHeroManager().getHero(team.get(i).getHeroId());
Map<Integer, Integer> heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,teamId);
double per = checkResult[i+2] / (double) heroAllAttribute.get(HeroAttributeEnum.Hp.getPropertyId());
EndlessHero endlessHero = mapManager.getEndlessMapInfo().getEndlessHeroInfo().get(team.get(i).getHeroId());
mapManager.updateEndlessHeroHp(team.get(i).getHeroId(),endlessHero.getCurHp()*per);
mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]); mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]);
} }
} }
@ -1497,7 +1502,11 @@ public class MapLogic {
if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4&&teamId==401){ if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4&&teamId==401){
mapManager.updateEndlessFightCount(mapManager.getEndlessMapInfo().getFightCount()+1); mapManager.updateEndlessFightCount(mapManager.getEndlessMapInfo().getFightCount()+1);
for (int i = 0 ; i <team.size();i++) { for (int i = 0 ; i <team.size();i++) {
mapManager.updateEndlessHeroHp(team.get(i).getHeroId(),checkResult[i+2]); Hero hero = user.getHeroManager().getHero(team.get(i).getHeroId());
Map<Integer, Integer> heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,teamId);
double per = checkResult[i+2] / (double) heroAllAttribute.get(HeroAttributeEnum.Hp.getPropertyId());
EndlessHero endlessHero = mapManager.getEndlessMapInfo().getEndlessHeroInfo().get(team.get(i).getHeroId());
mapManager.updateEndlessHeroHp(team.get(i).getHeroId(),endlessHero.getCurHp()*per);
mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]); mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]);
} }
} }
@ -3071,7 +3080,7 @@ public class MapLogic {
endlessHeroInfo.put(entry.getKey(),new EndlessHero(calHp,tempHp)); endlessHeroInfo.put(entry.getKey(),new EndlessHero(calHp,tempHp));
calHp = tempHp; calHp = tempHp;
}else{ }else{
calHp = entry.getValue().getCurHp(); calHp = (int)entry.getValue().getCurHp();
} }
break; break;
} }

View File

@ -706,7 +706,7 @@ public class MapManager extends MongoBase {
updateString("endlessMapInfo."+heroId,endlessHero); updateString("endlessMapInfo."+heroId,endlessHero);
endlessMapInfo.getEndlessHeroInfo().put(heroId,endlessHero); endlessMapInfo.getEndlessHeroInfo().put(heroId,endlessHero);
} }
public void updateEndlessHeroHp(String heroId,int hp){ public void updateEndlessHeroHp(String heroId,double hp){
updateString("endlessMapInfo.endlessHeroInfo."+heroId+".curHp",hp); updateString("endlessMapInfo.endlessHeroInfo."+heroId+".curHp",hp);
EndlessHero endlessHero = endlessMapInfo.getEndlessHeroInfo().get(heroId); EndlessHero endlessHero = endlessMapInfo.getEndlessHeroInfo().get(heroId);
if(endlessHero!=null){ if(endlessHero!=null){

View File

@ -8,6 +8,7 @@ import com.ljsd.jieling.core.HandlerLogicThread;
import com.ljsd.jieling.core.VipPrivilegeType; import com.ljsd.jieling.core.VipPrivilegeType;
import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.handler.map.EndlessHero;
import com.ljsd.jieling.logic.activity.event.HeroUpStarEvent; import com.ljsd.jieling.logic.activity.event.HeroUpStarEvent;
import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.*;
@ -414,9 +415,12 @@ public class HeroLogic {
if (hero == null) { if (hero == null) {
break; break;
} }
Map<Integer, Integer> heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,true,teamId); Map<Integer, Integer> heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,teamId);
if(user.getMapManager().getEndlessMapInfo().getEndlessHeroInfo()!=null&&user.getMapManager().getEndlessMapInfo().getEndlessHeroInfo().size()>0){ Map<String, EndlessHero> endlessHeroInfo = user.getMapManager().getEndlessMapInfo().getEndlessHeroInfo();
heroAllAttribute.put(HeroAttributeEnum.CurHP.getPropertyId(),user.getMapManager().getEndlessMapInfo().getEndlessHeroInfo().get(hero.getId()).getCurHp()); if(endlessHeroInfo!=null&& endlessHeroInfo.size()>0){
double res = endlessHeroInfo.get(hero.getId()).getCurHp() / endlessHeroInfo.get(hero.getId()).getMaxHp();
int curHp = (int)(res * heroAllAttribute.get(HeroAttributeEnum.Hp.getPropertyId()));
heroAllAttribute.put(HeroAttributeEnum.CurHP.getPropertyId(), curHp);
} }
heroAllAttributeMap.put(hero.getId(), heroAllAttribute); heroAllAttributeMap.put(hero.getId(), heroAllAttribute);
heroes.add(heroInfo.getHeroId()); heroes.add(heroInfo.getHeroId());

View File

@ -436,6 +436,7 @@ public class ItemLogic {
user.getEquipManager().removeEspecialEquip(iterator.next()); user.getEquipManager().removeEspecialEquip(iterator.next());
} }
} }
user.getEquipManager().upStarEspecialEquip(equipId);
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,null,true); MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,null,true);
}else{ }else{
MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,"材料不足"); MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,"材料不足");