神兵技能
parent
0e22c4f222
commit
c5e20dde2b
|
@ -118,6 +118,7 @@ public class FightDataUtil {
|
||||||
}
|
}
|
||||||
//todo 灵兽技能
|
//todo 灵兽技能
|
||||||
enemyData.set("monsterList", getPokemonSkill(data.getPokemonUnitListList(),1));
|
enemyData.set("monsterList", getPokemonSkill(data.getPokemonUnitListList(),1));
|
||||||
|
enemyData.set("weaponList", getMagicSoldierSkill(data.getMagicSoldierListList(),1));
|
||||||
enemyData.set("teamPassive", new LuaTable());
|
enemyData.set("teamPassive", new LuaTable());
|
||||||
enemyData.set("teamSkill",new LuaTable());
|
enemyData.set("teamSkill",new LuaTable());
|
||||||
|
|
||||||
|
@ -135,6 +136,7 @@ public class FightDataUtil {
|
||||||
|
|
||||||
SDuoDuiTowerHero towerHero = SDuoDuiTowerHero.heroMap.get(Integer.parseInt(unitInfo.getUnitId()));
|
SDuoDuiTowerHero towerHero = SDuoDuiTowerHero.heroMap.get(Integer.parseInt(unitInfo.getUnitId()));
|
||||||
|
|
||||||
|
// todo unitData对象可以摘出来
|
||||||
LuaValue unitData = new LuaTable();
|
LuaValue unitData = new LuaTable();
|
||||||
unitData.set("roleId", towerHero.getId());
|
unitData.set("roleId", towerHero.getId());
|
||||||
unitData.set("professionId", 0);
|
unitData.set("professionId", 0);
|
||||||
|
@ -171,8 +173,9 @@ public class FightDataUtil {
|
||||||
|
|
||||||
enemyData.rawset(i+1, unitData);
|
enemyData.rawset(i+1, unitData);
|
||||||
}
|
}
|
||||||
//todo 灵兽技能
|
// 灵兽技能
|
||||||
enemyData.set("monsterList", getPokemonSkill(data.getPokemonUnitListList(),1));
|
enemyData.set("monsterList", getPokemonSkill(data.getPokemonUnitListList(),1));
|
||||||
|
enemyData.set("weaponList", getMagicSoldierSkill(data.getMagicSoldierListList(),1));
|
||||||
enemyData.set("teamPassive", new LuaTable());
|
enemyData.set("teamPassive", new LuaTable());
|
||||||
enemyData.set("teamSkill",new LuaTable());
|
enemyData.set("teamSkill",new LuaTable());
|
||||||
|
|
||||||
|
@ -199,8 +202,9 @@ public class FightDataUtil {
|
||||||
for(int i=2;i<length;i++){
|
for(int i=2;i<length;i++){
|
||||||
int passivityId = Integer.parseInt(unitSkill[i]);
|
int passivityId = Integer.parseInt(unitSkill[i]);
|
||||||
SPassiveSkillLogicConfig sPassiveSkillLogicConfig = SPassiveSkillLogicConfig.getConfig(passivityId);
|
SPassiveSkillLogicConfig sPassiveSkillLogicConfig = SPassiveSkillLogicConfig.getConfig(passivityId);
|
||||||
if(sPassiveSkillLogicConfig.getCoverID()!=0)
|
if(sPassiveSkillLogicConfig.getCoverID()!=0) {
|
||||||
tempSet.add(sPassiveSkillLogicConfig.getCoverID());
|
tempSet.add(sPassiveSkillLogicConfig.getCoverID());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for(int i=2;i<length;i++){
|
for(int i=2;i<length;i++){
|
||||||
LuaValue detail = new LuaTable();
|
LuaValue detail = new LuaTable();
|
||||||
|
@ -267,7 +271,8 @@ public class FightDataUtil {
|
||||||
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", getPokemonSkill(heroTeam.getPokemonUnitListList(),position));
|
playerData.set("monsterList", getPokemonSkill(heroTeam.getPokemonUnitListList(), position));
|
||||||
|
playerData.set("weaponList", getMagicSoldierSkill(heroTeam.getMagicSoldierListList(), position));
|
||||||
playerData.set("firstCamp",first?1:0);
|
playerData.set("firstCamp",first?1:0);
|
||||||
return playerData;
|
return playerData;
|
||||||
}
|
}
|
||||||
|
@ -321,9 +326,9 @@ public class FightDataUtil {
|
||||||
if(skillId.equals("0")|| StringUtil.isEmpty(skillId)){
|
if(skillId.equals("0")|| StringUtil.isEmpty(skillId)){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
LuaValue monster = new LuaTable();
|
||||||
///100代表是修行技能
|
///100代表是修行技能
|
||||||
if (unitInfo.getPosition()==100){
|
if (unitInfo.getPosition()==100){
|
||||||
LuaValue monster = new LuaTable();
|
|
||||||
monster.set("id",0);
|
monster.set("id",0);
|
||||||
monster.set("star",unitInfo.getStar());
|
monster.set("star",unitInfo.getStar());
|
||||||
monster.set("teamDamage",unitInfo.getForceScore());
|
monster.set("teamDamage",unitInfo.getForceScore());
|
||||||
|
@ -331,7 +336,7 @@ public class FightDataUtil {
|
||||||
monster.set("position",unitInfo.getPosition());
|
monster.set("position",unitInfo.getPosition());
|
||||||
monster.set("property",getProperty(unitInfo.getProperty()));
|
monster.set("property",getProperty(unitInfo.getProperty()));
|
||||||
String[] allSkillIdArr = skillId.split("\\|");
|
String[] allSkillIdArr = skillId.split("\\|");
|
||||||
String[]skillIdArr=allSkillIdArr[0].split("#");
|
String[] skillIdArr = allSkillIdArr[0].split("#");
|
||||||
if (allSkillIdArr.length>1){
|
if (allSkillIdArr.length>1){
|
||||||
String passivityStr="##"+allSkillIdArr[1];
|
String passivityStr="##"+allSkillIdArr[1];
|
||||||
String[]passivitySkillIdArr=passivityStr.split("#");
|
String[]passivitySkillIdArr=passivityStr.split("#");
|
||||||
|
@ -339,37 +344,13 @@ public class FightDataUtil {
|
||||||
}
|
}
|
||||||
LuaValue skillList= new LuaTable();
|
LuaValue skillList= new LuaTable();
|
||||||
for (int k = 0; k < skillIdArr.length; k++) {
|
for (int k = 0; k < skillIdArr.length; k++) {
|
||||||
SPlayerSkill playerSkillConfig=STableManager.getConfig(SPlayerSkill.class).get(Integer.valueOf(skillIdArr[k]));
|
SPlayerSkill playerSkillConfig = STableManager.getConfig(SPlayerSkill.class).get(Integer.valueOf(skillIdArr[k]));
|
||||||
LuaValue skill= new LuaTable();
|
LuaValue skill = getLuaSkill(playerSkillConfig.getSkillIDList(), playerSkillConfig.getReleasePoint(),playerSkillConfig.getReleaseLimit(), playerSkillConfig.getWarEffectCount(), playerSkillConfig.getTurnEffectCount());
|
||||||
int[] skillIDList = playerSkillConfig.getSkillIDList();
|
|
||||||
for(int j = 0 ; j <skillIDList.length;j++){
|
|
||||||
LuaValue oneSkill = new LuaTable();
|
|
||||||
oneSkill.rawset("triggerId",playerSkillConfig.getReleasePoint()[j]);
|
|
||||||
int[][] releaseLimit = playerSkillConfig.getReleaseLimit();
|
|
||||||
LuaValue triggerCondition = new LuaTable();
|
|
||||||
if(releaseLimit!=null&&releaseLimit.length>0&&releaseLimit[0].length>0){
|
|
||||||
for(int l = 0 ; l<releaseLimit[j].length;l++){
|
|
||||||
triggerCondition.rawset(l+1, LuaValue.valueOf(releaseLimit[j][l]));
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
triggerCondition.rawset(1,LuaValue.valueOf(0));
|
|
||||||
}
|
|
||||||
oneSkill.set("effect",getSkill(String.valueOf(skillIDList[j]),0));
|
|
||||||
oneSkill.set("triggerCondition",triggerCondition);
|
|
||||||
|
|
||||||
oneSkill.set("maxCount",playerSkillConfig.getWarEffectCount()[j]);
|
|
||||||
|
|
||||||
oneSkill.set("maxRoundCount",playerSkillConfig.getTurnEffectCount()[j]);
|
|
||||||
|
|
||||||
skill.rawset(j+1,oneSkill);
|
|
||||||
}
|
|
||||||
skillList.rawset(k+1,skill);
|
skillList.rawset(k+1,skill);
|
||||||
}
|
}
|
||||||
monster.set("skill",skillList);
|
monster.set("skill",skillList);
|
||||||
teamSkill.rawset(i+1,monster);
|
|
||||||
}else{
|
}else{
|
||||||
SSpiritAnimalSkill sSpiritAnimalSkill=STableManager.getConfig(SSpiritAnimalSkill.class).get(Integer.valueOf(skillId));
|
SSpiritAnimalSkill sSpiritAnimalSkill=STableManager.getConfig(SSpiritAnimalSkill.class).get(Integer.valueOf(skillId));
|
||||||
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);
|
||||||
|
@ -378,42 +359,100 @@ public class FightDataUtil {
|
||||||
String[] skillIdArr = skillId.split("#");
|
String[] skillIdArr = skillId.split("#");
|
||||||
LuaValue skillList= new LuaTable();
|
LuaValue skillList= new LuaTable();
|
||||||
for (int k = 0; k < skillIdArr.length; k++) {
|
for (int k = 0; k < skillIdArr.length; k++) {
|
||||||
LuaValue skill = new LuaTable();
|
LuaValue skill = getLuaSkill(sSpiritAnimalSkill.getSkillIDList(), sSpiritAnimalSkill.getReleasePoint(),sSpiritAnimalSkill.getReleaseLimit(), sSpiritAnimalSkill.getWarEffectCount(), sSpiritAnimalSkill.getTurnEffectCount());
|
||||||
int[] skillIDList = sSpiritAnimalSkill.getSkillIDList();
|
|
||||||
for (int j = 0; j < skillIDList.length; j++) {
|
|
||||||
LuaValue oneSkill = new LuaTable();
|
|
||||||
oneSkill.rawset("triggerId", sSpiritAnimalSkill.getReleasePoint()[j]);
|
|
||||||
int[][] releaseLimit = sSpiritAnimalSkill.getReleaseLimit();
|
|
||||||
LuaValue triggerCondition = new LuaTable();
|
|
||||||
if (releaseLimit != null && releaseLimit.length > 0 && releaseLimit[0].length > 0) {
|
|
||||||
for (int l = 0; l < releaseLimit[j].length; l++) {
|
|
||||||
triggerCondition.rawset(l + 1, LuaValue.valueOf(releaseLimit[j][l]));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
triggerCondition.rawset(1, LuaValue.valueOf(0));
|
|
||||||
}
|
|
||||||
oneSkill.set("effect", getSkill(String.valueOf(skillIDList[j]), 0));
|
|
||||||
oneSkill.set("triggerCondition", triggerCondition);
|
|
||||||
|
|
||||||
oneSkill.set("maxCount", sSpiritAnimalSkill.getWarEffectCount()[j]);
|
|
||||||
|
|
||||||
oneSkill.set("maxRoundCount", sSpiritAnimalSkill.getTurnEffectCount()[j]);
|
|
||||||
|
|
||||||
skill.rawset(j + 1, oneSkill);
|
|
||||||
}
|
|
||||||
skillList.rawset(k+1,skill);
|
skillList.rawset(k+1,skill);
|
||||||
}
|
}
|
||||||
monster.set("skill",skillList);
|
monster.set("skill",skillList);
|
||||||
// String[] skillAndPosItem = skillAndPos.split("#");
|
|
||||||
// if (Integer.parseInt(skillAndPosItem[1])>0){
|
|
||||||
// teamSkill.rawset(i + 1, getSkill(skillAndPosItem[1],skillAndPosItem[0]));
|
|
||||||
// }
|
|
||||||
teamSkill.rawset(i+1,monster);
|
|
||||||
}
|
}
|
||||||
|
teamSkill.rawset(i+1,monster);
|
||||||
}
|
}
|
||||||
return teamSkill;
|
return teamSkill;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 神兵技能,lua对象
|
||||||
|
* @param magicSoldierList
|
||||||
|
* @param camp
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private static LuaValue getMagicSoldierSkill(List<CommonProto.FightUnitInfo> magicSoldierList, int camp) {
|
||||||
|
LuaValue teamSkill = new LuaTable();
|
||||||
|
if (magicSoldierList.isEmpty()){
|
||||||
|
return teamSkill;
|
||||||
|
}
|
||||||
|
for (int i = 0; i < magicSoldierList.size(); i++) {
|
||||||
|
CommonProto.FightUnitInfo unitInfo = magicSoldierList.get(i);
|
||||||
|
String skillId = unitInfo.getUnitSkillIds();
|
||||||
|
if(skillId.equals("0")|| StringUtil.isEmpty(skillId)){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String[] split = skillId.split("#");
|
||||||
|
LuaValue monster = new LuaTable();
|
||||||
|
LuaValue initiative= new LuaTable();
|
||||||
|
ArrayList<int[]> passive = new ArrayList<>();
|
||||||
|
for (int j = 0; j < split.length; j++) {
|
||||||
|
SShenBingSkill shenBingSkill = SShenBingSkill.map.get(Integer.parseInt(split[j]));
|
||||||
|
if (j == 0){
|
||||||
|
monster.set("id",shenBingSkill.getSpiritAnimalMatch());
|
||||||
|
monster.set("star",shenBingSkill.getStarMatch());
|
||||||
|
monster.set("camp",camp);
|
||||||
|
monster.set("position",unitInfo.getPosition());
|
||||||
|
monster.set("property",getProperty(unitInfo.getProperty()));
|
||||||
|
}
|
||||||
|
int[] initiativeSkill = shenBingSkill.getSkillIDList();
|
||||||
|
LuaValue initiative1 = getLuaSkill(initiativeSkill, shenBingSkill.getReleasePoint(),shenBingSkill.getReleaseLimit(), shenBingSkill.getWarEffectCount(), shenBingSkill.getTurnEffectCount());
|
||||||
|
initiative.rawset(j+1, initiative1);
|
||||||
|
|
||||||
|
passive.add(shenBingSkill.getPassiveSkill());
|
||||||
|
}
|
||||||
|
monster.set("skill", initiative);
|
||||||
|
|
||||||
|
String[] convert = typeConvert(passive);
|
||||||
|
LuaValue passivity = getPassivity(convert);
|
||||||
|
monster.set("passivity", passivity);
|
||||||
|
teamSkill.rawset(i+1,monster);
|
||||||
|
}
|
||||||
|
return teamSkill;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String[] typeConvert(List<int[]> skill){
|
||||||
|
if (skill == null || skill.isEmpty()){
|
||||||
|
return new String[]{};
|
||||||
|
}
|
||||||
|
ArrayList<Integer> list = new ArrayList<>();
|
||||||
|
for (int[] ints : skill) {
|
||||||
|
for (int anInt : ints) {
|
||||||
|
list.add(anInt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String[] result = new String[list.size()];
|
||||||
|
for (int i = 0; i < list.size(); i++) {
|
||||||
|
result[i] = String.valueOf(list.get(i));
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static LuaValue getLuaSkill(int[] skills, int[] releasePoint, int[][] releaseLimit, int[] warEffectCount, int[] turnEffectCount){
|
||||||
|
LuaValue skill = new LuaTable();
|
||||||
|
for (int u = 0; u < skills.length; u++) {
|
||||||
|
LuaValue oneSkill = new LuaTable();
|
||||||
|
oneSkill.rawset("triggerId", releasePoint[u]);
|
||||||
|
LuaValue triggerCondition = new LuaTable();
|
||||||
|
if (releaseLimit != null && releaseLimit.length > 0 && releaseLimit[0].length > 0) {
|
||||||
|
for (int l = 0; l < releaseLimit[u].length; l++) {
|
||||||
|
triggerCondition.rawset(l + 1, LuaValue.valueOf(releaseLimit[u][l]));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
triggerCondition.rawset(1, LuaValue.valueOf(0));
|
||||||
|
}
|
||||||
|
oneSkill.set("effect", getSkill(String.valueOf(skills[u]), 0));
|
||||||
|
oneSkill.set("triggerCondition", triggerCondition);
|
||||||
|
oneSkill.set("maxCount", warEffectCount[u]);
|
||||||
|
oneSkill.set("maxRoundCount", turnEffectCount[u]);
|
||||||
|
skill.rawset(u + 1, oneSkill);
|
||||||
|
}
|
||||||
|
return skill;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
@ -21,6 +21,8 @@ public class SShenBingSkill implements BaseConfig {
|
||||||
|
|
||||||
private int[] skillIDList;
|
private int[] skillIDList;
|
||||||
|
|
||||||
|
private int[] passiveSkill;
|
||||||
|
|
||||||
private int[] releasePoint;
|
private int[] releasePoint;
|
||||||
|
|
||||||
private int[][] releaseLimit;
|
private int[][] releaseLimit;
|
||||||
|
@ -29,20 +31,24 @@ public class SShenBingSkill implements BaseConfig {
|
||||||
|
|
||||||
private int[] turnEffectCount;
|
private int[] turnEffectCount;
|
||||||
|
|
||||||
|
public static Map<Integer,SShenBingSkill> map;
|
||||||
|
/**
|
||||||
|
* 神兵id,星级,技能列表
|
||||||
|
*/
|
||||||
public static Map<Integer,Map<Integer, List<SShenBingSkill>>> skillMap;
|
public static Map<Integer,Map<Integer, List<SShenBingSkill>>> skillMap;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() throws Exception {
|
public void init() throws Exception {
|
||||||
Map<Integer, Map<Integer, List<SShenBingSkill>>> map = new HashMap<>();
|
map = STableManager.getConfig(SShenBingSkill.class);
|
||||||
Map<Integer, SShenBingSkill> config = STableManager.getConfig(SShenBingSkill.class);
|
Map<Integer, Map<Integer, List<SShenBingSkill>>> skillMap2 = new HashMap<>();
|
||||||
for (SShenBingSkill value : config.values()) {
|
for (SShenBingSkill value : map.values()) {
|
||||||
Map<Integer, List<SShenBingSkill>> map1 = map.getOrDefault(value.getSpiritAnimalMatch(), new HashMap<>());
|
Map<Integer, List<SShenBingSkill>> map1 = skillMap2.getOrDefault(value.getSpiritAnimalMatch(), new HashMap<>());
|
||||||
List<SShenBingSkill> skills = map1.getOrDefault(value.getStarMatch(), new ArrayList<>());
|
List<SShenBingSkill> skills = map1.getOrDefault(value.getStarMatch(), new ArrayList<>());
|
||||||
skills.add(value);
|
skills.add(value);
|
||||||
map1.put(value.getStarMatch(),skills);
|
map1.put(value.getStarMatch(),skills);
|
||||||
map.put(value.getSpiritAnimalMatch(), map1);
|
skillMap2.put(value.getSpiritAnimalMatch(), map1);
|
||||||
}
|
}
|
||||||
skillMap = map;
|
skillMap = skillMap2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -62,7 +68,11 @@ public class SShenBingSkill implements BaseConfig {
|
||||||
return skillIDList;
|
return skillIDList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int[] getReleasePoint() {
|
public int[] getPassiveSkill() {
|
||||||
|
return passiveSkill;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[] getReleasePoint() {
|
||||||
return releasePoint;
|
return releasePoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue