法宝升星

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;
public class EndlessHero {
private int maxHp;
private double maxHp;
private int curHp;
private double curHp;
public int getMaxHp() {
public double getMaxHp() {
return maxHp;
}
public int getCurHp() {
public double getCurHp() {
return curHp;
}
public void setMaxHp(int maxHp) {
public void setMaxHp(double maxHp) {
this.maxHp = maxHp;
}
public void setCurHp(int curHp) {
public void setCurHp(double curHp) {
this.curHp = curHp;
}
public EndlessHero(int maxHp, int curHp) {
public EndlessHero(double maxHp, double curHp) {
this.maxHp = maxHp;
this.curHp = curHp;
}

View File

@ -209,7 +209,7 @@ public class MapLogic {
List<TeamPosHeroInfo> teamPosForHero = user.getTeamPosManager().getTeamPosForHero().get(teamId);
for (int i = 0; i <teamPosForHero.size() ; i++) {
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);
}
EndlessMapInfo endlessMapInfo = mapManager.getEndlessMapInfo();
@ -342,7 +342,8 @@ public class MapLogic {
if(endlessHeroInfo!=null&&endlessHeroInfo.size()>0){
if(initType!=2){
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{
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){
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]);
}
}
@ -1497,7 +1502,11 @@ public class MapLogic {
if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4&&teamId==401){
mapManager.updateEndlessFightCount(mapManager.getEndlessMapInfo().getFightCount()+1);
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]);
}
}
@ -3071,7 +3080,7 @@ public class MapLogic {
endlessHeroInfo.put(entry.getKey(),new EndlessHero(calHp,tempHp));
calHp = tempHp;
}else{
calHp = entry.getValue().getCurHp();
calHp = (int)entry.getValue().getCurHp();
}
break;
}

View File

@ -706,7 +706,7 @@ public class MapManager extends MongoBase {
updateString("endlessMapInfo."+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);
EndlessHero endlessHero = endlessMapInfo.getEndlessHeroInfo().get(heroId);
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.globals.BIReason;
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.Poster;
import com.ljsd.jieling.logic.dao.*;
@ -414,9 +415,12 @@ public class HeroLogic {
if (hero == null) {
break;
}
Map<Integer, Integer> heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,true,teamId);
if(user.getMapManager().getEndlessMapInfo().getEndlessHeroInfo()!=null&&user.getMapManager().getEndlessMapInfo().getEndlessHeroInfo().size()>0){
heroAllAttribute.put(HeroAttributeEnum.CurHP.getPropertyId(),user.getMapManager().getEndlessMapInfo().getEndlessHeroInfo().get(hero.getId()).getCurHp());
Map<Integer, Integer> heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,teamId);
Map<String, EndlessHero> endlessHeroInfo = user.getMapManager().getEndlessMapInfo().getEndlessHeroInfo();
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);
heroes.add(heroInfo.getHeroId());

View File

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