diff --git a/fightmanager/src/main/java/com/ljsd/fight/FightType.java b/fightmanager/src/main/java/com/ljsd/fight/FightType.java index 691d8a74e..b6ae291f0 100644 --- a/fightmanager/src/main/java/com/ljsd/fight/FightType.java +++ b/fightmanager/src/main/java/com/ljsd/fight/FightType.java @@ -29,6 +29,8 @@ public enum FightType { QIJIE_FIGHT(23), //七界试炼 CrossYuxulundaoFight(24),//玉虚论道 CrossLingMaiSecretFight(25),//灵脉秘境 + ExploreShouChao(26),//兽潮来袭 + ExploreXinMo(27),//心魔试炼 ; private int type; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java index 81f169d90..f1fb82397 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java @@ -391,6 +391,13 @@ public class RedisKey { */ public final static String POWER_RICE_RANK = "POWER_RICE_RANK"; + /** + * 探索排行榜 + * key: + */ + public final static String EXPLORE_RANK = "EXPLORE_RANK"; + + /** * 四灵挑战数据转移到mongo记录 */ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java index b2c56bb40..6967448bc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -391,4 +391,7 @@ public interface BIReason { int ARCHITECTURE_EARNINGS =1236;//浮生门建筑收益 int ARCHITECTURE_RANK_UP_LEVEL =1237;//浮生门建筑突破消耗 + int EXPLORE_EVENT_BOX =1238;//探索试炼宝箱 + int EXPLORE_EVENT_MONSTER =1239;//探索兽潮 + } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/explorerMap/ExplorerMapEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/explorerMap/ExplorerMapEventHandler.java new file mode 100644 index 000000000..d813bf70d --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/explorerMap/ExplorerMapEventHandler.java @@ -0,0 +1,126 @@ +package com.ljsd.jieling.handler.explorerMap; + +import com.ljsd.GameApplication; +import com.ljsd.fight.FightType; +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.gtw.GetWorldArenaChallengeRequestHandler; +import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic; +import com.ljsd.jieling.logic.dao.KeyVal; +import com.ljsd.jieling.logic.dao.TeamEnum; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.cross.CSPlayer; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.fight.FightDispatcher; +import com.ljsd.jieling.logic.fight.FightUtil; +import com.ljsd.jieling.logic.fight.GameFightType; +import com.ljsd.jieling.logic.fight.PVEFightEvent; +import com.ljsd.jieling.logic.fight.result.FightResult; +import com.ljsd.jieling.logic.hero.HeroLogic; +import com.ljsd.jieling.logic.player.PlayerLogic; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.thrift.idl.CrossArenaManager; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; +import config.SArenaSetting; +import config.SExploreEvent; +import manager.STableManager; +import rpc.protocols.CommonProto; +import rpc.protocols.MessageTypeProto; +import rpc.protocols.PlayerInfoProto; + +import java.util.List; +import java.util.Map; + + +public class ExplorerMapEventHandler extends BaseHandler { + + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.ExplorerMapEventRequest; + } + + @Override + public void processWithProto(ISession session, PlayerInfoProto.ExplorerMapEventRequest proto) throws Exception { + int uid = session.getUid(); + User user = UserManager.getUser(uid); + if (user == null) { + return; + } + PlayerInfoProto.ExplorerMapEventResponse.Builder builder = PlayerInfoProto.ExplorerMapEventResponse.newBuilder(); + int id = proto.getId(); + Map exploreEventConfig = STableManager.getConfig(SExploreEvent.class); + if(!exploreEventConfig.containsKey(id)){ + return; + } + List eventList = user.getPlayerInfoManager().getExploreEvent(); + int index = 0; + for(int i =0;i { + + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.ExplorerXMEventChallengeBeforeRequest; + } + @Override + public void processWithProto(ISession session, PlayerInfoProto.ExplorerXMEventChallengeBeforeRequest proto) throws Exception { + int uid = session.getUid(); + User user = UserManager.getUser(uid); + if (user == null) { + return; + } + PlayerInfoProto.ExplorerXMEventChallengeBeforeResponse.Builder builder = PlayerInfoProto.ExplorerXMEventChallengeBeforeResponse.newBuilder(); + int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup(); + String key = RedisUtil.getInstence().getKey(RedisKey.FORCE_CURR_RANK,String.valueOf(crossGroup),false); + Set> forceZetSort = RedisUtil.getInstence().getAllZsetRange(key); + int force = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.FORMATION_NORMAL.getTeamId(), false); + final int forcelimit = force+force*500/10000; + int matchUid = forceZetSort.stream().filter(n -> n.getScore() >= forcelimit).map(v -> Integer.parseInt(v.getValue())).findAny().orElse(0); + if(matchUid == 0){ + List> lst = new ArrayList>(forceZetSort); // + if(lst.size()>0){ + matchUid = Integer.parseInt(lst.get(0).getValue()); + } + } + //TODO + user.getPlayerInfoManager().setExploreEventMatchDefUid(matchUid); + builder.setDefTeamInfo( PlayerLogic.getInstance().getCrossYxldOneTeamInfo(matchUid, new ArrayList(TeamEnum.FORMATION_NORMAL.getTeamId()))); + MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.CrossYuXuLunDaoChallengeBeforeResponse.getNumber(), builder.build(), true); + } + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/explorerMap/ExplorerMapInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/explorerMap/ExplorerMapInfoHandler.java index 16369520f..d2267428d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/explorerMap/ExplorerMapInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/explorerMap/ExplorerMapInfoHandler.java @@ -1,7 +1,9 @@ package com.ljsd.jieling.handler.explorerMap; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.activity.event.ExploreEvent; import com.ljsd.jieling.logic.dao.ExplorerInfo; +import com.ljsd.jieling.logic.dao.KeyVal; import com.ljsd.jieling.logic.dao.TeamEnum; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; @@ -44,6 +46,11 @@ public class ExplorerMapInfoHandler extends BaseHandler event = user.getPlayerInfoManager().getExploreEvent(); + for(KeyVal keyVal:event){ + builder.addRandEvent(CommonProto.CommKeyVal.newBuilder().setKey(keyVal.getKey()).setVal(keyVal.getVal()).build()); + } MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.ExplorerMapInfoResponse.getNumber(), builder.build(), true); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/explorerMap/ExplorerMapSendHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/explorerMap/ExplorerMapSendHandler.java index c781f082c..357a303e7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/explorerMap/ExplorerMapSendHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/explorerMap/ExplorerMapSendHandler.java @@ -9,6 +9,8 @@ import com.ljsd.jieling.logic.dao.ExplorerInfo; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.hero.HeroLogic; +import com.ljsd.jieling.logic.mission.GameEvent; +import com.ljsd.jieling.logic.mission.MissionType; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; @@ -66,6 +68,9 @@ public class ExplorerMapSendHandler extends BaseHandler activate_treasure_skill_num = new HashMap<>(); + //探索 + /** + * 探索食物消耗总量达到num + */ + public int exploreFood_num; + /** + * 探索击败敌人数量达到num个 + */ + public int exploreEnemy_num; + /** + * 击退兽潮来袭num次 + */ + public int exploreRepelMonster_num; + /** + * 击败心魔镜像num次 + */ + public int exploreRepelXinmo_num; + + /** + * 拾取云梦礼num次 + */ + public int explorePickYm_num; + /** + * 探索杀敌排行历史最高名次达到num + */ + public int exploreKillerHistoryHigh_num; + + + public Result updateData(MissionType missionType, Object...parm) throws Exception { return DataManagerDistributor.updateData(this, missionType,parm); } @@ -535,4 +564,53 @@ public class CumulationData { public void setActivate_treasure_skill_num(Map activate_treasure_skill_num) { this.activate_treasure_skill_num = activate_treasure_skill_num; } + + + public int getExploreFood_num() { + return exploreFood_num; + } + + public void setExploreFood_num(int exploreFood_num) { + this.exploreFood_num = exploreFood_num; + } + + public int getExploreEnemy_num() { + return exploreEnemy_num; + } + + public void setExploreEnemy_num(int exploreEnemy_num) { + this.exploreEnemy_num = exploreEnemy_num; + } + + public int getExploreRepelMonster_num() { + return exploreRepelMonster_num; + } + + public void setExploreRepelMonster_num(int exploreRepelMonster_num) { + this.exploreRepelMonster_num = exploreRepelMonster_num; + } + + public int getExploreRepelXinmo_num() { + return exploreRepelXinmo_num; + } + + public void setExploreRepelXinmo_num(int exploreRepelXinmo_num) { + this.exploreRepelXinmo_num = exploreRepelXinmo_num; + } + + public int getExplorePickYm_num() { + return explorePickYm_num; + } + + public void setExplorePickYm_num(int explorePickYm_num) { + this.explorePickYm_num = explorePickYm_num; + } + + public int getExploreKillerHistoryHigh_num() { + return exploreKillerHistoryHigh_num; + } + + public void setExploreKillerHistoryHigh_num(int exploreKillerHistoryHigh_num) { + this.exploreKillerHistoryHigh_num = exploreKillerHistoryHigh_num; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ExplorerInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ExplorerInfo.java index dd019acff..50bb1efd4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ExplorerInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ExplorerInfo.java @@ -23,6 +23,8 @@ public class ExplorerInfo extends MongoBase { private Map dropMap = new HashMap<>();//掉落 + private List randomEvent = new ArrayList();//随机事件 + public ExplorerInfo() { } @@ -142,4 +144,13 @@ public class ExplorerInfo extends MongoBase { updateString("deathNum", deathNum); this.deathNum = deathNum; } + + public List getRandomEvent() { + return randomEvent; + } + + public void addRandomEvent(KeyVal keyValEvent) { + this.randomEvent.add(keyValEvent) ; + updateString("randomEvent", randomEvent); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/KeyVal.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/KeyVal.java new file mode 100644 index 000000000..426bbb280 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/KeyVal.java @@ -0,0 +1,28 @@ +package com.ljsd.jieling.logic.dao; + +public class KeyVal { + + private int key; + private int val; + + public KeyVal(int key, int val) { + this.key = key; + this.val = val; + } + + public int getKey() { + return key; + } + + public void setKey(int key) { + this.key = key; + } + + public int getVal() { + return val; + } + + public void setVal(int val) { + this.val = val; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java index 1687cd239..c64cdcc3d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java @@ -200,6 +200,8 @@ public class PlayerManager extends MongoBase { private int getFiveStarHeroNum; //探索 private Map explorer = new HashMap<>(); // + private List exploreEvent = new ArrayList<>();//随机事件 + private int exploreEventMatchDefUid;//探索事件 镜像心魔 匹配对手uid /** * 浮生阁建筑列表 */ @@ -1402,4 +1404,25 @@ public class PlayerManager extends MongoBase { this.explorer = explorer; updateString("explorer",explorer); } + + public List getExploreEvent() { + return exploreEvent; + } + public void addExploreEvent(KeyVal keyVal) { + this.exploreEvent.add(keyVal); + updateString("exploreEvent",exploreEvent); + } + public void setExploreEvent(List exploreEvent) { + this.exploreEvent = exploreEvent; + updateString("exploreEvent",exploreEvent); + } + + public int getExploreEventMatchDefUid() { + return exploreEventMatchDefUid; + } + + public void setExploreEventMatchDefUid(int exploreEventMatchDefUid) { + this.exploreEventMatchDefUid = exploreEventMatchDefUid; + updateString("exploreEventMatchDefUid",exploreEventMatchDefUid); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java index 9e06f6c00..9bea480a2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java @@ -70,6 +70,7 @@ public class UserMissionManager extends MongoBase { private MistyTripMissionType mistyTripMissionType = new MistyTripMissionType();//缥缈之旅 private HomeMissionType homeMissionType = new HomeMissionType();//家园任务 private DonghaiXunxianMissionType donghaiXunxianMission = new DonghaiXunxianMissionType();//东海寻仙 + private ExploreMissionType exploreMissionType = new ExploreMissionType();//探索 //数据累加项 private CumulationData cumulationData = new CumulationData(); @@ -677,6 +678,10 @@ public class UserMissionManager extends MongoBase { // 家园任务 homeMissionType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.HOME_MISSION),cumulationData); updateString("homeMissionType",homeMissionType); + //探索 + exploreMissionType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.EXPLORE),cumulationData); + updateString("exploreMissionType",exploreMissionType); + } } @@ -959,4 +964,12 @@ public class UserMissionManager extends MongoBase { public void setDonghaiXunxianData(CumulationData donghaiXunxianData) { this.donghaiXunxianData = donghaiXunxianData; } + + public ExploreMissionType getExploreMissionType() { + return exploreMissionType; + } + + public void setExploreMissionType(ExploreMissionType exploreMissionType) { + this.exploreMissionType = exploreMissionType; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/explorerMap/ExplorerMapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/explorerMap/ExplorerMapLogic.java index 45820e2c2..639c5fd9b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/explorerMap/ExplorerMapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/explorerMap/ExplorerMapLogic.java @@ -14,22 +14,19 @@ import com.ljsd.jieling.logic.activity.ActivityTypeEnum; import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic; import com.ljsd.jieling.logic.activity.event.ExploreEvent; import com.ljsd.jieling.logic.activity.event.Poster; -import com.ljsd.jieling.logic.dao.ExplorerInfo; -import com.ljsd.jieling.logic.dao.GuilidManager; -import com.ljsd.jieling.logic.dao.TeamEnum; -import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.cross.CSPlayer; import com.ljsd.jieling.logic.dao.root.GuildInfo; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.logic.mail.MailLogic; +import com.ljsd.jieling.logic.mission.GameEvent; +import com.ljsd.jieling.logic.mission.MissionType; +import com.ljsd.jieling.logic.rank.RankEnum; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; -import config.SErrorCodeEerverConfig; -import config.SExplore; -import config.SExploreFight; -import config.SSpecialConfig; +import config.*; import manager.STableManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -41,6 +38,7 @@ import util.StringUtil; import util.TimeUtils; import java.util.*; +import java.util.stream.Collectors; public class ExplorerMapLogic { @@ -181,6 +179,9 @@ public class ExplorerMapLogic { explorerInfo.setEnemyReliveTime(time + exploreConfig.getBattleInterval()); } LOGGER.info("{}怪物死亡=》重生时间{}", user.getId(), explorerInfo.getEnemyReliveTime()); + RankEnum.toRank(RankEnum.EXPLORE_RANK.getType()).addRank(user.getId(),"",1); + user.getUserMissionManager().onGameEvent(user, GameEvent.EXPLORE, MissionType.EXPLORE_ENEMY_NUM); + } if (time == 0) { @@ -395,6 +396,12 @@ public class ExplorerMapLogic { if (delayId.size() > 0) { user.getPlayerInfoManager().setExplorer(explorer); } + //整点刷出随机事件 + Calendar calendar = Calendar.getInstance(); + int minute = calendar.get(Calendar.MINUTE); + if(minute == 0){ + sendRandomEvent(user); + } MongoUtil.getLjsdMongoTemplate().lastUpdate(); } } catch (Exception e) { @@ -402,6 +409,20 @@ public class ExplorerMapLogic { } } + public static void sendRandomEvent(User user){ + //map + Map config = STableManager.getConfig(SExplore.class); + Map exploreEventConfig = STableManager.getConfig(SExploreEvent.class); + List limitConfig = config.values().stream().filter(n->n.getLevel()>= user.getPlayerInfoManager().getLevel()).collect(Collectors.toList()); + Random random = new Random(); + int ranomMapId = random.nextInt(limitConfig.size()); + SExplore rankExplore = limitConfig.get(ranomMapId); + user.getPlayerInfoManager().getExploreEvent(); + + int rankEventId = random.nextInt(rankExplore.getEventList().length); + int eventId = rankExplore.getEventList()[rankEventId]; + user.getPlayerInfoManager().getExploreEvent().add(new KeyVal(eventId,TimeUtils.nowInt()+exploreEventConfig.get(eventId).getTime())); + } public static class Instance { public final static ExplorerMapLogic instance = new ExplorerMapLogic(); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/GameFightType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/GameFightType.java index 52fcae955..446b1d286 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/GameFightType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/GameFightType.java @@ -51,7 +51,8 @@ public enum GameFightType { FourChallenge(FightType.FourChallenge,new DefaultWithoutHandFightHandler(),null), SevenWorld(FightType.QIJIE_FIGHT,new SevenWorldFightHandler(),null), CrossLingMaiSecretFight(FightType.CrossLingMaiSecretFight,new DefaultWithoutHandFightHandler(),null), - ; + ExploreShouChaoFight(FightType.ExploreShouChao,new DefaultWithoutHandFightHandler(),null),; + private FightType fightType; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java index a29e2e891..0e59240df 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java @@ -147,4 +147,6 @@ public enum GameEvent { DONGHAIXUNXIAN_UPDATE,//东海寻仙,任务进度更新 DONGHAIXUNXIAN_REWARD,//东海寻仙,任务奖励 + EXPLORE,//探索 + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameMisionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameMisionType.java index c2ced1b91..3a3d96893 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameMisionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameMisionType.java @@ -16,6 +16,7 @@ public enum GameMisionType { MISTY_TRIP_MISSION(13),//缥缈之旅 HOME_MISSION(14),//家园任务 DONGHAIXUNXIAN_MISSION(15),//东海寻仙 + EXPLORE(16),//探索 ; private int type; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java index 47d8c725c..8710f895b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java @@ -62,6 +62,7 @@ public class MissionLoigc { getMistyTripMission(user,missionList); getHomeMission(user,missionList); getDonghaiXunxianMission(user,missionList); + getExploreMission(user,missionList); // 此方法必须放在最后,对所有获取到的任务进行处理 // checkMissionTime(missionList); PlayerInfoProto.GetMissionResponse build = PlayerInfoProto.GetMissionResponse.newBuilder().addAllUserMissionInfo(missionList).build(); @@ -596,6 +597,29 @@ public class MissionLoigc { } } + + + public static void getExploreMission(User user,List missionList){ + UserMissionManager userMissionManager = user.getUserMissionManager(); + ExploreMissionType dailyMissionIdsType = userMissionManager.getExploreMissionType(); + CumulationData dailyCumulationData = userMissionManager.getCumulationData(); + Set doingMissionIds = dailyMissionIdsType.getDoingMissionIds(); + Set finishMissionIds = dailyMissionIdsType.getFinishMissionIds(); + Map config = STableManager.getConfig(SExploreTask.class); + int type = GameMisionType.EXPLORE.getType(); + for(SExploreTask exploreTask:config.values()){ + int state = 2; + int missionId = exploreTask.getId(); + int progrss = exploreTask.getValues()[1][0]; + if(doingMissionIds.contains(missionId)){ + state = 0; + progrss = getDoingProgress(user,dailyCumulationData,exploreTask.getType(),exploreTask.getValues()[0]); + }else if(finishMissionIds.contains(missionId)){ + state = 1; + } + missionList.add(CommonProto.UserMissionInfo.newBuilder().setMissionId(missionId).setState(state).setType(type).setProgress(progrss).build()); + } + } /** * 获取天宫寻宝任务列表 * @param user @@ -1255,6 +1279,24 @@ public class MissionLoigc { //副本挑战次数 count = cumulationData.daily_challenge_count; break; + case EXPLORE_FOOD_NUM: //探索食物消耗总量达到num + count = cumulationData.exploreFood_num; + break; + case EXPLORE_ENEMY_NUM: //探索击败敌人数量达到num个 + count = cumulationData.exploreEnemy_num; + break; + case EXPLORE_REPELMONSTER_NUM://击退兽潮来袭num次 + count = cumulationData.exploreRepelMonster_num; + break; + case EXPLORE_REPELXINMO_NUM: //击败心魔镜像num次 + count = cumulationData.exploreRepelXinmo_num; + break; + case EXPLORE_PICKYM_NUM://拾取云梦礼num次 + count = cumulationData.explorePickYm_num; + break; + case EXPLORE_ENEMYHISTORYHIGH_NUM://探索杀敌排行历史最高名次达到num + count = cumulationData.exploreKillerHistoryHigh_num; + break; default: count = 0; break; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java index e4e208a87..c573894e2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java @@ -161,6 +161,15 @@ public enum MissionType { HOME_ARCHITECTURE_TOTAL_LV(151),//家园建筑总等级 HAVE_ID_STAR_LV_POKEMON_NUM(152),//拥有指定ID的star星级level等级的灵兽num个 + + //探索 + EXPLORE_FOOD_NUM(153), //探索食物消耗总量达到num + EXPLORE_ENEMY_NUM(154), //探索击败敌人数量达到num个 + EXPLORE_REPELMONSTER_NUM(155),//击退兽潮来袭num次 + EXPLORE_REPELXINMO_NUM(156), //击败心魔镜像num次 + EXPLORE_PICKYM_NUM(157),//拾取云梦礼num次 + EXPLORE_ENEMYHISTORYHIGH_NUM(158),//探索杀敌排行历史最高名次达到num + ; private int missionType; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java index 26a5d2675..7a8a7a5ba 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java @@ -185,6 +185,18 @@ public class DataManagerDistributor { judges.put(MissionType.GET_TRANSFIGURATION_CARD_NUM,new TransfigurationCardNumManager());//获取quality品质的变身卡num张 judges.put(MissionType.GET_TREASURE_SKILL_NUM,new TreasureSkillNumManager());//激活quality品质的法宝聚灵技能num个 judges.put(MissionType.HAVE_ID_STAR_LV_POKEMON_NUM,new IdStarLvPokemonNumManager());//拥有指定ID的star星级level等级的灵兽num个 + + //探索 + judges.put(MissionType.EXPLORE_FOOD_NUM,new ExploreFoodManager()); + judges.put(MissionType.EXPLORE_ENEMY_NUM,new ExploreEnemyManager()); + judges.put(MissionType.EXPLORE_REPELMONSTER_NUM,new ExploreRepelMonsterManager()); + judges.put(MissionType.EXPLORE_REPELXINMO_NUM,new ExploreRepelXinmoManager()); + judges.put(MissionType.EXPLORE_PICKYM_NUM,new ExplorePickYmManager()); + judges.put(MissionType.EXPLORE_ENEMYHISTORYHIGH_NUM,new ExploreEnemyHistoryHighManager()); + + + + } public static CumulationData.Result updateData(CumulationData data, MissionType missionType, Object...parm) throws Exception { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ExploreEnemyHistoryHighManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ExploreEnemyHistoryHighManager.java new file mode 100644 index 000000000..d8b0c5b10 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ExploreEnemyHistoryHighManager.java @@ -0,0 +1,19 @@ +package com.ljsd.jieling.logic.mission.data; + +import com.ljsd.jieling.logic.dao.CumulationData; +import com.ljsd.jieling.logic.mission.MissionType; + +public class ExploreEnemyHistoryHighManager implements BaseDataManager{ + + @Override + public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm){ + + MissionType type = (MissionType) parm[0]; + if (type.getMissionTypeValue() == missionType.getMissionTypeValue()){ + data.exploreKillerHistoryHigh_num++; + } + + return new CumulationData.Result(missionType); + } + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ExploreEnemyManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ExploreEnemyManager.java new file mode 100644 index 000000000..319a63f51 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ExploreEnemyManager.java @@ -0,0 +1,18 @@ +package com.ljsd.jieling.logic.mission.data; + +import com.ljsd.jieling.logic.dao.CumulationData; +import com.ljsd.jieling.logic.mission.MissionType; + +public class ExploreEnemyManager implements BaseDataManager{ + @Override + public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm){ + + MissionType type = (MissionType) parm[0]; + if (type.getMissionTypeValue() == missionType.getMissionTypeValue()){ + data.exploreEnemy_num++; + } + return new CumulationData.Result(missionType); + } + + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ExploreFoodManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ExploreFoodManager.java new file mode 100644 index 000000000..7b593d2a5 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ExploreFoodManager.java @@ -0,0 +1,16 @@ +package com.ljsd.jieling.logic.mission.data; + +import com.ljsd.jieling.logic.dao.CumulationData; +import com.ljsd.jieling.logic.mission.MissionType; + +public class ExploreFoodManager implements BaseDataManager{ + + @Override + public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm){ + MissionType type = (MissionType) parm[0]; + if (type.getMissionTypeValue() == missionType.getMissionTypeValue()){ + data.exploreFood_num+=(int)parm[1]; + } + return new CumulationData.Result(missionType); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ExplorePickYmManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ExplorePickYmManager.java new file mode 100644 index 000000000..1149bdbfb --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ExplorePickYmManager.java @@ -0,0 +1,16 @@ +package com.ljsd.jieling.logic.mission.data; + +import com.ljsd.jieling.logic.dao.CumulationData; +import com.ljsd.jieling.logic.mission.MissionType; + +public class ExplorePickYmManager implements BaseDataManager{ + + @Override + public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm){ + MissionType type = (MissionType) parm[0]; + if (type.getMissionTypeValue() == missionType.getMissionTypeValue()){ + data.explorePickYm_num++; + } + return new CumulationData.Result(missionType); + } +} \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ExploreRepelMonsterManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ExploreRepelMonsterManager.java new file mode 100644 index 000000000..b4bc2d465 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ExploreRepelMonsterManager.java @@ -0,0 +1,17 @@ +package com.ljsd.jieling.logic.mission.data; + +import com.ljsd.jieling.logic.dao.CumulationData; +import com.ljsd.jieling.logic.mission.MissionType; + +public class ExploreRepelMonsterManager implements BaseDataManager{ + + @Override + public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm){ + + MissionType type = (MissionType) parm[0]; + if (type.getMissionTypeValue() == missionType.getMissionTypeValue()){ + data.exploreRepelMonster_num++; + } + return new CumulationData.Result(missionType); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ExploreRepelXinmoManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ExploreRepelXinmoManager.java new file mode 100644 index 000000000..30d143e17 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/ExploreRepelXinmoManager.java @@ -0,0 +1,17 @@ +package com.ljsd.jieling.logic.mission.data; + +import com.ljsd.jieling.logic.dao.CumulationData; +import com.ljsd.jieling.logic.mission.MissionType; + +public class ExploreRepelXinmoManager implements BaseDataManager{ + + @Override + public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm){ + + MissionType type = (MissionType) parm[0]; + if (type.getMissionTypeValue() == missionType.getMissionTypeValue()){ + data.exploreRepelXinmo_num++; + } + return new CumulationData.Result(missionType); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java index b58bcfa48..f57409b8b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java @@ -228,6 +228,18 @@ public class MissionEventDistributor { eventEnumListMap.put(GameEvent.MISTY_TRIP,typeList); eventProcessor.put(GameEvent.MISTY_TRIP,new MistyTripEventProcessor()); + //探索 + typeList = new ArrayList<>(); + typeList.add(MissionType.EXPLORE_FOOD_NUM); + typeList.add(MissionType.EXPLORE_ENEMY_NUM); + typeList.add(MissionType.EXPLORE_REPELMONSTER_NUM); + typeList.add(MissionType.EXPLORE_REPELXINMO_NUM); + typeList.add(MissionType.EXPLORE_PICKYM_NUM); + typeList.add(MissionType.EXPLORE_ENEMYHISTORYHIGH_NUM); + eventEnumListMap.put(GameEvent.EXPLORE,typeList); + eventProcessor.put(GameEvent.EXPLORE,new CumulationDataEventProcessor()); + + // 领取奖励 eventProcessor.put(GameEvent.VIP_MISSION_REWARD,new RewardEventProcessor()); eventProcessor.put(GameEvent.DAILY_MISSION_REWARD,new RewardEventProcessor()); @@ -609,6 +621,7 @@ public class MissionEventDistributor { missionTypeEnumListMap.put(GameMisionType.MISTY_TRIP_MISSION, new ArrayList<>()); missionTypeEnumListMap.put(GameMisionType.HOME_MISSION, new ArrayList<>()); missionTypeEnumListMap.put(GameMisionType.DONGHAIXUNXIAN_MISSION, new ArrayList<>()); + missionTypeEnumListMap.put(GameMisionType.EXPLORE, new ArrayList<>()); } else { missionTypeEnumListMap.get(GameMisionType.VIPMISSION).clear(); missionTypeEnumListMap.get(GameMisionType.DAILYMISSION).clear(); @@ -625,6 +638,7 @@ public class MissionEventDistributor { missionTypeEnumListMap.get(GameMisionType.MISTY_TRIP_MISSION).clear(); missionTypeEnumListMap.get(GameMisionType.HOME_MISSION).clear(); missionTypeEnumListMap.get(GameMisionType.DONGHAIXUNXIAN_MISSION).clear(); + missionTypeEnumListMap.get(GameMisionType.EXPLORE).clear(); } threadMissionChangeList.set(missionTypeEnumListMap); } @@ -704,6 +718,11 @@ public class MissionEventDistributor { SThemeActivityTaskConfig config = SThemeActivityTaskConfig.idTaskConfig.get(missionStateChangeInfo.getMissionId()); progress = MissionLoigc.getDoingProgress(user,user.getUserMissionManager().getDonghaiXunxianData(), config.getTaskType(), config.getTaskValue()[0]); } + //TODO + if (gameMisionType == GameMisionType.EXPLORE){ + SExploreTask exploreTask = STableManager.getConfig(SExploreTask.class).get(missionStateChangeInfo.getMissionId()); + progress = MissionLoigc.getDoingProgress(user,user.getUserMissionManager().getDonghaiXunxianData(), exploreTask.getType(), exploreTask.getValues()[0]); + } } // 已完成或者已领取的任务 if(missionState == MissionState.FINISH || missionState == MissionState.REWARD){ @@ -735,6 +754,10 @@ public class MissionEventDistributor { SThemeActivityTaskConfig config = SThemeActivityTaskConfig.idTaskConfig.get(missionStateChangeInfo.getMissionId()); progress = config.getTaskValue()[1][0]; } + if(gameMisionType == GameMisionType.EXPLORE){ + SExploreTask exploreTask = STableManager.getConfig(SExploreTask.class).get(missionStateChangeInfo.getMissionId()); + progress = exploreTask.getValues()[1][0]; + } if(gameMisionType == GameMisionType.SEVENMISSION){ STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureTaskConfigMap.get(missionStateChangeInfo.getMissionId()); if(sTreasureTaskConfig.getTaskType() != MissionType.SENVER_HAPPY.getMissionTypeValue()){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/ExploreMissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/ExploreMissionType.java new file mode 100644 index 000000000..4a6d884ae --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/ExploreMissionType.java @@ -0,0 +1,112 @@ +package com.ljsd.jieling.logic.mission.main; + +import com.ljsd.jieling.logic.activity.event.MistyTripEvent; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.dao.CumulationData; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.mission.MissionLoigc; +import com.ljsd.jieling.logic.mission.MissionState; +import com.ljsd.jieling.logic.mission.data.AbstractDataManager; +import com.ljsd.jieling.logic.mission.data.BaseDataManager; +import com.ljsd.jieling.logic.mission.data.DataManagerDistributor; +import config.SExploreTask; +import config.SJourneyWithWind; + +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +public class ExploreMissionType extends AbstractMissionType { + + @Override + public void openMission(User user, int missionId, List missionTypeEnumList) { + + } + + @Override + public int[][] reward(int missionId) { + return new int[0][]; + } + + @Override + public void calCumulationDataResult(User user, CumulationData.Result result, List missionStateChangeInfos, CumulationData cumulationData) throws Exception { + + List sTaskConfigs = SExploreTask.getsTaskConfigByTypeMap(result.subType.getMissionTypeValue()); + if (sTaskConfigs == null) { + return; + } + + Set doingMissionIds = getDoingMissionIds(); + for (SExploreTask sTaskConfig : sTaskConfigs){ + int missionId = sTaskConfig.getId(); + if (!doingMissionIds.contains(missionId)) { + continue; + } + boolean isFinish; + int doingProgress = 0 ; + BaseDataManager missTypeData = DataManagerDistributor.getMissTypeData(result.subType); + if(missTypeData instanceof AbstractDataManager){ + isFinish=((AbstractDataManager) missTypeData).isFinish(user,cumulationData, sTaskConfig.getValues()); + }else { + //完成 + doingProgress = MissionLoigc.getDoingProgress(user, cumulationData, sTaskConfig.getType(), sTaskConfig.getValues()[0]); + isFinish = doingProgress >= sTaskConfig.getValues()[1][0]; + } + + if (!isFinish) { + MissionStateChangeInfo doingInfo = new MissionStateChangeInfo(missionId, + MissionState.DOING, doingProgress); + boolean flag = false; + if(missionStateChangeInfos!=null){ + for (MissionStateChangeInfo missionStateChangeInfo : missionStateChangeInfos) { + if (missionStateChangeInfo.getMissionId() == missionId) { + flag = true; + } + } + if (!flag) { + missionStateChangeInfos.add(doingInfo); + } + } + continue; + } + MissionStateChangeInfo finishInfo = new MissionStateChangeInfo(missionId, + MissionState.FINISH, null); + Iterator iterator = missionStateChangeInfos.iterator(); + while (iterator.hasNext()) { + MissionStateChangeInfo next = iterator.next(); + if (next.getMissionId() == missionId) { + iterator.remove(); + } + } + + if(doingMissionIds.contains(missionId) && !getFinishMissionIds().contains(missionId)){ + //更新活动完成进度 + // 事件分发 + int rewardId = SJourneyWithWind.config.get(missionId).getRewardId(); + if(rewardId != 0){ + //TODO + //Poster.getPoster().dispatchEvent(new MistyTripEvent(user.getId(),rewardId,1)); + } + + } + missionStateChangeInfos.add(finishInfo); + doingMissionIds.remove(missionId); + getFinishMissionIds().add(missionId); + + + + + + + + } + + + + } + + @Override + public void rewardMission(int missionId, List missionTypeEnumListMap) { + super.rewardMission(missionId, missionTypeEnumListMap); + } + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankEnum.java index badada595..f66dba252 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankEnum.java @@ -49,6 +49,7 @@ public enum RankEnum { FOUR_CHALLENGE_TIER_RANK(38,RedisKey.FOUR_CHALLENGE_TIER_RANK,SituationRank::new,false),//四灵试炼排行榜,param1:层数 param2:无 param3:无 POWER_RICE_RANK(42,RedisKey.POWER_RICE_RANK,PowerRiceRank::new,false),//战力冲刺排行榜 + EXPLORE_RANK(43,RedisKey.EXPLORE_RANK,ExploreRank::new,false),//探索排行榜 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/ExploreRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/ExploreRank.java new file mode 100644 index 000000000..a98849dd5 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/ExploreRank.java @@ -0,0 +1,50 @@ +package com.ljsd.jieling.logic.rank.rankImpl; + + +import com.ljsd.jieling.db.redis.RedisUtil; +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.logic.activity.*; +import com.ljsd.jieling.logic.activity.event.IEvent; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.hero.HeroLogic; +import com.ljsd.jieling.logic.rank.RankEnum; +import config.SActivityRankingReward; +import config.SGlobalActivity; +import org.springframework.data.redis.core.ZSetOperations; +import rpc.protocols.CommonProto; +import rpc.protocols.PlayerInfoProto; +import util.TimeUtils; + +import java.util.*; +import java.util.function.BiConsumer; +import java.util.stream.Collectors; + +public class ExploreRank extends AbstractRank implements IEventHandler { + + public ExploreRank(int type, String redisKey) { + super(type, redisKey); + //Poster.getPoster().listenEvent(this, UserMainTeamForceEvent.class); + } + + @Override + public long[] getDataByScore(Double score) { + return new long[]{score.longValue()}; + } + + @Override + public double getScore(double... data) { + return data[0]; + } + + @Override + public void onEvent(IEvent event) throws Exception { + + } + + + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java index f1b53d69c..cdf4e4fb2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java @@ -35,6 +35,7 @@ import com.ljsd.jieling.logic.help.HelpHeroLogic; import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.logic.question.QuestionLogic; import com.ljsd.jieling.logic.rank.CrossRankManager; +import com.ljsd.jieling.logic.rank.RankEnum; import com.ljsd.jieling.logic.ridingSward.RidingSwardLogic; import com.ljsd.jieling.logic.sevenworld.SevenWorldLogic; import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; @@ -242,6 +243,9 @@ public class MinuteTask extends Thread { RedisUtil.getInstence().remove(RedisUtil.getInstence().getKey(RedisKey.CROSS_LINGMAISECRET_INFO,crossGroup + RedisKey.Delimiter_colon + 1,true)); RedisUtil.getInstence().remove(RedisUtil.getInstence().getKey(RedisKey.CROSS_LINGMAISECRET_INFO,crossGroup + RedisKey.Delimiter_colon + 2,true)); } + //探索排行每日重置 + RankEnum.toRank(RankEnum.EXPLORE_RANK.getType()).removeAllRank(""); + // 公会信息处理 Map guildInfoMap = GuilidManager.guildInfoMap; for(Map.Entry guildInfoEntry:guildInfoMap.entrySet()){ diff --git a/tablemanager/src/main/java/config/SExplore.java b/tablemanager/src/main/java/config/SExplore.java index 6344cb022..85738661c 100644 --- a/tablemanager/src/main/java/config/SExplore.java +++ b/tablemanager/src/main/java/config/SExplore.java @@ -26,6 +26,7 @@ public class SExplore implements BaseConfig { private int monsterForce; + private int[] eventList; @Override public void init() throws Exception { @@ -69,5 +70,7 @@ public class SExplore implements BaseConfig { return monsterForce; } - + public int[] getEventList() { + return eventList; + } } \ No newline at end of file diff --git a/tablemanager/src/main/java/config/SExploreEvent.java b/tablemanager/src/main/java/config/SExploreEvent.java new file mode 100644 index 000000000..7a714e517 --- /dev/null +++ b/tablemanager/src/main/java/config/SExploreEvent.java @@ -0,0 +1,55 @@ +package config; + +import manager.STableManager; +import manager.Table; + +import java.util.Map; + +@Table(name ="ExploreEvent") +public class SExploreEvent implements BaseConfig { + + private int id; + + private int type; + + private int time; + + private int monsterGroup; + + private int forceRange; + + private int rewardGroup; + + + @Override + public void init() throws Exception { + + } + + + public int getId() { + return id; + } + + public int getType() { + return type; + } + + public int getTime() { + return time; + } + + public int getMonsterGroup() { + return monsterGroup; + } + + public int getForceRange() { + return forceRange; + } + + public int getRewardGroup() { + return rewardGroup; + } + + +} \ No newline at end of file diff --git a/tablemanager/src/main/java/config/SExploreTask.java b/tablemanager/src/main/java/config/SExploreTask.java new file mode 100644 index 000000000..87dfc1dd7 --- /dev/null +++ b/tablemanager/src/main/java/config/SExploreTask.java @@ -0,0 +1,62 @@ +package config; + +import manager.STableManager; +import manager.Table; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Table(name ="ExploreTask") +public class SExploreTask implements BaseConfig { + + private int id; + + private int type; + + private int[][] values; + + private int[][] reward; + + public static Map> sTaskConfigByTypeMap;//<任务类型,data> + @Override + public void init() throws Exception { + + Map configTmp = STableManager.getConfig( SExploreTask.class); + Map> configListTmp = new HashMap<>(); + for(SExploreTask sExploreTask : configTmp.values()){ + int taskType = sExploreTask.getType(); + if(!configListTmp.containsKey(taskType)){ + configListTmp.put(taskType,new ArrayList<>()); + } + configListTmp.get(taskType).add(sExploreTask); + } + sTaskConfigByTypeMap = configListTmp; + + } + + public static List getsTaskConfigByTypeMap(int missionType) { + return sTaskConfigByTypeMap.get(missionType); + } + + + + public int getId() { + return id; + } + + public int getType() { + return type; + } + + public int[][] getValues() { + return values; + } + + public int[][] getReward() { + return reward; + } + + +} \ No newline at end of file