任务系统梳理和注释
parent
2e3a64205b
commit
26c1259480
|
@ -27,6 +27,23 @@ import java.util.stream.Collectors;
|
|||
import java.util.stream.Stream;
|
||||
|
||||
|
||||
/**
|
||||
* TODO 任务zsx
|
||||
* Q
|
||||
* 1 数据层里面做了逻辑
|
||||
* 2 将完整的任务数据 拆分成了任务状态分类 任务进度(状态分别存储 状态转移的过程就需要手动调整)
|
||||
* 3 扩展复杂 新增类型 要增加数据更新type 需要新增更新器 需要新郑任务进度获取
|
||||
* 4 映射多余 event映射多个taskType 再映射到多个或一个类型刷新器 刷新指定字段
|
||||
* 建立了类型到字段的映射关系 随后类型字段的获取却使用if else
|
||||
*
|
||||
* F
|
||||
* 1 task数据层抽象
|
||||
* 2 面向对象设计
|
||||
* 3 (优化)业务层抽象 扩展类型只应该新增任务类型类的击中和完成接口的实现
|
||||
* 4 (优化)枚举扩展id 预缓存id
|
||||
*
|
||||
*
|
||||
* */
|
||||
public class UserMissionManager extends MongoBase {
|
||||
private VipMissionIdsType vipMissionIdsType=new VipMissionIdsType();
|
||||
private DailyMissionIdsType dailyMissionIdsType=new DailyMissionIdsType();
|
||||
|
@ -49,6 +66,7 @@ public class UserMissionManager extends MongoBase {
|
|||
private CumulationData sevenHappyCumulationData = new CumulationData();
|
||||
private CumulationData achievementMap = new CumulationData();
|
||||
|
||||
//触发任务上身
|
||||
public void openMission(User user,GameEvent event,Map<GameMisionType, List<MissionStateChangeInfo>> missionTypeEnumListMap, Object... parm) throws Exception {
|
||||
ISession session= OnlineUserManager.getSessionByUid(user.getId());
|
||||
switch (event){
|
||||
|
|
|
@ -448,6 +448,12 @@ public class MissionLoigc {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* TODO 不够抽象 ifelse?
|
||||
*
|
||||
* 已经有了映射关系 不应再ifelse 现100及1以后的类型 进度完成状态及进度迁移到类型处理器中
|
||||
*/
|
||||
public static int getDoingProgress(User user,CumulationData cumulationData, int missionTypeId, int[] missionSubType){
|
||||
MissionType missionType = MissionType.findByMissionId(missionTypeId);
|
||||
if(missionType == null){
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
package com.ljsd.jieling.logic.mission;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public enum MissionType {
|
||||
RECRUITMENT_RANDOM_HEROES(1), //群英征募 群英招募次数
|
||||
COLLECT_QUALITY_HERO (2), //获得某品质妖灵师 获得SSR、SR品质的妖灵师数量
|
||||
|
@ -92,7 +95,11 @@ public enum MissionType {
|
|||
FINISH_EXPEDITION_HERO_TIMES(84),//完成猎妖之路次数达到
|
||||
SEVEN_GIFT_BUY(86),//购买7日狂欢福利礼包%s次七日狂欢积分
|
||||
FINISIN_DAILY_CHALLENGE_TIMES(87),//完成%s类型(0为不限类型)的日常副本%s次
|
||||
|
||||
SIX_RANDOM_TIMES(88),//使用6灵阁召唤num次
|
||||
EXPEDITION_FLOOR_TIMES(89),//猎妖之路通过第floor层的首领节点(每层最多一个)num次
|
||||
DECOMPOSE_TIMES(100),//献祭武将num个
|
||||
DEATH_PATH_TIMES(101),//击杀过关十绝阵num次
|
||||
JEWL_ALL_LEVE(102),//全体上阵成员法宝等级达到level(需求人数6人,不满上阵不计完成度)
|
||||
;
|
||||
|
||||
private int missionType;
|
||||
|
@ -105,163 +112,176 @@ public enum MissionType {
|
|||
this.missionType = missionType;
|
||||
}
|
||||
|
||||
public static MissionType findByMissionId(int missionTypeId){
|
||||
switch (missionTypeId){
|
||||
case 1:
|
||||
return RECRUITMENT_RANDOM_HEROES;
|
||||
case 2:
|
||||
return COLLECT_QUALITY_HERO;
|
||||
case 3:
|
||||
return HERO_LEVLE_COUNT;
|
||||
case 4:
|
||||
return POKEMON_ADVANCED;
|
||||
case 5:
|
||||
return POKEMON_FORCE;
|
||||
case 6:
|
||||
return POKEMON_ALL_FORCE;
|
||||
case 7:
|
||||
return ARENA_CHALLENEGE_NUMS;
|
||||
case 8:
|
||||
return ARENA_SCORE;
|
||||
case 9:
|
||||
return USER_LEVEL;
|
||||
case 10:
|
||||
return USER_FORCE;
|
||||
case 11:
|
||||
return USER_CONSUMER_GEM;
|
||||
case 12:
|
||||
return USER_WORKSHOP_LEVEL;
|
||||
case 13:
|
||||
return USER_GET_EQUIP_QUALITY;
|
||||
case 14:
|
||||
return LEVEL_STORY_PASS;
|
||||
case 15:
|
||||
return GENERAL_STORY_PASS;
|
||||
case 16:
|
||||
return HERO_STORY_PASS;
|
||||
case 17:
|
||||
return KILL_INVASIONBOSS;
|
||||
case 18:
|
||||
return SECRETBOX_TIMES;
|
||||
case 19:
|
||||
return EQUIP_FORCE_NUMS;
|
||||
case 20:
|
||||
return BUY_GOLD_TIMES;
|
||||
case 21:
|
||||
return BUY_STAMINA_TIMES;
|
||||
case 22:
|
||||
return WORKSHOP_CREATE_EQUIP_NUMS;
|
||||
case 23:
|
||||
return GENERAL_STORY_TIMES;
|
||||
case 24:
|
||||
return HERO_STORY_TIMES;
|
||||
case 25:
|
||||
return LEVEL_STORY_TIMES;
|
||||
case 26:
|
||||
return HERO_LEVLE_TIMES;
|
||||
case 27:
|
||||
return TAKE_ADVENTUREREWARD_TIMES;
|
||||
case 28:
|
||||
return ARENA_FIGHTSUCCES_TIMES;
|
||||
case 29:
|
||||
return FINSIH_DAYILY_TIMES;
|
||||
case 30:
|
||||
return RING_FIREA_DVANCED;
|
||||
case 31:
|
||||
return COPY_STORY_LEVLE;
|
||||
case 32:
|
||||
return COPY_STORY_TIMES;
|
||||
case 33:
|
||||
return ELEMENT_RANDOM_TIMES;
|
||||
case 34:
|
||||
return HERO_STORY_PLAY_TIMES;
|
||||
case 35:
|
||||
return INVASIONBOSS_PLAY_TIMES;
|
||||
case 36:
|
||||
return FAST_ADVENTUREREWARD_TIMES;
|
||||
case 37:
|
||||
return ARENA_RANK;
|
||||
case 38:
|
||||
return SENVER_HAPPY;
|
||||
case 39:
|
||||
return HERO_BREAK_TIMES;
|
||||
case 40:
|
||||
return TAKE_CHAPTER_REWARD_TIMES;
|
||||
case 41:
|
||||
return HERO_UP_STAR_TIMES;
|
||||
case 42:
|
||||
return VIP_LEVEL;
|
||||
case 43:
|
||||
return TAKE_ONLINE_REWARD_TIMES;
|
||||
case 44:
|
||||
return TAKE_SENVEN_LOGIN_REWARD_TIMES;
|
||||
case 45:
|
||||
return TAKE_DAILY_BOX_TIMES;
|
||||
case 46:
|
||||
return HERO_WEAR_EQUIP_TIMES;
|
||||
case 47:
|
||||
return SYNTHESIS_HERO_STAR_TIMES;
|
||||
case 48:
|
||||
return USER_CONSUMER_STAMINA;
|
||||
case 49:
|
||||
return COLLECT_DIFFERENT_HEROS;
|
||||
case 50:
|
||||
return ONE_HERO_UP_STAR_TIMES;
|
||||
case 51:
|
||||
return HERO_IN_TEAM_NUMS;
|
||||
case 52:
|
||||
return BUY_GROCERY_TIMES;
|
||||
case 53:
|
||||
return FRIEND_NUMS;
|
||||
case 54:
|
||||
return GIVE_FRIEND_STAMIN_TIMES;
|
||||
case 55:
|
||||
return HERO_UP_SOME_STAR_TIMES;
|
||||
case 56:
|
||||
return JOIN_MONSTER_ATTACK_TIMES;//参与兽潮来袭的次数
|
||||
case 57:
|
||||
return MONSTER_ATTACK_LEVEL;//兽潮来袭到达x层
|
||||
case 58:
|
||||
return TO_BE_STRONGER;
|
||||
case 59:
|
||||
return BLOODY_KILL_NUMS;
|
||||
case 60:
|
||||
return ENDLESS_CONSUME_ACTION;
|
||||
case 61:
|
||||
return FAMILY_FIGHT_ATTACK;
|
||||
case 62:
|
||||
return ESPECIAL_EQUIP;
|
||||
case 65:
|
||||
return FIND_STAR;
|
||||
case 66:
|
||||
return TAKE_FRIEND_GIFT;
|
||||
case 69:
|
||||
return JOIN_FAMILY;
|
||||
case 71:
|
||||
return FRIEND_APPLY;
|
||||
case 72:
|
||||
return COMHERO_STORY_PASS;
|
||||
case 73:
|
||||
return LOGIN_TIMES;
|
||||
case 74:
|
||||
return REARGE_TOTAL;
|
||||
case 76:
|
||||
return FINISH_MISSING_ROOM;
|
||||
case 77:
|
||||
return REFRESH_MISSING_ROOM;
|
||||
case 78:
|
||||
return SPECIAL_EQUIP_LEVEL_UP;
|
||||
case 83:
|
||||
return LUCKY_WHEELS_TIMES;
|
||||
case 84:
|
||||
return FINISH_EXPEDITION_HERO_TIMES;
|
||||
case 86:
|
||||
return SEVEN_GIFT_BUY;
|
||||
case 87:
|
||||
return FINISIN_DAILY_CHALLENGE_TIMES;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
static Map<Integer,MissionType> map = new HashMap<>();
|
||||
|
||||
static {
|
||||
for (MissionType type:MissionType.values()) {
|
||||
map.put(type.getMissionTypeValue(),type);
|
||||
}
|
||||
}
|
||||
|
||||
public static MissionType findByMissionId(int missionTypeId){
|
||||
return map.get(missionTypeId);
|
||||
}
|
||||
|
||||
//fix 扩展麻烦
|
||||
// public static MissionType findByMissionId(int missionTypeId){
|
||||
// switch (missionTypeId){
|
||||
// case 1:
|
||||
// return RECRUITMENT_RANDOM_HEROES;
|
||||
// case 2:
|
||||
// return COLLECT_QUALITY_HERO;
|
||||
// case 3:
|
||||
// return HERO_LEVLE_COUNT;
|
||||
// case 4:
|
||||
// return POKEMON_ADVANCED;
|
||||
// case 5:
|
||||
// return POKEMON_FORCE;
|
||||
// case 6:
|
||||
// return POKEMON_ALL_FORCE;
|
||||
// case 7:
|
||||
// return ARENA_CHALLENEGE_NUMS;
|
||||
// case 8:
|
||||
// return ARENA_SCORE;
|
||||
// case 9:
|
||||
// return USER_LEVEL;
|
||||
// case 10:
|
||||
// return USER_FORCE;
|
||||
// case 11:
|
||||
// return USER_CONSUMER_GEM;
|
||||
// case 12:
|
||||
// return USER_WORKSHOP_LEVEL;
|
||||
// case 13:
|
||||
// return USER_GET_EQUIP_QUALITY;
|
||||
// case 14:
|
||||
// return LEVEL_STORY_PASS;
|
||||
// case 15:
|
||||
// return GENERAL_STORY_PASS;
|
||||
// case 16:
|
||||
// return HERO_STORY_PASS;
|
||||
// case 17:
|
||||
// return KILL_INVASIONBOSS;
|
||||
// case 18:
|
||||
// return SECRETBOX_TIMES;
|
||||
// case 19:
|
||||
// return EQUIP_FORCE_NUMS;
|
||||
// case 20:
|
||||
// return BUY_GOLD_TIMES;
|
||||
// case 21:
|
||||
// return BUY_STAMINA_TIMES;
|
||||
// case 22:
|
||||
// return WORKSHOP_CREATE_EQUIP_NUMS;
|
||||
// case 23:
|
||||
// return GENERAL_STORY_TIMES;
|
||||
// case 24:
|
||||
// return HERO_STORY_TIMES;
|
||||
// case 25:
|
||||
// return LEVEL_STORY_TIMES;
|
||||
// case 26:
|
||||
// return HERO_LEVLE_TIMES;
|
||||
// case 27:
|
||||
// return TAKE_ADVENTUREREWARD_TIMES;
|
||||
// case 28:
|
||||
// return ARENA_FIGHTSUCCES_TIMES;
|
||||
// case 29:
|
||||
// return FINSIH_DAYILY_TIMES;
|
||||
// case 30:
|
||||
// return RING_FIREA_DVANCED;
|
||||
// case 31:
|
||||
// return COPY_STORY_LEVLE;
|
||||
// case 32:
|
||||
// return COPY_STORY_TIMES;
|
||||
// case 33:
|
||||
// return ELEMENT_RANDOM_TIMES;
|
||||
// case 34:
|
||||
// return HERO_STORY_PLAY_TIMES;
|
||||
// case 35:
|
||||
// return INVASIONBOSS_PLAY_TIMES;
|
||||
// case 36:
|
||||
// return FAST_ADVENTUREREWARD_TIMES;
|
||||
// case 37:
|
||||
// return ARENA_RANK;
|
||||
// case 38:
|
||||
// return SENVER_HAPPY;
|
||||
// case 39:
|
||||
// return HERO_BREAK_TIMES;
|
||||
// case 40:
|
||||
// return TAKE_CHAPTER_REWARD_TIMES;
|
||||
// case 41:
|
||||
// return HERO_UP_STAR_TIMES;
|
||||
// case 42:
|
||||
// return VIP_LEVEL;
|
||||
// case 43:
|
||||
// return TAKE_ONLINE_REWARD_TIMES;
|
||||
// case 44:
|
||||
// return TAKE_SENVEN_LOGIN_REWARD_TIMES;
|
||||
// case 45:
|
||||
// return TAKE_DAILY_BOX_TIMES;
|
||||
// case 46:
|
||||
// return HERO_WEAR_EQUIP_TIMES;
|
||||
// case 47:
|
||||
// return SYNTHESIS_HERO_STAR_TIMES;
|
||||
// case 48:
|
||||
// return USER_CONSUMER_STAMINA;
|
||||
// case 49:
|
||||
// return COLLECT_DIFFERENT_HEROS;
|
||||
// case 50:
|
||||
// return ONE_HERO_UP_STAR_TIMES;
|
||||
// case 51:
|
||||
// return HERO_IN_TEAM_NUMS;
|
||||
// case 52:
|
||||
// return BUY_GROCERY_TIMES;
|
||||
// case 53:
|
||||
// return FRIEND_NUMS;
|
||||
// case 54:
|
||||
// return GIVE_FRIEND_STAMIN_TIMES;
|
||||
// case 55:
|
||||
// return HERO_UP_SOME_STAR_TIMES;
|
||||
// case 56:
|
||||
// return JOIN_MONSTER_ATTACK_TIMES;//参与兽潮来袭的次数
|
||||
// case 57:
|
||||
// return MONSTER_ATTACK_LEVEL;//兽潮来袭到达x层
|
||||
// case 58:
|
||||
// return TO_BE_STRONGER;
|
||||
// case 59:
|
||||
// return BLOODY_KILL_NUMS;
|
||||
// case 60:
|
||||
// return ENDLESS_CONSUME_ACTION;
|
||||
// case 61:
|
||||
// return FAMILY_FIGHT_ATTACK;
|
||||
// case 62:
|
||||
// return ESPECIAL_EQUIP;
|
||||
// case 65:
|
||||
// return FIND_STAR;
|
||||
// case 66:
|
||||
// return TAKE_FRIEND_GIFT;
|
||||
// case 69:
|
||||
// return JOIN_FAMILY;
|
||||
// case 71:
|
||||
// return FRIEND_APPLY;
|
||||
// case 72:
|
||||
// return COMHERO_STORY_PASS;
|
||||
// case 73:
|
||||
// return LOGIN_TIMES;
|
||||
// case 74:
|
||||
// return REARGE_TOTAL;
|
||||
// case 76:
|
||||
// return FINISH_MISSING_ROOM;
|
||||
// case 77:
|
||||
// return REFRESH_MISSING_ROOM;
|
||||
// case 78:
|
||||
// return SPECIAL_EQUIP_LEVEL_UP;
|
||||
// case 83:
|
||||
// return LUCKY_WHEELS_TIMES;
|
||||
// case 84:
|
||||
// return FINISH_EXPEDITION_HERO_TIMES;
|
||||
// case 86:
|
||||
// return SEVEN_GIFT_BUY;
|
||||
// case 87:
|
||||
// return FINISIN_DAILY_CHALLENGE_TIMES;
|
||||
// default:
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// }
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue