Compare commits

...

2 Commits

Author SHA1 Message Date
PC-202302260912\Administrator 71d02b86d5 法宝任务 2023-07-21 18:58:14 +08:00
PC-202302260912\Administrator 1470230ee4 法宝任务 2023-07-21 17:42:21 +08:00
20 changed files with 85 additions and 168 deletions

View File

@ -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);
}

View File

@ -14,6 +14,7 @@ public class CumulationData {
// private Map<Integer,Integer> 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<Integer, Integer> getHeroLevleCountMap() {
return heroLevleCountMap;
}

View File

@ -122,10 +122,10 @@ public class UserMissionManager extends MongoBase {
if(TimeUtils.isSameMonth2(GameApplication.serverConfig.getCacheOpenTime(),TimeUtils.now())){
int days = new Date(GameApplication.serverConfig.getCacheOpenTime()).getDate();//当月第几天
missionIds = STableManager.getConfig(SDailyTasksConfig.class).values().stream().filter(n->days >=n.
getViewDateUp()&& days <=n.getViewDataDown()).map(n ->n.getId()).collect(Collectors.toSet());
getViewDateUp()&& days <=n.getViewDataDown()).map(SDailyTasksConfig::getId).collect(Collectors.toSet());
}else{
missionIds = STableManager.getConfig(SDailyTasksConfig.class).values().stream().filter(n->n.getViewDateUp() == 1).
map(n ->n.getId()).collect(Collectors.toSet());
map(SDailyTasksConfig::getId).collect(Collectors.toSet());
}
int type = (int) parm[0];
if (type == 0) {
@ -450,7 +450,7 @@ public class UserMissionManager extends MongoBase {
}
break;
case JADE_DYNASTY_MISSION_REWARD:{
jadeDynastyMissionType.rewardMission(user, (int) parm[0], missionTypeEnumListMap.get(GameMisionType.JADE_DYNASTY_MISSION), jadeDynastyCumulationData);
jadeDynastyMissionType.rewardMission((int) parm[0], missionTypeEnumListMap.get(GameMisionType.JADE_DYNASTY_MISSION));
updateString("jadeDynastyMissionType",jadeDynastyMissionType);
}
break;

View File

@ -749,15 +749,16 @@ public class ExpeditionLogic {
* 使
*
*/
public static CommonProto.FightTeamInfo getFightTeamInfoWithDouble(User user, int teamId, Map<String, Double> attackBloodMap) {
public static CommonProto.FightTeamInfo getFightTeamInfoWithDouble(User user, int teamId, Map<String, Double> attackBloodMap) {
ExpeditionManager expeditionManager = user.getExpeditionManager();
user.getTeamPosManager().setCurTeamPosId(teamId);
List<CommonProto.FightUnitInfo> heroFightInfos = new ArrayList<>();
List<TeamPosHeroInfo> 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<SExpeditionHolyConfig> expeditionHolyConfigs = ExpeditionLogic.getFirstRankHoly(expeditionManager);
for (SExpeditionHolyConfig expeditionHolyConfig:expeditionHolyConfigs) {
Set<SExpeditionHolyConfig> 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("#");
}
}

View File

@ -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

View File

@ -789,7 +789,7 @@ public class MissionLoigc {
}
}
// 破阵诛仙任务
// 破阵诛仙任务/主题活动任务
if(type == GameMisionType.JADE_DYNASTY_MISSION.getType()){
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.JADE_DYNASTY_MISSION_REWARD, missionId);
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.JADE_DYNASTY_MISSION);
@ -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<String, PropertyItem> 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;

View File

@ -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;

View File

@ -11,10 +11,11 @@ import java.util.Map;
* missionType
*/
public class DataManagerDistributor {
private static Map<MissionType, BaseDataManager> judges = new HashMap<>();
private static final Map<MissionType, BaseDataManager> judges = new HashMap<>();
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());

View File

@ -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();
}
}

View File

@ -11,5 +11,5 @@ import java.util.Map;
public interface BaseGameEventProcessor {
public void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> misionTypeListMap, GameEvent event, Object ...parm) throws Exception;
void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> misionTypeListMap, GameEvent event, Object ...parm) throws Exception;
}

View File

@ -1,16 +0,0 @@
package com.ljsd.jieling.logic.mission.event;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.GameMisionType;
import com.ljsd.jieling.logic.mission.main.MissionStateChangeInfo;
import java.util.List;
import java.util.Map;
public class BeginneRefreshEventProcessor implements BaseGameEventProcessor{
@Override
public void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> misionTypeListMap, GameEvent event, Object... parm) throws Exception {
user.getUserMissionManager().openMission(user,event,misionTypeListMap, parm);
}
}

View File

@ -13,13 +13,12 @@ public class DailyRefreshEventProcess implements BaseGameEventProcessor {
@Override
public void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> misionTypeListMap, GameEvent event, Object... parm) throws Exception {
user.getUserMissionManager().openMission(user,event,misionTypeListMap, parm);
if(event == GameEvent.MISSING_ROOM_REFRESH){
List<MissionType> typeList = MissionEventDistributor.eventEnumListMap.get(event);
if(typeList!=null){
for (MissionType type : typeList) {
user.getUserMissionManager().calCumulationDataResult(user,type,misionTypeListMap,parm);
}
}
List<MissionType> 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);
}
}
}

View File

@ -8,7 +8,7 @@ import com.ljsd.jieling.logic.mission.main.MissionStateChangeInfo;
import java.util.List;
import java.util.Map;
public class CowFlySkyEventProcess implements BaseGameEventProcessor {
public class DefaultRefreshEventProcess implements BaseGameEventProcessor {
@Override
public void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> misionTypeListMap, GameEvent event, Object... parm) throws Exception {
user.getUserMissionManager().openMission(user,event,misionTypeListMap,parm);

View File

@ -1,21 +0,0 @@
package com.ljsd.jieling.logic.mission.event;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.GameMisionType;
import com.ljsd.jieling.logic.mission.main.MissionStateChangeInfo;
import java.util.List;
import java.util.Map;
/**
* @author lvxinran
* @date 2021/5/19
* @discribe
*/
public class EndlessMissionRefreshProcess implements BaseGameEventProcessor{
@Override
public void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> misionTypeListMap, GameEvent event, Object... parm) throws Exception {
user.getUserMissionManager().openMission(user,event,misionTypeListMap,parm);
}
}

View File

@ -1,17 +0,0 @@
package com.ljsd.jieling.logic.mission.event;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.GameMisionType;
import com.ljsd.jieling.logic.mission.main.MissionStateChangeInfo;
import java.util.List;
import java.util.Map;
public class JadeDynastyRefreshEventProcess implements BaseGameEventProcessor {
@Override
public void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> misionTypeListMap, GameEvent event, Object... parm) throws Exception {
user.getUserMissionManager().openMission(user,event,misionTypeListMap,parm);
}
}

View File

@ -29,7 +29,7 @@ public class MissionEventDistributor {
/**
*
*/
private static Map<GameEvent, BaseGameEventProcessor> eventProcessor = new HashMap<>();
private static final Map<GameEvent, BaseGameEventProcessor> eventProcessor = new HashMap<>();
/**
* 使eventProcessor使
*/
@ -60,21 +60,21 @@ public class MissionEventDistributor {
typeList.add(MissionType.HAVE_ID_STAR_LV_POKEMON_NUM);
eventEnumListMap.put(GameEvent.DONGHAIXUNXIAN_UPDATE,typeList);
// 刷新任务
eventProcessor.put(GameEvent.MISSING_ROOM_REFRESH,new CumulationDataEventProcessor());
eventProcessor.put(GameEvent.DAILY_REFRESH,new DailyRefreshEventProcess());
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());
eventProcessor.put(GameEvent.JADE_DYNASTY_REFRESH,new JadeDynastyRefreshEventProcess());
eventProcessor.put(GameEvent.JADE_DYNASTY_WEEK_REFRESH,new JadeDynastyRefreshEventProcess());
eventProcessor.put(GameEvent.COW_FLY_SKY_REFRESH,new CowFlySkyEventProcess());
eventProcessor.put(GameEvent.ENDLESS_MISSION_REFRESH,new EndlessMissionRefreshProcess());
eventProcessor.put(GameEvent.MISTY_TRIP_REFRESH,new MistyTripMissionRefreshProcess());//缥缈之旅刷新开始
// 刷新任务
eventProcessor.put(GameEvent.DAILY_REFRESH,new DefaultRefreshEventProcess());
eventProcessor.put(GameEvent.BLOODY_REFRESH,new DefaultRefreshEventProcess());
eventProcessor.put(GameEvent.ACHIEVE_REFRESH,new DefaultRefreshEventProcess());
eventProcessor.put(GameEvent.TREASH_REFRESH,new DefaultRefreshEventProcess());
eventProcessor.put(GameEvent.TREASH_WEEK_REFRESH,new DefaultRefreshEventProcess());
eventProcessor.put(GameEvent.TREASH_MONTH_REFRESH,new DefaultRefreshEventProcess());
eventProcessor.put(GameEvent.SERVENHAPPY_REFRESH,new DefaultRefreshEventProcess());
eventProcessor.put(GameEvent.BEGINNER,new DefaultRefreshEventProcess());
eventProcessor.put(GameEvent.JADE_DYNASTY_REFRESH,new DefaultRefreshEventProcess());
eventProcessor.put(GameEvent.JADE_DYNASTY_WEEK_REFRESH,new DefaultRefreshEventProcess());
eventProcessor.put(GameEvent.COW_FLY_SKY_REFRESH,new DefaultRefreshEventProcess());
eventProcessor.put(GameEvent.ENDLESS_MISSION_REFRESH,new DefaultRefreshEventProcess());
eventProcessor.put(GameEvent.MISTY_TRIP_REFRESH,new DefaultRefreshEventProcess());//缥缈之旅刷新开始
typeList = new ArrayList<>();
@ -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());

View File

@ -1,17 +0,0 @@
package com.ljsd.jieling.logic.mission.event;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.GameMisionType;
import com.ljsd.jieling.logic.mission.main.MissionStateChangeInfo;
import java.util.List;
import java.util.Map;
public class MistyTripMissionRefreshProcess implements BaseGameEventProcessor{
@Override
public void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> misionTypeListMap, GameEvent event, Object... parm) throws Exception {
user.getUserMissionManager().openMission(user,event,misionTypeListMap,parm);
}
}

View File

@ -1,16 +0,0 @@
package com.ljsd.jieling.logic.mission.event;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.GameMisionType;
import com.ljsd.jieling.logic.mission.main.MissionStateChangeInfo;
import java.util.List;
import java.util.Map;
public class TreasureRefreshEventProcess implements BaseGameEventProcessor {
@Override
public void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> misionTypeListMap, GameEvent event, Object... parm) throws Exception {
user.getUserMissionManager().openMission(user,event,misionTypeListMap,parm);
}
}

View File

@ -23,7 +23,6 @@ public class UserLevelEventProcessor implements BaseGameEventProcessor{
for (MissionType type : typeList) {
user.getUserMissionManager().calCumulationDataResult(user,type,misionTypeListMap,parm);
}
int oldLevel = (int)parm[0];
int upLevel = (int)parm[1];
ISession session = OnlineUserManager.getSessionByUid(user.getId());

View File

@ -9,11 +9,8 @@ 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.SThemeActivityTaskConfig;
import config.STreasureSunlongTaskConfig;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class JadeDynastyMissionType extends AbstractMissionType{
@ -33,13 +30,12 @@ public class JadeDynastyMissionType extends AbstractMissionType{
}
public void rewardMission(User user,int missionId, List<MissionStateChangeInfo> missionTypeEnumListMap, CumulationData cumulationData) throws Exception {
public void rewardMission(int missionId, List<MissionStateChangeInfo> missionTypeEnumListMap) {
SThemeActivityTaskConfig taskConfig = SThemeActivityTaskConfig.idTaskConfig.get(missionId);
if(taskConfig == null){return;}
if (!getFinishMissionIds().contains(missionId)) {
return ;
if (taskConfig == null || !getFinishMissionIds().contains(missionId)) {
return;
}
MissionStateChangeInfo stateChangeInfo = new MissionStateChangeInfo(missionId, MissionState.REWARD,taskConfig.getIntegral());
MissionStateChangeInfo stateChangeInfo = new MissionStateChangeInfo(missionId, MissionState.REWARD,taskConfig.getIntegral());
missionTypeEnumListMap.add(stateChangeInfo);
getFinishMissionIds().remove(missionId);
getRewardedMissionIds().set(missionId);