战斗 灵兽修改

back_recharge
lvxinran 2020-10-26 10:05:30 +08:00
parent 3dd49ea868
commit 46fee5ae4e
10 changed files with 138 additions and 48 deletions

View File

@ -247,7 +247,7 @@ public class BehaviorUtil {
return CommonProto.FightTeamInfo. return CommonProto.FightTeamInfo.
newBuilder() newBuilder()
.addAllFightUnitList(heroFightInfos) .addAllFightUnitList(heroFightInfos)
.setTeamSkillList(HeroLogic.getInstance().getPokenmonSkills(user)) .addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
.setTeamPassiveList(HeroLogic.getInstance().getPokenmonPassiveSkills(user,teamId)) .setTeamPassiveList(HeroLogic.getInstance().getPokenmonPassiveSkills(user,teamId))
.build(); .build();
} }
@ -381,7 +381,10 @@ public class BehaviorUtil {
String monsterTeamSkill = MonsterUtil.getMonsterTeamSkillByGroup(groupId); String monsterTeamSkill = MonsterUtil.getMonsterTeamSkillByGroup(groupId);
List<CommonProto.FightTeamInfo> monsterGroupList = new ArrayList<>(); List<CommonProto.FightTeamInfo> monsterGroupList = new ArrayList<>();
if (monsterByGroup.size() > mosterNum){ if (monsterByGroup.size() > mosterNum){
CommonProto.FightTeamInfo monsterTeamInfo = CommonProto.FightTeamInfo.newBuilder().addAllFightUnitList(monsterByGroup.get(mosterNum)).setTeamSkillList(monsterTeamSkill).build(); CommonProto.FightTeamInfo monsterTeamInfo = CommonProto.FightTeamInfo.newBuilder()
.addAllFightUnitList(monsterByGroup.get(mosterNum))
// .setTeamSkillList(monsterTeamSkill)
.build();
monsterGroupList.add(monsterTeamInfo); monsterGroupList.add(monsterTeamInfo);
} }
return monsterGroupList; return monsterGroupList;

View File

@ -120,8 +120,8 @@ public class RoomMatchRequestHandler extends BaseHandler{
String heroSkill = HeroLogic.getInstance().getHeroSkills(mine, hero,skillSb ).toString(); String heroSkill = HeroLogic.getInstance().getHeroSkills(mine, hero,skillSb ).toString();
userBloodySnpInfo.updateHeroSkill(heroId,heroSkill.substring(0, heroSkill.length() - 1)); userBloodySnpInfo.updateHeroSkill(heroId,heroSkill.substring(0, heroSkill.length() - 1));
} }
String pokenmonSkills = HeroLogic.getInstance().getPokenmonSkills(mine); // String pokenmonSkills = HeroLogic.getInstance().getPokenmonSkills(mine);
userBloodySnpInfo.setPokenmonSkills(pokenmonSkills); // userBloodySnpInfo.setPokenmonSkills(pokenmonSkills);
Map<String, FamilyHeroInfo> heroAllAttribute = BloodLogic.getInstance().battleRecord(mine, myteamId,null); Map<String, FamilyHeroInfo> heroAllAttribute = BloodLogic.getInstance().battleRecord(mine, myteamId,null);
userBloodySnpInfo.setHeroAllAttributes(heroAllAttribute); userBloodySnpInfo.setHeroAllAttributes(heroAllAttribute);
int maxHp = 0; int maxHp = 0;

View File

@ -219,9 +219,9 @@ public class Cmd_role_gm extends GmRoleAbstract {
} }
nodeInfo.setBossHP(bossHP); nodeInfo.setBossHP(bossHP);
if (self.getPokemonManager().getPokemonMap().size()!=0) { if (self.getPokemonManager().getPokemonTeamMap().size()!=0) {
//玩家未激活异妖(神器)时,敌人阵容中不会出现异妖;激活异妖后,由敌人数据来源方决定战斗时是否有敌方异妖。 //玩家未激活异妖(神器)时,敌人阵容中不会出现异妖;激活异妖后,由敌人数据来源方决定战斗时是否有敌方异妖。
String pokenmonSkills = HeroLogic.getInstance().getPokenmonSkills(user); // String pokenmonSkills = HeroLogic.getInstance().getPokenmonSkills(user);
String pokenmonPassiveSkills = HeroLogic.getInstance().getPokenmonPassiveSkills(user, snapTeamId); String pokenmonPassiveSkills = HeroLogic.getInstance().getPokenmonPassiveSkills(user, snapTeamId);
// List<TeamPosForPokenInfo> teamPosForPokenInfos = user.getTeamPosManager().getTeamPosForPoken().get(snapTeamId); // List<TeamPosForPokenInfo> teamPosForPokenInfos = user.getTeamPosManager().getTeamPosForPoken().get(snapTeamId);
// if (null!=teamPosForPokenInfos) { // if (null!=teamPosForPokenInfos) {
@ -231,7 +231,7 @@ public class Cmd_role_gm extends GmRoleAbstract {
// } // }
// fightInfo.setPokenmonIds(pokens); // fightInfo.setPokenmonIds(pokens);
// } // }
fightInfo.setPokenmonSkills(pokenmonSkills); // fightInfo.setPokenmonSkills(pokenmonSkills);
fightInfo.setPassiveSkills(pokenmonPassiveSkills); fightInfo.setPassiveSkills(pokenmonPassiveSkills);
} }

View File

@ -126,7 +126,7 @@ public class BloodLogic {
return CommonProto.FightTeamInfo. return CommonProto.FightTeamInfo.
newBuilder() newBuilder()
.addAllFightUnitList(heroDefendFightInfos) .addAllFightUnitList(heroDefendFightInfos)
.setTeamSkillList(pokmanSkill) // .addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
.setTeamPassiveList(passiveSkill) .setTeamPassiveList(passiveSkill)
.build(); .build();
} }

View File

@ -690,8 +690,8 @@ public class ChampionshipLogic {
String heroSkill = HeroLogic.getInstance().getHeroSkills(user, hero, skillSb).toString(); String heroSkill = HeroLogic.getInstance().getHeroSkills(user, hero, skillSb).toString();
fightInfo.updateHeroSkill(heroId, heroSkill.substring(0, heroSkill.length() - 1)); fightInfo.updateHeroSkill(heroId, heroSkill.substring(0, heroSkill.length() - 1));
} }
String pokenmonSkills = HeroLogic.getInstance().getPokenmonSkills(user); // String pokenmonSkills = HeroLogic.getInstance().getPokenmonSkills(user);
fightInfo.setPokenmonSkills(pokenmonSkills); // fightInfo.setPokenmonSkills(pokenmonSkills);
String pokenmonPassiveSkills = HeroLogic.getInstance().getPokenmonPassiveSkills(user, snapTeamId); String pokenmonPassiveSkills = HeroLogic.getInstance().getPokenmonPassiveSkills(user, snapTeamId);
fightInfo.setPassiveSkills(pokenmonPassiveSkills); fightInfo.setPassiveSkills(pokenmonPassiveSkills);
memberInfo.setFightInfo(fightInfo); memberInfo.setFightInfo(fightInfo);

View File

@ -586,9 +586,9 @@ public class ExpeditionLogic {
if (self.getPokemonManager().getPokemonMap().size()!=0) { if (self.getPokemonManager().getPokemonMap().size()!=0) {
//玩家未激活异妖(神器)时,敌人阵容中不会出现异妖;激活异妖后,由敌人数据来源方决定战斗时是否有敌方异妖。 //玩家未激活异妖(神器)时,敌人阵容中不会出现异妖;激活异妖后,由敌人数据来源方决定战斗时是否有敌方异妖。
String pokenmonSkills = HeroLogic.getInstance().getPokenmonSkills(user); // String pokenmonSkills = HeroLogic.getInstance().getPokenmonSkills(user);
String pokenmonPassiveSkills = HeroLogic.getInstance().getPokenmonPassiveSkills(user, snapTeamId); String pokenmonPassiveSkills = HeroLogic.getInstance().getPokenmonPassiveSkills(user, snapTeamId);
fightInfo.setPokenmonSkills(pokenmonSkills); // fightInfo.setPokenmonSkills(pokenmonSkills);
fightInfo.setPassiveSkills(pokenmonPassiveSkills); fightInfo.setPassiveSkills(pokenmonPassiveSkills);
} }
@ -1042,7 +1042,7 @@ public class ExpeditionLogic {
return CommonProto.FightTeamInfo. return CommonProto.FightTeamInfo.
newBuilder() newBuilder()
.addAllFightUnitList(heroFightInfos) .addAllFightUnitList(heroFightInfos)
.setTeamSkillList(HeroLogic.getInstance().getPokenmonSkills(user)) .addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
.setTeamPassiveList(pokenmonPassiveSkills) .setTeamPassiveList(pokenmonPassiveSkills)
.setSpecialPassive(SpecialForTeamBuildEnum.toParm(teamId,user)) .setSpecialPassive(SpecialForTeamBuildEnum.toParm(teamId,user))
.build(); .build();

View File

@ -352,8 +352,8 @@ public class GuildFightLogic {
String heroSkill = HeroLogic.getInstance().getHeroSkills(user, hero,skillSb ).toString(); String heroSkill = HeroLogic.getInstance().getHeroSkills(user, hero,skillSb ).toString();
fightInfo.updateHeroSkill(heroId,heroSkill.substring(0, heroSkill.length() - 1)); fightInfo.updateHeroSkill(heroId,heroSkill.substring(0, heroSkill.length() - 1));
} }
String pokenmonSkills = HeroLogic.getInstance().getPokenmonSkills(user); // String pokenmonSkills = HeroLogic.getInstance().getPokenmonSkills(user);
fightInfo.setPokenmonSkills(pokenmonSkills); // fightInfo.setPokenmonSkills(pokenmonSkills);
String pokenmonPassiveSkills = HeroLogic.getInstance().getPokenmonPassiveSkills(user, 501); String pokenmonPassiveSkills = HeroLogic.getInstance().getPokenmonPassiveSkills(user, 501);
fightInfo.setPassiveSkills(pokenmonPassiveSkills); fightInfo.setPassiveSkills(pokenmonPassiveSkills);
redisUtil.putMapEntry(RedisKey.FAMILY_FIGHT, String.valueOf(guildInfo.getId()), String.valueOf(entry.getKey()), fightInfo); redisUtil.putMapEntry(RedisKey.FAMILY_FIGHT, String.valueOf(guildInfo.getId()), String.valueOf(entry.getKey()), fightInfo);

View File

@ -297,7 +297,7 @@ public class FightUtil {
return CommonProto.FightTeamInfo. return CommonProto.FightTeamInfo.
newBuilder() newBuilder()
.addAllFightUnitList(heroFightInfos) .addAllFightUnitList(heroFightInfos)
.setTeamSkillList(HeroLogic.getInstance().getPokenmonSkills(user)) .addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
.setTeamPassiveList(HeroLogic.getInstance().getPokenmonPassiveSkills(user,teamId)) .setTeamPassiveList(HeroLogic.getInstance().getPokenmonPassiveSkills(user,teamId))
.setSpecialPassive(SpecialForTeamBuildEnum.toParm(teamId,user)) .setSpecialPassive(SpecialForTeamBuildEnum.toParm(teamId,user))
.build(); .build();
@ -334,7 +334,7 @@ public class FightUtil {
return CommonProto.FightTeamInfo. return CommonProto.FightTeamInfo.
newBuilder() newBuilder()
.addAllFightUnitList(heroFightInfos) .addAllFightUnitList(heroFightInfos)
.setTeamSkillList(HeroLogic.getInstance().getPokenmonSkills(user)) .addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
.setTeamPassiveList(HeroLogic.getInstance().getPokenmonPassiveSkills(user,teamId)) .setTeamPassiveList(HeroLogic.getInstance().getPokenmonPassiveSkills(user,teamId))
.setSpecialPassive(SpecialForTeamBuildEnum.toParm(teamId,user)) .setSpecialPassive(SpecialForTeamBuildEnum.toParm(teamId,user))
.build(); .build();
@ -376,7 +376,7 @@ public class FightUtil {
return CommonProto.FightTeamInfo. return CommonProto.FightTeamInfo.
newBuilder() newBuilder()
.addAllFightUnitList(heroFightInfos) .addAllFightUnitList(heroFightInfos)
.setTeamSkillList(HeroLogic.getInstance().getPokenmonSkills(user)) .addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
.setTeamPassiveList(HeroLogic.getInstance().getPokenmonPassiveSkills(user,teamId)) .setTeamPassiveList(HeroLogic.getInstance().getPokenmonPassiveSkills(user,teamId))
.build(); .build();
} }
@ -422,7 +422,7 @@ public class FightUtil {
return CommonProto.FightTeamInfo. return CommonProto.FightTeamInfo.
newBuilder() newBuilder()
.addAllFightUnitList(heroFightInfos) .addAllFightUnitList(heroFightInfos)
.setTeamSkillList(HeroLogic.getInstance().getRobotPokenmonSkills(sArenaRobotConfig)) // .addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
.setTeamPassiveList(HeroLogic.getInstance().getRobotPokenmonPassiveSkills(sArenaRobotConfig)) .setTeamPassiveList(HeroLogic.getInstance().getRobotPokenmonPassiveSkills(sArenaRobotConfig))
.build(); .build();

View File

@ -64,6 +64,8 @@ public class HeroLogic{
public static List<Integer> transTemplate = new ArrayList<>(); public static List<Integer> transTemplate = new ArrayList<>();
public static List<Integer> equipSkillPositionTemaplge = new ArrayList<>(6); public static List<Integer> equipSkillPositionTemaplge = new ArrayList<>(6);
private static Map<Integer,List<Integer>> transTemplateByHeroPropertyName = new HashMap<>(); private static Map<Integer,List<Integer>> transTemplateByHeroPropertyName = new HashMap<>();
private static List<Integer> pokemonTemplate = new ArrayList<>();
static { static {
transTemplate.add(HeroAttributeEnum.CurHP.getPropertyId()); // 生命 transTemplate.add(HeroAttributeEnum.CurHP.getPropertyId()); // 生命
transTemplate.add(HeroAttributeEnum.Hp.getPropertyId()); // 最大生命 transTemplate.add(HeroAttributeEnum.Hp.getPropertyId()); // 最大生命
@ -117,6 +119,22 @@ public class HeroLogic{
equipSkillPositionTemaplge.add(4); equipSkillPositionTemaplge.add(4);
equipSkillPositionTemaplge.add(5); equipSkillPositionTemaplge.add(5);
equipSkillPositionTemaplge.add(6); equipSkillPositionTemaplge.add(6);
pokemonTemplate.add(HeroAttributeEnum.CurHP.getPropertyId()); // 生命
pokemonTemplate.add(HeroAttributeEnum.Hp.getPropertyId()); // 最大生命
pokemonTemplate.add(HeroAttributeEnum.Attack.getPropertyId()); // 攻击力
pokemonTemplate.add(HeroAttributeEnum.PhysicalDefence.getPropertyId());// 护甲
pokemonTemplate.add(HeroAttributeEnum.MagicDefence.getPropertyId()); // 魔抗
pokemonTemplate.add(HeroAttributeEnum.Speed.getPropertyId()); // 速度
pokemonTemplate.add(HeroAttributeEnum.DamageBocusFactor.getPropertyId()); // 伤害加成系数
pokemonTemplate.add(HeroAttributeEnum.DamageReduceFactor.getPropertyId()); // 伤害减免系数
pokemonTemplate.add(HeroAttributeEnum.Hit.getPropertyId()); // 命中率
pokemonTemplate.add(HeroAttributeEnum.Dodge.getPropertyId()); // 闪避率
pokemonTemplate.add(HeroAttributeEnum.CritFactor.getPropertyId()); // 暴击率
pokemonTemplate.add(HeroAttributeEnum.CritDamageFactor.getPropertyId()); // 暴击伤害系数
pokemonTemplate.add(HeroAttributeEnum.AntiCritDamageFactor.getPropertyId()); // 抗暴率
pokemonTemplate.add(HeroAttributeEnum.TreatFacter.getPropertyId()); // 治疗加成系数
pokemonTemplate.add(HeroAttributeEnum.CureFacter.getPropertyId()); // 受治疗
} }
private static final String VERTICAL = "|"; private static final String VERTICAL = "|";
private static final String DIVISION = "#"; private static final String DIVISION = "#";
@ -1320,25 +1338,40 @@ public class HeroLogic{
return sb; return sb;
} }
public String getPokenmonSkills(User user){ public List<CommonProto.FightUnitInfo> getPokemonSkills(User user){
StringBuilder pokenSkillResult = new StringBuilder();
//todo 灵兽 //todo 灵兽
Map<Integer, String> pokemonTeamMap = user.getPokemonManager().getPokemonTeamMap(); Map<Integer, String> pokemonTeamMap = user.getPokemonManager().getPokemonTeamMap();
int[] blockUnlockLevel = SSpiritAnimalSetting.sSpiritAnimalSetting.getBlockUnlockLevel();
PokemonManager pokemonManager = user.getPokemonManager(); PokemonManager pokemonManager = user.getPokemonManager();
for(int i = 0;i<blockUnlockLevel.length;i++){ // for(int i = 0;i<blockUnlockLevel.length;i++){
if(pokemonTeamMap.containsKey(i+1)){ // if(pokemonTeamMap.containsKey(i+1)){
String s = pokemonTeamMap.get(i + 1); // String s = pokemonTeamMap.get(i + 1);
Pokemon pokemon = pokemonManager.getPokemonMap().get(s); // Pokemon pokemon = pokemonManager.getPokemonMap().get(s);
if(pokemon!=null){ // if(pokemon!=null){
SSpiritAnimalSkill sSpiritAnimalSkill = SSpiritAnimalSkill.skillByAnimalAndStar.get(pokemon.getTmpId()).get(pokemon.getStar()); // SSpiritAnimalSkill sSpiritAnimalSkill = SSpiritAnimalSkill.skillByAnimalAndStar.get(pokemon.getTmpId()).get(pokemon.getStar());
pokenSkillResult.append(pokenSkillResult.length()==0?sSpiritAnimalSkill.getId():"#"+sSpiritAnimalSkill.getId()); // pokenSkillResult.append(pokenSkillResult.length()==0?sSpiritAnimalSkill.getId():"#"+sSpiritAnimalSkill.getId());
} // }
}else{ // }else{
pokenSkillResult.append(pokenSkillResult.length()==0?0:"#"+0); // pokenSkillResult.append(pokenSkillResult.length()==0?0:"#"+0);
// }
// }
List<CommonProto.FightUnitInfo> pokemonInfos = new ArrayList<>();
for(Map.Entry<Integer,String> entry:pokemonTeamMap.entrySet()){
Pokemon pokemon = pokemonManager.getPokemonMap().get(entry.getValue());
if(pokemon==null){
continue;
} }
SSpiritAnimalSkill sSpiritAnimalSkill = SSpiritAnimalSkill.skillByAnimalAndStar.get(pokemon.getTmpId()).get(pokemon.getStar());
Map<Integer, Integer> map = calOnePokemonAttribute(pokemonManager, entry.getValue());
StringBuilder propertyBuilder = getOnePokemonProperty(map,pokemon.getLevel());
CommonProto.FightUnitInfo info = CommonProto.FightUnitInfo.newBuilder()
.setPosition(entry.getKey())
.setStar(pokemon.getStar())
.setProperty(propertyBuilder.toString())
.setUnitId(String.valueOf(pokemon.getTmpId())).setUnitSkillIds(String.valueOf(sSpiritAnimalSkill.getId())).build();
pokemonInfos.add(info);
} }
return pokenSkillResult.toString(); return pokemonInfos;
} }
public String getPokenmonPassiveSkills(User user,int teamId){ public String getPokenmonPassiveSkills(User user,int teamId){
@ -1402,9 +1435,8 @@ public class HeroLogic{
PokemonManager pokemonManager = user.getPokemonManager(); PokemonManager pokemonManager = user.getPokemonManager();
SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
int profession = scHero.getProfession();
int heroNum = user.getTeamPosManager().getTeamPosForHero().get(teamId).size(); int heroNum = user.getTeamPosManager().getTeamPosForHero().get(teamId).size();
int[][] pokemonAttr = calPokenmonAttribute(pokemonManager); int[][] pokemonAttr = calPokemonAttribute(pokemonManager);
for(int i = 0 ; i <pokemonAttr.length;i++){ for(int i = 0 ; i <pokemonAttr.length;i++){
pokemonAttr[i][1] = pokemonAttr[i][1]/heroNum; pokemonAttr[i][1] = pokemonAttr[i][1]/heroNum;
} }
@ -2226,7 +2258,7 @@ public class HeroLogic{
return result; return result;
} }
public int[][] calPokenmonAttribute(PokemonManager pokemonManager){ private int[][] calPokemonAttribute(PokemonManager pokemonManager){
Map<Integer,Integer> pokemonAttributeMap = new HashMap<>(); Map<Integer,Integer> pokemonAttributeMap = new HashMap<>();
Map<Integer, String> pokemonTeamMap = pokemonManager.getPokemonTeamMap(); Map<Integer, String> pokemonTeamMap = pokemonManager.getPokemonTeamMap();
for(Map.Entry<Integer,String> entry:pokemonTeamMap.entrySet()){ for(Map.Entry<Integer,String> entry:pokemonTeamMap.entrySet()){
@ -2256,6 +2288,60 @@ public class HeroLogic{
return resultArray; return resultArray;
} }
/**
*
* @param pokemonManager
* @return
*/
private Map<Integer,Integer> calOnePokemonAttribute(PokemonManager pokemonManager,String pokemonId){
Map<Integer,Integer> pokemonAttributeMap = new HashMap<>();
Pokemon pokemon = pokemonManager.getPokemonMap().get(pokemonId);
Map<Integer,Integer> oneAttrMap = new HashMap<>();
SSpiritAnimal animal = STableManager.getConfig(SSpiritAnimal.class).get(pokemon.getTmpId());
oneAttrMap.put(GlobalsDef.HP_TYPE,(int)animal.getHp());
oneAttrMap.put(GlobalsDef.ATTACK_TYPE,(int)animal.getAttack());
oneAttrMap.put(GlobalsDef.PHYSICAL_DEFENCE_TYPE,(int)animal.getPhysicalDefence());
oneAttrMap.put(GlobalsDef.MAGIC_DEFENCE_TYPE,(int)animal.getMagicDefence());
//等级增量
SSpiritAnimalLevel levelConfig = SSpiritAnimalLevel.configByQualityAndLevel.get(animal.getQuality()).get(pokemon.getLevel());
int[][] characterLevelPara = levelConfig.getCharacterLevelPara();
for(int[] para:characterLevelPara){
oneAttrMap.put(para[0],oneAttrMap.getOrDefault(para[0],0)+para[1]);
}
//星级增量
SSpiritAnimalStar starConfig = SSpiritAnimalStar.configByQualityAndStar.get(animal.getQuality()).get(pokemon.getStar());
int starPara = starConfig.getStarPara();
for(int key:oneAttrMap.keySet()){
pokemonAttributeMap.put(key,pokemonAttributeMap.getOrDefault(key,0)+(int)(oneAttrMap.getOrDefault(key,0)*(1+starPara/10000d)));
}
return pokemonAttributeMap;
}
/**
*
* @param propertyMap
* @param level
* @return
*/
private StringBuilder getOnePokemonProperty(Map<Integer,Integer> propertyMap,int level){
StringBuilder builder = new StringBuilder();
builder.append(level);
for(int propId:pokemonTemplate){
builder.append("#");
// Hit(53),
// CureFacter(57),
// TreatFacter(58), 这三个默认要给前端传1
if(propId==HeroAttributeEnum.Hit.getPropertyId()||propId==HeroAttributeEnum.CureFacter.getPropertyId()||propId==HeroAttributeEnum.TreatFacter.getPropertyId()){
builder.append(propertyMap.getOrDefault(propId,1));
}else{
builder.append(propertyMap.getOrDefault(propId,0));
}
}
return builder;
}
//todo 灵兽 //todo 灵兽
public int calAllPokenmonForce(User user){ public int calAllPokenmonForce(User user){
// Map<Integer,Integer> pokemonAttributeMap = new HashMap<>(); // Map<Integer,Integer> pokemonAttributeMap = new HashMap<>();

View File

@ -113,7 +113,8 @@ public class FightDataUtil {
enemyData.rawset(i+1, unitData); enemyData.rawset(i+1, unitData);
} }
enemyData.set("monsterList", getTeamSkill(data.getTeamSkillList().trim(),1)); //todo 灵兽技能
enemyData.set("monsterList", getPokemonSkill(data.getPokemonUnitListList(),1));
enemyData.set("teamPassive", new LuaTable()); enemyData.set("teamPassive", new LuaTable());
return enemyData; return enemyData;
@ -193,7 +194,8 @@ public class FightDataUtil {
playerData.set("teamSkill",""); playerData.set("teamSkill","");
playerData.set("teamPassive", getTeamPassive(heroTeam.getTeamPassiveList())); playerData.set("teamPassive", getTeamPassive(heroTeam.getTeamPassiveList()));
playerData.set("outData",heroTeam.getSpecialPassive()); playerData.set("outData",heroTeam.getSpecialPassive());
playerData.set("monsterList", getTeamSkill(heroTeam.getTeamSkillList(),0)); //todo 灵兽技能
playerData.set("monsterList", getPokemonSkill(heroTeam.getPokemonUnitListList(),0));
playerData.set("firstCamp",first?1:0); playerData.set("firstCamp",first?1:0);
return playerData; return playerData;
} }
@ -236,23 +238,22 @@ public class FightDataUtil {
} }
//组装灵兽技能数据 camp=0 自己 1 对方 //组装灵兽技能数据 camp=0 自己 1 对方
private static LuaValue getTeamSkill(String pokemonSkill,int camp) { private static LuaValue getPokemonSkill(List<CommonProto.FightUnitInfo> pokemonUnitList, int camp) {
LuaValue teamSkill = new LuaTable(); LuaValue teamSkill = new LuaTable();
if (StringUtil.isEmpty(pokemonSkill)){ if (pokemonUnitList.isEmpty()){
return teamSkill; return teamSkill;
} }
String[] skills = pokemonSkill.trim().split("#"); for (int i = 0; i < pokemonUnitList.size(); i++) {
for (int i = 0; i < skills.length; i++) { String skillId = pokemonUnitList.get(i).getUnitSkillIds();
String skillAndPos = skills[i]; if(skillId.equals("0")){
if(skillAndPos.equals("0")){
continue; continue;
} }
SSpiritAnimalSkill sSpiritAnimalSkill = STableManager.getConfig(SSpiritAnimalSkill.class).get(Integer.valueOf(skillAndPos)); SSpiritAnimalSkill sSpiritAnimalSkill = STableManager.getConfig(SSpiritAnimalSkill.class).get(Integer.valueOf(skillId));
LuaValue monster = new LuaTable(); LuaValue monster = new LuaTable();
monster.set("id",sSpiritAnimalSkill.getSpiritAnimalMatch()); monster.set("id",sSpiritAnimalSkill.getSpiritAnimalMatch());
monster.set("star",sSpiritAnimalSkill.getStarMatch()); monster.set("star",sSpiritAnimalSkill.getStarMatch());
monster.set("camp",camp); monster.set("camp",camp);
monster.set("position",i+1); monster.set("position",pokemonUnitList.get(i).getPosition());
LuaValue skill= new LuaTable(); LuaValue skill= new LuaTable();
int[] skillIDList = sSpiritAnimalSkill.getSkillIDList(); int[] skillIDList = sSpiritAnimalSkill.getSkillIDList();
for(int j = 0 ; j <skillIDList.length;j++){ for(int j = 0 ; j <skillIDList.length;j++){
@ -276,8 +277,8 @@ public class FightDataUtil {
skill.rawset(j+1,oneSkill); skill.rawset(j+1,oneSkill);
} }
monster.rawset("skill",skill); monster.set("property",getProperty(pokemonUnitList.get(i).getProperty()));
monster.set("skill",skill);
// String[] skillAndPosItem = skillAndPos.split("#"); // String[] skillAndPosItem = skillAndPos.split("#");
// if (Integer.parseInt(skillAndPosItem[1])>0){ // if (Integer.parseInt(skillAndPosItem[1])>0){
// teamSkill.rawset(i + 1, getSkill(skillAndPosItem[1],skillAndPosItem[0])); // teamSkill.rawset(i + 1, getSkill(skillAndPosItem[1],skillAndPosItem[0]));