diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java index d9b5765be..77c2a41bd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java @@ -62,6 +62,7 @@ public enum FunctionIdEnum { WorkShopCreateProtectEquip(103,null), WorkShopRebuildEquip(104,null,MessageTypeProto.MessageType.WORKSHOP_REBUILD_REQUEST_VALUE), Expedition(64,null), + Achieve(65,null), ; private int functionType; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java index de89ac0ab..c266f3113 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java @@ -99,6 +99,7 @@ public class UserManager { user.getUserMissionManager().onGameEvent(user, GameEvent.DAILY_REFRESH,0); user.getUserMissionManager().onGameEvent(user, GameEvent.BLOODY_REFRESH,0); user.getUserMissionManager().onGameEvent(user, GameEvent.MISSING_ROOM_REFRESH,0); + user.getUserMissionManager().onGameEvent(user, GameEvent.ACHIEVE_REFRESH, 0); user.getUserMissionManager().onGameEvent(user, GameEvent.BEGINNER); Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.LOGIN_TIMES.getType(),1)); ItemUtil.drop(user,gameSetting.getBornItem(), BIReason.USER_BORN_REWARD); 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 705bf2a66..fd517120c 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 @@ -36,6 +36,8 @@ public class UserMissionManager extends MongoBase { private ServenMissionIdsType sevenHappyMissionType =new ServenMissionIdsType(); private BloodyMissionIdsType bloodyMissionIdsType =new BloodyMissionIdsType(); private MissingRoomMissionType missingRoomMissionType = new MissingRoomMissionType(); + private AchieveMissionIdsType achievementMissionTypMap = new AchieveMissionIdsType(); + //数据累加项 private CumulationData cumulationData = new CumulationData(); private CumulationData dailyCumulationData = new CumulationData(); @@ -45,6 +47,7 @@ public class UserMissionManager extends MongoBase { private CumulationData treasureWeekCumulationData = new CumulationData(); private CumulationData treasureMonthCumulationData = new CumulationData(); private CumulationData sevenHappyCumulationData = new CumulationData(); + private CumulationData achievementMap = new CumulationData(); public void openMission(User user,GameEvent event,Map> missionTypeEnumListMap, Object... parm) throws Exception { ISession session= OnlineUserManager.getSessionByUid(user.getId()); @@ -145,6 +148,17 @@ public class UserMissionManager extends MongoBase { bloodyMissionIdsType.getRewardedMissionIds().clear(); bloodyMissionIdsType.getDoingMissionIds().addAll(bloodyMissionIds); updateString("bloodyMissionIdsType",bloodyMissionIdsType); + break; + case ACHIEVE_REFRESH: + Set ds =STableManager.getConfig(SAchievementConfig.class).keySet(); + achievementMissionTypMap.getDoingMissionIds().clear(); + achievementMissionTypMap.getFinishMissionIds().clear(); + achievementMissionTypMap.getRewardedMissionIds().clear(); + achievementMissionTypMap.getDoingMissionIds().addAll(ds); + achievementMap =new CumulationData(); + updateString("achievementMissionTypMap",achievementMissionTypMap); + updateString("achievementMap",achievementMap); + break; case MISSING_ROOM_REFRESH: Map mustAppear = new HashMap<>(); @@ -245,6 +259,13 @@ public class UserMissionManager extends MongoBase { updateString("treasureMissionIdsType",treasureMissionIdsType); } break; + case ACHIEVE_REWARD:{ + int missId = (int)parm[0]; + achievementMissionTypMap.rewardMission(missId, missionTypeEnumListMap.get(GameMisionType.ACHIEVEMISSION)); + updateString("achievementMissionTypMap",achievementMissionTypMap); + + } + break; case SEVENHAPPY_MISSION_REWARD:{ int missionId = (int) parm[0]; List missionStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.SEVENMISSION); @@ -270,6 +291,8 @@ public class UserMissionManager extends MongoBase { missingRoomMissionType.rewardMission((int)parm[0],missionTypeEnumListMap.get(GameMisionType.MISSINGROOMMISSION)); updateString("missingRoomMissionType",missingRoomMissionType); } + + break; default: break; @@ -357,6 +380,20 @@ public class UserMissionManager extends MongoBase { } } + if(!achievementMissionTypMap.getDoingMissionIds().isEmpty() ){ + + List sAchievementConfigs = SAchievementConfig.sTaskConfigByTypeMap.get(missionType.getMissionTypeValue()); + if(sAchievementConfigs!=null&&sAchievementConfigs.size()!=0){ + CumulationData.Result result= achievementMap.updateData(missionType, parm); + if(result!=null){ + achievementMissionTypMap.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.ACHIEVEMISSION),achievementMap); + updateString("achievementMap",achievementMap); + updateString("achievementMissionTypMap",achievementMissionTypMap); + } + } + + } + CumulationData.Result result = cumulationData.updateData(missionType, parm); if(result!=null){ vipMissionIdsType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.VIPMISSION),cumulationData); @@ -487,4 +524,12 @@ public class UserMissionManager extends MongoBase { public MissingRoomMissionType getMissingRoomMissionType() { return missingRoomMissionType; } + + public AchieveMissionIdsType getAchievementMissionTypMap() { + return achievementMissionTypMap; + } + + public CumulationData getAchievementMap() { + return achievementMap; + } } 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 dc7561963..d22fc6176 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 @@ -8,6 +8,7 @@ public enum GameEvent { TREASH_WEEK_REFRESH,//孙龙的宝藏周任务 TREASH_MONTH_REFRESH,//孙龙的宝藏月任务 SERVENHAPPY_REFRESH,//七日狂欢 + ACHIEVE_REFRESH,//成就刷新 MISSING_ROOM_REFRESH,//迷宫寻宝刷新 BEGINNER,//新手 @@ -35,6 +36,7 @@ public enum GameEvent { MISSING_ROOM_MISSION_REWARD,//迷宫寻宝领奖 WORKSHOP_CREATE_EQUIP,//打造装备 ADVENTURE_TAKEREWARD, //收取秘境奖励 + ACHIEVE_REWARD,// 领取成就的宝藏 BUY_MATERIAL,//购买道具 RINGFIRE_ADVANCE,//天赋进阶 @@ -72,5 +74,5 @@ public enum GameEvent { JOIN_FAMILY,//加入公会次数 FRIEND_APPLY,//提出好友申请次数 - + COPY_COHERO_TIMES//通关剧情副本和精英本 } 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 2b26bc20d..dfc273a4d 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 @@ -9,6 +9,8 @@ public enum GameMisionType { BEGINNERMISSION(6), BLOODYMISSION(7), MISSINGROOMMISSION(8), + ACHIEVEMISSION(9), + ; 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 6de4e335e..8e4578445 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 @@ -2,6 +2,8 @@ package com.ljsd.jieling.logic.mission; import com.ljsd.jieling.config.clazzStaticCfg.TaskStaticConfig; +import com.ljsd.jieling.core.FunctionIdEnum; +import com.ljsd.jieling.core.HandlerLogicThread; import com.ljsd.jieling.dataReport.reportBeans_37.Repot37EventUtil; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; @@ -17,6 +19,7 @@ import com.ljsd.jieling.logic.activity.event.MissingRoomBestEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.expedition.ExpeditionLogic; import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.logic.mission.main.*; import com.ljsd.jieling.network.session.ISession; @@ -47,6 +50,7 @@ public class MissionLoigc { getBeginnerMisssion(user,missionList); getBloodyMisison(user,missionList); getMissingRoomMission(user,missionList); + getAchieveMission(user,missionList); PlayerInfoProto.GetMissionResponse build = PlayerInfoProto.GetMissionResponse.newBuilder().addAllUserMissionInfo(missionList).build(); MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.GET_MISSION_RESPONSE_VALUE,build,true); } @@ -312,6 +316,32 @@ public class MissionLoigc { } } + public static void getAchieveMission(User user ,List missionList){ + SGlobalSystemConfig sGlobalSystemConfig = STableManager.getConfig(SGlobalSystemConfig.class).get(FunctionIdEnum.Achieve.getFunctionType()); + if (sGlobalSystemConfig!=null&&!HandlerLogicThread.checkOpen(user,sGlobalSystemConfig)) { + return; + } + UserMissionManager userMissionManager = user.getUserMissionManager(); + AchieveMissionIdsType achievementMissionTypMap = userMissionManager.getAchievementMissionTypMap(); + + CumulationData achievementdata = userMissionManager.getAchievementMap(); + Set doingMissionIds = achievementMissionTypMap.getDoingMissionIds(); + Set finishMissionIds = achievementMissionTypMap.getFinishMissionIds(); + for (SAchievementConfig sAchievementConfig : STableManager.getConfig(SAchievementConfig.class).values()) { + int state = 2; + int missionId = sAchievementConfig.getId(); + int progrss = sAchievementConfig.getValues()[1][0]; + if (doingMissionIds.contains(missionId)) { + progrss = getDoingProgress(user, achievementdata, sAchievementConfig.getType(), sAchievementConfig.getValues()[0]); + state = 0; + } else if (finishMissionIds.contains(missionId)) { + state = 1; + } + missionList.add(CommonProto.UserMissionInfo.newBuilder().setMissionId(missionId).setState(state).setType(GameMisionType.ACHIEVEMISSION.getType()).setProgress(progrss).build()); + } + + + } public static void takeMissionReward(ISession session,int type,int missionId) throws Exception { int uid = session.getUid(); User user = UserManager.getUser(uid); @@ -397,6 +427,12 @@ public class MissionLoigc { missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.MISSINGROOMMISSION); } + if(type==GameMisionType.ACHIEVEMISSION.getType()){ + Map> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.ACHIEVE_REWARD, missionId); + missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.ACHIEVEMISSION); + } + + if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){ CommonProto.Drop.Builder drop = ItemUtil.drop(user, missionStateChangeInfos.get(0).getRewwardGroups(), BIReason.TAKE_MISSION_REWARD); PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().setDrop(drop).build(); @@ -502,6 +538,20 @@ public class MissionLoigc { } } break; + case COMHERO_STORY_PASS: + Map crossMap = user.getMapManager().getCrossInfoMap(); + for(Map.Entry item : crossMap.entrySet()){ + CrossInfo value = item.getValue(); + if(value.getStars().contains(MapLogic.STAR_1)){ + Integer fightId = item.getKey(); + SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(fightId); + if(sChallengeConfig.getType() == 1 && sChallengeConfig.getType() == 3){ + count++; + break; + } + } + } + break; case KILL_INVASIONBOSS: count = cumulationData.getKillInvasionbossCount(); 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 895fc12c2..b0f55ae96 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 @@ -85,6 +85,7 @@ public enum MissionType { TAKE_FRIEND_GIFT(66),//领取好友友情点 JOIN_FAMILY(69), FRIEND_APPLY(71),//提出%s次好友申请 + COMHERO_STORY_PASS(72), //通关剧情副本或精英副本%s次 ; private int missionType; @@ -231,6 +232,8 @@ public enum MissionType { return JOIN_FAMILY; case 71: return FRIEND_APPLY; + case 72: + return COMHERO_STORY_PASS; default: return null; } 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 fceaad3ce..509eb36ac 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 @@ -40,6 +40,8 @@ public class DataManagerDistributor { judges.put(MissionType.LEVEL_STORY_PASS,new FightDataManager()); judges.put(MissionType.GENERAL_STORY_PASS,new FightDataManager()); judges.put(MissionType.HERO_STORY_PASS,new FightDataManager()); + judges.put(MissionType.COMHERO_STORY_PASS,new FightDataManager()); + judges.put(MissionType.KILL_INVASIONBOSS,new KillInvasionBossDataManager()); judges.put(MissionType.SECRETBOX_TIMES,new SecretboxRandomManager()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/FightDataManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/FightDataManager.java index b7f785467..c3e53edc5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/FightDataManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/FightDataManager.java @@ -36,8 +36,12 @@ public class FightDataManager implements BaseDataManager{ if(sChallengeConfig.getType() == 3){ result = new CumulationData.Result(missionType); } - } - + }else if(missionType ==MissionType.COMHERO_STORY_PASS){ + SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(fightId); + if(sChallengeConfig.getType() == 3||sChallengeConfig.getType() == 1){ + result = new CumulationData.Result(missionType); + } + } } return result; 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 9da27907f..144bd9d86 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 @@ -10,6 +10,7 @@ import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.protocols.PlayerInfoProto; import com.ljsd.jieling.util.MessageUtil; +import manager.STableManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -33,7 +34,7 @@ public class MissionEventDistributor { eventProcessor.put(GameEvent.BLOODY_REFRESH,new DailyRefreshEventProcess()); eventProcessor.put(GameEvent.TREASH_REFRESH,new TreasureRefreshEventProcess()); eventProcessor.put(GameEvent.TREASH_WEEK_REFRESH,new TreasureRefreshEventProcess()); - + eventProcessor.put(GameEvent.ACHIEVE_REFRESH,new DailyRefreshEventProcess()); eventProcessor.put(GameEvent.TREASH_MONTH_REFRESH,new TreasureRefreshEventProcess()); eventProcessor.put(GameEvent.SERVENHAPPY_REFRESH,new TreasureRefreshEventProcess()); eventProcessor.put(GameEvent.BEGINNER,new BeginneRefreshEventProcessor()); @@ -177,6 +178,7 @@ public class MissionEventDistributor { eventProcessor.put(GameEvent.BEGINNER_MISSION_REWARD,new RewardEventProcessor()); eventProcessor.put(GameEvent.BLOODY_MISSION_REWARD,new RewardEventProcessor()); eventProcessor.put(GameEvent.MISSING_ROOM_MISSION_REWARD,new RewardEventProcessor()); + eventProcessor.put(GameEvent.ACHIEVE_REWARD,new RewardEventProcessor()); typeList = new ArrayList<>(); @@ -289,6 +291,12 @@ public class MissionEventDistributor { eventEnumListMap.put(GameEvent.FRIEND_APPLY,typeList); eventProcessor.put(GameEvent.FRIEND_APPLY,new CumulationDataEventProcessor()); + + typeList = new ArrayList<>(); + typeList.add(MissionType.COMHERO_STORY_PASS); + eventEnumListMap.put(GameEvent.COPY_COHERO_TIMES,typeList); + eventProcessor.put(GameEvent.COPY_COHERO_TIMES,new CumulationDataEventProcessor()); + } private static final ThreadLocal>> threadMissionChangeList = @@ -315,6 +323,8 @@ public class MissionEventDistributor { missionTypeEnumListMap.put(GameMisionType.BEGINNERMISSION, new ArrayList<>()); missionTypeEnumListMap.put(GameMisionType.BLOODYMISSION, new ArrayList<>()); missionTypeEnumListMap.put(GameMisionType.MISSINGROOMMISSION, new ArrayList<>()); + missionTypeEnumListMap.put(GameMisionType.ACHIEVEMISSION, new ArrayList<>()); + } else { missionTypeEnumListMap.get(GameMisionType.VIPMISSION).clear(); @@ -325,6 +335,8 @@ public class MissionEventDistributor { missionTypeEnumListMap.get(GameMisionType.BEGINNERMISSION).clear(); missionTypeEnumListMap.get(GameMisionType.BLOODYMISSION).clear(); missionTypeEnumListMap.get(GameMisionType.MISSINGROOMMISSION).clear(); + missionTypeEnumListMap.get(GameMisionType.ACHIEVEMISSION).clear(); + } threadMissionChangeList.set(missionTypeEnumListMap); @@ -360,7 +372,7 @@ public class MissionEventDistributor { if(gameMisionType==GameMisionType.MISSINGROOMMISSION){ continue; } - if(gameMisionType == GameMisionType.COPYMISSION || gameMisionType == GameMisionType.TREASUREMISSION || gameMisionType == GameMisionType.SEVENMISSION || gameMisionType == GameMisionType.BLOODYMISSION){ + if(gameMisionType == GameMisionType.COPYMISSION || gameMisionType == GameMisionType.TREASUREMISSION || gameMisionType == GameMisionType.SEVENMISSION || gameMisionType == GameMisionType.BLOODYMISSION|| gameMisionType == GameMisionType.ACHIEVEMISSION){ progress = missionStateChangeInfo.getProgress(); } if(missionState == MissionState.DOING){ @@ -391,6 +403,12 @@ public class MissionEventDistributor { STreasureSunlongTaskConfig sunlongTaskConfig = STreasureSunlongTaskConfig.treasureTaskConfig.get(missionStateChangeInfo.getMissionId()); progress= sunlongTaskConfig.getTaskValue()[1][0]; } + + if(gameMisionType == GameMisionType.ACHIEVEMISSION){ + SAchievementConfig achievementConfig = STableManager.getConfig(SAchievementConfig.class).get(missionStateChangeInfo.getMissionId()); + progress= achievementConfig.getValues()[1][0]; + } + if(gameMisionType == GameMisionType.SEVENMISSION){ STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureTaskConfigMap.get(missionStateChangeInfo.getMissionId()); if(sTreasureTaskConfig.getTaskType() != MissionType.SENVER_HAPPY.getMissionTypeValue()){ @@ -424,4 +442,5 @@ public class MissionEventDistributor { processor.onGameEvent(user, missionTypeEnumListMap,event,parm ); return missionTypeEnumListMap; } + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/AchieveMissionIdsType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/AchieveMissionIdsType.java new file mode 100644 index 000000000..5dba893a8 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/AchieveMissionIdsType.java @@ -0,0 +1,70 @@ +package com.ljsd.jieling.logic.mission.main; + +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.MissionType; +import config.SAchievementConfig; +import config.SBloodyBattleTask; +import config.STreasureSunlongTaskConfig; +import manager.STableManager; + +import java.util.Iterator; +import java.util.List; +import java.util.Set; + + +public class AchieveMissionIdsType extends AbstractMissionType{ + @Override + public void openMission(User user, int missionId, List missionTypeEnumList) { + } + + @Override + public int[][] reward(int missionId) { + SAchievementConfig sDailyTasksConfigById = STableManager.getConfig(SAchievementConfig.class).get(missionId); + return sDailyTasksConfigById.getReward(); + } + + @Override + public void calCumulationDataResult(User user, CumulationData.Result result, List missionStateChangeInfos, CumulationData cumulationData) { + + Set doingMissionIds = getDoingMissionIds(); + + List sAchievementConfigs = SAchievementConfig.sTaskConfigByTypeMap.get(result.subType.getMissionTypeValue()); + if(sAchievementConfigs == null){ + return; + } + + for(SAchievementConfig sAchievementConfig : sAchievementConfigs){ + int id = sAchievementConfig.getId(); + if(!doingMissionIds.contains(sAchievementConfig.getId())){ + continue; + } + + int doingProgress = MissionLoigc.getDoingProgress(user, cumulationData, sAchievementConfig.getType(), sAchievementConfig.getValues()[0]); + //完成 + int finishParm = sAchievementConfig.getValues()[1][0]; + + if (doingProgress next.getMissionId() == id); + missionStateChangeInfos.add(finishInfo); + doingMissionIds.remove(id); + getFinishMissionIds().add(id); + } + } +} diff --git a/tablemanager/src/main/java/config/SAchievementConfig.java b/tablemanager/src/main/java/config/SAchievementConfig.java new file mode 100644 index 000000000..51e9f1d63 --- /dev/null +++ b/tablemanager/src/main/java/config/SAchievementConfig.java @@ -0,0 +1,59 @@ +package config; + +import manager.STableManager; +import manager.Table; + +import java.util.*; + +@Table(name ="AchievementConfig") +public class SAchievementConfig implements BaseConfig { + + private int id; + + private int type; + + private int[][] values; + + private int[][] reward; + + public static Map> setTMap; + public static Map> sTaskConfigByTypeMap; + @Override + public void init() throws Exception { + Map configTmp = STableManager.getConfig(SAchievementConfig.class); + Map> configListTmp = new HashMap<>(); + for(SAchievementConfig sAchievementConfig : configTmp.values()){ + int taskType = sAchievementConfig.getType(); + if(!configListTmp.containsKey(taskType)){ + configListTmp.put(taskType,new ArrayList<>()); + } + configListTmp.get(taskType).add(sAchievementConfig); + } + sTaskConfigByTypeMap = configListTmp; + } + + + public int getId() { + return id; + } + + public int getType() { + return type; + } + + public int[][] getValues() { + return values; + } + + public int[][] getReward() { + return reward; + } + + public static Map> getsTaskConfigByTypeMap() { + return sTaskConfigByTypeMap; + } + + public static void setsTaskConfigByTypeMap(Map> sTaskConfigByTypeMap) { + SAchievementConfig.sTaskConfigByTypeMap = sTaskConfigByTypeMap; + } +} \ No newline at end of file