diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java index 9a90c5995..ff53cc4ad 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java @@ -365,6 +365,9 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { @Override public void onActivityEndDealReward(User user) throws Exception { ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); + if (sessionByUid == null){ + return; + } takeAllReward(sessionByUid); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java index fa6977e27..a42545565 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java @@ -14,6 +14,7 @@ public class CumulationData { // private Map randomCountMap = new HashMap<>(); // 抽卡次数统计 private int recruitmentRands; //群英征募 群英招募次数 + private int fabaoDrawNum; public int elementRands; //群英征募 群英招募次数 /** @@ -383,6 +384,14 @@ public class CumulationData { this.killInvasionbossCount = killInvasionbossCount; } + public int getFabaoDrawNum() { + return fabaoDrawNum; + } + + public void setFabaoDrawNum(int fabaoDrawNum) { + this.fabaoDrawNum = fabaoDrawNum; + } + public Map getHeroLevleCountMap() { return heroLevleCountMap; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java index f0e5c1729..38466ea09 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java @@ -749,15 +749,16 @@ public class ExpeditionLogic { * 猎妖之路 使用 * 需要添加被动 */ - public static CommonProto.FightTeamInfo getFightTeamInfoWithDouble(User user, int teamId, Map attackBloodMap) { + public static CommonProto.FightTeamInfo getFightTeamInfoWithDouble(User user, int teamId, Map attackBloodMap) { + ExpeditionManager expeditionManager = user.getExpeditionManager(); user.getTeamPosManager().setCurTeamPosId(teamId); List heroFightInfos = new ArrayList<>(); List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId); for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfos) { Hero hero; - if(teamId==TeamEnum.EXPEDITION_TEAM.getTeamId()&&user.getExpeditionManager().getHeroMap().containsKey(teamPosHeroInfo.getHeroId())){ - hero =user.getExpeditionManager().getHeroMap().get(teamPosHeroInfo.getHeroId()); + if(teamId==TeamEnum.EXPEDITION_TEAM.getTeamId() && expeditionManager.getHeroMap().containsKey(teamPosHeroInfo.getHeroId())){ + hero = expeditionManager.getHeroMap().get(teamPosHeroInfo.getHeroId()); }else { hero = user.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); } @@ -775,11 +776,10 @@ public class ExpeditionLogic { disposeWithHeroHoly(user,hero,skillSb); if(teamId==TeamEnum.EXPEDITION_TEAM.getTeamId()){ - ExpeditionManager expeditionManager = user.getExpeditionManager(); - Set expeditionHolyConfigs = ExpeditionLogic.getFirstRankHoly(expeditionManager); - for (SExpeditionHolyConfig expeditionHolyConfig:expeditionHolyConfigs) { + Set expeditionHolyConfigs = ExpeditionLogic.getFirstRankHoly(expeditionManager); + for (SExpeditionHolyConfig expeditionHolyConfig : expeditionHolyConfigs) { SPassiveSkillLogicConfig config = SPassiveSkillLogicConfig.getConfig(expeditionHolyConfig.getPassiveSkillId()); - if(config!=null &&config.getEffectiveRange()==1){ + if(config!=null && config.getEffectiveRange()==1){ skillSb.append(expeditionHolyConfig.getPassiveSkillId()).append("#"); } } 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 12d2831fd..eed273089 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 @@ -87,11 +87,10 @@ public enum GameEvent { CARD_RANDWM,// 使用普通召唤num次 (十连抽num计10) GUILD_GIVE,//使用level级别(0不限、1普通、2钻石小、3钻石大)的公会捐献num次 - TEN_CHALLENGE,//挑战十绝阵num次 //TODO - // SIX_RANDOM,//使用6灵阁召唤num次 + TEN_CHALLENGE,//挑战十绝阵num次 EXPEDITION_FINISH,//猎妖之路通过第floor层的首领节点(每层最多一个)num次 DESPOSE_HERO,//分解英雄 - DEATH_PATH,//击杀过关十绝阵num次//TODO + DEATH_PATH,//击杀过关十绝阵num次 DAILY_TASK_TYPE,//日常任务 // GUID_HELP,//公会援助他人次数达到num 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 83c561a82..85c5f942a 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 @@ -956,8 +956,8 @@ public class MissionLoigc { count = user.getPlayerInfoManager().getMaxForce(); break; case USER_CONSUMER_GEM: - Long consumeGem = cumulationData.getConsumeGem(); - count = consumeGem.intValue(); + long consumeGem = cumulationData.getConsumeGem(); + count = (int) consumeGem; break; case USER_WORKSHOP_LEVEL: count =user.getWorkShopController().getWorkShopLevel(); @@ -1022,20 +1022,6 @@ public class MissionLoigc { case SECRETBOX_TIMES: count = cumulationData.getSecretRandomCount(); break; - case EQUIP_FORCE_NUMS: -// Map equipMap = user.getEquipManager().getEquipMap(); -// for(PropertyItem equip : equipMap.values()){ -// Equip tempEquip=null; -// if(equip instanceof Equip){ -// tempEquip = (Equip)equip; -// }else{ -// continue; -// } -// if(HeroLogic.getInstance().calEquipForce(tempEquip)>missionSubType[0]){ -// count++; -// } -// } - break; case BUY_GOLD_TIMES: count=cumulationData.buyGoldTimes; break; @@ -1129,19 +1115,13 @@ public class MissionLoigc { count= cumulationData.differentHeros.size(); break; case ONE_HERO_UP_STAR_TIMES: - Integer num= cumulationData.heroUpStarTimesMap.get(missionSubType[0]); - if(num!=null){ - count = num; - } + count = cumulationData.heroUpStarTimesMap.getOrDefault(missionSubType[0], 0); break; case HERO_IN_TEAM_NUMS: count = cumulationData.heroInTeamNums; break; case BUY_GROCERY_TIMES: - num = cumulationData.buyStoreTimes.get(missionSubType[0]); - if(num!=null){ - count = num; - } + count = cumulationData.buyStoreTimes.getOrDefault(missionSubType[0], 0); break; case FRIEND_NUMS: count = cumulationData.friendNums; @@ -1150,10 +1130,7 @@ public class MissionLoigc { count = cumulationData.givePresents; break; case HERO_UP_SOME_STAR_TIMES: - num = cumulationData.heroUpSomeStarTimesMap.get(missionSubType[0]); - if(num!=null){ - count = num; - } + count = cumulationData.heroUpSomeStarTimesMap.getOrDefault(missionSubType[0],0); break; case JOIN_MONSTER_ATTACK_TIMES: count = cumulationData.monsterAttackTimes; @@ -1255,7 +1232,6 @@ public class MissionLoigc { count = cumulationData.hardstage_participation; break; //100以后类型继承 AbstractDataManager - case LIMIT_TIME_CHOICE_CARD: //限时招募 count = cumulationData.limit_time_choice_card_count; @@ -1309,7 +1285,6 @@ public class MissionLoigc { default: count = 0; break; - } if(count == null){ count =0; 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 32701aef4..4817628b0 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 @@ -182,7 +182,7 @@ public enum MissionType { SHIJUE_INSTANCE_ZONES_NUM(162),//十绝挑战num次 QIJIE_INSTANCE_ZONES_NUM(163),//进行num次七界试炼 XIAOYAOYOU_CONSUME_NUM(164),//逍遥游消耗云游值num点 - + FABAO_DRAW_NUM(165),//法宝抽卡次数 ; 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 833d749bc..3b31c8de1 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 @@ -15,6 +15,7 @@ public class DataManagerDistributor { public static void init(){ judges.put(MissionType.RECRUITMENT_RANDOM_HEROES,new RandomHeroDataManager()); + judges.put(MissionType.FABAO_DRAW_NUM,new FabaoDrawTaskManager()); judges.put(MissionType.ELEMENT_RANDOM_TIMES,new RandomHeroDataManager()); judges.put(MissionType.COLLECT_QUALITY_HERO,new GetHeroManager()); judges.put(MissionType.COLLECT_DIFFERENT_HEROS,new GetHeroManager()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/FabaoDrawTaskManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/FabaoDrawTaskManager.java new file mode 100644 index 000000000..014e9b48c --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/FabaoDrawTaskManager.java @@ -0,0 +1,23 @@ +package com.ljsd.jieling.logic.mission.data; + +import com.ljsd.jieling.logic.dao.CumulationData; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.mission.MissionType; + +/** + * @author lvxinran + * @date 2021/6/8 + * @discribe + */ +public class FabaoDrawTaskManager extends AbstractDataManager{ + @Override + public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) { + data.setFabaoDrawNum(data.getFabaoDrawNum()+1); + return new CumulationData.Result(missionType); + } + + @Override + public int getProcess(User user, CumulationData data, int[] missionSubType) { + return data.getFabaoDrawNum(); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/DailyRefreshEventProcess.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/DailyRefreshEventProcess.java index c1eb08293..2950bc535 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/DailyRefreshEventProcess.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/DailyRefreshEventProcess.java @@ -13,13 +13,12 @@ public class DailyRefreshEventProcess implements BaseGameEventProcessor { @Override public void onGameEvent(User user, Map> misionTypeListMap, GameEvent event, Object... parm) throws Exception { user.getUserMissionManager().openMission(user,event,misionTypeListMap, parm); - if(event == GameEvent.MISSING_ROOM_REFRESH){ - List typeList = MissionEventDistributor.eventEnumListMap.get(event); - if(typeList!=null){ - for (MissionType type : typeList) { - user.getUserMissionManager().calCumulationDataResult(user,type,misionTypeListMap,parm); - } - } + List typeList = MissionEventDistributor.eventEnumListMap.get(event); + if(event != GameEvent.MISSING_ROOM_REFRESH || typeList == null){ + return; + } + for (MissionType type : typeList) { + user.getUserMissionManager().calCumulationDataResult(user,type,misionTypeListMap,parm); } } } 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 cfe024488..598b92ca0 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 @@ -84,6 +84,7 @@ public class MissionEventDistributor { typeList = new ArrayList<>(); typeList.add(MissionType.RECRUITMENT_RANDOM_HEROES); + typeList.add(MissionType.FABAO_DRAW_NUM); typeList.add(MissionType.ELEMENT_RANDOM_TIMES); typeList.add(MissionType.CARD_RANDOM_TYPE); typeList.add(MissionType.RANDOM_All_TIMES); @@ -104,7 +105,6 @@ public class MissionEventDistributor { eventProcessor.put(GameEvent.GET_HERO,new CumulationDataEventProcessor()); - typeList = new ArrayList<>(); typeList.add(MissionType.HERO_LEVLE_COUNT); typeList.add(MissionType.HERO_LEVLE_TIMES); @@ -806,7 +806,7 @@ public class MissionEventDistributor { missionTypeEnumListMap = new HashMap<>(1); } - processor.onGameEvent(user, missionTypeEnumListMap,event,parm); + processor.onGameEvent(user,missionTypeEnumListMap,event,parm); }catch (Exception e){ e.printStackTrace(); LOGGER.error(e.toString());