神兵被动

master_ob2
PC-202302260912\Administrator 2023-09-08 11:46:33 +08:00
parent 78632049ec
commit 1c68fd6145
1 changed files with 20 additions and 23 deletions

View File

@ -7,10 +7,7 @@ import org.luaj.vm2.LuaTable;
import org.luaj.vm2.LuaValue;
import util.StringUtil;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.*;
public class FightDataUtil {
@ -106,7 +103,7 @@ public class FightDataUtil {
}else {
unitData.set("skill", getSkill(unitSkill[0],sMonster.getSkinId()));
unitData.set("superSkill", getSkill(unitSkill[1],sMonster.getSkinId()));
unitData.set("passivity", getPassivity(unitSkill));
unitData.set("passivity", getHeroPassivity(unitSkill));
}
unitData.set("ai", getMonsterAi(sMonster.getMonsterAi()));
@ -163,7 +160,7 @@ public class FightDataUtil {
}else {
unitData.set("skill", getSkill(unitSkill[0],0));
unitData.set("superSkill", getSkill(unitSkill[1],0));
unitData.set("passivity", getPassivity(unitSkill));
unitData.set("passivity", getHeroPassivity(unitSkill));
}
unitData.set("ai", getMonsterAi(new int[]{}));
@ -191,33 +188,34 @@ public class FightDataUtil {
return property;
}
private static LuaValue getHeroPassivity(String[] unitSkill) {
String[] ofRange = Arrays.copyOfRange(unitSkill, 2, unitSkill.length);
return getPassivity(ofRange);
}
private static LuaValue getPassivity(String[] unitSkill) {
LuaValue passivityData = new LuaTable();
int length = unitSkill.length;
if(length<3){
return passivityData;
}
int passivityIndex = 1;
Set<Integer> tempSet = new HashSet<>(8);
for(int i=2;i<length;i++){
int passivityId = Integer.parseInt(unitSkill[i]);
for (String s : unitSkill) {
int passivityId = Integer.parseInt(s);
SPassiveSkillLogicConfig sPassiveSkillLogicConfig = SPassiveSkillLogicConfig.getConfig(passivityId);
if(sPassiveSkillLogicConfig.getCoverID()!=0) {
if (sPassiveSkillLogicConfig.getCoverID() != 0) {
tempSet.add(sPassiveSkillLogicConfig.getCoverID());
}
}
for(int i=2;i<length;i++){
for (String s : unitSkill) {
LuaValue detail = new LuaTable();
int passivityId = Integer.parseInt(unitSkill[i]);
int passivityId = Integer.parseInt(s);
SPassiveSkillLogicConfig sPassiveSkillLogicConfig = SPassiveSkillLogicConfig.getConfig(passivityId);
if(sPassiveSkillLogicConfig.getEffectiveRange()!=1){
if (sPassiveSkillLogicConfig.getEffectiveRange() != 1) {
continue;
}
//如果有覆盖的则不添加
if(tempSet.contains(sPassiveSkillLogicConfig.getId())){
if (tempSet.contains(sPassiveSkillLogicConfig.getId())) {
continue;
}
detail.rawset(1,LuaValue.valueOf(sPassiveSkillLogicConfig.getId()));
detail.rawset(1, LuaValue.valueOf(sPassiveSkillLogicConfig.getId()));
detail.rawset(2, LuaValue.valueOf(sPassiveSkillLogicConfig.getJudge()));
detail.rawset(3, LuaValue.valueOf(sPassiveSkillLogicConfig.getType()));
List<LuaValue> effectList = parseArraayToLuaValues(sPassiveSkillLogicConfig.getValue());
@ -227,11 +225,11 @@ public class FightDataUtil {
detail.rawset(j + 4, effectList.get(j));
}
}
passivityData.rawset(passivityIndex,detail);
passivityData.rawset(passivityIndex, detail);
passivityIndex++;
}
return passivityData;
return passivityData;
}
private static List<LuaValue> parseArraayToLuaValues(float[] source) {
@ -404,8 +402,7 @@ public class FightDataUtil {
monster.set("skill", initiative);
String[] convert = typeConvert(passive);
LuaValue passivity = getPassivity(convert);
monster.set("passivity", passivity);
monster.set("passivity", getPassivity(convert));
teamSkill.rawset(i+1,monster);
}
return teamSkill;
@ -476,7 +473,7 @@ public class FightDataUtil {
}else {
unitData.set("superSkill", getSkill(skillIds[1],data.getSkinId()));
}
unitData.set("passivity", getPassivity(skillIds));
unitData.set("passivity", getHeroPassivity(skillIds));
unitData.set("property", getProperty(property));
unitData.set("skinId",data.getSkinId());
unitData.set("job",hero.getJob());