fight
parent
4eb0121eef
commit
0d473165c8
|
@ -65,6 +65,7 @@ local effectList = {
|
||||||
local f1 = args[2]
|
local f1 = args[2]
|
||||||
local f2 = args[3]
|
local f2 = args[3]
|
||||||
local ct = args[4]
|
local ct = args[4]
|
||||||
|
|
||||||
BattleLogic.WaitForTrigger(interval, function ()
|
BattleLogic.WaitForTrigger(interval, function ()
|
||||||
target:AddBuff(Buff.Create(caster, BuffName.PropertyChange, f2, propertyList[pro1], f1, ct))
|
target:AddBuff(Buff.Create(caster, BuffName.PropertyChange, f2, propertyList[pro1], f1, ct))
|
||||||
end)
|
end)
|
||||||
|
|
|
@ -209,7 +209,7 @@ function Skill:Cast()
|
||||||
local duration = effectGroup.duration
|
local duration = effectGroup.duration
|
||||||
local effects = effectGroup.effects
|
local effects = effectGroup.effects
|
||||||
local nn = floor(chooseId / 10000) % 10
|
local nn = floor(chooseId / 10000) % 10
|
||||||
local count = chooseId % 10
|
local count = min(chooseId % 10, #arr)
|
||||||
if count == 0 then
|
if count == 0 then
|
||||||
count = #arr
|
count = #arr
|
||||||
end
|
end
|
||||||
|
|
|
@ -275,6 +275,58 @@ function BattleLogic.GetOption()
|
||||||
return optionRecord
|
return optionRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--执行操作逻辑
|
||||||
|
function BattleLogic.ExecuteOption(option)
|
||||||
|
local opType = option[2]
|
||||||
|
local opArg = option[3]
|
||||||
|
if opType == 1 then --全局自动手动
|
||||||
|
for i=1, objList.size do
|
||||||
|
local tmpObj = objList.vList[i]
|
||||||
|
if tmpObj.camp == 0 then
|
||||||
|
tmpObj.Auto = opArg == 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
elseif opType == 2 then --释放skill
|
||||||
|
local role = objList.kvList[opArg]
|
||||||
|
if role and role.skill then
|
||||||
|
role.skill:Cast()
|
||||||
|
end
|
||||||
|
elseif opType == 3 then --释放superSkill
|
||||||
|
local role = objList.kvList[opArg]
|
||||||
|
if role and role.superSkill then
|
||||||
|
role.superSkill:Cast()
|
||||||
|
end
|
||||||
|
elseif opType == 4 then --释放teamSkill
|
||||||
|
local teamSkill = playerTeamSkillList[playerTeamSkillIndex]
|
||||||
|
if teamSkill then
|
||||||
|
teamSkill:Cast()
|
||||||
|
playerTeamSkillIndex = playerTeamSkillIndex + 1
|
||||||
|
if playerTeamSkillIndex > #playerTeamSkillList then
|
||||||
|
playerTeamSkillIndex = 1
|
||||||
|
end
|
||||||
|
playerMP = 0
|
||||||
|
end
|
||||||
|
elseif opType == 4 then --释放teamSkill
|
||||||
|
local teamSkill = playerTeamSkillList[playerTeamSkillIndex]
|
||||||
|
if teamSkill then
|
||||||
|
teamSkill:Cast()
|
||||||
|
playerTeamSkillIndex = playerTeamSkillIndex + 1
|
||||||
|
if playerTeamSkillIndex > #playerTeamSkillList then
|
||||||
|
playerTeamSkillIndex = 1
|
||||||
|
end
|
||||||
|
playerMP = 0
|
||||||
|
end
|
||||||
|
elseif opType == 5 then --设置teamSkill自动手动
|
||||||
|
isAuto = opArg == 1
|
||||||
|
elseif opType == 6 then --切换单个角色自动手动 arg == uid * 10 + auto(0手动,1自动)
|
||||||
|
local auto = opArg % 10
|
||||||
|
local uid = floor(opArg / 10)
|
||||||
|
if objList.kvList[uid] then
|
||||||
|
objList.kvList[uid].Auto = auto == 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function BattleLogic.HasObj(obj)
|
function BattleLogic.HasObj(obj)
|
||||||
return obj and objList.kvList[obj.uid]
|
return obj and objList.kvList[obj.uid]
|
||||||
end
|
end
|
||||||
|
@ -343,37 +395,7 @@ function BattleLogic.Update()
|
||||||
|
|
||||||
for i=1, #optionRecord do
|
for i=1, #optionRecord do
|
||||||
if optionRecord[i][1] == curFrame then
|
if optionRecord[i][1] == curFrame then
|
||||||
local opType = optionRecord[i][2]
|
BattleLogic.ExecuteOption(optionRecord[i])
|
||||||
local opArg = optionRecord[i][3]
|
|
||||||
if opType == 1 then --自动手动
|
|
||||||
isAuto = opArg == 1
|
|
||||||
for i=1, objList.size do
|
|
||||||
local tmpObj = objList.vList[i]
|
|
||||||
if tmpObj.camp == 0 then
|
|
||||||
tmpObj.Auto = opArg == 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
elseif opType == 2 then --释放skill
|
|
||||||
local role = objList.kvList[opArg]
|
|
||||||
if role and role.skill then
|
|
||||||
role.skill:Cast()
|
|
||||||
end
|
|
||||||
elseif opType == 3 then --释放superSkill
|
|
||||||
local role = objList.kvList[opArg]
|
|
||||||
if role and role.superSkill then
|
|
||||||
role.superSkill:Cast()
|
|
||||||
end
|
|
||||||
elseif opType == 4 then --释放teamSkill
|
|
||||||
local teamSkill = playerTeamSkillList[playerTeamSkillIndex]
|
|
||||||
if teamSkill then
|
|
||||||
teamSkill:Cast()
|
|
||||||
playerTeamSkillIndex = playerTeamSkillIndex + 1
|
|
||||||
if playerTeamSkillIndex > #playerTeamSkillList then
|
|
||||||
playerTeamSkillIndex = 1
|
|
||||||
end
|
|
||||||
playerMP = 0
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ end
|
||||||
--间隔N帧触发,返回true时表示继续触发,返回false立刻触发OnEnd
|
--间隔N帧触发,返回true时表示继续触发,返回false立刻触发OnEnd
|
||||||
function HOT:OnTrigger()
|
function HOT:OnTrigger()
|
||||||
--log("HOT:OnTrigger")
|
--log("HOT:OnTrigger")
|
||||||
if not self.target.ctrl_noheal then --禁疗无法加血
|
if not self.target.ctrl_noheal or self.target.isDead then --禁疗和死亡无法加血
|
||||||
BattleUtil.ApplyTreat(self.caster, self.target, self.healValue)
|
BattleUtil.ApplyTreat(self.caster, self.target, self.healValue)
|
||||||
end
|
end
|
||||||
return true
|
return true
|
||||||
|
|
|
@ -179,7 +179,7 @@ function BattleUtil.CalDamage(atkRole, defRole, damageType, baseFactor, ignoreDe
|
||||||
end
|
end
|
||||||
|
|
||||||
function BattleUtil.CalTreat(castRole, targetRole, value, baseFactor)
|
function BattleUtil.CalTreat(castRole, targetRole, value, baseFactor)
|
||||||
if targetRole.ctrl_noheal then --禁疗无法加血
|
if targetRole.ctrl_noheal or targetRole.isDead then --禁疗和死亡无法加血
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
targetRole.Event:DispatchEvent(BattleEventName.RoleBeHealed, castRole)
|
targetRole.Event:DispatchEvent(BattleEventName.RoleBeHealed, castRole)
|
||||||
|
|
|
@ -134,4 +134,8 @@ public class SArenaRobotConfig implements BaseConfig {
|
||||||
public void setBreakId(int breakId) {
|
public void setBreakId(int breakId) {
|
||||||
this.breakId = breakId;
|
this.breakId = breakId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setStarOfHeroMap(Map<Integer, Integer> starOfHeroMap) {
|
||||||
|
this.starOfHeroMap = starOfHeroMap;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,7 +1,9 @@
|
||||||
package com.ljsd.jieling.logic.arena;
|
package com.ljsd.jieling.logic.arena;
|
||||||
|
|
||||||
|
import com.googlecode.protobuf.format.JsonFormat;
|
||||||
import com.ljsd.jieling.config.*;
|
import com.ljsd.jieling.config.*;
|
||||||
import com.ljsd.jieling.core.GlobalsDef;
|
import com.ljsd.jieling.core.GlobalsDef;
|
||||||
|
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||||
import com.ljsd.jieling.handler.map.behavior.BehaviorUtil;
|
import com.ljsd.jieling.handler.map.behavior.BehaviorUtil;
|
||||||
import com.ljsd.jieling.logic.dao.*;
|
import com.ljsd.jieling.logic.dao.*;
|
||||||
|
@ -88,55 +90,57 @@ public class ArenaLogic {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void challenge(ISession session,int challengeUid,int teamId) throws Exception {
|
public void challenge(ISession session,int challengeUid,int teamId) throws Exception {
|
||||||
int uid = session.getUid();
|
int uid = session.getUid();
|
||||||
User user = UserManager.getUser(uid);
|
User user = UserManager.getUser(uid);
|
||||||
String err = checkChallenge(user);
|
String err = checkChallenge(user);
|
||||||
if(!"".equals(err)){
|
if(!"".equals(err)){
|
||||||
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ARENA_CHALLENGE_RESPONSE_VALUE,err);
|
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ARENA_CHALLENGE_RESPONSE_VALUE,err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ArenaManager arenaManager = user.getArenaManager();
|
ArenaManager arenaManager = user.getArenaManager();
|
||||||
List<ArenaEnemy> arenaEnemies = arenaManager.getArenaEnemies();
|
List<ArenaEnemy> arenaEnemies = arenaManager.getArenaEnemies();
|
||||||
ArenaEnemy enemyInfo = getEnemyInList(challengeUid, arenaEnemies);
|
ArenaEnemy enemyInfo = getEnemyInList(challengeUid, arenaEnemies);
|
||||||
if( null == enemyInfo ){
|
if( null == enemyInfo ){
|
||||||
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ARENA_CHALLENGE_RESPONSE_VALUE,"对手错误");
|
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ARENA_CHALLENGE_RESPONSE_VALUE,"对手错误");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int fightResult=0;
|
int fightResult=0;
|
||||||
int myscore = 2000;
|
int myscore = 2000;
|
||||||
int defScore =1000;
|
int defScore =1000;
|
||||||
int enemyType = enemyInfo.getEnemyType();
|
int enemyType = enemyInfo.getEnemyType();
|
||||||
int myscoreChange=0;
|
int myscoreChange=0;
|
||||||
int defScoreChange=0;
|
int defScoreChange=0;
|
||||||
|
|
||||||
arenaEnemies = new ArrayList<>();
|
arenaEnemies = new ArrayList<>();
|
||||||
Set<Integer> robotIds = randomRobot(user.getPlayerInfoManager().getLevel(), 5);
|
Set<Integer> robotIds = randomRobot(user.getPlayerInfoManager().getLevel(), 5);
|
||||||
toArenaEnemy(uid,robotIds,arenaEnemies,0);
|
toArenaEnemy(uid,robotIds,arenaEnemies,0);
|
||||||
arenaManager.setArenaEnemies(arenaEnemies);
|
arenaManager.setArenaEnemies(arenaEnemies);
|
||||||
myscoreChange = calScore(myscore, defScore,fightResult);
|
myscoreChange = calScore(myscore, defScore,fightResult);
|
||||||
defScoreChange = calScore(defScore, myscore,fightResult);
|
defScoreChange = calScore(defScore, myscore,fightResult);
|
||||||
|
|
||||||
RedisUtil.getInstence().incrementZsetScore("Arena_Rank_1",Integer.toString(uid),myscoreChange);
|
RedisUtil.getInstence().incrementZsetScore("Arena_Rank_1",Integer.toString(uid),myscoreChange);
|
||||||
if( enemyType == GlobalsDef.ARENA_PLAYER_TYPE){
|
if( enemyType == GlobalsDef.ARENA_PLAYER_TYPE){
|
||||||
RedisUtil.getInstence().incrementZsetScore("Arena_Rank_1",Integer.toString(challengeUid),defScoreChange);
|
RedisUtil.getInstence().incrementZsetScore("Arena_Rank_1",Integer.toString(challengeUid),defScoreChange);
|
||||||
}
|
}
|
||||||
//组战斗数据
|
//组战斗数据
|
||||||
ArenaInfoProto.ArenaChallengeResponse build = ArenaInfoProto.ArenaChallengeResponse.newBuilder().setMyScoreChange(myscoreChange).setDefScoreChange(defScoreChange).addAllArenaEnemys(getArenaEnemyList(arenaManager.getArenaEnemies())).build();
|
ArenaInfoProto.ArenaChallengeResponse build = ArenaInfoProto.ArenaChallengeResponse.newBuilder().setMyScoreChange(myscoreChange).setDefScoreChange(defScoreChange).addAllArenaEnemys(getArenaEnemyList(arenaManager.getArenaEnemies())).build();
|
||||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ARENA_CHALLENGE_RESPONSE_VALUE,build,true);
|
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ARENA_CHALLENGE_RESPONSE_VALUE,build,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public int getFightResultByPersonToPerson(User mine,int myteamId,User defUser,int defTeamId){
|
|
||||||
CommonProto.FightTeamInfo fightTeamInfo = BehaviorUtil.getFightTeamInfo(mine,myteamId);
|
|
||||||
CommonProto.FightTeamInfo deffightTeamInfo = BehaviorUtil.getFightTeamInfo(defUser,defTeamId);
|
public static int getFightResultByPersonToPerson(User mine,int myteamId,User defUser,int defTeamId){
|
||||||
//设置战斗随机种子
|
CommonProto.FightTeamInfo fightTeamInfo = BehaviorUtil.getFightTeamInfo(mine,myteamId);
|
||||||
int seed = (int)(System.currentTimeMillis()/1000);
|
CommonProto.FightTeamInfo deffightTeamInfo = BehaviorUtil.getFightTeamInfo(defUser,defTeamId);
|
||||||
LuaValue getFightData = FightDataUtil.getFinalPlayerFightData(fightTeamInfo, deffightTeamInfo);
|
//设置战斗随机种子
|
||||||
LuaValue getOptionData = FightDataUtil.getOptionData("");
|
int seed = (int)(System.currentTimeMillis()/1000);
|
||||||
int[] checkResult = CheckFight.getInstance().checkFight(seed,SArenaSetting.getSArenaSetting().getMostTime(), getFightData, getOptionData);
|
LuaValue getFightData = FightDataUtil.getFinalPlayerFightData(fightTeamInfo, deffightTeamInfo);
|
||||||
return checkResult[0];
|
LuaValue getOptionData = FightDataUtil.getOptionData("");
|
||||||
}
|
int[] checkResult = CheckFight.getInstance().checkFight(seed,SArenaSetting.getSArenaSetting().getMostTime(), getFightData, getOptionData);
|
||||||
|
return checkResult[0];
|
||||||
|
}
|
||||||
|
|
||||||
public int getFightResultByPersonToRobot(User mine,int myteamId,SArenaRobotConfig sArenaRobotConfig){
|
public int getFightResultByPersonToRobot(User mine,int myteamId,SArenaRobotConfig sArenaRobotConfig){
|
||||||
CommonProto.FightTeamInfo fightTeamInfo = BehaviorUtil.getFightTeamInfo(mine,myteamId);
|
CommonProto.FightTeamInfo fightTeamInfo = BehaviorUtil.getFightTeamInfo(mine,myteamId);
|
||||||
|
@ -149,22 +153,22 @@ public class ArenaLogic {
|
||||||
return checkResult[0];
|
return checkResult[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
private String checkChallenge(User user) throws Exception {
|
private String checkChallenge(User user) throws Exception {
|
||||||
ArenaManager arenaManager = user.getArenaManager();
|
ArenaManager arenaManager = user.getArenaManager();
|
||||||
SArenaSetting sArenaSetting = SArenaSetting.getSArenaSetting();
|
SArenaSetting sArenaSetting = SArenaSetting.getSArenaSetting();
|
||||||
int useFreeTimes = arenaManager.getUseFreeTimes();
|
int useFreeTimes = arenaManager.getUseFreeTimes();
|
||||||
int battleFree = sArenaSetting.getBattleFree();
|
int battleFree = sArenaSetting.getBattleFree();
|
||||||
if(useFreeTimes>=battleFree){
|
if(useFreeTimes>=battleFree){
|
||||||
//校验消耗
|
//校验消耗
|
||||||
boolean enough = ItemUtil.itemCost(user, sArenaSetting.getCostItem());
|
boolean enough = ItemUtil.itemCost(user, sArenaSetting.getCostItem());
|
||||||
if(!enough){
|
if(!enough){
|
||||||
return "道具不足";
|
return "道具不足";
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
arenaManager.setUseFreeTimes(useFreeTimes+1);
|
arenaManager.setUseFreeTimes(useFreeTimes+1);
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
private ArenaEnemy getEnemyInList(int challengeUid, List<ArenaEnemy> enemys) {
|
private ArenaEnemy getEnemyInList(int challengeUid, List<ArenaEnemy> enemys) {
|
||||||
for (ArenaEnemy data : enemys) {
|
for (ArenaEnemy data : enemys) {
|
||||||
|
|
|
@ -620,17 +620,20 @@ public class HeroLogic {
|
||||||
}
|
}
|
||||||
|
|
||||||
//根据英雄等级计算出brealId,从而也可以获取星级
|
//根据英雄等级计算出brealId,从而也可以获取星级
|
||||||
public int calRobotStarByLevel(int heroTid,int heroLevel){
|
public int calRobotStarByLevel(int heroTid,int heroLevel,Map<Integer,Integer> starHeroMap){
|
||||||
SCHero scHero = SCHero.getsCHero().get(heroTid);
|
SCHero scHero = SCHero.getsCHero().get(heroTid);
|
||||||
|
int star = scHero.getStar();
|
||||||
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = SCHeroRankUpConfig.getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE,scHero.getStar());
|
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = SCHeroRankUpConfig.getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE,scHero.getStar());
|
||||||
if(scHeroRankUpConfigByType == null){
|
if(scHeroRankUpConfigByType == null){
|
||||||
scHeroRankUpConfigByType = SCHeroRankUpConfig.getScHeroRankUpConfigByShow(GlobalsDef.BREAK_TYPE,scHero.getStar());
|
scHeroRankUpConfigByType = SCHeroRankUpConfig.getScHeroRankUpConfigByShow(GlobalsDef.BREAK_TYPE,scHero.getStar());
|
||||||
}
|
}
|
||||||
for(SCHeroRankUpConfig scHeroRankUpConfig : scHeroRankUpConfigByType.values()){
|
for(SCHeroRankUpConfig scHeroRankUpConfig : scHeroRankUpConfigByType.values()){
|
||||||
if (heroLevel>=scHeroRankUpConfig.getLimitLevel() && heroLevel <= scHeroRankUpConfig.getOpenLevel()){
|
if (heroLevel>=scHeroRankUpConfig.getLimitLevel() && heroLevel <= scHeroRankUpConfig.getOpenLevel()){
|
||||||
|
starHeroMap.put(heroTid,scHeroRankUpConfig.getOpenStar());
|
||||||
return scHeroRankUpConfig.getId();
|
return scHeroRankUpConfig.getId();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
starHeroMap.put(heroTid,star);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1237,7 +1240,7 @@ public class HeroLogic {
|
||||||
int differDemonsLv = sArenaRobotConfig.getDifferDemonsLv();
|
int differDemonsLv = sArenaRobotConfig.getDifferDemonsLv();
|
||||||
int robotLevel = sArenaRobotConfig.getRobotLevel();
|
int robotLevel = sArenaRobotConfig.getRobotLevel();
|
||||||
for(Integer heroTid :heroList){
|
for(Integer heroTid :heroList){
|
||||||
int heroBreakId = calRobotStarByLevel(heroTid, robotLevel);
|
int heroBreakId = sArenaRobotConfig.getBreakId();
|
||||||
Map<Integer, Integer> robotHeroAttribute = calRobotHeroAttribute(heroTid, robotLevel, heroBreakId, differDemonsId, differDemonsLv);
|
Map<Integer, Integer> robotHeroAttribute = calRobotHeroAttribute(heroTid, robotLevel, heroBreakId, differDemonsId, differDemonsLv);
|
||||||
totalForce+=calForce(robotHeroAttribute);
|
totalForce+=calForce(robotHeroAttribute);
|
||||||
}
|
}
|
||||||
|
@ -1249,13 +1252,13 @@ public class HeroLogic {
|
||||||
for(SArenaRobotConfig sArenaRobotConfig : integerSArenaRobotConfigMap.values()){
|
for(SArenaRobotConfig sArenaRobotConfig : integerSArenaRobotConfigMap.values()){
|
||||||
List<Integer> heroList = sArenaRobotConfig.getHeroList();
|
List<Integer> heroList = sArenaRobotConfig.getHeroList();
|
||||||
int robotLevel = sArenaRobotConfig.getRobotLevel();
|
int robotLevel = sArenaRobotConfig.getRobotLevel();
|
||||||
|
Map<Integer,Integer> starHeroMap = new HashMap<>();
|
||||||
for(Integer heroTid :heroList){
|
for(Integer heroTid :heroList){
|
||||||
int heroBreakId = calRobotStarByLevel(heroTid, robotLevel);
|
int heroBreakId = calRobotStarByLevel(heroTid, robotLevel,starHeroMap);
|
||||||
sArenaRobotConfig.setBreakId(heroBreakId);
|
sArenaRobotConfig.setBreakId(heroBreakId);
|
||||||
|
sArenaRobotConfig.setStarOfHeroMap(starHeroMap);
|
||||||
}
|
}
|
||||||
sArenaRobotConfig.setTotalForce(HeroLogic.getInstance().calRobotTotalForce(sArenaRobotConfig));
|
sArenaRobotConfig.setTotalForce(HeroLogic.getInstance().calRobotTotalForce(sArenaRobotConfig));
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ public class FightDataUtil {
|
||||||
public static LuaValue getFinalFightData(CommonProto.FightTeamInfo heroTeam, List<CommonProto.FightTeamInfo> monsterTeamList) {
|
public static LuaValue getFinalFightData(CommonProto.FightTeamInfo heroTeam, List<CommonProto.FightTeamInfo> monsterTeamList) {
|
||||||
|
|
||||||
LuaValue LuaTable = new LuaTable();
|
LuaValue LuaTable = new LuaTable();
|
||||||
LuaTable.set("playerData", getPlayerData(heroTeam));
|
LuaTable.set("playerData", getPlayerData(heroTeam,0));
|
||||||
LuaTable.set("enemyData", getEnemyData(monsterTeamList));
|
LuaTable.set("enemyData", getEnemyData(monsterTeamList));
|
||||||
return LuaTable;
|
return LuaTable;
|
||||||
|
|
||||||
|
@ -46,8 +46,10 @@ public class FightDataUtil {
|
||||||
public static LuaValue getFinalPlayerFightData(CommonProto.FightTeamInfo heroTeam, CommonProto.FightTeamInfo enemyHeroTeam) {
|
public static LuaValue getFinalPlayerFightData(CommonProto.FightTeamInfo heroTeam, CommonProto.FightTeamInfo enemyHeroTeam) {
|
||||||
|
|
||||||
LuaValue LuaTable = new LuaTable();
|
LuaValue LuaTable = new LuaTable();
|
||||||
LuaTable.set("playerData", getPlayerData(heroTeam));
|
LuaTable.set("playerData", getPlayerData(heroTeam,0));
|
||||||
LuaTable.set("enemyData", getPlayerData(enemyHeroTeam));
|
LuaValue enemyData = new LuaTable();
|
||||||
|
enemyData.rawset( 1, getPlayerData(enemyHeroTeam,1));
|
||||||
|
LuaTable.set("enemyData", enemyData);
|
||||||
return LuaTable;
|
return LuaTable;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -172,10 +174,10 @@ public class FightDataUtil {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static LuaValue getPlayerData(CommonProto.FightTeamInfo heroTeam) {
|
public static LuaValue getPlayerData(CommonProto.FightTeamInfo heroTeam,int position) {
|
||||||
LuaValue playerData = new LuaTable();
|
LuaValue playerData = new LuaTable();
|
||||||
for (int i = 1; i <= heroTeam.getFightUnitListCount(); i++) {
|
for (int i = 1; i <= heroTeam.getFightUnitListCount(); i++) {
|
||||||
playerData.rawset(i, getHeroFightUnit(heroTeam.getFightUnitList(i - 1)));
|
playerData.rawset(i, getHeroFightUnit(heroTeam.getFightUnitList(i - 1),position));
|
||||||
}
|
}
|
||||||
playerData.set("teamSkill", getTeamSkill(heroTeam.getTeamSkillList()));
|
playerData.set("teamSkill", getTeamSkill(heroTeam.getTeamSkillList()));
|
||||||
return playerData;
|
return playerData;
|
||||||
|
@ -196,7 +198,13 @@ public class FightDataUtil {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static LuaValue getHeroFightUnit(CommonProto.FightUnitInfo data) {
|
/**
|
||||||
|
*
|
||||||
|
* @param data
|
||||||
|
* @param postion 0:我方 1:敌方
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private static LuaValue getHeroFightUnit(CommonProto.FightUnitInfo data,int postion) {
|
||||||
String unitId = data.getUnitId();
|
String unitId = data.getUnitId();
|
||||||
String[] skillIds = data.getUnitSkillIds().trim().split("#");
|
String[] skillIds = data.getUnitSkillIds().trim().split("#");
|
||||||
String property = data.getProperty();
|
String property = data.getProperty();
|
||||||
|
@ -204,7 +212,7 @@ public class FightDataUtil {
|
||||||
LuaValue unitData = new LuaTable();
|
LuaValue unitData = new LuaTable();
|
||||||
unitData.set("roleId", hero.getId());
|
unitData.set("roleId", hero.getId());
|
||||||
unitData.set("professionId", hero.getProfession());
|
unitData.set("professionId", hero.getProfession());
|
||||||
unitData.set("camp", 0);
|
unitData.set("camp", postion);
|
||||||
unitData.set("type", 1);
|
unitData.set("type", 1);
|
||||||
unitData.set("quality", 1);
|
unitData.set("quality", 1);
|
||||||
unitData.set("element", hero.getPropertyName());
|
unitData.set("element", hero.getPropertyName());
|
||||||
|
|
Loading…
Reference in New Issue