公会战修改

lvxinran 2019-09-26 14:30:49 +08:00
parent 8e87514b8f
commit a2edf93d0a
4 changed files with 45 additions and 13 deletions

View File

@ -101,20 +101,15 @@ public class BloodLogic {
* @param heroInfo
* @return
*/
public CommonProto.FightTeamInfo fightDataMakeUp(User user ,Map<String, FamilyHeroInfo> heroInfo,int teamId){
public CommonProto.FightTeamInfo fightDataMakeUp(Map<String ,String> heroSkills ,Map<String, FamilyHeroInfo> heroInfo,String pokmanSkill){
List<CommonProto.FightUnitInfo> heroDefendFightInfos = new ArrayList<>();
for (Map.Entry<String, FamilyHeroInfo> entry : heroInfo.entrySet()) {
Hero hero = user.getHeroManager().getHero(entry.getKey());
if (hero == null) {
continue;
}
StringBuilder skillSb = new StringBuilder();
StringBuilder propertySb = new StringBuilder();
String heroSkill = HeroLogic.getInstance().getHeroSkills(user, hero, skillSb).toString();
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero, entry.getValue().getAttribute()).toString();
String heroSkill = heroSkills.get(entry.getKey());
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, entry.getValue(), entry.getValue().getAttribute()).toString();
CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo
.newBuilder()
.setUnitId(Integer.toString(hero.getTemplateId()))
.setUnitId(Integer.toString(entry.getValue().getTempleteId()))
.setUnitSkillIds(heroSkill.substring(0, heroSkill.length() - 1))
.setProperty(property.substring(0, property.length() - 1))
.build();
@ -123,7 +118,7 @@ public class BloodLogic {
CommonProto.FightTeamInfo fightDefendTeamInfo = CommonProto.FightTeamInfo.
newBuilder()
.addAllFightUnitList(heroDefendFightInfos)
.setTeamSkillList(HeroLogic.getInstance().getPokenmonSkills(user, teamId))
.setTeamSkillList(pokmanSkill)
.build();
return fightDefendTeamInfo;
}

View File

@ -1,5 +1,6 @@
package com.ljsd.jieling.logic.dao;
import java.util.HashMap;
import java.util.Map;
public class FamilyFightInfo {
@ -9,6 +10,9 @@ public class FamilyFightInfo {
private int buildId;
private int starCount;
private int force;
private Map<String, String> heroSkills = new HashMap<>();
private String pokenmonSkills;
public Map<String, FamilyHeroInfo> getHeroAttribute() {
return heroAttribute;
@ -57,4 +61,23 @@ public class FamilyFightInfo {
public void setForce(int force) {
this.force = force;
}
public void updateHeroSkill(String heroId, String skills){
heroSkills.put(heroId,skills);
}
public Map<String, String> getHeroSkills() {
return heroSkills;
}
public void setHeroSkills(Map<String, String> heroSkills) {
this.heroSkills = heroSkills;
}
public String getPokenmonSkills() {
return pokenmonSkills;
}
public void setPokenmonSkills(String pokenmonSkills) {
this.pokenmonSkills = pokenmonSkills;
}
}

View File

@ -1,5 +1,6 @@
package com.ljsd.jieling.logic.dao;
import java.util.HashMap;
import java.util.Map;
public class FamilyHeroInfo {

View File

@ -286,14 +286,13 @@ public class GuildFightLogic {
}
int familyTotalStar = 0;
//血量记录处理,星级记录处理
for (Map.Entry<Integer, Integer> entry : defendInfo.entrySet()) {
User user = UserManager.getUser(entry.getKey());
int memberType = GuildLogic.getMemberType(entry.getKey(), guildInfo.getMembers());
int[] buffInfo = redisUtil.getMapEntry(RedisKey.FAMILY_FIGHT_BUFF, gid.toString(), entry.getValue().toString(), int[].class);
FamilyFightInfo fightInfo = new FamilyFightInfo();
//血量处理buff处理
int force = HeroLogic.getInstance().calTeamTotalForce(user, 501, false);
if(force==0){
force = HeroLogic.getInstance().calTeamTotalForce(user, 1, false);
@ -303,6 +302,20 @@ public class GuildFightLogic {
fightInfo.setBuildId(entry.getValue());
fightInfo.setStarCount(guildSetting.getStarNum()[memberType-1]);
fightInfo.setForce(force);
List<TeamPosHeroInfo> teamPosHeroInfoList = user.getTeamPosManager().getTeamPosForHero().get(501);
if(teamPosHeroInfoList==null||teamPosHeroInfoList.size()<1){
teamPosHeroInfoList = user.getTeamPosManager().getTeamPosForHero().get(1);
}
Map<String, Hero> heroMap = user.getHeroManager().getHeroMap();
for(TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfoList){
String heroId = teamPosHeroInfo.getHeroId();
Hero hero = heroMap.get(heroId);
StringBuilder skillSb = new StringBuilder();
String heroSkill = HeroLogic.getInstance().getHeroSkills(user, hero,skillSb ).toString();
fightInfo.updateHeroSkill(heroId,heroSkill.substring(0, heroSkill.length() - 1));
}
String pokenmonSkills = HeroLogic.getInstance().getPokenmonSkills(user, 501);
fightInfo.setPokenmonSkills(pokenmonSkills);
redisUtil.putMapEntry(RedisKey.FAMILY_FIGHT, String.valueOf(guildInfo.getId()), String.valueOf(entry.getKey()), fightInfo);
familyTotalStar+=fightInfo.getStarCount();
}
@ -661,7 +674,7 @@ public class GuildFightLogic {
}
LOGGER.info("{}公会结算",str);
// Map<Integer, Integer> enemyDefendInfo = GuilidManager.guildInfoMap.get(enemyFamily).getDefendInfo();
Map<Integer, FamilyFightInfo> fightInfo = redisUtil.getMapValues(RedisKey.FAMILY_FIGHT, "", Integer.class, FamilyFightInfo.class);
Map<Integer, FamilyFightInfo> fightInfo = redisUtil.getMapValues(RedisKey.FAMILY_FIGHT, String.valueOf(enemyFamily), Integer.class, FamilyFightInfo.class);
for(Map.Entry<Integer, FamilyFightInfo> defend:fightInfo.entrySet()){
if(defend!=null){
buildStar[defend.getValue().getBuildId()-1] = buildStar[defend.getValue().getBuildId()-1]+defend.getValue().getStarCount();