青龙秘宝,新增任务类型
parent
f73829b5d4
commit
b797c85de6
|
@ -3254,6 +3254,9 @@ public class MapLogic {
|
|||
idList.add(id);
|
||||
}
|
||||
BehaviorUtil.destoryCurPoint(user);
|
||||
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.PLAY_MINI_GAME, 0);
|
||||
|
||||
MapInfoProto.MapGameResponse response = MapInfoProto.MapGameResponse.newBuilder().setType(mapGameInfo.getType()).addAllParam(idList).build();
|
||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
|
||||
}
|
||||
|
|
|
@ -1260,6 +1260,10 @@ public class ActivityLogic implements IEventHandler{
|
|||
}else{
|
||||
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
||||
}
|
||||
|
||||
PlayerInfoProto.TreasureLevelUpIndication indication = PlayerInfoProto.TreasureLevelUpIndication.newBuilder().setLevel(user.getPlayerInfoManager().getTreasureLevel()).build();
|
||||
MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.TREASURE_LEVELUP_INDICATION_VALUE,indication,true);
|
||||
|
||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,17 +1,18 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
import com.ljsd.jieling.core.VipPrivilegeType;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.jbean.ActivityProgressInfo;
|
||||
import com.ljsd.jieling.logic.dao.Item;
|
||||
import com.ljsd.jieling.logic.dao.PlayerManager;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.VipInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.logic.player.PlayerLogic;
|
||||
import com.ljsd.jieling.logic.store.GiftGoodsType;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.CommonProto;
|
||||
|
@ -21,10 +22,7 @@ import com.ljsd.jieling.util.ItemUtil;
|
|||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.*;
|
||||
|
||||
import javax.lang.model.type.PrimitiveType;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
public class TreasureActivity extends AbstractActivity {
|
||||
|
||||
|
@ -116,6 +114,7 @@ public class TreasureActivity extends AbstractActivity {
|
|||
user.getPlayerInfoManager().updateVipPrivilage(VipPrivilegeType.DRAGON_TREASURE_SUPPLY,1);
|
||||
int[][] rewards = SSpecialConfig.getTwiceArrayValue(SSpecialConfig.SUNLONG_REWARD);
|
||||
dropList.add(rewards);
|
||||
notifyClient(session,user);
|
||||
} else if (missionId == -1) {
|
||||
getAllTreasureRewards(user, activityMission, changeState, dropList);
|
||||
} else {
|
||||
|
@ -263,4 +262,16 @@ public class TreasureActivity extends AbstractActivity {
|
|||
public void getAllMissRewards(User user, ISession session, List<int[][]> itemAttrs){
|
||||
getAllTreasureRewards(user, user.getActivityManager().getActivityMissionMap().get(id), getChangerState(user), itemAttrs);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通知客户端每周补给特权变动
|
||||
* @param sesson
|
||||
* @param user
|
||||
*/
|
||||
private void notifyClient(ISession sesson, User user) {
|
||||
PlayerInfoProto.PrivilegeIndication.Builder indication = PlayerInfoProto.PrivilegeIndication.newBuilder();
|
||||
Set<CommonProto.Privilege> privilege = PlayerLogic.getInstance().getPrivilege(user, Collections.singletonList(VipPrivilegeType.DRAGON_TREASURE_SUPPLY));
|
||||
indication.addAllInfos(privilege);
|
||||
MessageUtil.sendIndicationMessage(sesson, 1, MessageTypeProto.MessageType.PRIVILLEGE_ADD_INDICATION_VALUE, indication.build(), true);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ import com.ljsd.jieling.logic.dao.root.User;
|
|||
import com.ljsd.jieling.logic.fight.*;
|
||||
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.player.PlayerLogic;
|
||||
import com.ljsd.jieling.network.server.ProtocolsManager;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
|
@ -382,6 +383,7 @@ public class ChampionshipLogic {
|
|||
if (user.getArenaManager().getTopMaxRank() == 0 || user.getArenaManager().getTopMaxRank() > rank) {
|
||||
user.getArenaManager().setTopMaxRank(rank);
|
||||
}
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.CHAMPIONSHIP_RANK, rank);
|
||||
rank++;
|
||||
String title = SErrorCodeEerverConfig.getI18NMessage("champion_reward_title");
|
||||
String content = SErrorCodeEerverConfig.getI18NMessage("champion_reward_txt", new Object[]{sChampionshipReward.getTitleDesc()});
|
||||
|
|
|
@ -160,6 +160,9 @@ public class CumulationData {
|
|||
//巅峰联赛名次
|
||||
private int championshipRank;
|
||||
|
||||
//森罗幻境中参与小游戏次数
|
||||
private int playMiniGameTimes;
|
||||
|
||||
public Result updateData(MissionType missionType, Object...parm) throws Exception {
|
||||
return DataManagerDistributor.updateData(this, missionType,parm);
|
||||
}
|
||||
|
@ -354,4 +357,12 @@ public class CumulationData {
|
|||
public void setChampionshipRank(int championshipRank) {
|
||||
this.championshipRank = championshipRank;
|
||||
}
|
||||
|
||||
public int getPlayMiniGameTimes() {
|
||||
return playMiniGameTimes;
|
||||
}
|
||||
|
||||
public void setPlayMiniGameTimes(int playMiniGameTimes) {
|
||||
this.playMiniGameTimes = playMiniGameTimes;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -99,6 +99,6 @@ public enum GameEvent {
|
|||
CAR_PLAY_LOOT,//于车迟斗法中抢夺其他玩家积分num次//TODO
|
||||
|
||||
GOT_SOUL_MARK,//获取魂印事件
|
||||
|
||||
CHAMPIONSHIP_RANK,//巅峰联赛排名
|
||||
PLAY_MINI_GAME,//参与森罗幻境小游戏
|
||||
}
|
||||
|
|
|
@ -119,11 +119,11 @@ public enum MissionType {
|
|||
|
||||
CAR_PLAY_DAYS(110),//累计n天挑战车迟斗法
|
||||
ARENA_CONSECUTIVE_WIN(111),//竞技场连胜
|
||||
//森罗幻境中参与n次小游戏
|
||||
PLAY_MINI_GAME_TIMES(112),//森罗幻境中参与n次小游戏
|
||||
CHAMPIONSHIP_RANK(113),//巅峰联赛中达到num名
|
||||
//天宫寻宝中接取任意星级任务n次
|
||||
GOT_SOUL_MARK(115),//获得指定品质魂印数量
|
||||
//累计探索森罗幻境n层
|
||||
//累计探索森罗幻境num层
|
||||
//充值达到num金额
|
||||
;
|
||||
|
||||
|
|
|
@ -139,7 +139,7 @@ public class DataManagerDistributor {
|
|||
judges.put(MissionType.ARENA_CONSECUTIVE_WIN, new ArenaConsecutiveWinManager());
|
||||
|
||||
judges.put(MissionType.CHAMPIONSHIP_RANK, new ChampionshipRankManager());
|
||||
|
||||
judges.put(MissionType.PLAY_MINI_GAME_TIMES, new PlayMiniGameTimesManager());
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
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 lilei
|
||||
* @description 森罗幻境小游戏任务次数处理逻辑
|
||||
* @create 2020-08-17 15:17
|
||||
*/
|
||||
public class PlayMiniGameTimesManager extends AbstractDataManager {
|
||||
|
||||
@Override
|
||||
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
|
||||
CumulationData.Result result = null;
|
||||
if (missionType == MissionType.PLAY_MINI_GAME_TIMES) {
|
||||
data.setPlayMiniGameTimes(data.getPlayMiniGameTimes() + 1);
|
||||
result = new CumulationData.Result(missionType);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFinish(User user, CumulationData data, int[][] cfgValue, Object... parm) {
|
||||
return data.getPlayMiniGameTimes() >= cfgValue[1][0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getProcess(User user, CumulationData data, int[] missionSubType) {
|
||||
return data.getPlayMiniGameTimes();
|
||||
}
|
||||
|
||||
}
|
|
@ -408,6 +408,11 @@ public class MissionEventDistributor {
|
|||
eventEnumListMap.put(GameEvent.CHAMPIONSHIP_RANK, typeList);
|
||||
eventProcessor.put(GameEvent.CHAMPIONSHIP_RANK, new CumulationDataEventProcessor());
|
||||
|
||||
typeList = new ArrayList<>();
|
||||
typeList.add(MissionType.PLAY_MINI_GAME_TIMES);
|
||||
eventEnumListMap.put(GameEvent.PLAY_MINI_GAME, typeList);
|
||||
eventProcessor.put(GameEvent.PLAY_MINI_GAME, new CumulationDataEventProcessor());
|
||||
|
||||
}
|
||||
|
||||
public static final ThreadLocal<Map<GameMisionType, List<MissionStateChangeInfo>>> threadMissionChangeList =
|
||||
|
|
Loading…
Reference in New Issue