From b9b8eaba395bda3cd0ce65fe13c06c49065ba3c8 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Mon, 21 Oct 2019 14:20:56 +0800 Subject: [PATCH] pokemon skill --- .../com/ljsd/jieling/logic/hero/HeroLogic.java | 12 +++++++++--- .../com/ljsd/jieling/util/FightDataUtil.java | 18 ++++++++++++------ 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index 3c7490ff9..bd0a38f05 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -1003,16 +1003,22 @@ public class HeroLogic { public String getPokenmonSkills(User user,int teamId){ StringBuilder pokenSkillResult = new StringBuilder(); List teamPosForPokenInfos = user.getTeamPosManager().getTeamPosForPoken().get(teamId); - if (teamPosForPokenInfos==null){ + if (teamPosForPokenInfos==null || teamPosForPokenInfos.isEmpty()){ return ""; } Map pokemonMap = user.getPokemonManager().getPokemonMap(); Collections.sort(teamPosForPokenInfos); - for(TeamPosForPokenInfo teamPosForPokenInfo:teamPosForPokenInfos){ + int size = teamPosForPokenInfos.size(); + for(int i=0;i0){ - teamSkill.rawset(i + 1, getSkill(skills[i])); + String skillAndPos = skills[i]; + String[] skillAndPosItem = skillAndPos.split("#"); + if (Integer.parseInt(skillAndPosItem[1])>0){ + teamSkill.rawset(i + 1, getSkill(skillAndPosItem[1],skillAndPosItem[0])); } } return teamSkill; @@ -269,14 +271,18 @@ public class FightDataUtil { return property; } - private static LuaValue getSkill(String skillId) { + private static LuaValue getSkill(String skillId,String...args) { LuaValue skill = new LuaTable(); if (skillId==null || skillId.equals("") ){ return skill; } SSkillLogicVo sSkillLogicVo = SSkillLogicConfig.getsSkillLogicVo(Integer.valueOf(skillId)); if (sSkillLogicVo != null && sSkillLogicVo.getSkillTargetVoList().size()>0) { - skill.rawset(1, LuaValue.valueOf(sSkillLogicVo.getCd())); + float cd = sSkillLogicVo.getCd(); + if(args!=null&&args.length>0){ + cd+=Integer.parseInt(args[0]); + } + skill.rawset(1, LuaValue.valueOf(cd)); List effectList = getEffect(sSkillLogicVo); int size = effectList.size(); if (size > 0) {