公会副本boss修改

back_recharge
lvxinran 2020-11-20 13:20:00 +08:00
parent 47d40eae84
commit 46257c701e
1 changed files with 28 additions and 22 deletions

View File

@ -221,7 +221,9 @@ public class GuildChallengeLogic {
} }
}else if(checkResult[0]==0){ }else if(checkResult[0]==0){
//怪物保持在第四位 //怪物保持在第四位
guildInfo.setBossHpRemain(checkResult[3]==0?10000:checkResult[3]); if(guildInfo.getCurrBossId()!=configMap.size()){
guildInfo.setBossHpRemain(checkResult[3]==0?10000:checkResult[3]);
}
}else{ }else{
error = "战斗异常!"; error = "战斗异常!";
} }
@ -231,25 +233,27 @@ public class GuildChallengeLogic {
damage = damageInt; damage = damageInt;
}else{ }else{
//扫荡 //扫荡
int remain = guildInfo.getBossHpRemain() - guildMyInfo.getGuildChallengeDamage(); if(guildInfo.getBossHpRemain()!=-1){
if(remain>=0){ int remain = guildInfo.getBossHpRemain() - guildMyInfo.getGuildChallengeDamage();
guildInfo.setBossHpRemain(remain); if(remain>=0){
}else{ guildInfo.setBossHpRemain(remain);
Map<Integer, SGuildLevelConfig> levelConfigMap = STableManager.getConfig(SGuildLevelConfig.class);
if (guildInfo.getExp() + config.getLegionExp() >= levelConfigMap.get(guildInfo.getLevel()).getExp()) {
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp() - levelConfigMap.get(guildInfo.getLevel()).getExp());
guildInfo.updateLevel(guildInfo.getLevel() + 1);
RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_INFO, "", String.valueOf(guildInfo.getId()), new GuildCache(GameApplication.serverId, guildInfo.getIcon(), guildInfo.getLevel(), guildInfo.getName()));
} else {
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp());
}
if(guildInfo.getCurrBossId()!=configMap.size()){
guildInfo.setCurrBossId(guildInfo.getCurrBossId() + 1);
guildInfo.setBossHpRemain(0);
}else{ }else{
guildInfo.setBossHpRemain(-1); Map<Integer, SGuildLevelConfig> levelConfigMap = STableManager.getConfig(SGuildLevelConfig.class);
if (guildInfo.getExp() + config.getLegionExp() >= levelConfigMap.get(guildInfo.getLevel()).getExp()) {
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp() - levelConfigMap.get(guildInfo.getLevel()).getExp());
guildInfo.updateLevel(guildInfo.getLevel() + 1);
RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_INFO, "", String.valueOf(guildInfo.getId()), new GuildCache(GameApplication.serverId, guildInfo.getIcon(), guildInfo.getLevel(), guildInfo.getName()));
} else {
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp());
}
if(guildInfo.getCurrBossId()!=configMap.size()){
guildInfo.setCurrBossId(guildInfo.getCurrBossId() + 1);
guildInfo.setBossHpRemain(0);
}else{
guildInfo.setBossHpRemain(-1);
}
kill=1;
} }
kill=1;
} }
damage = guildMyInfo.getGuildChallengeDamage(); damage = guildMyInfo.getGuildChallengeDamage();
} }
@ -258,12 +262,14 @@ public class GuildChallengeLogic {
if(!error.isEmpty()){ if(!error.isEmpty()){
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
} }
AbstractRank rank = RankContext.getRankEnum(RankEnum.GUILD_CHALLENGE_RANK.getType()); if(guildInfo.getBossHpRemain()!=-1){
long score = Double.valueOf(rank.getScoreById(user.getId(), guildId+":"+bossId)).longValue(); AbstractRank rank = RankContext.getRankEnum(RankEnum.GUILD_CHALLENGE_RANK.getType());
rank.addRank(uid,guildId+":"+bossId,score==-1?damage:score+damage); long score = Double.valueOf(rank.getScoreById(user.getId(), guildId+":"+bossId)).longValue();
rank.addRank(uid,guildId+":"+bossId,score==-1?damage:score+damage);
}
if(kill==1){ if(kill==1){
//如果不是最后一个boss更特权 //如果不是最后一个boss更特权
if(guildInfo.getCurrBossId()!=configMap.size()){ if(guildInfo.getCurrBossId()-1!=configMap.size()){
GuildLogic.sendFamilyBaseUpdateIndication(guildInfo); GuildLogic.sendFamilyBaseUpdateIndication(guildInfo);
Map<Integer, Set<Integer>> members = guildInfo.getMembers(); Map<Integer, Set<Integer>> members = guildInfo.getMembers();
for(Set<Integer> items : members.values()){ for(Set<Integer> items : members.values()){