diff --git a/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java b/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java index fdc5861f2..255754601 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java @@ -155,6 +155,7 @@ public enum ErrorCode implements IErrorCode { HAD_TAKE(125, "已领取"), NOT_IN_TAKE_TIME(126, "不在领取期间"), USER_LEVE_DOWN(127,"玩家等级不够"), + HAS_AWAKE(130,"已达最大星级"), SERVER_DEFINE_SELF(20000,"操作失败") ; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/SpecialMonsterChooseHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/SpecialMonsterChooseHandler.java new file mode 100644 index 000000000..d72de5d5d --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/SpecialMonsterChooseHandler.java @@ -0,0 +1,26 @@ +package com.ljsd.jieling.handler.activity; + +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.activity.ActivityLogic; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.ActivityProto; +import com.ljsd.jieling.protocols.MessageTypeProto; +import org.springframework.stereotype.Component; + +/** + * @author lvxinran + * @date 2020/11/11 + * @discribe + */ +@Component +public class SpecialMonsterChooseHandler extends BaseHandler{ + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.SPECICAL_MONSTER_CHOOSE_REQUEST; + } + + @Override + public void processWithProto(ISession iSession, ActivityProto.SpecicalMonsterChooseRequest proto) throws Exception { + ActivityLogic.getInstance().chooseSpecialMonster(iSession,proto.getActivityId(),proto.getSelectId()); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GetCarChallengeListHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GetCarChallengeListHandler.java index 5630089fe..92b597446 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GetCarChallengeListHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GetCarChallengeListHandler.java @@ -50,18 +50,25 @@ public class GetCarChallengeListHandler extends BaseHandler { int zsetSize = RedisUtil.getInstence().getZsetSize(key); List beforeList = new ArrayList<>(5); List afterList = new ArrayList<>(5); + int maxWhile = 30;//最大匹配循环次数 if(myRank == -1){ - int start = zsetSize - matchNums; - if(start<0){ - start=0; + int end = 0; + while(end> beforeScore = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.CAR_DEALY_RANK, "", zsetSize-end , zsetSize-end ); + if(!beforeScore.isEmpty()){ + ZSetOperations.TypedTuple beforeNext = beforeScore.iterator().next(); + if(!members.contains(Integer.parseInt(beforeNext.getValue()))){ + beforeList.add(new ZsetTypedTupleWithRank(beforeNext,zsetSize-end+1)); + } + } + end++; } - int end=-1; - process(start,end,members,matchNums,infos); +// process(start,end,members,matchNums,infos); }else{ int i = myRank-1; int j = myRank+1; - int maxWhile = 30;//最大匹配循环次数 while(i>0||j<=zsetSize){ if(i>0){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_review_gm.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_review_gm.java index 5bbc1a697..3b4df3a42 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_review_gm.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_review_gm.java @@ -76,7 +76,10 @@ public class Cmd_review_gm extends GmAbstract { if (defMemberInfo.getType() == 0) { FamilyFightInfo fightInfo = defMemberInfo.getFightInfo(); - pvpFightEvent.setDefFightSnapData(new DefFightSnapData(fightInfo.getHeroAttribute(), fightInfo.getHeroSkills(), fightInfo.getPokenmonSkills(), fightInfo.getPassiveSkills())); +//<<<<<<< HEAD +// pvpFightEvent.setDefFightSnapData(new DefFightSnapData(fightInfo.getHeroAttribute(), fightInfo.getHeroSkills(), fightInfo.getPokenmonSkills(), fightInfo.getPassiveSkills())); +//======= + pvpFightEvent.setDefFightSnapData(new DefFightSnapData(fightInfo.getHeroAttribute(), fightInfo.getHeroSkills(), fightInfo.getPokenmonSkills(), fightInfo.getPassiveSkills(), defUid)); defForce = fightInfo.getForce(); } else { SArenaRobotConfig sArenaRobotConfig = SArenaRobotConfig.getsArenaRobotConfigById(defUid); @@ -86,7 +89,10 @@ public class Cmd_review_gm extends GmAbstract { } if (attackMemberInfo.getType() == 0) { FamilyFightInfo fightInfo = attackMemberInfo.getFightInfo(); - pvpFightEvent.setAttackFightSnapData(new DefFightSnapData(fightInfo.getHeroAttribute(), fightInfo.getHeroSkills(), fightInfo.getPokenmonSkills(), fightInfo.getPassiveSkills())); +//<<<<<<< HEAD +// pvpFightEvent.setAttackFightSnapData(new DefFightSnapData(fightInfo.getHeroAttribute(), fightInfo.getHeroSkills(), fightInfo.getPokenmonSkills(), fightInfo.getPassiveSkills())); +//======= + pvpFightEvent.setAttackFightSnapData(new DefFightSnapData(fightInfo.getHeroAttribute(), fightInfo.getHeroSkills(), fightInfo.getPokenmonSkills(), fightInfo.getPassiveSkills(), attackId)); minForce = fightInfo.getForce(); } else { SArenaRobotConfig sArenaRobotConfig = SArenaRobotConfig.getsArenaRobotConfigById(attackId); @@ -117,13 +123,19 @@ public class Cmd_review_gm extends GmAbstract { deffightTeamInfo = FightUtil.makePersonFightData(defInMem, pvpFightEvent.getDefTeamId(),null,null); }else{ deffightTeamInfo = FightUtil. makeRobotFightData(pvpFightEvent.getDefUid()); +// deffightTeamInfo = FightUtil. makeRobotFightData(pvpFightEvent.getDefUid()); } } if(fightTeamInfo==null){ - if( pvpFightEvent.getFightType()!= GameFightType.TOPArena2RobotFight){ +//<<<<<<< HEAD +// if( pvpFightEvent.getFightType()!= GameFightType.TOPArena2RobotFight){ +// if( SArenaRobotConfig.getsArenaRobotConfigById(pvpFightEvent.getAttackUid()) !=null){ +// fightTeamInfo = FightUtil. makeRobotFightData(pvpFightEvent.getAttackUid()); +//======= + if( pvpFightEvent.getFightType()!=GameFightType.TOPArena2RobotFight){ if( SArenaRobotConfig.getsArenaRobotConfigById(pvpFightEvent.getAttackUid()) !=null){ - fightTeamInfo = FightUtil. makeRobotFightData(pvpFightEvent.getAttackUid()); + fightTeamInfo =FightUtil. makeRobotFightData(pvpFightEvent.getAttackUid()); }else{ User userInMem = UserManager.getUserInMem(pvpFightEvent.getAttackUid()); fightTeamInfo = FightUtil.makePersonFightData(userInMem, pvpFightEvent.getTeamId(),pvpFightEvent.getAttackBloodMap(),null); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 775cb3e61..c55ffa330 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -1374,4 +1374,29 @@ public class ActivityLogic implements IEventHandler{ return openActivityIds.contains(activityId); } + /** + * 灵兽活动选择灵兽 + * @param session + * @param activityId + * @param chooseId + */ + public void chooseSpecialMonster(ISession session,int activityId,int chooseId) throws Exception { + SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(activityId); + if(activity==null||activity.getType()!=ActivityType.SPECIAL_MONSTER_RANDOM_ACTIVITY){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + User user = UserManager.getUser(session.getUid()); + Map activityMissionMap = user.getActivityManager().getActivityMissionMap(); + ActivityMission activityMission = activityMissionMap.get(activityId); + if(activityMission==null||!activityMission.getActivityMissionMap().containsKey(0)){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + Map sSpiritAnimalSummon = STableManager.getConfig(SSpiritAnimalSummon.class); + if(!sSpiritAnimalSummon.containsKey(chooseId)||sSpiritAnimalSummon.get(chooseId).getActivityID()!=activityId){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + activityMission.getActivityMissionMap().get(0).setProgrss(chooseId); + + MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.SPECICAL_MONSTER_CHOOSE_RESPONSE_VALUE,null,true); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java index 7a675c357..44428085a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java @@ -80,5 +80,7 @@ public interface ActivityType { int SHEJI_ACTIVITY = 60;//社稷大典 int SUB_ACTIVITY = 8000;//易经宝库 int SKIN_RECHARGE_ACTIVITY = 71; + int SPECIAL_MONSTER_RANDOM_ACTIVITY = 100;//灵兽限时抽卡 + int SPECIAL_MONSTER_GIFT_ACTIVITY = 101;//灵兽礼包 } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java index e7e88996a..7b46d2156 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java @@ -61,8 +61,8 @@ public enum ActivityTypeEnum { SHEJI_ACTIVITY(ActivityType.SHEJI_ACTIVITY,SheJiActivity::new), SUB_ACTIVITY(ActivityType.SUB_ACTIVITY, SubActivity::new), SKIN_RECHARGE_ACTIVITY(ActivityType.SKIN_RECHARGE_ACTIVITY, DefaultEmptyActivity::new), - - + SPECIAL_MONSTER_RANDOM_ACTIVITY(ActivityType.SPECIAL_MONSTER_RANDOM_ACTIVITY,LimitRandomSpecialMonsterActivity::new), + SPECIAL_MONSTER_GIFT_ACTIVITY(ActivityType.SPECIAL_MONSTER_GIFT_ACTIVITY,DefaultEmptyActivity::new), ; private int type; private Function toActivityFunction; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivity.java new file mode 100644 index 000000000..18399fa36 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivity.java @@ -0,0 +1,44 @@ +package com.ljsd.jieling.logic.activity; + +import com.ljsd.jieling.jbean.ActivityMission; +import com.ljsd.jieling.jbean.ActivityProgressInfo; +import com.ljsd.jieling.logic.dao.root.User; + +import java.util.Map; + +/** + * @author lvxinran + * @date 2020/11/11 + * @discribe + */ +public class LimitRandomSpecialMonsterActivity extends LimitRandomCardActivity { + + public LimitRandomSpecialMonsterActivity(int id) { + super(id); + } + + @Override + public void initActivity(User user) { + super.initActivity(user); + Map activityMissionMap = user.getActivityManager().getActivityMissionMap(); + ActivityMission activityMission = activityMissionMap.get(id); + if(activityMission!=null){ + activityMission.getActivityMissionMap().put(0,new ActivityProgressInfo()); + } + } + + @Override + void updateProgress(ActivityMission activityMission, int count) { + Map activityProgressInfoMap = activityMission.getActivityMissionMap(); + int progress; + for (Map.Entry item : activityProgressInfoMap.entrySet()) { + if(item.getKey()==0){ + continue; + } + ActivityProgressInfo activityProgressInfo = item.getValue(); + progress = item.getValue().getProgrss() + count; + activityProgressInfo.setProgrss(progress); + activityMission.getActivityMissionMap().put(item.getKey(), activityProgressInfo); + } + } +} 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 40310fae7..5b93c23c3 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 @@ -14,6 +14,8 @@ import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.globals.GlobalItemType; +import com.ljsd.jieling.jbean.ActivityMission; +import com.ljsd.jieling.jbean.ActivityProgressInfo; import com.ljsd.jieling.ktbeans.ReportEventEnum; import com.ljsd.jieling.ktbeans.ReportUtil; import com.ljsd.jieling.logic.activity.ActivityType; @@ -140,6 +142,8 @@ public class HeroLogic{ private static final String VERTICAL = "|"; private static final String DIVISION = "#"; + public static final int HERO_MAX_STAR = 10; // 英雄最大星级,大于10星为觉醒 + /** * 获取装备、法宝信息、魂印 @@ -331,6 +335,10 @@ public class HeroLogic{ for(int i = 0;i> spiritAnimalSummonMapByActivityId = SSpiritAnimalSummo.spiritAnimalSummonMapByActivityId; + ActivityProgressInfo activityProgressInfo = activityMission.getActivityMissionMap().get(0); + if(activityProgressInfo==null||activityProgressInfo.getProgrss()==0){ + return; + } + Map config = STableManager.getConfig(SSpiritAnimalSummon.class); + if(!config.containsKey(activityProgressInfo.getProgrss())){ + return; + } + SSpiritAnimalSummon sSpiritAnimalSummon = config.get(activityProgressInfo.getProgrss()); + if(sSpiritAnimalSummon.getActivityID()!=activityId){ + return; + } + //进行替换 + for(int[] randomItem:random){ + int length = Math.min(sSpiritAnimalSummon.getOriginalItemList().length,sSpiritAnimalSummon.getTargetItemList().length); + for(int i = 0 ; i = scHero.getMaxRank()) { + throw new ErrorCodeException(ErrorCode.HAS_AWAKE); + } int[] growthSwitch = scHero.getGrowthSwitch(); if(growthSwitch!=null&&growthSwitch.length>0){ Set operateSet= Arrays.stream(growthSwitch).boxed().collect(Collectors.toSet()); @@ -1030,9 +1070,13 @@ public class HeroLogic{ Poster.getPoster().dispatchEvent(new UserMainTeamForceEvent(session.getUid())); } MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,baseBuilder.build(),true); - if(targetHero.getStar()>= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_rankup_hero_content_parm)){ - String message = SErrorCodeEerverConfig.getI18NMessage("lamp_rankup_hero_content", new Object[]{user.getPlayerInfoManager().getNickName(), scHero.getReadingName(),targetHero.getStar()}); - ChatLogic.getInstance().sendSysChatMessage(message,Global.DILIGENT,targetHero.getTemplateId(),0,0,0,0,0); + // 觉醒飘字 + if (targetHero.getStar() >= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_awaken_hero_content_parm)) { + String message = SErrorCodeEerverConfig.getI18NMessage("animal_awaken_broadcast_content", new Object[]{user.getPlayerInfoManager().getNickName(), scHero.getReadingName()}); + ChatLogic.getInstance().sendSysChatMessage(message, Global.DILIGENT, targetHero.getTemplateId(), 0, 0, 0, 0, 0); + } else if (targetHero.getStar() >= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_rankup_hero_content_parm)) { + String message = SErrorCodeEerverConfig.getI18NMessage("lamp_rankup_hero_content", new Object[]{user.getPlayerInfoManager().getNickName(), scHero.getReadingName(), targetHero.getStar()}); + ChatLogic.getInstance().sendSysChatMessage(message, Global.DILIGENT, targetHero.getTemplateId(), 0, 0, 0, 0, 0); } String consume = StringUtil.parseArrayToString(consumeMaterial); // HERO_STRENGTHEN(13,"hero_strengthen", new CommonEventHandler(),new String[]{"hero_id","old_quality","new_quality","strengthen_type","cost_item_list","cost_hero_list"}), @@ -1226,9 +1270,14 @@ public class HeroLogic{ if(skillListByStar!=null){ skillList.addAll(skillListByStar); } - skillList.addAll( tempHero.getPassiveSkills(1,hero.getBreakId())); - skillList.addAll( tempHero.getPassiveSkills(2,hero.getStarBreakId())); - + // 大于10星,觉醒技 + if (hero.getStar() > HERO_MAX_STAR) { + skillList.addAll(tempHero.getAwakSkills(1, hero.getBreakId())); + skillList.addAll(tempHero.getAwakSkills(2, hero.getStarBreakId())); + } else { + skillList.addAll(tempHero.getPassiveSkills(1, hero.getBreakId())); + skillList.addAll(tempHero.getPassiveSkills(2, hero.getStarBreakId())); + } //装备没有技能不用计算 // Map equipByPositionMap = hero.getEquipByPositionMap(); // if(!equipByPositionMap.isEmpty()){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index cc5b3bf61..a5269e51d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -309,8 +309,11 @@ public class PlayerLogic { Set fixVipId = new HashSet<>(); for(Map.Entry vipInfoItem : vipInfo.entrySet()){ //如果这个权限是活动 且永久了 那么需要修复 - if(vipInfoItem.getValue().getEffectTime()==0&&SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(vipInfoItem.getKey()).getUnlockType()==5){ - fixVipId.add(vipInfoItem.getKey()); + if(vipInfoItem.getValue().getEffectTime()==0){ + int unlockType = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(vipInfoItem.getKey()).getUnlockType(); + if(unlockType==5||(unlockType==4&&SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(vipInfoItem.getKey()).getContinueTime().length>0)){ + fixVipId.add(vipInfoItem.getKey()); + } } if(vipInfoItem.getValue().getEffectTime()!=0 && vipInfoItem.getValue().getEffectTime()<=(TimeUtils.now()/1000)){ if(SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(vipInfoItem.getKey()).getPrivilegeType()==VipPrivilegeType.ADVENTURE_BASE_REWARD){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java index d1b81650d..382045552 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java @@ -966,15 +966,20 @@ public class BuyGoodsLogic { } } +// if (sRechargeCommodityConfig.getTime() == 6) { +// if (rechargeInfo.getDyGoodsCanBuyTimes().containsKey(sRechargeCommodityConfig.getId())&&rechargeInfo.getRefreshBagMap().containsKey(sRechargeCommodityConfig.getId())) { +// long endTime = rechargeInfo.getRefreshBagMap().get(sRechargeCommodityConfig.getId()); +// if (now > endTime || rechargeInfo.getDyGoodsCanBuyTimes().get(sRechargeCommodityConfig.getId()) <= 0) { +// continue; +// } +// } +// } if (sRechargeCommodityConfig.getTime() == 6) { - if (rechargeInfo.getDyGoodsCanBuyTimes().containsKey(sRechargeCommodityConfig.getId())&&rechargeInfo.getRefreshBagMap().containsKey(sRechargeCommodityConfig.getId())) { - long endTime = rechargeInfo.getRefreshBagMap().get(sRechargeCommodityConfig.getId()); - if (now > endTime || rechargeInfo.getDyGoodsCanBuyTimes().get(sRechargeCommodityConfig.getId()) <= 0) { - continue; - } + int dytime = rechargeInfo.getDyGoodsCanBuyTimes().getOrDefault(goodsId,0)-1; + if(dytime <0){ + continue; } } - } long startTime=0; diff --git a/tablemanager/src/main/java/config/SCHero.java b/tablemanager/src/main/java/config/SCHero.java index 6f010b25b..d4e1fe738 100644 --- a/tablemanager/src/main/java/config/SCHero.java +++ b/tablemanager/src/main/java/config/SCHero.java @@ -42,6 +42,8 @@ public class SCHero implements BaseConfig{ private int[][] openSkillRules; + private int[][] awaken; + private int[][] openPassiveSkillRules; private int[] equipTalismana; @@ -58,6 +60,9 @@ public class SCHero implements BaseConfig{ private Map> skillListByStar; + // 觉醒增加的技能属性 + private Map>> awakSkillMap; + private Map> consumeMaterialInfoOfPositionByStar; private Map>> passiveSkillMap; @@ -109,8 +114,6 @@ public class SCHero implements BaseConfig{ } } Map> consumeMaterialInfoByStarTmp = new HashMap<>(); - int[][] openSkillRules = scHero.getOpenSkillRules(); - int[][] rankupConsumeMaterial = scHero.getRankupConsumeMaterial(); @@ -127,8 +130,8 @@ public class SCHero implements BaseConfig{ } scHero.setConsumeMaterialInfoOfPositionByStar(consumeMaterialInfoByStarTmp); - - //技能 + int[][] openSkillRules = scHero.getOpenSkillRules(); + // 技能 Map> skillTmp = new HashMap<>(); for(int i=0;i>> awakSkillMapTmp = new HashMap<>(); + if (awakens != null && awakens.length > 0) { + awakSkillMapTmp.put(1, new TreeMap<>()); + awakSkillMapTmp.put(2, new TreeMap<>()); + for (int[] openSkillRule : awakens) { + int type = openSkillRule[0]; + int starOrBreakId = openSkillRule[1]; + int skillId = openSkillRule[2]; + awakSkillMapTmp.get(type).computeIfAbsent(starOrBreakId, a -> { + return new ArrayList<>(awakSkillMapTmp.get(type).getOrDefault(a - 1, new ArrayList<>())); + }); + awakSkillMapTmp.get(type).get(starOrBreakId).add(skillId); + } + } + scHero.setAwakSkillMap(awakSkillMapTmp); } sCHero = integerSCHeroMap; piecesMap = new HashMap<>(); @@ -300,7 +319,22 @@ public class SCHero implements BaseConfig{ return passiveSkillMap.get(type).floorEntry(id).getValue(); } + public List getAwakSkills(int type, int id) { + if (awakSkillMap.get(type).floorEntry(id) == null) { + return new ArrayList<>(0); + } + return awakSkillMap.get(type).floorEntry(id).getValue(); + } + public void setPassiveSkillMap(Map>> passiveSkillMap) { this.passiveSkillMap = passiveSkillMap; } + + public void setAwakSkillMap(Map>> awakSkillMap) { + this.awakSkillMap = awakSkillMap; + } + + public int[][] getAwaken() { + return awaken; + } } diff --git a/tablemanager/src/main/java/config/SSpecialConfig.java b/tablemanager/src/main/java/config/SSpecialConfig.java index bb7a32596..161863eec 100644 --- a/tablemanager/src/main/java/config/SSpecialConfig.java +++ b/tablemanager/src/main/java/config/SSpecialConfig.java @@ -39,6 +39,7 @@ public class SSpecialConfig implements BaseConfig { public static final String lamp_lottery_content_parm = "lamp_lottery_content_parm";//资质13及以上——系统消息 public static final String lamp_rankup_hero_content_parm = "lamp_rankup_hero_content_parm";//10星及以上——系统消息 + public static final String lamp_awaken_hero_content_parm = "lamp_awaken_hero_content_parm";//英雄觉醒——系统消息 public static final String lamp_lottery_differ_content_parm = "lamp_lottery_differ_content_parm";//5及以上——系统消息 // public static final String lamp_activate_differ_content_parm = "lamp_activate_differ_content_parm";//5及以上——系统消息 public static final String lamp_rankup_differ_content_parm = "lamp_rankup_differ_content_parm";//10阶以上——系统消息 diff --git a/tablemanager/src/main/java/config/SSpiritAnimalSummon.java b/tablemanager/src/main/java/config/SSpiritAnimalSummon.java new file mode 100644 index 000000000..81fde2427 --- /dev/null +++ b/tablemanager/src/main/java/config/SSpiritAnimalSummon.java @@ -0,0 +1,62 @@ +package config; + +import manager.STableManager; +import manager.Table; + +import java.util.HashMap; +import java.util.Map; + +@Table(name ="SpiritAnimalSummon") +public class SSpiritAnimalSummon implements BaseConfig { + + private int id; + + private int focusID; + + private int activityID; + + private int[] originalItemList; + + private int[] targetItemList; + +// public static Map>> spiritAnimalSummonMapByActivityId; + + + @Override + public void init() throws Exception { +// Map>> spiritAnimalSummonMapByActivityIdTemp = new HashMap<>(); +// Map config = STableManager.getConfig(SSpiritAnimalSummon.class); +// for(Map.Entry entry:config.entrySet()){ +// SSpiritAnimalSummon value = entry.getValue(); +// spiritAnimalSummonMapByActivityIdTemp.putIfAbsent(value.getActivityID(),new HashMap<>()); +// spiritAnimalSummonMapByActivityIdTemp.get(entry.getKey()) +// for(int i = 0 ; i